Page 4 of 5

Re: DotP Universal Generator

PostPosted: 07 Sep 2015, 23:33
by RiiakShiNal
It depends on what you use the prefixes for. If you are using the prefixes for Deck IDs then for ID blocks it's fine as long as you keep below the 32-bit limit. For Multiverse IDs (they are also limited to the signed 32-bit integer space) since you start off with a 6-digit number from gatherer the only 4 digits IDs that would be guaranteed to work would be from 2146 through 1000. This is why I don't use my prefix for Multiverse IDs (I use the actual IDs). For images I use the RSN prefix for which there are no problems (Images take strings not numbers).

Re: DotP Universal Generator

PostPosted: 07 Sep 2015, 23:40
by Xander9009
Alright. Thanks for the clarification (or reminder... You've mentioned before, I just didn't really consider that it would be that close to the limit). Unfortunate, but oh well. I did at least realize art IDs were strings since the CW uses CW_ as the art prefix.

In that case, I think it would be nice if the generator did the same thing. Allow the prefix to be 4 digits, but don't add it to the Multiverse ID. Just add it to the filename and art ID.

Re: DotP Universal Generator

PostPosted: 08 Sep 2015, 08:54
by thefiremind
My choice of limiting to 3 digits was exactly for that reason: I didn't want people to come here saying "something doesn't work" then after a long time troubleshooting we discover they used a prefix that was too high. Using different prefixes (including none) for different things would be a useless complication imho. Do we really have more than 900 (100 to 999) modders working on this?

Anyway I don't think I would be adding the feature in a short time even if I decided to add it: the different prefixes would need to be passed to the plugins so there would be more to change than what it seems.

If at least we managed to make Magic Duels moddable, that would be a good incentive to keep this tool up-to-date...

Re: DotP Universal Generator

PostPosted: 08 Sep 2015, 11:14
by Xander9009
Alright. It's not that big of a deal (especially since I don't actually use the prefix, since I always code for the CW). Although, out of curiosity, what do you mean it would need to pass different prefixes to the plugins? The plugins could use the prefix as-is, just without adding it to the MultiverseID tag, couldn't they? Either way, I tried changing it myself (before you responded), but I didn't do anything about passing multiple prefixes. I just upped the maximum to 9999, rather 999, and set the output plugin to set the MultiverseID tag to the original MultiverseID property discovered by the input plugin rather than using the PrefixID. Those two changes alone made it do what I expected, but you might be thinking of something I'm overlooking. (Wouldn't be the first time.)

EDIT:

Taking advantage of the fact that without the MultiverseID tag being affected by the prefix, only strings are, I wanted to see how difficult it would be to make it a text box rather than a number box, but since there's already a text box to go by (the search field), it was easier than expected. I just wanted to see if it could successfully add "CW_" into the FILENAME and ARTID fields (technically the CW uses just "CW" for the ARTID field, but it was just a test).

Re: DotP Universal Generator

PostPosted: 09 Feb 2016, 20:45
by Xander9009
Version 1.8 is up. (First page, link in the first post.)

Added missing abilities (some may have been in previous versions?).
Awaken
Cohort
Devoid
Ingest
Rally
Surge
Support

Eldrazi Scion tokens.

In order to match the rest of the CW, the ArtID is no longer prefixed and is instead set to the CARDNAME value (only if the plugin is set to create cards for the CW).

Re: DotP Universal Generator

PostPosted: 17 Apr 2016, 01:03
by Xander9009
Version 1.9 is up. (Link in OP.)

Added:
Investigate
Skulk
Tap target (permanent, artifact, creature, enchantment, land).
This creature gets +-X/+-X until end of turn.

Fixed:
Target creature gets +-X/+-X until end end of turn.
Target creature gets +-X/+-X and gains ... until end of turn.
Add one mana of any color to your mana pool.

Re: DotP Universal Generator

PostPosted: 22 Sep 2016, 15:43
by Xander9009
V1.10 - Link in OP.

Added:
Emerge
Crew
Fabricate
"Whenever NAME crews a vehicle,"

Fixed:
Variables directly named after functions (so, "EffectController" -> "oController" of "oEffectController").
Fixed Triggered ability guessing (which I'd apparently messed up at some point)
Token creation. Namely, fixed first strike (was converting to "FS" instead of "F"), double strike ("DS" -> "D"), and blue ("B" -> "U") tokens.

Re: DotP Universal Generator

PostPosted: 24 Sep 2016, 03:56
by Xander9009
V1.11 - Link in OP.

Changed Crew to use functions instead of extremely long code.
Added support for "Create" keyword based token creation.

Re: DotP Universal Generator

PostPosted: 23 Jun 2017, 20:35
by Xander9009
v1.12 - Link in OP

Added Embalm.
Added Eternalize.
Added Afflict.
Corrected issue where needing to register multiple types of tokens would skip all but the first.

Re: DotP Universal Generator

PostPosted: 25 Jun 2017, 04:01
by Xander9009
v1.13 - Link in OP

Added loyalty support, including initial value and cost.
Removed MID from FILENAME.

Added a new file to the post for LocalInputX99. This file has a variable near the top that points to a folder on your computer. If you provide your input is the same as a file in that folder (do not include extension, and the file must be .txt), then the file will be used for the creation of a DotP-compatible card. The purpose of this input file is to allow easier creation of spoiled cards. I've created a system which will place these needed txt files into a Google Drive folder within an hour of them being spoiled.

However, this file could be used for any card, not just the spoiled ones. To do so, simply make sure it follows this format:
| Open
Code: Select all
Name: Proven Combatant
Set: HOU
Cost: 3UB
Type: Basic Creature - Human Warrior
PT: 1/1
Loyalty: 8
Rules: Eternalize {4}{U}{U} |({4}{U}{U}, Exile this card from your graveyard: Create a token that's a copy of it, except it's a 4/4 black Zombie Human Warrior with no mana cost. Eternalize only as a sorcery.) |\n{3}, {T}: Investigate.
Flavor: "It's not wise to keep glory waiting."
Artist: Clint Cearly
Rarity: Basic Land
Obviously, this card makes no sense, because I've added several fields to ensure that most of the possible questions are covered.

Name should be the name you want to be displayed.
Set should be a three letter, capital code.
Cost is any mana string (phyrexian mana may or may not be supported...)
Rules is the complete list of all abilities. Separate multiple abilities with "\n". Reminder text (as in the example) will be removed.
The example flavortext has quotes, but that's just the way Proven Combatant's flavortext is. They're not needed.
Rarity is the English normal rarity. "Common", "Mythic Rare", "Basic Land", etc.

Let me know if there are any questions.

EDIT: Updated input file to V1.1.
Fixed loyalty ability being added when loyalty is blank.
Allowed reminder text to be removed when trailing italicizing pipe is missing.
Added check to reduce double spaces to single spaces.

Re: DotP Universal Generator

PostPosted: 26 Jun 2017, 19:30
by Xander9009
LocalInput V1.12

Fixed issue with typeline not properly registering "-" the same as "—".
Fixed spaces on the end of names not being removed.

EDIT: I'm not sure if you're actually following this thread, TFM, but if you are, sorry for the spamming. I just know for sure the plugin is actually being used, so I'm uploading updates as I get them working rather than waiting for larger accumulations like I originally was doing.

Re: DotP Universal Generator

PostPosted: 15 May 2019, 09:46
by LexilconCondran
[quote="thefiremind"]Thefiremind's DotP Universal Generator


[color=#FF0000]CLARIFICATION FOR NEW USERS: This tool won't give you the full working card, unless you are searching for a "vanilla" card (no abilities). The code that makes the abilities work still needs to be added. That's what modders do...



So in order to add abilities, i must edit the XML file using the knowledge i learn from /copy and past/ from other cards using riaaks deck builder, and viewing a cards info?


As for teaching you how to make new cards, it's basically got 5 steps.
1: Create the card's framework. Each card has a few things in common, but certain types of cards have a few things that others don't. A card is just an XML file, and making the framework for a custom card would be done by using [b]thefiremind's Universal Card Generator
with my LocalInput plugin. The idea here is you work up a basic txt file containing card's values and then the generator will make the framework (and even code the abilities if they're simple enough, or often at least parts of the abilities).

2: Setting up the art. The art files need to be resized/cropped (paint, gimp, photoshop, doesn't matter) to 512x376 (tokens with abilities, tokens without abilities, and colorless non-artifact creatures are all different). Once it's the right size, drop it on the universal gibbed converter and you'll get a tdx file to put in the illustrations folder.

3: Code the card: typically, the way a newer modder will code will be to use the deck builder to look up similar abilities and copy those abilities or parts of them to the new card, and then alter them until they're correct. This is the hardest part to learn, since it's essentially learning an entire scripting language.

4: Set up the support files: this includes the text permanent tags (which are easy, but not very intuitive), the specs file if needed (try to avoid this with custom cards, meaning try to avoid custom creature types), and maybe function files if needed (but typically this won't be needed).

5: Test/bugfix. It'll rarely work exactly right at first, and you'll have to play the card in-game to see how it behaves and misbehaves. One of the best resources we have for this step is the card "Favor of the Gods". It starts with an underscore, so if you're using a version of the Deck Builder with the filter setting "Underscores", make sure to check it. It's a free artifact. In the Deck Builder, it won't look like it has any useful abilities, but that's because they're all granted in-game. Only add one to the deck. The card will fetch itself automatically. It's not perfect, but it can let you control a lot of aspect of a duel to set up the board the way you need to test most cards' effects.

Re: DotP Universal Generator

PostPosted: 15 May 2019, 16:32
by Xander9009
LexilconCondran wrote:So in order to add abilities, i must edit the XML file using the knowledge i learn from /copy and past/ from other cards using riaaks deck builder, and viewing a cards info?
Yeah, that's why I mentioned it'll give you the framework. It's the skeleton of the card. You still need to put in the muscles to make it work right.

It looks like you had more to say, but it might have gotten cut off?

Re: DotP Universal Generator

PostPosted: 23 Oct 2019, 03:19
by Xander9009
Am I the only one this tool stopped working for? I fixed it by adding this line to line 41 of HttpBrowser.cs, but I don't know if it's actually necessary or if something's just wrong with my system/setup.
Code: Select all
System.Net.ServicePointManager.SecurityProtocol |= System.Net.SecurityProtocolType.Tls12;
Unfortunately, I lost my project folder, so it no longer starts the browsing for the batch processing in the tool's folder. There's my first world problem for the day... lol

Re: DotP Universal Generator

PostPosted: 28 Apr 2020, 20:11
by JustJinxed
Ya, this thing doesn't work anymore, and most the links are dead.. I even tried the version from the Google Drive, Community Tools... That one also errors out.

Looking at the activity on this forum over the last couple of weeks, and knowing Rick passed, it would seem this entire project needs a revitalization from the ground up. If anything I'd be willing to pitch just for the sake of his memory.

Hopefully more to come, as I work out the finer kinks of getting these tools updated and recompiled, and learn how to code cards / what wad file contents entail.