private void ProcessChangeForBuffsAndDebuffs(int rawDamage, evoTypes attackerType, evoTypes targetType) { //Separate from Abilites so buffs and debuffs Stack/Cancel out or are calculated Simultaneously ProcessChangeForAttackerType(rawDamage, attackerType, targetType); ProcessChangeForHoly(rawDamage, targetType); ProcessChangeForMagical(rawDamage); ProcessChangeForBlessing(rawDamage); }
public void ApplyDamageReduction(float rawDamage, evoTypes attackerType, DamageModifier attacker) { processedDamage = rawDamage; evoTypes myType = GetComponent <UISelectionDescription>().GetMyType(); ApplyStatusEffect(attacker); ProcessChangeForStatusEffect(processedDamage); ProcessChangeForType(processedDamage, attackerType, myType); GetComponent <Health>().TakeDamage(Mathf.RoundToInt(processedDamage)); }
private float ProcessBeastAttack(float rawDamage, evoTypes targetType) { if (targetType == evoTypes.Undead) { return(rawDamage + (rawDamage * half)); } else { return(rawDamage); } }
private void ProcessChangeForHoly(int rawDamage, evoTypes targetType) { foreach (AbilitiesAndStatusEffects ability in activeAbilities) { if (ability.GetAbility() == abilities.Holy) { if (targetType == evoTypes.Undead) { processedDamage += rawDamage * ability.GetDamageMultiplier(); } } } }
private float ProcessUndeadAttack(float rawDamage, evoTypes targetType) { if (targetType == evoTypes.Human) { return(rawDamage + (rawDamage * quarter)); } if (targetType == evoTypes.Goblinkin) { return(rawDamage + (rawDamage * quarter)); } else { return(rawDamage); } }
private void ProcessChangeForType(float rawDamage, evoTypes attackerType, evoTypes myType) { if (myType == evoTypes.Human) { processedDamage = ProcessHumanDef(rawDamage, attackerType); } else if (myType == evoTypes.Beast) { processedDamage = ProcessBeastDef(rawDamage, attackerType); } else if (myType == evoTypes.Undead) { processedDamage = ProcessUndeadDef(rawDamage, attackerType); } else if (myType == evoTypes.Goblinkin) { processedDamage = ProcessGoblinkinDef(rawDamage, attackerType); } else { processedDamage = rawDamage; } }
private void ProcessChangeForAttackerType(int rawDamage, evoTypes attackerType, evoTypes targetType) { if (attackerType == evoTypes.Human) { processedDamage = ProcessHumanAttack(rawDamage, targetType); } else if (attackerType == evoTypes.Beast) { processedDamage = ProcessBeastAttack(rawDamage, targetType); } else if (attackerType == evoTypes.Undead) { processedDamage = ProcessUndeadAttack(rawDamage, targetType); } else if (attackerType == evoTypes.Goblinkin) { processedDamage = ProcessGoblinkinAttack(rawDamage, targetType); } else { processedDamage = rawDamage; } }
private float ProcessGoblinkinDef(float rawDamage, evoTypes attackerType) { return(rawDamage); }
private float ProcessUndeadDef(float rawDamage, evoTypes attackerType) { return(rawDamage); }
private float ProcessBeastDef(float rawDamage, evoTypes attackerType) { return(rawDamage - (rawDamage * quarter)); }
private float ProcessHumanDef(float rawDamage, evoTypes attackerType) { return(rawDamage + (rawDamage * quarter)); }
public void SetParentType(evoTypes type) { parentType = type; }
private void ProcessChangeForAbilities(evoTypes attackerType, evoTypes targetType) { ProcessChangeForRange(); ProcessChangeForCrit(); ProcessChangeForRelentless(); }
private float ProcessGoblinkinAttack(float rawDamage, evoTypes targetType) { return(rawDamage); }
public float CalculateDamageForProjectile(int rawDamage, evoTypes attackerType, evoTypes targetType) { ProcessChangeForBuffsAndDebuffs(rawDamage, attackerType, targetType); ProcessChangeForAbilities(attackerType, targetType); return(processedDamage); }
private float ProcessHumanAttack(float rawDamage, evoTypes targetType) { return(rawDamage - (rawDamage * quarter)); }