public void MonsterActions(Monster monster, Player player1, List <Monster> monsters, Boolean isDebuggerFight) { #region monsterAttackAndClassVariables Render code = new Render(); Monster start = new Monster(0, 0, ""); Map map = new Map("Base_Map"); Basic_Map code2 = new Basic_Map("Base_Map"); int monsterAction = GetRandom(12, 12); int whichTarget = GetRandom(0, monsters.Count); int isTargetPlayer = 0; #endregion switch (monsterAction) { case 1: monster.Block = start.Monster_Defend(monster); break; case 2: if (isDebuggerFight == false) { isTargetPlayer = GetRandom(1, 3); if (isTargetPlayer == 2 && player1.posX == this.posX + 1 || player1.posX == this.posX - 1 || player1.posX == this.posX && player1.posY == this.posY + 1 || player1.posY == this.posY - 1 || player1.posY == this.posY) { player1.Health = start.MonsterAttack(player1, monster, monsters); } else { Move(monster, map, monsters, player1, monster); } } if (monsters[whichTarget] != this && monsters[whichTarget] != null) { if (monsters[whichTarget].posX == this.posX + 1 || monsters[whichTarget].posX == this.posX - 1 || monsters[whichTarget].posX == this.posX && monsters[whichTarget].posY == this.posY + 1 || monsters[whichTarget].posY == this.posY - 1 || monsters[whichTarget].posY == this.posY) { monsters[whichTarget].Health = start.MonsterAttack(monsters[whichTarget], monster, monsters); } } break; case 3: if (isDebuggerFight == false) { isTargetPlayer = GetRandom(1, 3); if (isTargetPlayer == 2 && player1.posX == this.posX + 1 || player1.posX == this.posX - 1 || player1.posX == this.posX && player1.posY == this.posY + 1 || player1.posY == this.posY - 1 || player1.posY == this.posY) { player1.Health = start.MonsterAttack(player1, monster, monsters); } else { Move(monster, map, monsters, player1, monster); } } if (monsters[whichTarget] != this && monsters[whichTarget] != null) { if (monsters[whichTarget].posX == this.posX + 1 || monsters[whichTarget].posX == this.posX - 1 || monsters[whichTarget].posX == this.posX && monsters[whichTarget].posY == this.posY + 1 || monsters[whichTarget].posY == this.posY - 1 || monsters[whichTarget].posY == this.posY) { monsters[whichTarget].Health = start.MonsterAttack(monsters[whichTarget], monster, monsters); } } break; case 4: monster.Health = start.Monster_Heal(monster); monster.monsterBleeding -= 1; break; case 5: monster.Dodge = start.Monster_Dodge(monster); break; case 6: if (isDebuggerFight == false) { isTargetPlayer = GetRandom(1, 3); if (isTargetPlayer == 2 && player1.posX == this.posX + 1 || player1.posX == this.posX - 1 || player1.posX == this.posX && player1.posY == this.posY + 1 || player1.posY == this.posY - 1 || player1.posY == this.posY) { player1.Health = start.MonsterAttack(player1, monster, monsters); } else { Move(monster, map, monsters, player1, monster); } } if (monsters[whichTarget] != this && monsters[whichTarget] != null) { if (monsters[whichTarget].posX == this.posX + 1 || monsters[whichTarget].posX == this.posX - 1 || monsters[whichTarget].posX == this.posX && monsters[whichTarget].posY == this.posY + 1 || monsters[whichTarget].posY == this.posY - 1 || monsters[whichTarget].posY == this.posY) { monsters[whichTarget].Health = start.MonsterAttack(monsters[whichTarget], monster, monsters); } } break; case 7: if (isDebuggerFight == false) { isTargetPlayer = GetRandom(1, 3); if (isTargetPlayer == 2 && player1.posX == this.posX + 1 || player1.posX == this.posX - 1 || player1.posX == this.posX && player1.posY == this.posY + 1 || player1.posY == this.posY - 1 || player1.posY == this.posY) { player1.Health = start.MonsterAttack(player1, monster, monsters); } else { Move(monster, map, monsters, player1, monster); } } if (monsters[whichTarget] != this && monsters[whichTarget] != null) { if (monsters[whichTarget].posX == this.posX + 1 || monsters[whichTarget].posX == this.posX - 1 || monsters[whichTarget].posX == this.posX && monsters[whichTarget].posY == this.posY + 1 || monsters[whichTarget].posY == this.posY - 1 || monsters[whichTarget].posY == this.posY) { monsters[whichTarget].Health = start.MonsterAttack(monsters[whichTarget], monster, monsters); } } break; case 8: if (isDebuggerFight == false) { isTargetPlayer = GetRandom(1, 3); if (isTargetPlayer == 2 && player1.posX == this.posX + 1 || player1.posX == this.posX - 1 || player1.posX == this.posX && player1.posY == this.posY + 1 || player1.posY == this.posY - 1 || player1.posY == this.posY) { player1.Health = start.MonsterAttack(player1, monster, monsters); } else { Move(monster, map, monsters, player1, monster); } } if (monsters[whichTarget] != this && monsters[whichTarget] != null) { if (monsters[whichTarget].posX == this.posX + 1 || monsters[whichTarget].posX == this.posX - 1 || monsters[whichTarget].posX == this.posX && monsters[whichTarget].posY == this.posY + 1 || monsters[whichTarget].posY == this.posY - 1 || monsters[whichTarget].posY == this.posY) { monsters[whichTarget].Health = start.MonsterAttack(monsters[whichTarget], monster, monsters); } } break; case 9: if (isDebuggerFight == false) { isTargetPlayer = GetRandom(1, 3); if (isTargetPlayer == 2 && player1.posX == this.posX + 1 || player1.posX == this.posX - 1 || player1.posX == this.posX && player1.posY == this.posY + 1 || player1.posY == this.posY - 1 || player1.posY == this.posY) { player1.Health = start.MonsterAttack(player1, monster, monsters); } else { Move(monster, map, monsters, player1, monster); } } if (monsters[whichTarget] != this && monsters[whichTarget] != null) { if (monsters[whichTarget].posX == this.posX + 1 || monsters[whichTarget].posX == this.posX - 1 || monsters[whichTarget].posX == this.posX && monsters[whichTarget].posY == this.posY + 1 || monsters[whichTarget].posY == this.posY - 1 || monsters[whichTarget].posY == this.posY) { monsters[whichTarget].Health = start.MonsterAttack(monsters[whichTarget], monster, monsters); } } break; case 10: monster.Parry = start.Monster_Parry(monster); break; case 11: Move(monster, map, monsters, player1, monster); break; case 12: for (int i = 0; i < monster.entityPotions.Count - 1;) { if (monster.entityPotions[i].name == "Health_Potion" && monster.Health < monster.maxHealth) { monster.entityPotions[i].PotionEffect("healing", monster, monster.entityPotions[i].damage); monster.entityPotions.Remove(monster.entityPotions[i]); Potion empty = new Potion("Empty_potion", monster.entityPotions.Count + 1); monster.entityPotions.Add(empty); } if (monster.entityPotions[i].name == "Fire_Potion" && Entity.GetNearestEntity(monster, monsters, player1, code2).posX <= monster.posX + 3 && Entity.GetNearestEntity(monster, monsters, player1, code2).posX >= monster.posX - 3 && Entity.GetNearestEntity(monster, monsters, player1, code2).posY <= monster.posY + 3 && Entity.GetNearestEntity(monster, monsters, player1, code2).posY >= monster.posY - 3) { monster.entityPotions[i].PotionEffect("Fire_Potion", Entity.GetNearestEntity(monster, monsters, player1, code2), monster.entityPotions[i].damage); monster.entityPotions.Remove(monster.entityPotions[i]); Potion empty = new Potion("Empty_potion", monster.entityPotions.Count + 1); monster.entityPotions.Add(empty); } } break; } //Thread.Sleep(5000); }
public void Move(Entity entity, Map map, List <Monster> monsters, Player player1, Monster monster) { Basic_Map code = new Basic_Map("Base_Map"); int originPosX = entity.posX; int originPosY = entity.posY; if (entity == player1) { Console.Write("Enter PosX: "); int actualInput = 0; int actualInput1 = 0; string input = Console.ReadLine(); try { actualInput = Int32.Parse(input); } catch { Move(entity, map, monsters, player1, monster); } Console.Write("Enter PosY: "); string input1 = Console.ReadLine(); try { actualInput1 = Int32.Parse(input1); } catch { Move(entity, map, monsters, player1, monster); } if (actualInput1 == entity.posY + 1 || actualInput1 == entity.posY - 1 || actualInput1 == entity.posY && actualInput == entity.posX + 1 || actualInput == entity.posX - 1 || actualInput == entity.posX) { for (int i = 0; i < monsters.Count; i++) { if (monsters[i] != null) { if (entity.posX == monsters[i].posX && entity.posY == monsters[i].posY) { Console.Write("Are you sure you want to attack " + monsters[i].Name + "?"); string input2 = Console.ReadLine(); if (input2 == "y" || input2 == "yes") { Console.WriteLine("Which Weapon do you want to use?\n"); Console.WriteLine("1) Slot 1: " + player1.EntityWeapon.name + " weapon level: " + player1.EntityWeapon.weaponlevel + " weapon damage: " + player1.EntityWeapon.weaponDamage); Console.WriteLine("2) Slot 2: " + player1.PlayerWeapon2.name + " weapon level: " + player1.PlayerWeapon2.weaponlevel + " weapon damage: " + player1.PlayerWeapon2.weaponDamage); int playerAnswer = 0; string playerInput = Console.ReadLine(); try { playerAnswer = Int32.Parse(playerInput); } catch { Move(entity, map, monsters, player1, monster); } if (playerAnswer == 1) { monsters[i].Health = player1.PlayerAttack(monsters[i], player1, player1.EntityWeapon); entity.posY = originPosY; entity.posX = originPosX; } else if (playerAnswer == 2) { monsters[i].Health = player1.PlayerAttack(monsters[i], player1, player1.PlayerWeapon2); entity.posY = originPosY; entity.posX = originPosX; } } else { Move(entity, map, monsters, player1, monster); } } } } entity.posY = actualInput1; entity.posX = actualInput; } else { Console.WriteLine("Invalid Coordiantes!"); Move(entity, map, monsters, player1, monster); } } else { int actualInput = GetRandom(entity.posX - 1, entity.posX + 2); int actualInput1 = GetRandom(entity.posY - 1, entity.posY + 2); if (player1 != null) { if (actualInput == player1.posX && actualInput1 == player1.posY) { player1.Health = monster.MonsterAttack(player1, monster, monsters); entity.posY = originPosY; entity.posX = originPosX; } } else { for (int i = 0; i < monsters.Count; i++) { if (entity.posX == monsters[i].posX && entity.posY == monsters[i].posY) { entity.Health = monster.MonsterAttack(entity, monster, monsters); entity.posY = originPosY; entity.posX = originPosX; } } } entity.posX = actualInput; entity.posY = actualInput1; } if (map.mapName == "Base_Map") { int tries = 3; while (entity.posX <= 0 || entity.posY <= 0 || entity.posX > code.lengthX || entity.posY > code.lengthY && tries > 0) { Move(entity, map, monsters, player1, monster); tries -= 1; if (tries == 0) { return; } } Basic_Map.Build(monsters, player1, "~"); } else if (map.mapName == "Arena_Branches") { int tries = 3; while (entity.posX <= 0 || entity.posY <= 0 || entity.posX > code.lengthX || entity.posY > code.lengthY && tries > 0) { Move(entity, map, monsters, player1, monster); tries -= 1; if (tries == 0) { return; } } Arena_Branches.Build(monsters, player1, "~"); } }