public static int Mod5(Element element, int spellPower, CombatUnit caster, CombatUnit target) { int damage = 0; float frac = 1; int xa = caster.MA; // Caster Elemental Strengthen // Caster Magic Up // Target Magic Defend Up // Target Shell // Caster+Target Zodiac xa = ZodiacCompatibility.Modify(xa, caster, target); // Caster/Target Faith status // Weather Elemental effect // Target Elemental Weakness // Target Elemental Half // Target Elemental Absorb damage = (int)(caster.Faith * target.Faith * spellPower * xa * frac / 10000f); return(damage); }
public static int Mod2(int xa, bool critical, Element element, CombatUnit caster, CombatUnit target, string action) { // Critical if (critical) { xa += UnityEngine.Random.Range(1, (xa - 1)); } // Caster Elemental Strengthen // Caster Attack Up support // Caster Martial Arts // Caster Berserk // Target Defense Up // Target Protect // Target Charging // Target Sleeping // Target Chicken/Frog // Caster+Target Zodiac xa = ZodiacCompatibility.Modify(xa, caster, target); int damage = (int)Type.GetType("Formulas").GetMethod(action).Invoke(null, new object[] { xa, caster }); // Target Elemental Weak // Target Elemental Halved // Target Elemental Absorb return(damage); }
public static int Modify(int xa, CombatUnit a, CombatUnit b) { Compatibility compat = ZodiacCompatibility.Compare(a, b); if (compat == Compatibility.Best) { xa += xa / 2; } else if (compat == Compatibility.Good) { xa += xa / 4; } else if (compat == Compatibility.Bad) { xa -= xa / 4; } else if (compat == Compatibility.Worst) { xa -= xa / 2; } return(xa); }