public void TestAttackPossibleSymbiosys() { var attacker = new Animal(new Player("player1")); attacker.AddUpgrade(new UpgradeCarnivorous()); var animals = new AnimalCollection(new Player("player2")); var a1 = animals.AddAnimal(); var a2 = animals.AddAnimal(); animals.AddUpgrade(a1, new UpgradeSymbiosys()); var check1 = AttackPossibilityChecker.Instance.CanAttack(attacker, a1); var check2 = AttackPossibilityChecker.Instance.CanAttack(attacker, a2); Assert.True(check1); Assert.False(check2); }
private void CreateAttackerAndVictim(out Animal attacker, out Animal victim) { attacker = new Animal(new Player("player1")); victim = new Animal(new Player("player2")); attacker.AddUpgrade(new UpgradeCarnivorous()); }
public static Animal UpgradeAnimal(Animal animal, IEnumerable <UpgradeType> upgrades) { foreach (var u in upgrades) { switch (u) { case UpgradeType.Burrowing: animal.AddUpgrade(new UpgradeBurrowing()); break; case UpgradeType.Camouflage: animal.AddUpgrade(new UpgradeCamouflage()); break; case UpgradeType.Carnivorous: animal.AddUpgrade(new UpgradeCarnivorous()); break; case UpgradeType.Fat: animal.AddUpgrade(new UpgradeFat()); break; case UpgradeType.Grazing: animal.AddUpgrade(new UpgradeGrazing()); break; case UpgradeType.Hibernation: animal.AddUpgrade(new UpgradeHibernation()); break; case UpgradeType.HighBodyWeight: animal.AddUpgrade(new UpgradeHighBodyWeight()); break; case UpgradeType.Mimicry: animal.AddUpgrade(new UpgradeMimicry()); break; case UpgradeType.Parasite: animal.AddUpgrade(new UpgradeParasite()); break; case UpgradeType.Piracy: animal.AddUpgrade(new UpgradePiracy()); break; case UpgradeType.Poisonous: animal.AddUpgrade(new UpgradePoisonous()); break; case UpgradeType.Running: animal.AddUpgrade(new UpgradeRunning()); break; case UpgradeType.Scavanger: animal.AddUpgrade(new UpgradeScavenger()); break; case UpgradeType.SharpVision: animal.AddUpgrade(new UpgradeSharpVision()); break; case UpgradeType.Swimming: animal.AddUpgrade(new UpgradeSwimming()); break; case UpgradeType.TailLoss: animal.AddUpgrade(new UpgradeTailLoss()); break; } } return(animal); }