# Main SiteForum Index

• January 15, 2019, 10:56:26 PM
• Welcome, Guest

### News:

Don't be hasty to start your own mod; all our FFT modding projects are greatly understaffed. Find out how you can help in the Recruitment section.

Pages: [1]
Nukas [Posts: 3]
##### Xif's Fury hack modification (Brave & Faith rework)
« on: February 13, 2018, 12:31:23 AM »
Hello, this is my first post and the first time I touch assembly code in years, so please bear with me.
While collecting ASM hacks for a personal mod, I stumbled upon Xifanie's "Brave becomes Fury". It didn't quite fit my needs, but with a few tweaks I thought I could get it to do something that'd be useful to me.

The original formula was: (40 + Caster_Fury) * (40 + Target_Fury) * Total_Damage / 10000
The new formula is essentially: ((200 + Caster_Br) / (200 + Target_Br)) * Total_Damage
What it does is basically increase your damage if your Brave is higher than your opponent's, and decrease your damage if it's lower than your opponent's, both proportionally of course.
An attacker with 100 Bravery attacking a target with 0 Brave would have their damage increased to 1.5x the original value.
An attacker with 0 Bravery attacking a target with 100 Brave would have their damage decreased to 2/3rds of the original value.
The final damage range is 66%~150% of the original.

My main reason for using this formula is wanting to use Brave as a "fighting ability" sort of stat, and creating buffs and debuffs around Brave manipulation.

So anyway here's it:

           Changes Xif's Fury formula so that damage becomes directly proportional to the attacker's Brave and inversely proportional to the target's Brave.      In other words, you do more physical damage if your Brave is higher than your target's, and less damage if their Brave is higher than yours.      New formula is: Final_Damage = (((((200 + Caster_Br) * 1024) / (200 + Target_Br)) * Original_Damage) / 1024)      This gives the new damage a range of 66%~150% of the original.             00040000      1980033C      942D628C      982D638C      24004290      24006390      C8004224      C8006324      80120200      1A004300      12100000      1500043C      0C0382AC      97180608      942D218C      12100000      1500043C      0C03848C      00000000      18004400      1500023C      00040434      0C0344AC      12100000      82120200      65190608      00000000              C4400508      1980013C      00000000      5A002290              D2400508      250062A0

You can change the value from 200 (C8) to something else to change the minimum and maximum damage modifiers. Don't change it to zero.
Multiplying the Attacker's Bravery by 1024 before dividing it by the Defender's was my implementation choice to soften the issue of loss of precision after division. With these values, the final result should be within "1" (one) of the expected value.
It also should have no load delays.

UPDATE: So my original modification was completely borked because I didn't really understand Xifanie's code. Spells were giving off really odd numbers. It should be fixed now.
I also made another xml to edit the Faith routine and apply the same formula to Faith calculation. So basically every spell damage/accuracy will use this same 66%~150% formula.
Using both the Brave and the Faith ASMs attached should basically rework the Brave/Faith system into something completely different. I'm aware many people prefer the old "high risk high reward" mechanics, and this requires a lot of extra work to - well, work... since all spells which accuracy is based on Faith will have to have their values changed to adapt to the new system. But it's nice to always have more options, I guess.

                Changes the Faith routine so that magic damage and accuracy becomes directly proportional to the attacker's Faith and inversely proportional to the target's Faith.         In other words, your spells do more damage and are more accurate if your Faith is higher than your target's, and less damage/less accurate if their Faith is higher than yours.         New formula is: Final_Damage/Accuracy = (((((200 + Caster_Br) * 1024) / (200 + Target_Br)) * Original_Damage/Accuracy) / 1024)         This gives the new damage/accuracy a range of 66%~150% of the original.                  *Note that this requires rebalancing of all Faith abilities. Oracles for example have base spell accuracy values in the 100-200 range, which makes sense with the old Faith system.         A spell with 50+MA chance to hit in this new system cast by a mage with 10 MA could have its accuracy range from 39% to 90%, not counting zodiacs.                     D3384290         04008384         C8004224         80120200         1980043C         D2388490         00000000         C8008424         1A004400         12100000         1980043C         902D848C         18004300         12100000         C31F0300         82120200

Again, I haven't tested them extensively yet. But now they do seem to work. Better.
« Last Edit: February 14, 2018, 10:17:30 PM by Nukas »
• Modding version: PSX
• Nyzer [Posts: 924]
##### Re: Xif's Fury hack modification
« Reply #1 on: February 13, 2018, 03:02:15 AM »
An interesting concept, though, I've gotta say, it only worsens the problem the Fury modification intends to address.

Turning Bravery into Fury means lower Br values are actually somewhat useful. Your change makes them even less useful than they already are.

• Modding version: PSX & WotL
• Nukas [Posts: 3]
##### Re: Xif's Fury hack modification
« Reply #2 on: February 13, 2018, 04:13:22 AM »
Ah yes, personally I'm trying to get rid of stat breaks given how annoying they are to balance. Last I heard Xif's stat break cap hack had some reported issues, so I was looking for an alternative, or better yet, to work around the whole concept.

Allowing Br to affect damage this way at least lets you manipulate Br as another stat rather than say PA with stat breaks and buffs, and thanks to some other ASMs we already have (remove permanent brave/faith alteration and smart brave/faith) and its own natural cap of 0-100, I feel like this becomes a nice alternative. But I have to admit, my stuff is still at the brainstorming stage, so it's quite possible it won't work out well this way.
Pages: [1]