public override void HandleAttack(EnumAttacks attack, Target targets, DungeonCharacter attacker) { if (attack.Equals(EnumAttacks.WeakAttack)) { int str = (attacker.DCStats.GetStat(StatsType.Strength)); int damage = _random.Next((int)(BaseDamage * StatAlgorithms.GetPercentStrength(str, LowPercent)), (int)(BaseDamage * StatAlgorithms.GetPercentStrength(str, HighPercent))); var cmd = new StatAugmentCommand(); int appliedDamage = StatAlgorithms.ApplyDefence(damage, targets.ElementAt(DEFAULT_INDEX)); cmd.AddEffect(new EffectInformation(StatsType.CurHp, -appliedDamage), targets.ElementAt(DEFAULT_INDEX)); cmd.AddEffect(new EffectInformation(StatsType.CurResources, attack.Cost + (int)(.1275 * attacker.DCStats.GetStat(StatsType.Intelegence))), attacker); cmd.RegisterCommand(); } else { NextLink.HandleAttack(attack,targets,attacker); } }
private bool CheckResource(EnumAttacks chosenAttack) { if (Hero.GetInstance().DCStats.GetStat(StatsType.CurResources) < -chosenAttack.Cost) return false; return true; }
public abstract void HandleAttack(EnumAttacks attack, Target targets, DungeonCharacter attacker);
public void Attack(EnumAttacks type, Target target) { AttackChain.HandleAttack(type,target,this); }