Users browsing this thread: 1 Guest(s)
Let's discuss Iris Havengard

#11
Posts: 377
Threads: 34
Thanks Received: 10
Thanks Given: 7
Joined: Dec 2018
Reputation: 18
Status
Moog
Okay, what's the best way to go about coding something like that?

There's a line in the SwdTech command (at C2/185B) that overrides its normal function if the Bushido index is 2 (the Retort condition).  I think we can build on that concept.  Basically, we use the index of each menu option to branch to alternate code that changes the attack element, queues an attack, then runs a RNG check, and then finally sets a spell and queues a second cast from it (if the RNG result falls at or below the roll).
By forking based on index, we have the option to set different probabilities for each element (making stronger spell calls like Doom or Pearl less likely), but the command will take up more free space.

Using that approach wouldn't override weapon spell triggers (since the first attack would always be handled by the Fight command), setting up the possibility of Iris casting two spells in a row, one from her weapon and another from her MBlade.  That's not necessarily a problem (Relm casts spell after spell after spell while fingerpainting in my other hack), but it's worth noting.

FYI, this approach would build off Catone's work, meaning each menu option would list the spell Iris might cast rather than "Flametongue" or the like.

...
One more question... since I work in direct HEX instead of ASM, any code I put together for this won't be floating code (that is, it's not going to be easy to move it about).  For that reason I need to know... is the Iris Edition to be built off a vanilla experience, off the C.V. Reynolds Bugfix compilation, off PowerPanda's 3 Scenarios, or some other founding hack?
  Find
Quote  

#12
Posts: 826
Threads: 11
Thanks Received: 22
Thanks Given: 13
Joined: Nov 2011
Reputation: 16
Status
Double
(06-11-2020, 05:18 PM)PowerPanda Wrote: Anyway, Lockirby2, let's run with the idea of M.Sword. What if it checked Iris's level (X), doubled it, and used that as a probability out of 255 for casting a spell of that element [2x/255]. Examples (pulled randomly from memory):
Fire = Flame Skean
Bolt = Bolt Edge
Ice = Blizzard
Water = Water Edge
Wind = Wind Slash
Earth = Surge
Poison = ???
Holy = ???

So if Iris were at level 30, and she chose Fire, she would do a fire attack, and then have a 2(30)/255 (24%) chance of also casting Fire Skean. At level 60, she would have a 47% chance of casting the spell. Too complicated?

With spells similar in power to Fire Skean, Bolt Edge, and Water Edge, I think this works fairly well because she'll get good damage from the spell in the early-game and it will hopefully transition to good damage from the elemental attack in the late-game (she'd pretty much be married to Edgar with his Debilitator if she wants to use the skill against the statues or the final boss though).  Still doesn't beat Ultima spam in most situations, but pretty much nothing else does either, so maybe that isn't a fair expectation.

I'd say just to make the chance of proccing a flat 50% assuming the spells that you listed above.  It has to be able to compete with simply casting Fira/Blizzara/Thundara from the back row, and it doesn't do that IMO unless it hits significantly harder on average (2x as hard with a good setup like using a Genji Glove for two proc chances is ideal IMO).  If she uses it from the back, her damage will presumably be cut in half like it is for weapon procs, and this makes it even more pointless.  A 10-15% chance of casting something in the WoB doesn't cut it.  Tying the proc chance to level makes the spell procs less useful in the early-game, which is exactly where this skill needs the boost the most, so I think it's not an improvement.

I also think that we would need to keep the ATB full after setting up the M.Sword (similarly to Morph) for it to be usable in random encounters (or even most boss fights given how short they tend to be).

Personally, I could understand building this off of vanilla or the bugfix compilation (I'd probably prefer the bugfix version, but I don't really care).  Adding Iris on top of Divergent Paths feels kinds weird IMO.


Confused Moogles FTW
Quote  

#13
Posts: 272
Threads: 2
Thanks Received: 2
Thanks Given: 0
Joined: Apr 2013
Reputation: 3
Status
Prowess
Assuming spells of power 60-100, one way to increase the power in a vacuum would be to perhaps exploit the effect of MP-fueled critical hits, which will cause spells that do not ignore defense to hit for twice the damage, so long as the wielder still has MP to critically hit with. To facilitate this, you could even start her off with a Rune Edge as her initial weapon. Depending on the scope of the project, as far as other changes being made to make it so that Iris is not being placed into the game in a vacuum, other such pointy-stick class weapons such as the Crystal or the Falchion could also be made to use MP to critically strike, in an attempt to keep the physical portion of her damage relevant throughout the game(especially considering that the Rune Edge in vanilla has a pretty poor Battle Power stat).

As an aside, Blizzard sucks. Storm, being effectively identical to the elemental skeans in all areas except element(they all have 100 Spell Power), would be a better pick here. Bio Blast(the Magitek skill) would perhaps be fitting for Poison element. It's significantly weaker than the Power 100 skills, but comes with a couple status ailments for the sake of utility. For Earth, perhaps consider Magnitude8, which is also a Power 100 skill. Short of buffing Scar Beam and removing it from early game enemies that use it, there's no suitable equivalent for Holy-elemental damage, however. Alexandr, in terms of stats alone, is close, but it's more powerful than the rest, which is not great, and it's not thematic at all.


The only thing harder than finding a needle in a haystack is finding a haystack in a needle. Laugh
  Find
Quote  

#14
Posts: 614
Threads: 49
Thanks Received: 0
Thanks Given: 4
Joined: Feb 2017
Reputation: 25
Status
None
C-Dude, this needs to be built off of the Full Roster hack. I'd say step 1 is merging the Full Roster with CV Reynold's bugfix and compilation. Then, use that as a base for Iris.

For any of the elementals, there are 3 attack slots that are not used by any enemies in the game. It would be possible to use them and borrow animations from other spells. For Ice elemental, I think Absolute Zero would work.

The main problem that I see with this idea is what to do with the Genji Glove/Offering combo. Does that mean that Iris will do, on average, 4 magic attacks? That's already a problem with Cyan.


Projects:
FFVI: Divergent Paths (Completed) - a complete storyline and gameplay hack of FF6 that adds Leo as a playable character
  Find
Quote  

#15
Posts: 272
Threads: 2
Thanks Received: 2
Thanks Given: 0
Joined: Apr 2013
Reputation: 3
Status
Prowess
I would assume that, unless the procs are of the same nature as the Tempest or Scimitar, the Offering would disable procs as normal.


The only thing harder than finding a needle in a haystack is finding a haystack in a needle. Laugh
  Find
Quote  
[-] The following 1 user says Thank You to Cecil188 for this post:
  • Lockirby2 (06-15-2020)

#16
Posts: 377
Threads: 34
Thanks Received: 10
Thanks Given: 7
Joined: Dec 2018
Reputation: 18
Status
Moog
I haven't done any actual logic yet, but I imagine I'd handle it like I did with Jujitsu in ReCast; the command would call a fight command, then load a spell and call a Slot command (so that the spell costs 0 MP). Jujitsu doubled attacks for each call when the character held two weapons, so MSword with an Offering or Genji Glove would likely do 2-8 elemental strikes, followed by a single spell cast of the associated spell. I can optionally throw in a forced target recalculation, allowing multi-target spells to hit the entire enemy party despite the fact the physical attacks did not.

Even though Jujitsu called Rage twice, Rage itself calls the Fight command. I don't think setting up MSword will be much different.

But again, I haven't worked out the logic of it yet; I'm unsure how complicated adding an element to a basic attack will be. If I can just set it beforehand like how Poison ticks damage, it'll be ridiculously easy. If it has to be set within the command itself, this will be much more complicated. From a cursory glance, unfortunately "Execute Hit" seems to overwrite element data on each strike. This will take some thought.

EDIT: Okay, SwdTech determines its index based on the spell animation, which means if I index MSword like SwdTech I'd need up to 8 contiguous spell slots (which is a waste) or I'll have to individually compare against hard-coded spell indices. The other alternative is to somehow detect which menu position the player selected to cast, which is how random spells and lores seem to work. I'm looking at that and it too seems to use contiguous spell indices, just with different start points. Okay, so the only viable option is a list of comparisons for set spell indices, comparisons made when MSword is selected as a command (so it doesn't interfere with other actors)... basically like how natural spell lists handle jumping over certain actors. Seems doable but byte expensive.
  Find
Quote  

#17
Posts: 763
Threads: 83
Thanks Received: 55
Thanks Given: 7
Joined: Apr 2015
Reputation: 22
Status
Obliviscence
I don't think it should be that complicated to create. The game has mechanics for proccing, you just need to alter the code to edit the values its using for the proccing spell and proc chance if Iris' ability is used, whether you use something at random or specifiy, you shouldn't need to reinvent the wheel to get it done.
  Find
Quote  

#18
Posts: 377
Threads: 34
Thanks Received: 10
Thanks Given: 7
Joined: Dec 2018
Reputation: 18
Status
Moog
I've started working with Catone's possess menu. I want to fit it into the existing ROM space (it's quite small, relatively speaking, and I don't think a full expansion is necessary to make it fit). I've also gotten MBlade to make a cast from said menu followed by one physical attack; the physical attack is coded first but ques up AFTER the command returns, so as I work with it I can make the cast random down the line [but it will come first when it procs].

I don't want to mess with the existing spellblade procs because I want Iris to be able to benefit from wielding Ragnarok for the random Flare casts. It's looking promising so far; the next step is working out how to change the element of the physical attack, since Fight loads weapon data on each call. That means I'll need to come up with a way to mark that MBlade is being used... I'm thinking RAM address $3413: Primary Command Index.

EDIT: I've got something working that looks like a weapon attack but is actually a spell cast. The spell also may randomly cast before this weapon attack, and the Offering adds an additional weapon attack. The graphic for the weapon is not the player's weapon, but rather something based on the target data (for reasons I do not understand). The target setting itself seems to be drawn from the spell used, so most of these attacks are going to hit the entire enemy party (just by the spells available in the range of Catone's patch). The damage rate is REALLY high, so I'm going to be picking spells that naturally have low battle power, like Blizzard and FireBall. The only other option is to make custom spells for Iris's MBlade, but that approach would require 8 free spell slots and as PowerPanda said there's only three.
I'll share some code when I've got it working a little better; I'm still testing inside an expanded ROM and I need to relocate Catone's work into freespace that isn't used by Full Roster or the CV Bugfix collection.

EDIT: I'm glad I didn't go with changing spellblade procs, because when a weapon is loaded that information is overwritten. The only way to make a command change that information is to have it save the command number somewhere (because attack will overwrite it in $B5), check against that value when spell proc is set to be assigned to an attack, and then overwrite it if the command was MBlade. Possible, maybe, but outside my competency as a hacker; every time I attempted a detour to that effect the attack would either do nothing or it would freeze the game. Going to stick with what I've come up with... it's not great, but at least it's something... it's like a single-target dance with chance for double-dance.
  Find
Quote  

#19
Posts: 377
Threads: 34
Thanks Received: 10
Thanks Given: 7
Joined: Dec 2018
Reputation: 18
Status
Moog
Attached to the bottom of this post is the first viable draft of MBlade.

Catone's code in the formerly expanded 3F bank has been relocated to C0/D6C0.
My code for the action is located at C2/FBB0.  I chose these locations because they were freespace in ReCast, which leads me to believe they're free in the CV collection too.  They're also free in my version of FullRoster (v0_96), so I'm relatively confident there won't be conflicts.

There's a smattering of other changes necessitated by Catone's Possess Menu code, but the patch is otherwise vanilla (it doesn't go changing any spell effects or anything).
That also means that WallChange isn't doing what I would intend (recovering 1/16th of the target's MP and animating differently) and neither is Love Token (damaging MP with attack power 1)

I haven't gotten around to documenting this patch and its changes.  I will throw together a read-me documenting the hex changes eventually, but I wanted to give others the opportunity to play with the command now.

There may be bugs.  I encountered a few while I was testing that were graphical but otherwise harmless; they are difficult to replicate but seem to be most prone to occur from use of MBlade at the start of a Preemptive Strike battle.
The patch doesn't change anybody's commands, so I've included a save file where Terra is already initialized with the command.  It says "Possess" because the patch is otherwise vanilla; trying to compartmentalize this as much as possible.

Keep an eye out for crashes (I may have overlooked something).  Let me know what command you selected when a crash occurred, if you find one.  More importantly, give the command a try and give some input on it; does this adequately personify Iris?

======================
EDIT: Whelp, I've figured out where the weapon animation is coming from and it isn't good.  It's drawing a weapon based on the index of the spell's special effect.  Off the bat you can guess how that might be bad, but it gets worse... if the index points to a weapon animation that doesn't exist (as Debilitator does), the game will crash violently.  I made a missingno glitch, wee!  Except mine doesn't do anything beneficial.

With the pre-loaded spell indices this shouldn't be a problem, but if you go changing those spells or their effects you run the risk of encountering this crash.  I've got a new version of the attack that properly uses the caster's weapon graphic, but it's not ready yet (and I want to annotate this one before release).  Until then, make sure you don't use MBlade v0_01 in any serious projects; you can play with it but I'm warning you now it's unstable.

======================
EDIT: Here's a new version, with documentation.  It is much improved in both stability and presentation.


Attached Files
.zip  MBlade v0_02.zip (5.1 KB, 3 downloads)
  Find
Quote  
[-] The following 1 user says Thank You to C-Dude for this post:
  • madsiur (06-19-2020)

#20
Posts: 377
Threads: 34
Thanks Received: 10
Thanks Given: 7
Joined: Dec 2018
Reputation: 18
Status
Moog
A few points about this second version of MBlade:

(1) It 'should' properly overwrite everything from v0_01, so if by some disaster you applied v0_01 on your project you can just patch over it with this.
(2) We could do a lot more with this if we had a few extra free spells. Desperation attacks would be nice to use, but I think the Full Roster patch already uses them with MMMMMMagic. If anybody knows how free those spell slots are to manipulate, let me know.
(3) I've renamed the ability Imbue. That name change is now part of the patch.
(4) I haven't tested the changes with a multi-target spell yet, so... hopefully that doesn't cause a freeze.


Getting back on topic...
As a limitation to the shop OAM, Actor 15 has to share a palette with Locke. This isn't a huge problem as I can recolor Iris, but I have to ask... is her color scheme locked in? She actually looks quite nice as a brunette, and Setzer already fills the 'random white hair' quota for the cast.
  Find
Quote  



Forum Jump:

Users browsing this thread: 1 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite