Update to v0.50
-------------------- Added compatibility with many of Memoria's features when it is installed:
-- You can create new spells, supporting abilities, commands, playable characters, sword magic sets, (key) items, (synthesis) shops, with custom IDs. Many limitations are also removed, like the number of abilities taught by items, the recipe ingredient count for synthesised items, etc...
-- Many numerical values or IDs are not capped anymore. This doesn't apply to the datas for enemies as they still use the native binary format, even when modding with Memoria. To bypass these limits, you need to manually use Memoria's
BattlePatch.txt feature.
-- You can attach weapon / armor / usable effects to any item, so weapons and jewels can increase defensive stats and exotic items can have multiple usages.
-- HW provides an interface to multiple recent Memoria features (boosted supporting abilities, custom textures for weapons...).
-- When adding custom playable characters, you can setup various datas that are required for them to be full-fledged characters. That includes the set of battle animations that they use. However, this isn't magic: you still need to create animations for them as they will have a limited set of animations available from the base game anyway. On top of that, Memoria doesn't like it if you use the same battle animation for two different logical animations (eg. if you use the same animation for "stand" and "stand weak"). The solution for now is to duplicate these animations (using eg. the Unity Assets Viewer) and just give another name to the duplicate. Eventually, Memoria will do that automatically I guess. Also, you'll most likely need to use Memoria's
Model Viewer to see at least the skeleton and know which bone ID corresponds to which part of the model.
-- The CSV generated entries are now compared with Memoria's default database and only the new entries and the modified entries are kept. For example, if you only change Thunder Slash's effect, the corresponding CSV will only contain Thunder Slash's entry. This improves mod compatibility and can also help for writing down a description of your mod (keeping track of what you've modified more easily). The same goes for the .mes files (which contain entry names and descriptions).
-- Added a feature for completing the scripting system with custom functions. That's not really something you can use for now but it will be used in the future when Memoria accept new functions to be used in scripts (like, for example, a function "SetCharacterLevel" or "GetTetraMasterRank" to be used in cutscenes). It will allow me to implement support for these functions without having to update the tool each time.
- The list of equipments that each character can equip can now be modified both in the "Inventory -> Items" panel and in the "Party -> Stats" panel. This makes it easier depending on whether you want to think of equipment availability as a per character or per item feature. The equipment availability of custom characters may only be changed in the "Party -> Stats" panel.
- Fixed a couple of errors when de-compiling scripts (AI scripts, field and world map scripts): in some situations, a "break" keyword was added outside of any breakable block. It made it impossible to recompile directly the concerned functions. Sometimes, that "break" was only an extra line that should have just been removed, but sometimes it was a symptom of a more problematic error in the de-compilation of switch(ex) blocks. Now, a commented "// JMP(0)" line is written as placeholders for these exotic situations. Example of functions that were concerned are:
-- "Blue_Narciss_Loop" in World Map scripts, and similar functions for the other transport vehicles,
-- A couple of functions in Scarlet Hair's script (also in a fight against Zorn & Thorn if I recall correctly),
-- A couple of model "Init" functions in fields that just had an extra "break" line where it shouldn't.
- Reworked the way that argument expressions (and "
set" expressions) are parsed: they now take operation priority into account so you less need to add parentheses everywhere to force the priority. For example, the expression "
set x = 3 * 2 + 5" now parses as "
set x = ((3 * 2) + 5)" instead of "
set x = (3 * (2 + 5))".
- Fixed a bad practice in my C++ coding that lead the executable's size (and the compilation time!) to be much bigger than it should have (approx. x4).
- Improved a bit (or at least tried) the interface for a couple of panels. The IDs of entries are shown directly when selecting them, which makes things easier in specific situations in which a number corresponds to an ID (eg. for the effect of the Blue Magic "Angel's Snack" in which the spell's power corresponds to the ID of the item used).
- Added a bit of readability for the World Map functions that trigger on specific areas: the region concerned is now shown on the minimap. Also, the keyword "forward" is now used in these scripts instead of having an empty function. It means "use the same code as the one in the next function" and it can only be used if it's the only line of the function.
- Fixed batch script importing not working correctly depending on the Unicode encoding of the .txt.
- Various small bug and typo fixes.
For the first time ever, I could successfully batch export all the field scripts of the game and batch import (and thus compile) them back with no problem. I did that with multiple steps because it gets very slow and very long if you batch-import just one huge file containing all the scripts of the game, but it worked flawlessly. Until now, there was always a couple of rare functions that had a de-compilation problem and required manual fixes.
On the downside, I do not guarantee the Randomizer embedded tool to work correctly if you have more spells than the base 192 spell slots or things like that.
Most of "Creating new spell / command / etc" features are accessible only with a right-click: don't hesitate to try right-clicking on lists to see if you can add or remove entries.
When adding new supporting abilities, you need to manually create an effect for them in
AbilityFeatures.txt: that part cannot be done inside Hades Workshop.
EDIT: Updated with a hotfix to remove the error message when "ScriptAPI.txt" doesn't exist.