So I’ve been thinking about how one might go about implementing the mid-map unit transformation abilities found in FE3 into the GBA Fire Emblem titles, and here’s a really basic run-down of how I’d go about it, not in any sort of coding notation, that I whipped up in about 45 minutes. Accommodations would need to be made in other parts of the code where relevant, as well, which will need ironing out, but I think the concept here is solid, unless the four “AI to Use” bytes actually are used by player units, in which case it may be a bit harder to find someplace to store some of these numbers.
FE3-STYLE TRANSFORMATION ARCHITECTURE
- For Imitate, check classes of potential Imitate targets. Units in any dragon classes, including Manakete, should be excluded from target selection.
- While a unit is transformed, the “Revert” command is available, just above “Wait”. Selecting Revert returns a unit to their untransformed state.
- Revert routine should be automatically run when a map is cleared to restore Freelancer’s stats to their base values.
- Stats altered by transformation are shown using the “+/-X” display type used for bonuses from Boots, Body Rings, and equipped weapons, or penalties from Rescuing other units. This is to prevent transformed status from interfering with the unit’s level up stat gains.
- Luck is not affected by transformation.
- Stat changes for Imitate are equal to Imitate target’s base stat value minus Freelancer’s base stat value, calculated individually for each stat. Class bases are factored in in both cases.
- Stat changes for dragonstone transformations are equal to dragon form class’s base stat value minus transforming Manakete’s base stat value, calculated individually for each stat.
- In all cases, transform bonuses stack with bonuses from Pure Water, Barrier, and equipped weapons.
The four AI address slots will be repurposed for player units to store…
- Class to draw weapon availability and all sprite pointers from until the unit reverts back to their base form.
- Weapon ID to fight with while transformed. This weapon data is also used to determine battle stats to display, including in the battle forecast and at the bottom of the Items page of the unit’s status screen. If the value is 0, unit battles using their currently-equipped weapon as usual.
- Unit ID of transform target. The portrait and battle palette data associated with this unit ID will supersede the Freelancer’s on their status screen and in battle, respectively. If the value is 0, these functions are not applied.
- Transformation duration. Decremented by 1 at the start of each player phase. When transformation duration reaches 0, the unit automatically reverts at the beginning of that player phase without consuming an action.
If anybody has any feedback or additional info or anything it’d be much appreciated! I’d love to see this functionality become a thing in GBAFE, and I’m hoping this is at least a solid blueprint-in-progress for it.