public override bool TakeTurn(Level level) { turnCounter++; CheckElementDamage(); if (IsAggro && !isFrozen) { if (!hasSpawned) { hasSpawned = true; GuardianEnemy g1 = new GuardianEnemy(); GuardianEnemy g2 = new GuardianEnemy(); g1.BuildEnemy(level.DungeonLevel); g2.BuildEnemy(level.DungeonLevel); IntVec position = level.CharacterEntities.FindPosition(this); if (level.CharacterEntities.FindPosition(this).X == level.CharacterEntities.FindPosition(targets[0]).X) { level.CharacterEntities.Add(g1, new IntVec(position.X - 1, position.Y)); level.CharacterEntities.Add(g2, new IntVec(position.X + 1, position.Y)); } else { level.CharacterEntities.Add(g1, new IntVec(position.X, position.Y - 1)); level.CharacterEntities.Add(g2, new IntVec(position.X, position.Y + 1)); } g1.ForceAggro(targets[0]); g2.ForceAggro(targets[0]); } Direction[] path = AStar.getPathBetween(level, level.CharacterEntities.FindPosition(this), level.CharacterEntities.FindPosition(targets[0])); if (path.Length > 1) { Move(path[0], level); } else if (path.Length > 2) { Move(path[0], level); Move(path[1], level); } if (path.Length < 4) { Audio.playSound("Slash"); Engine.Engine.AddVisualAttack(targets[0], "Hero/HammerSmash", .25f, 2.0f, .15f); targets[0].TakeDamage(attacks[0], this); eSprite.Direction = GetCorrectDirection(path[0]); } } return(true); }
public static Enemy[] GetRandomEnemy(int amount, int powerLevel) { Enemy enemy = null; List <Enemy> enemies = new List <Enemy>(); int rand = gen.Next(0, 4); switch (rand) { case (0): for (int i = 0; i < amount; i++) { enemy = new MeleeEnemy(); enemy.BuildEnemy(powerLevel); enemies.Add(enemy); } break; case (1): for (int i = 0; i < amount; i++) { enemy = new RangedEnemy(); enemy.BuildEnemy(powerLevel); enemies.Add(enemy); } break; case (2): for (int i = 0; i < amount; i++) { enemy = new MageEnemy(); enemy.BuildEnemy(powerLevel); enemies.Add(enemy); } break; case (3): for (int i = 0; i < amount; i++) { enemy = new GuardianEnemy(); enemy.BuildEnemy(powerLevel); enemies.Add(enemy); } break; } return(enemies.ToArray()); }
public static Enemy[] GetRandomEnemy(int amount, int powerLevel) { Enemy enemy = null; List<Enemy> enemies = new List<Enemy>(); int rand = gen.Next(0, 4); switch(rand) { case(0): for (int i = 0; i < amount; i++) { enemy = new MeleeEnemy(); enemy.BuildEnemy(powerLevel); enemies.Add(enemy); } break; case (1): for (int i = 0; i < amount; i++) { enemy = new RangedEnemy(); enemy.BuildEnemy(powerLevel); enemies.Add(enemy); } break; case (2): for (int i = 0; i < amount; i++) { enemy = new MageEnemy(); enemy.BuildEnemy(powerLevel); enemies.Add(enemy); } break; case (3): for (int i = 0; i < amount; i++) { enemy = new GuardianEnemy(); enemy.BuildEnemy(powerLevel); enemies.Add(enemy); } break; } return enemies.ToArray(); }