public static void DeactivatePhalanx(TroopScript troopThatUsedPhalanx) { troopThatUsedPhalanx.GetArmor().Defence-=Mathf.RoundToInt(troopThatUsedPhalanx.GetArmor().Defence/3); troopThatUsedPhalanx.SetBaseMovement(troopThatUsedPhalanx.GetBaseMovement()+1); }
static bool EquipTriangleOffensive(TroopScript Attacker, TroopScript Defender) { bool bonusattack = false; WeaponType atkwpn = Attacker.GetWeapon().weapType; ArmorType defarmr = Defender.GetArmor().armrType; if ((atkwpn == WeaponType.Sword && defarmr == ArmorType.NoArmor)|| (atkwpn == WeaponType.Axe && defarmr == ArmorType.NoArmor)|| (atkwpn == WeaponType.Mace && defarmr == ArmorType.Heavy)|| (atkwpn == WeaponType.Spear && defarmr == ArmorType.Light)|| (atkwpn == WeaponType.Bow && defarmr == ArmorType.NoArmor)) bonusattack = true; return bonusattack; }
public static void ActivatePhalanx(TroopScript troopThatUsesPhalanx) { troopThatUsesPhalanx.GetArmor().Defence+=Mathf.RoundToInt(troopThatUsesPhalanx.GetArmor().Defence/2); troopThatUsesPhalanx.SetBaseMovement(troopThatUsesPhalanx.GetBaseMovement()-1); }
public static void MeleeFightingScript(TroopScript Attacker, TroopScript Defender, Skill SkillUsed) { int AttackerBattlefieldEffect = 1; //still to impement int DefenderBattlefieldEffect = 1; //still to impement int DamageOnAtk = 0; int DamageOnDef = 0; TroopScript DefenderGuarder = Defender.GuardedBy; float DefenderGuardPercent = (float)Defender.GuardedByPercent/100; if (SkillUsed.CancelsPreparation == true && Defender.isMagicGuarded == false){ Defender.CancelPreparation(); Defender.FlushPreparationTarget(); } if (SkillUsed.ReducesEnergy == true && Defender.isMagicGuarded == false){ Defender.SetEnergy(Defender.GetEnergy()-1); if (Defender.GetEnergy() <0) Defender.SetEnergy(0); } if (SkillUsed.RemoveBuffs == true && Defender.isMagicGuarded == false)Defender.RemoveAllbuffs(); if (SkillUsed.AppliesPoison == true && Defender.Poisoned == 0) Defender.Poisoned = 1; if (SkillUsed.Freezes == true && !Defender.Frozen) Defender.Frozen = true; if (SkillUsed.Penetrating == true || DefenderGuarder == null){ DamageOnDef = CalculateDamage(Attacker,Defender,SkillUsed,AttackerBattlefieldEffect); Debug.Log("Damage on "+Defender.GetChief().GetName()+":"+DamageOnDef); Defender.SetNumber(Defender.GetNumber()-DamageOnDef); if (Defender.GetNumber()<0) Defender.SetNumber(0); if (CanCounter(Attacker,Defender,SkillUsed)){ float CounterScaling = CounterAttackDamage(Defender.GetChief().GetCounterAttack(),Defender.GetArmor().CounterAttackValue+Defender.GetWeapon().CounterAttackValue); DamageOnAtk = CalculateCounterDamage(Defender,Attacker,CounterScaling,DefenderBattlefieldEffect); Attacker.SetNumber(Attacker.GetNumber()-DamageOnAtk); if (Attacker.GetNumber()<0) Attacker.SetNumber(0);}} else if (SkillUsed.Penetrating == false && DefenderGuarder != null){ DamageOnDef = CalculateDamage(Attacker,Defender,SkillUsed,AttackerBattlefieldEffect); if (SkillUsed.AffectRating) RatingFromDamage(Attacker,DamageOnDef); if (DefenderGuarder){ if (DefenderGuarder.GetNumber()<= 0){ Defender.GuardedBy = null; Defender.GuardedByPercent = 0; DamageOnDef = CalculateDamage(Attacker,Defender,SkillUsed,AttackerBattlefieldEffect); Debug.Log("Damage on "+Defender.GetChief().GetName()+":"+DamageOnDef); Defender.SetNumber(Defender.GetNumber()-DamageOnDef); if (Defender.GetNumber()<0) Defender.SetNumber(0); if (CanCounter(Attacker,Defender,SkillUsed)){ float CounterScaling = CounterAttackDamage(Defender.GetChief().GetCounterAttack(),Defender.GetArmor().CounterAttackValue+Defender.GetWeapon().CounterAttackValue); DamageOnAtk = CalculateCounterDamage(Defender,Attacker,CounterScaling,DefenderBattlefieldEffect); Attacker.SetNumber(Attacker.GetNumber()-DamageOnAtk); if (Attacker.GetNumber()<0) Attacker.SetNumber(0);} }else{ DefenderGuarder.SetNumber(DefenderGuarder.GetNumber()-Mathf.RoundToInt(DamageOnDef*DefenderGuardPercent)); if (DefenderGuarder.GetNumber()<0) DefenderGuarder.SetNumber(0); Defender.SetNumber(Defender.GetNumber()-Mathf.RoundToInt(DamageOnDef*(1-DefenderGuardPercent))); if (Defender.GetNumber()<0) Defender.SetNumber(0); if (CanCounter(Attacker,DefenderGuarder,SkillUsed)){ float CounterScaling = CounterAttackDamage(DefenderGuarder.GetChief().GetCounterAttack(),DefenderGuarder.GetArmor().CounterAttackValue+DefenderGuarder.GetWeapon().CounterAttackValue); DamageOnAtk = CalculateCounterDamage(DefenderGuarder,Attacker,CounterScaling,DefenderBattlefieldEffect); Attacker.SetNumber(Attacker.GetNumber()-DamageOnAtk); if (Attacker.GetNumber()<0) Attacker.SetNumber(0); } }} } }