Eep, I'm a couple pages behind. So, here goes...
hmsong, you and I were thinking alike regarding Lunar Magic and treasure chance. It's not technically a guaranteed drop, it's (((Luna Level / Target Count) + 2) * 8), so 16% at level 0 up to 80% at level 8. It's permanent as well once the effect has occurred. It's actually easy to change a monster's appearance and drop chance, but hard to set it up so it can change back. There's a problem with most other suggestions for Lunar Magic though: space in the ROM for code. The optimized original version of Lunar Magic takes up 0xC0 bytes, but the Celestial Cascade version takes up 0xCF bytes currently, and I need to figure out how to squish it down to the same 0xC0 bytes. Adding any more functionality (stat debuffs, etc.) is almost definitely going to make compacting it even more difficult.
Here's its current behavior:
1) 25% chance to turn an enemy into a mimic, hide their weapon and boost chest drop chance; if not a basic enemy or already a mimic goto 2)
2) 37.5% chance for a status effect "cascade" which means:
- if immune to all of the following status effects goto 3)
- if HP < 50%, try poison
- else try petrify
- else try engulf
- else try poison (if immune to petrify and engulf)
- if not petrify or engulf, apply an immobilizing status effect:
-- try balloon
-- try sleep
-- try confuse and mire
- apply status effect
- if no damaging status effect applied (petrify, engulf, poison), goto 3)
3) 37.5% chance of Luna element direct damage at 65 power
So fundamentally it's a 4 mana cost 65 power Luna element direct damage spell, with a chance at instead doing damage via status effects or turning them into a mimic. Against most (all?) bosses, it likely just functions as a 4 mana 65 power Luna nuke. I wasn't worried about the mimic transformation being permanent since honestly, you're going to defeat it before a timer would run out under most circumstances, having a duration just isn't a big deal; it's not rare for the damaging effects to kill the target before you get lucky on the 25% chance of a transformation, and multi-target casting to keep the damage low doesn't affect the status effect damage and reduces the chest drop probability.
The Transform experiments are neat. Tell me which set you want me to include as an option in Turbo and I'll get that set up. I intend to do the same with your spell rebalancing too, but that has a lot of compatibility fixups to write that I don't want to commit to until I'm closer to taking a break from spell changes.
So for Dryad / Luna weakness, I tracked the calculated damage as it went through the game's spell power calculations when casting a spell. I went to the Moon Palace entrance and cast burst on a Marmablue; the result was that yes, Dryad weakness is working, but I suspect I know what problem you're seeing. 100 power is really high so the spell was doing WAY over the damage cap: after applying the weakness multiplier, the number was at 3884 with a level 99 sprite casting single target Burst on a Marmablue. That number gets divided by 2 then capped at 999, then the enemy's magic defense is subtracted from it, resulting in damage numbers like 795. Bumping any other spell to 100 power still generally means it does damage so far over the cap that it winds up capping to 999 in the middle of the spell damage formula.
As for the Saber damage bonus, it works like this:
When a Saber spell is cast, (Saber spell level / target count) is saved in the target's data (in a byte shared with Moon Energy uses). When melee damage is dealt, after charge level and mana magic multipliers have been applied, if saved Saber level isn't 0, base damage / (10 - saved Saber level) is added to damage, which should mean +50% damage from a level 8 saber; attack up and attack down are each 25% at the same stage in the formula (down takes precedence and blocks up, if you somehow had both on at the same time). After that are quite a few more steps in the damage formula.
I intend to replace both enemy type melee affinity and elemental melee damage features that are currently in Turbo with ones more similar in logic with Attack Up / Down, with the end result being hopefully more controllable.
I know about the Lofty Mountains background. Not sure how to fix it. They wanted a distant view of the ridgeline with some form of parallax scrolling but where you enter the area affect the starting offset of the background's scrolling in a way that messes up what you end up seeing.
Yes, Herbal Boost Revivifier should be doing Luna damage:
' element fixups (after exchanging data)
@OFF %Spell.Data.Moon_Energy%Element%
RAW Spell.Element.Luna
@OFF %Spell.Data.Revivifier%Element%
RAW Spell.Element.Dryad
Remember that Revivifier is in the Moon_Energy slot, and that little bit of code is making sure Moon_Energy is Luna. However, Revivifier's damage should be ignoring strengths / weaknesses and always treating the target as weak (the implication being that ghost / undead are weak to Revivifier regardless of element) so what element it's set to doesn't actually end up mattering.
zoolgremlin, it feels like these are going to be nitpicks but I'm not intending to pick on you, just seems to be how this post worked out; genuinely just trying to be informative.
I added the new ZPS Patcher debug log with you in mind; if you have trouble enabling the log let me know and I can reiterate the change to the ZPS file required. Syntax / parsing errors will show up near the bottom of the log among the following lines:
MAKE: SetDefininitions
MAKE: Compile
MAKE: Assemble
| MAKE: Success !
Regarding modern game space usage, for games with voice acting, it's not unusual for audio to take up more space than textures; looking back even at a game from 1997 this was true if you chose its high quality sound option during install. In general though, textures dominate space usage otherwise. I can only think of some oddballs in the era before bone animation systems for 3D were standard where animations took up a large amount of space as model complexity increased (each frame of the animation had vertex positioning data for each vertex of the model, so a high polygon count model had animations many times the size of the model they were animating).
I like the Luna Revivifier name suggestion, but I want to avoid name changes when possible, as Relocalized compatibility makes them a pain in the butt. -_-
This is also why Celestial Cascade is just the feature name; Lunar Magic's name (or Lunacy with Relocalized) isn't changed in-game. Regarding Turn Undead, I don't feel the spell name needs a change in that case, as fundamentally it's still a revive spell; it just so happens you can cast it on enemies now and video game convention is if you can cast healing magic on undead, it hurts them.
And regarding notepad et al. wwwwhhhhooooaaaa hold your horses. Notepad isn't a word processor, and is barely a text editor. It's a demonstration program for the Edit control that works acceptably on small text files. Older versions (Win9x era) simply couldn't open text files bigger than... I think ~64KB? because the Edit control derived from 16-bit Windows code. Over time it's had minor features tacked on (both the Edit control and Notepad), but it's too limited for major work. WordPad is meant to be a dumpy minimal word processor, and that's why it's not suitable as a text editor (formatting, etc. is beyond what's expected in a text file, which by definition should only contain bytes that represent text). To make working on such a large text file as Turbo's ZPS file reasonable, I'd suggest getting a purpose-built text editor. I use an ancient version of Notepad++ (no relation to Microsoft's Notepad), but there are hundreds of text editors out there, and probably as many as a dozen that are good. For Turbo's ZPS they just need to support UTF-8 text files with byte order mark.
Mr X, it would actually be hard to make Change Form both transform an enemy into a Mimic AND change their chest drop chance; all Change Form does is set the Transformed status effect on the target, and that's it (it relies on the status effect system to do the transformation). Lunar Magic has tons of code to handle its random effect selection, messages and the effects themselves, so naturally lent itself to be modified into a different custom effect. For Lunar Magic I went (basically) fully offensive since Luna lacked a proper attack spell, and was trying to make something you could spam offensively like Earth Slide, Freeze, etc. but still maintain the whimsy the developers seem to have intended for Luna. I tried to make the status effect part of it damage focused but will need some playtesting to know if it's effective enough (or too effective).
kethinov, d'oh! Wasn't expecting your Lunar Magic patch. I think the Firenado result will ultimately be the best end result of these conflicts of ideas. The vanilla sprite Salamando spell line-up is terrible, so getting some diversity there, while sticking to the damage-focused vanilla theme seems perfect.
I don't even want to know what it would take to have a spell have multiple animations depending on target type... I think you'd need an entire second spell that you reset currently cast spell values to then restart the spell casting sequence.
Regarding the possible Transform enemy list, having a few non-vanilla options to pick from seems like a good way to handle it, so will likely have your "all cloners" list and whatever curated list hmsong wants to go with.
Specifically transforming an enemy and changing its drop chance turned out to be pleasantly simple: (where X has actor offset) change $E180,X to set new appearance, $E1E3,X to set weapon (looking at my code, I don't think I set it how I meant to, whoops), $E1FA,X set 0x01 to indicate actor sprite needs changing and 0x04 to indicate weapon needs changing (I think regarding 0x04, didn't double-check that one), and $E1CE,X for chest drop chance. So it's a matter of setting some data, and then setting some flags to tell the game to update based on some of that data changing.
When figuring that out it became apparent that when you frosty an enemy it actually transforms them into a snowman NPC (0x83 if memory serves), which overrides their AI. Don't actually know how the other disabling status effects (petrify, balloon, engulf) disable their actions.