FEMultiPlayer-V2
FEMultiPlayer-V2 copied to clipboard
Rage mechanic
#165
- Add a stat to each unit called "skillCharge" in the code and "Rage" in the UI.
- A unit's maximum skillCharge is 50. The value is implemented as the Unit.MAX_SKILL_CHARGE constant.
- A unit's skill charge increases when it takes damage from battle. This is implemented as the "ChargeSkillFromDamageRecieved" combat trigger. Swordmasters and Assassins gain 2 rage per damage dealt; everyone else gains 1 rage per damage dealt.
- A unit's skill charge increases by 5 for every round of combat in which it is equipped with a Killer weapon or Wo Dao. Despite the following weapons having a crit value over 15, I did not touch Aura, Arbalest, Falchion or Sol Katti.
- A unit's skill charge increases by 2 for every start-of-phase in which it is equipped with a Killer weapon or Wo Dao.
- Add a "Rage" combat trigger to every unit that, on enemy phase and if the unit has the skillCharge to spend, involuntarily spends a full rage meter to triple damage. The combat trigger is checked individually for each strike.
- Add a FieldSkill to every unit that is available if the unit has a full skillCharge; if selected the unit performs an attack with an additional "Rage" Combat Trigger that spends a full rage meter to triple damage. The default attack doesn't have the combat trigger, and thus doesn't spend skillCharge. Like the other "Rage", the combat trigger is checked for each strike individually.
- Add "Olivi Grass" item that increases the user's rage by 10. Price, uses, name, potency, icon and existence are open to re-evaluation.
- Shoving or Smiting an enemy will increase the target's skillCharge by 5 or 15, respectively.
Notes/Known Issues:
- I accidentally left a "Blessed Bow" in the raws.
- The rage depletion from a lord death is not implemented. I'm not even sure how to go about implementing that.
- This does break binary compatibility of the network protocol - the client has to tell the server whether "rage" field skill was activated and the server has to tell the clients about skillCharge changes. It was just adding fields to existing structs, so I see little risk of intra-version breakage, however.
- The Battle Preview does not account for either rage skill. Rage is predictable enough that the preview should be able to predict a Rage, but nothing else that can cause a follow-up strike to have a different damage than the first strike is reported.
- The "Rage" Field Skill is currently at the bottom of the list, below Shove and Smite. It might make more sense for it to appear directly under "Attack" but putting Rage and Shove in different places would be tricky.
- Rage can stack with %-chance skills, missing, or even normal criticals. I didn't make any special cases to deal with these. Good thing we have our "nullified" RNG settings now. Although it does make me want for the resource modding sprint.
- When I tried it, Eclipse overrode Rage (still spent the skill charge), but since order of items in a HashMap is unpredictable, I make no promises that Rage+Eclipse won't change to dealing
(enemy's remaining HP) * 3 - 3
for little-to-no reason. - If, in the future, there are other skills linked to the 'skillCharge' value (be it giving a certain class a Sol or Luna effect instead of a Crit effect, or tying a Laguz-like form shift to that value) then referring to "skillCharge" as "rage" in the UI doesn't make sense. MP, maybe? Or refer to the points as Rage, but not the crit-like effect?
- Skill charge changes are not shown during battles. It is only shown during overworld interactions (shoving and item use)
- All start-of-turn effects happen concurrently and with no focus-on-effect camera movement. This is also true for throne healing. An example of it's odd, but there's precedence.
This is what I mean by start of turn effects happen concurrently, BTW. (In this case, everyone has a Wo Dao equipped.