Has this idea been tinkered with before? I was thinking of a cool concept for a couple of new units, that have are average across the board. But If you give them a speed ‘Afa’s Drops’ their growth pulls toward speed. Likewise if you give them a Defense ‘afa’s drops’ it goes towards that. etc.
That was my idea for a couple of new units in bloodlines. But I have no ASM knowledge nor do i know if someone tried it before. If it’s a sinch, would anyone want to tinker with the idea?
I can’t imagine it would be too difficult. Maybe copying and pasting the current afa’s routine and then editing offsets. I considered this myself actually.
It don’t work that way for Afa’s Drops I’m afraid! They work by setting a bit in the character’s unit data (specifically the state bitfield at 0xC); during level-up, the game checks for that bit being set, and if so, adds 5% to every growth. You can only set that bit once.
Making held items or similar to modify growths is fine, but I don’t know if there are any free status bits to use for multiple Afa’s Drops.
Would it be possible to modify the routine to immediately add to the character’s growths, rather than setting a bit and checking upon level-up? Or would that unnecessarily complicate things?
Character growths are stored in the ROM - they aren’t defined in unit data explicitly, so directly modifying a unit’s growths wouldn’t really work sadly.
Well then, would it be possible to expand that bit so it can take values other than 0 or 1? Say, 0 = nothing, 1 = hp, 2 = str, 3 = hp+str, etc. Or is there not enough room for that?
Another clue:
If the number of ‘Afa’s Drops’ you can get in the game is limited, no need to modify the character status. Find free space(4 bytes*(the number of ‘Afa’s Drops’ in the game)) in RAM to store the character ID for each kind of ‘Afa’s Drops’, and check the character ID with IDs there during LVUP to find out whether he has used any kind of ‘Afa’s Drops’, if so, which kind, if not, continue. The most important thing is to backup and reload the ‘Afa’s Drops’ table when S/L.