public void TestTimeAliveRequirementFail() { TimeAliveRequirement NewRequirement = (TimeAliveRequirement)DummyMap.DicRequirement[TimeAliveRequirement.Name].Copy(); NewRequirement.TimeToWait = 1000; BaseAutomaticSkill DummySkill = CreateDummySkill(NewRequirement, DummyMap.DicAutomaticSkillTarget[SelfAttackTargetType.Name].Copy(), DummyMap.DicEffect[LaunchAttackEffect.Name].Copy()); AttackContext.Owner = CreateDummyRobot(); AttackContext.OwnerProjectile = new HitscanBox(0, new ExplosionOptions(), AttackContext.Owner, Vector2.Zero, 0); DummySkill.AddSkillEffectsToTarget("Shoot"); List <BaseEffect> ListActiveEffect = AttackContext.Owner.Effects.GetActiveEffects("Dummy"); Assert.AreEqual(0, ListActiveEffect.Count); }
public void TestTimeAliveRequirementSuccess() { TimeAliveRequirement NewRequirement = (TimeAliveRequirement)DummyMap.DicRequirement[TimeAliveRequirement.Name].Copy(); NewRequirement.TimeToWait = 1000; BaseAutomaticSkill DummySkill = CreateDummySkill(NewRequirement, DummyMap.DicAutomaticSkillTarget[SelfAttackTargetType.Name].Copy(), DummyMap.DicEffect[LaunchAttackEffect.Name].Copy()); AttackContext.Owner = CreateDummyRobot(); AttackContext.OwnerProjectile = new HitscanBox(0, new ExplosionOptions(), AttackContext.Owner, Vector2.Zero, 0); DummySkill.AddSkillEffectsToTarget(string.Empty); AttackContext.OwnerProjectile.Update(new GameTime(TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(1))); DummySkill.AddSkillEffectsToTarget(string.Empty); List <BaseEffect> ListActiveEffect = AttackContext.Owner.Effects.GetActiveEffects("Dummy"); Assert.AreEqual(0, ListActiveEffect.Count);//Should be 0 as shooting doesn't store its effect. }
public void TestSkillChain() { ChangeAttackSpeedEffect TimedBulletSkillEffect = (ChangeAttackSpeedEffect)DummyMap.DicEffect[ChangeAttackSpeedEffect.Name].Copy(); TimedBulletSkillEffect.Speed = 5; TimedBulletSkillEffect.NumberType = Core.Operators.NumberTypes.Absolute; TimedBulletSkillEffect.SignOperator = Core.Operators.SignOperators.PlusEqual; TimeAliveRequirement TimedBulletSkillRequirement = (TimeAliveRequirement)DummyMap.DicRequirement[TimeAliveRequirement.Name].Copy(); TimedBulletSkillRequirement.TimeToWait = 0.4; BaseAutomaticSkill TimedBulletSkill = CreateDummySkill(TimedBulletSkillRequirement, DummyMap.DicAutomaticSkillTarget[SelfAttackTargetType.Name].Copy(), TimedBulletSkillEffect); BaseEffect DummyBulletInitSkillEffect = DummyMap.DicEffect[LaunchAttackEffect.Name].Copy(); DummyBulletInitSkillEffect.ListFollowingSkill = new List <BaseAutomaticSkill>() { TimedBulletSkill }; BaseAutomaticSkill DummyBulletInitSkill = CreateDummySkill(new OnCreatedRequirement(), DummyMap.DicAutomaticSkillTarget[SelfAttackTargetType.Name].Copy(), DummyBulletInitSkillEffect); BaseEffect ShootEffect1 = DummyMap.DicEffect[ShootWeaponEffect.Name].Copy(); ShootEffect1.IsStacking = true; ShootEffect1.MaximumStack = 5; ShootEffect1.ListFollowingSkill = new List <BaseAutomaticSkill>() { DummyBulletInitSkill }; BaseEffect ShootEffect2 = DummyMap.DicEffect[ShootWeaponEffect.Name].Copy(); ShootEffect2.IsStacking = true; ShootEffect2.MaximumStack = 5; BaseAutomaticSkill DummyInitShootSkill1 = CreateDummySkill(DummyMap.DicRequirement[ShootRequirement.Name].Copy(), DummyMap.DicAutomaticSkillTarget[SelfTargetType.Name].Copy(), ShootEffect1); BaseAutomaticSkill DummyInitShootSkill2 = CreateDummySkill(DummyMap.DicRequirement[ShootRequirement.Name].Copy(), DummyMap.DicAutomaticSkillTarget[SelfTargetType.Name].Copy(), ShootEffect2); RobotContext.Target = CreateDummyRobot(); RobotContext.TargetWeapon = RobotContext.Target.PrimaryWeapons.ActiveWeapons[0]; List <BaseAutomaticSkill> ListSkill = new List <BaseAutomaticSkill>() { DummyInitShootSkill1, DummyInitShootSkill2 }; for (int i = 0; i < ListSkill.Count; i++) { BaseAutomaticSkill ActiveSkill = ListSkill[i]; ActiveSkill.AddSkillEffectsToTarget("Shoot"); } List <BaseEffect> ListActiveEffect = RobotContext.Target.Effects.GetActiveEffects("Dummy"); Assert.AreEqual(3, DummyMap.ListLayer[0].ListAttackCollisionBox.Count); Assert.AreEqual(1, DummyMap.ListLayer[0].ListAttackCollisionBox[0].ListActiveSkill.Count); Assert.AreEqual(DummyBulletInitSkill.CurrentSkillLevel.ListActivation[0].ListEffect[0], DummyMap.ListLayer[0].ListAttackCollisionBox[0].ListActiveSkill[0].CurrentSkillLevel.ListActivation[0].ListEffect[0]); Assert.AreEqual(2, DummyMap.ListLayer[0].ListAttackCollisionBox[1].ListActiveSkill.Count); Assert.AreEqual(TimedBulletSkill.CurrentSkillLevel.ListActivation[0].ListEffect[0], DummyMap.ListLayer[0].ListAttackCollisionBox[1].ListActiveSkill[0].CurrentSkillLevel.ListActivation[0].ListEffect[0]); Assert.AreEqual(new Vector2(100000, 0), DummyMap.ListLayer[0].ListAttackCollisionBox[1].Speed); DummyMap.ListLayer[0].ListAttackCollisionBox[1].Update(new GameTime(TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(1))); Assert.AreEqual(new Vector2(100005, 0), DummyMap.ListLayer[0].ListAttackCollisionBox[1].Speed); }