TL;DR Give me some (stupid or not) stat changing mechanic ideas, and I will implement them for you (using MSG). Skill ideas are valid. Feel free to simply ask questions too.
Part 1: Modular Stat Getters
FE8U ONLY. Still WIP (meaning main thread is not updated yet). No README yet. Currently aimed at somewhat experienced users (read: people who know their way around buildfiles and EA macros).
Links:
- Main Thread (shared with my other wizardry shenanigans)
- Source Github Repo Thing
- Download (secretly still Github)
There used to be a doc. But It is outdated. Will update it when am not lazy.
What MSG allows you to do now: define Stat Getters (HP (Max & Current), Power, Skill, Speed, Def, Res, Luck, Mov & Con (thanks Teq), Aid) and computations during Battle Calculations (Attack, Defense, Hit, Avoid, Crit, Dodge and Lethality chance; through integration with some Battle Calc Loop).
What I want MSG to also do in the future: Modify Growth Rates (Apparenly Teq already has done quite a bit of work towards that again, so thanks again), maybe more.
MSG comes with integrated support for Circlesā Skill System (but /!\ an older version of MSG comes with the Skill System, so please be careful until integration is completed both ways).
MSG also comes with a module similar to Vennoās Passive Stat Boost hack (allows items to bring stat boosts even when not equipped).
Part 2: Example/Feature Request Thread Thing
Ok so hereās the part where you come into play! Give me some stupid (or, even better, non stupid) ideas about mechanics that change one unitās stats in some way, and from your idea will I come up with a way to implement it using only MSG macros.
If you just want to ask a question about this hack you can too, Iād be happy to answer.
Example:
For each red unit (1) in 2-5 range of each allied unit in 1-2 range of a unit (2), increase (2)'s luck by (1)'s level.
EA Code
pLckModifiers:
POIN /* whatever boring modifiers */ prAddLevelOfEachRedUnitInRange2To5OfEachAllyInRange1To2
WORD 0
prAddLevelOfEachRedUnitInRange2To5OfEachAllyInRange1To2:
rForEachUnitInRange(0, 2) // range 0-2, 0 excluded
rIfUnitsAreAllied
rForEachUnitInRange(1, 5) // range 1-5, 1 excluded
rIfUnitHasAllegience(UA_RED)
rAdd(rUByteAt(UNIT_LEVEL))
(Ok I know this is quite the complicated example, I just wanted to show off what MSG could do ok?)
Another Example:
Halve Strength & Defense when poisoned
EA Code
pStrModifiers:
POIN /* whatevs */ prHalveIfPoisoned
WORD 0
pDefModifers:
POIN /* whatevs */ prHalveIfPoisoned
WORD 0
prHalveIfPoisoned:
rIfUnitHasStatus(0x01) // 0x01 is poison status
rHalved
By opening this, I hope two things: for you to understand a bit more how to make dem silly stat modifiers (through the magic of examples), and for me to get ideas and opinions about what I could add in future releases of MSG.
Part 3: (Skill Ideas Work)
As stated before, this integrates well with circlesā skill system. So Skill Ideas as Example Requests are valid.
(I am currently working on integrating new!MSG into Circlesā Skill System. Which means that maybe probably new!MSG will get included in future releases of the Skill System given I donate enough (I mean old!MSG is already in so ĀÆ\_(ć)_/ĀÆ). Which means that to anyone interested into using it (the skill system), this (new!MSG) will probably become relevant)