public void StatusIsNotInflictedIfTargetAlreadyHasIt() { IRequisite slowedDown = new MovementSlowdownAbility(0.5); Hero target = new Hero(new TeamId(0), new HitPoints(9999), slowedDown); IRequisite attack = new AutoAttackAbility(new HitPoints(10), CreateTargeter((h, c) => target)); IRequisite inflictParalysis = new InflictStatusAbility(slowedDown, TimeSpan.FromSeconds(2)); Hero attacker = new Hero(new TeamId(1), initialHp: default, attack, inflictParalysis);
public void DamageMathChecksOut(uint normalDamage, double damageMultiplier, double chance, double randomRoll, uint expectedDamage) { HitPoints initialHp = new HitPoints(9999); Hero shootingTarget = new Hero(new TeamId(255), initialHp); HitPoints baseDamage = new HitPoints(normalDamage); AutoAttackAbility attackAbility = new AutoAttackAbility(baseDamage, CreateTargeter((h, c) => shootingTarget)); CriticalHitChanceAbility criticalHitChanceAbility = new CriticalHitChanceAbility(chance, damageMultiplier); Hero attacker = new Hero(new TeamId(0), initialHp: default, attackAbility, criticalHitChanceAbility);
public void EnqueAbilityToCooldownOnTargetedEvent() { CharacterAction action = null; var mockSelf = new Mock <Character>(); mockSelf.Setup(self => self.EnqueueAction("autoattack", It.IsAny <CharacterAction>())) .Callback <string, CharacterAction>((name, a) => { action = a; }); var _event = Event.Create("this_targeted_ch1", EventReturnMethod.None, new EventArg("this", mockSelf.Object)); var ability = new AutoAttackAbility(); ability.ReceiveEvent(_event); mockSelf.VerifyAll(); Assert.IsTrue(action is AutoAttackAction); }
public Class(string name, dynamic stats) { Id = name; AutoAttack = new AutoAttackAbility(); Stats = stats; }