private static bool Turn(Hero hero, Monster monster, Inventory inventory) { var flag = 0; var usedItem = true; var fled = true; WriteLine("What do you want to do ?\nAttack\nUse Item\nFlee"); var choice = ReadLine(); if (choice == null) return true; switch (choice.ToUpper()) { case "ATTACK": hero.Attack(monster); if (monster.HitPoints > 0) WriteLine(monster.Name + " has " + monster.HitPoints + " HP left !"); flag = 0; break; case "USE ITEM": WriteLine("Which item do you want to use ?"); inventory.DisplayInventory(); var item = ReadLine(); flag = 0; if (item != null) usedItem = Hero.UseItem(item, inventory, hero, monster); break; case "FLEE": Hero.Flee(); fled = false; break; default: WriteLine("Action unavailable... Please type it again..."); flag = 1; break; } if (flag == 1 || !usedItem) return true; if (!fled) return false; if (monster.HitPoints <= 0) return true; monster.Attack(hero); WriteLine(monster.Name + " hits you for " + monster.Weapon.Damage + " points of damage.\nYou have " + hero.HitPoints + "HP left."); return true; }