Page 1 of 21

[REL] Riiak's DotP 2014 Deck Builder v1.5.0.3

PostPosted: 01 Jul 2013, 22:09
by RiiakShiNal
Decks must be EXPORTED to be usable in game.

The Deck Builder is intended to make creating decks easier for people as well as trying to hide some of the complexities from the average user.

You can find more information on my Wiki.

Main Features:
  • Will now put decks into a custom content pack as defined by the Id Block in the Id Numbering Scheme (as well as create a content pack enabler wad when exporting).
  • Reads from the Wads (and directories setup as Wads) in the game directory rather than requiring that a wad be imported/extracted.
  • Automatically calculates the colour of the deck (no need to manually set deck colours).
  • Will automatically build random land pools based on the colours of the deck selecting up to 4 different lands from the configured basic pools (Forest pool, Island pool, Mountain Pool, Plains pool, Swamp pool) for each colour used in the deck.
  • Assists the user in building images for the deck box and AI Personalities.
  • The program itself is localizable (translations other than English are currently incomplete).
  • Full Source Code available - This means if for whatever reason I disappear or stop working on it someone else can pick it up and start updating it.
  • Compresses all TDX images the builder generates (this includes Deck Box, Card Previews, and AI Personality images).
  • Can individually save (Export) the images that the builder generates without needing to actually build and export a deck. This means that if you want to use this program just as an easier way of building the necessary images, now you can do that.
  • Advanced filtering of card list. You can create customized filters with as many or as few filtering rules as you want.

Requirements:
  • .Net 4.0 Framework
  • Gibbed Tools (included)

Screen shots:
2014DeckBuilderMainScreen.png

2014DeckBuilderDeckInfoScreen.png

2014DeckBuilderAiPersonalityScreen.png

2014DeckBuilderOptionsScreen.png


Download:
Riiak's DotP 2014 Deck Builder v1.5.0.3 x86 (32-bit)
Riiak's DotP 2014 Deck Builder v1.5.0.3 x64 (64-bit)
Riiak's DotP 2014 Deck Builder v1.5.0.3 - Source

Github Repository set up by hidalgo

Notes on Upgrading:
  • To v1.2.0.0+ from previous versions (v1.1.0.0 and below):
    • You will need to either:
      1. Delete your Settings.xml file.
      2. Change the SortMode for the view columns from "Automatic" to "Programmatic" (37 instances).

Online Documentation:
Online Documentation
Frequently Asked Questions

Updated Localizations:
Updated Localizations can be found here.

Contributing Localizations: | Open
If you want to contribute to the localizations then you can upload them directly on my Wiki. Just go to the appropriate file page for the localization you worked on and choose "Upload a new version of this file".


2023-09-27: Updated the links to be https instead of http since browsers are now complaining about security risks using http links.

Re: [REL] Riiak's DotP 2014 Deck Builder v1.0.0.0

PostPosted: 02 Jul 2013, 03:13
by damienx45
hey riiak your builder works great but it does have a major bug after the deck .wad is created and placed in the game diretory and the game starts it freezes on the start screen then crashes to the desktop. i am including my created deck so maybe you can figure out the bug problem that no one else runs into this bug.

DATA_DECKS_100000_JUNGLE_RAMPAGE.rar
(237.69 KiB) Downloaded 1964 times

Re: [REL] Riiak's DotP 2014 Deck Builder v1.0.0.0

PostPosted: 02 Jul 2013, 10:36
by Persee
Great job !!

Re: [REL] Riiak's DotP 2014 Deck Builder v1.0.0.0

PostPosted: 02 Jul 2013, 12:37
by RiiakShiNal
damienx45 wrote:hey riiak your builder works great but it does have a major bug after the deck .wad is created and placed in the game diretory and the game starts it freezes on the start screen then crashes to the desktop. i am including my created deck so maybe you can figure out the bug problem that no one else runs into this bug.
I looked at your deck and I don't see any problems, I see it depends on kevlahnota's DLC so I also installed that for testing purposes.

I loaded up the game with your mod and it loaded fine. I looked through the deck in the built-in deck manager and saw no problems. I played a mirror match against it, no problems (kicked the AI's butt). Then I played against the game's Sliver deck and lost, but still no crash. The only thing I can think of is that you have something else that is causing problems.

Edit: Are you sure that you are using the correct patcher dll?

Re: [REL] Riiak's DotP 2014 Deck Builder v1.0.0.0

PostPosted: 02 Jul 2013, 16:44
by damienx45
yeah i am using the correct dll file do you think it could be that i am using the skidrow version of the game?

Re: [REL] Riiak's DotP 2014 Deck Builder v1.0.0.0

PostPosted: 02 Jul 2013, 16:52
by RiiakShiNal
damienx45 wrote:yeah i am using the correct dll file do you think it could be that i am using the skidrow version of the game?
I tested your mod on the Skidrow version (which is where I'm doing most of my testing, so I can leave my Steam version pristine for the time being).

Re: [REL] Riiak's DotP 2014 Deck Builder v1.0.0.0

PostPosted: 02 Jul 2013, 20:55
by damienx45
i found the problem it was sumomole's mod i guess it was causing the conflict with my game

Re: [REL] Riiak's DotP 2014 Deck Builder v1.0.0.0

PostPosted: 02 Jul 2013, 22:18
by jacque
Riiak, could you please advise me how to go about making all the decks I made unlocked after exporting it using the 2014 Deck Builder? At the moment I'm going through each and everyone of them one by one following this guide by Mushroom Cap:

viewtopic.php?f=62&t=10898

Thanks again! Great work... *as always =)*

Re: [REL] Riiak's DotP 2014 Deck Builder v1.0.0.0

PostPosted: 02 Jul 2013, 22:27
by RiiakShiNal
jacque wrote:Riiak, could you please advise me how to go about making all the decks I made unlocked after exporting it using the 2014 Deck Builder? At the moment I'm going through each and everyone of them one by one following this guide by Mushroom Cap:

viewtopic.php?f=62&t=10898

Thanks again! Great work... *as always =)*
Any deck made by the 2014 Deck Builder should already be unlocked (at least on the PC) with the exception of the Promo cards (because we don't have the Promo codes yet). The reason for this is the 2014 Deck Builder adds the always_available="true" attribute (if you haven't changed the availability in the Deck Information) and sets steam_id_1="213850" and steam_id_2="213850" to make the game believe you purchased the unlock and the foil for the deck.

So with the exception of entering the promo codes (or changing the type of promo unlocks to regular unlocks) you shouldn't have to do anything special to get decks made with the 2014 Deck Builder to be unlocked.

Since I don't know the default unlock and foil ids for Android and iPad I put some settings into the Settings.xml file:
Code: Select all
  <SteamDefaultUnlockId><![CDATA[213850]]></SteamDefaultUnlockId>
  <SteamDefaultFoilId><![CDATA[213850]]></SteamDefaultFoilId>
  <iOsDefaultUnlockId><![CDATA[D14_DECK_UNLOCK_1]]></iOsDefaultUnlockId>
  <iOsDefaultFoilId><![CDATA[D14_DECK_FOIL_1]]></iOsDefaultFoilId>
  <AndroidDefaultUnlockId><![CDATA[d14_deck_unlock_01]]></AndroidDefaultUnlockId>
  <AndroidDefaultFoilId><![CDATA[d14_deck_foil_01]]></AndroidDefaultFoilId>
Changing these settings will allow you to change what is put into the deck XMLs for the appropriate attributes when exported or saved. This allows those to be updated once we know the proper ids to make the decks unlocked or foiled by default for iPad and Android platforms.

Note: The Deck Builder does not currently build images appropriate for iPad. I also have no clue what images need to be like for Android so it probably doesn't make appropriate images for Android either. So images for those two platforms will have to be managed manually at least for now.

Re: [REL] Riiak's DotP 2014 Deck Builder v1.0.0.0

PostPosted: 02 Jul 2013, 22:43
by jacque
RiiakShiNal wrote:So with the exception of entering the promo codes (or changing the type of promo unlocks to regular unlocks) you shouldn't have to do anything special to get decks made with the 2014 Deck Builder to be unlocked.
Aaa now I get it... so what Mushroom did was for Promo Unlocks... That explains it... *dumb me*... I've always been building my decks using the main column and the promo unlocks >.<

Thanks again Riiak!!! Been great help =)

PS: I noticed the 2014 exporting speed is so much faster than 2013's... *Thumbs Up!*

Re: [REL] Riiak's DotP 2014 Deck Builder v1.0.0.0

PostPosted: 02 Jul 2013, 22:58
by RiiakShiNal
jacque wrote:Aaa now I get it... so what Mushroom did was for Promo Unlocks... That explains it... *dumb me*... I've always been building my decks using the main column and the promo unlocks >.<
In 2013 the preferred method of doing unlocks was using Promo Unlocks, however, in 2014 the preferred method is regular unlocks as we can put the AppId linking information in the deck itself (no more need for APPID_LINKING.TXT).

jacque wrote:PS: I noticed the 2014 exporting speed is so much faster than 2013's... *Thumbs Up!*
It's probably because it no longer needs to build Card Preview images (DotP 2014 doesn't use them). Other than that the export code underwent only minor changes.

Re: [REL] Riiak's DotP 2014 Deck Builder v1.0.0.0

PostPosted: 03 Jul 2013, 15:37
by drleg3nd
hey riiak I was using your builder but I consistently get an error msg and I am unable to build an image for deckbox (won't let me select build)
here are my error logs:
Code: Select all
The 'Row' start tag on line 97 position 5 does not match the end tag of 'Table'. Line 109, position 5.:
   at System.Xml.XmlTextReaderImpl.Throw(Exception e)
   at System.Xml.XmlTextReaderImpl.Throw(String res, String[] args)
   at System.Xml.XmlTextReaderImpl.ThrowTagMismatch(NodeData startTag)
   at System.Xml.XmlTextReaderImpl.ParseEndElement()
   at System.Xml.XmlTextReaderImpl.ParseElementContent()
   at System.Xml.XmlTextReaderImpl.Read()
   at System.Xml.XmlLoader.LoadNode(Boolean skipOverWhitespace)
   at System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc)
   at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace)
   at System.Xml.XmlDocument.Load(XmlReader reader)
   at System.Xml.XmlDocument.LoadXml(String xml)
   at RSN.DotP.WadBase.LoadIndividualStringTable(Dictionary`2 dicStrings, String strXml)
   at RSN.DotP.WadWrapper.LoadStringTable(FileStream fsInput)
Extra Information:
Unable to read string table: GLOSSARY.XML in DATA_DLC_BAL

7/3/2013 10:24:39 AM: Medium: DotP 2014 Deck Builder - Object reference not set to an instance of an object.:
   at RSN.DotP.WadWrapper.LoadImageSpecific(String strId, LoadImageType eType)
   at RSN.DotP.WadWrapper.LoadImage(String strId, LoadImageType eType)
   at RSN.DotP.GameDirectory.LoadImage(String strImage, LoadImageType eType)
   at RSN.DotP.AiPersonality.LoadFromNode(GameDirectory gdData, XmlNode xnNode)
   at RSN.DotP.AiPersonality..ctor(GameDirectory gdData, String strXml, String strFilename)
Extra Information:
Unable to load AI Personality: D62_GRINDING.XML

7/3/2013 10:24:39 AM: Medium: DotP 2014 Deck Builder - Object reference not set to an instance of an object.:
   at RSN.DotP.WadWrapper.LoadImageSpecific(String strId, LoadImageType eType)
   at RSN.DotP.WadWrapper.LoadImage(String strId, LoadImageType eType)
   at RSN.DotP.GameDirectory.LoadImage(String strImage, LoadImageType eType)
   at RSN.DotP.AiPersonality.LoadFromNode(GameDirectory gdData, XmlNode xnNode)
   at RSN.DotP.AiPersonality..ctor(GameDirectory gdData, String strXml, String strFilename)
Extra Information:
Unable to load AI Personality: D62_GRIXIS.XML

7/3/2013 10:24:39 AM: Medium: DotP 2014 Deck Builder - Object reference not set to an instance of an object.:
   at RSN.DotP.WadWrapper.LoadImageSpecific(String strId, LoadImageType eType)
   at RSN.DotP.WadWrapper.LoadImage(String strId, LoadImageType eType)
   at RSN.DotP.GameDirectory.LoadImage(String strImage, LoadImageType eType)
   at RSN.DotP.AiPersonality.LoadFromNode(GameDirectory gdData, XmlNode xnNode)
   at RSN.DotP.AiPersonality..ctor(GameDirectory gdData, String strXml, String strFilename)
Extra Information:
Unable to load AI Personality: D62_KULDOTHA.XML

7/3/2013 10:24:39 AM: Medium: DotP 2014 Deck Builder - Object reference not set to an instance of an object.:
   at RSN.DotP.WadWrapper.LoadImageSpecific(String strId, LoadImageType eType)
   at RSN.DotP.WadWrapper.LoadImage(String strId, LoadImageType eType)
   at RSN.DotP.GameDirectory.LoadImage(String strImage, LoadImageType eType)
   at RSN.DotP.AiPersonality.LoadFromNode(GameDirectory gdData, XmlNode xnNode)
   at RSN.DotP.AiPersonality..ctor(GameDirectory gdData, String strXml, String strFilename)
Extra Information:
Unable to load AI Personality: D62_OMNITELL.XML

7/3/2013 10:24:39 AM: Medium: DotP 2014 Deck Builder - Object reference not set to an instance of an object.:
   at RSN.DotP.WadWrapper.LoadImageSpecific(String strId, LoadImageType eType)
   at RSN.DotP.WadWrapper.LoadImage(String strId, LoadImageType eType)
   at RSN.DotP.GameDirectory.LoadImage(String strImage, LoadImageType eType)
   at RSN.DotP.AiPersonality.LoadFromNode(GameDirectory gdData, XmlNode xnNode)
   at RSN.DotP.AiPersonality..ctor(GameDirectory gdData, String strXml, String strFilename)
Extra Information:
Unable to load AI Personality: D62_REPLENISH.XML

7/3/2013 10:24:39 AM: Medium: DotP 2014 Deck Builder - Object reference not set to an instance of an object.:
   at RSN.DotP.WadWrapper.LoadImageSpecific(String strId, LoadImageType eType)
   at RSN.DotP.WadWrapper.LoadImage(String strId, LoadImageType eType)
   at RSN.DotP.GameDirectory.LoadImage(String strImage, LoadImageType eType)
   at RSN.DotP.AiPersonality.LoadFromNode(GameDirectory gdData, XmlNode xnNode)
   at RSN.DotP.AiPersonality..ctor(GameDirectory gdData, String strXml, String strFilename)
Extra Information:
Unable to load AI Personality: D62_TEST.XML

7/3/2013 10:24:39 AM: Critical: DotP 2014 Deck Builder - Object reference not set to an instance of an object.:
   at RSN.DotP.GameDirectory.LoadWads()
Extra Information:
Unhandled exception when trying to load personalities for wad:DATA_DECKS_D627

7/3/2013 10:24:40 AM: Low: Gibbed.Duels.FileFormats - One of the identified items was in an invalid format.:
   at Gibbed.Duels.FileFormats.TdxFile.Deserialize(Stream input)
   at RSN.DotP.TdxWrapper.LoadTdx(Stream strmInput)
   at RSN.DotP.WadWrapper.LoadImageSpecific(String strId, LoadImageType eType)
Extra Information:
Could not load: D14_TFM_NIVMIZZET_FULL.TDX in DATA_DLC_TFM_ART

Re: [REL] Riiak's DotP 2014 Deck Builder v1.0.1.0

PostPosted: 03 Jul 2013, 16:52
by RiiakShiNal
Thanks for reporting the problems.

The first error you have there:
Code: Select all
The 'Row' start tag on line 97 position 5 does not match the end tag of 'Table'. Line 109, position 5.:
...
Unable to read string table: GLOSSARY.XML in DATA_DLC_BAL
means that GLOSSARY.XML in mod DATA_DLC_BAL has malformed XML and it couldn't be loaded. This is a problem with that mod and there is nothing I can do about it.

The next set of errors:
Code: Select all
DotP 2014 Deck Builder - Object reference not set to an instance of an object.:
...
Unable to load AI Personality: D62_GRINDING.XML
Unable to load AI Personality: D62_GRIXIS.XML
Unable to load AI Personality: D62_KULDOTHA.XML
Unable to load AI Personality: D62_OMNITELL.XML
Unable to load AI Personality: D62_REPLENISH.XML
Unable to load AI Personality: D62_TEST.XML

DotP 2014 Deck Builder - Object reference not set to an instance of an object.:
   at RSN.DotP.GameDirectory.LoadWads()
Extra Information:
Unhandled exception when trying to load personalities for wad:DATA_DECKS_D627
All stem from sumomole's mod in that he defines several AI Personalities, but does not include those personality images in the wad, but has some images with the same name in a different directory (the deck images). This was triggering a bug in my code where the Deck Builder thought it could load an image for the Small Avatar Image, but then when it went to go find it, it couldn't and died. This bug has now been fixed in version 1.0.1.0.

The last error you have:
Code: Select all
Gibbed.Duels.FileFormats - One of the identified items was in an invalid format.:
...
Could not load: D14_TFM_NIVMIZZET_FULL.TDX in DATA_DLC_TFM_ART
Says that it could not load the image D14_TFM_NIVMIZZET_FULL.TDX in thefiremind's mod (DATA_DLC_TFM_ART). This could be because the image compressed with either Eglin's tool, or with the Paint.Net TDX plugin and the squish library in Gibbed Tools can't handle it. It just means that this image won't show up in the Deck Builder (a very minor problem).

Re: [REL] Riiak's DotP 2014 Deck Builder v1.0.1.0

PostPosted: 03 Jul 2013, 18:01
by thefiremind
RiiakShiNal wrote:This could be because the image compressed with either Eglin's tool, or with the Paint.Net TDX plugin
I used Eglin's tool indeed: since the 1024x1024 images need no transparency, I want them compressed at the maximum level. But I use Eglin's tool for card illustrations as well, and they give no problems, why is that?

Re: [REL] Riiak's DotP 2014 Deck Builder v1.0.1.0

PostPosted: 03 Jul 2013, 18:40
by RiiakShiNal
thefiremind wrote:I used Eglin's tool indeed: since the 1024x1024 images need no transparency, I want them compressed at the maximum level. But I use Eglin's tool for card illustrations as well, and they give no problems, why is that?
It seems Eglin's tool compresses using a different squish library, though Eglin's tool doesn't compress any more than my modified Gibbed Tools (can compress in DXT1, DXT3, and DXT5) though his tool does give a full set of Mipmaps, where the modified Gibbed Tools don't. It seems there is some issue with reversing the process with images compressed using Eglin's tool and the squish library used by Gibbed Tools, I don't know if it is related to the mipmaps or if there is an error in one of the libraries. Personally I prefer the modified Gibbed Tools because the files come out smaller (due to not having mipmaps) and the images can be reversed by anyone using Gibbed Tools (modified or not).

Edit: I guess I should also state that I tend to use the closest MoF (Multiple of Four) size rather than necessarily resizing card images to 512x376. For example I've successfully compressed images at 416x304, 712x1024, 512x512, 424x620, 512x376, and other sizes.