public static void Main(string[] args) { List <Item> inv = new List <Item>(); //Items Consumables Item hPotion = new Item("Health Potion", "hp", 40); Item mPotion = new Item("Mana Potion", "mp", 16); Item atkCandy = new Item("Attack Boost Candy", "atk", 1.3); Item defCandy = new Item("Defense Boost Candy", "def", 1.3); Item extraDefCandy = new Item("Candy of Iron Skin", "def", 1.6); inv.Add(new Item("Health Potion", "hp", 40)); inv.Add(new Item("Health Potion", "hp", 40)); inv.Add(atkCandy); inv.Add(defCandy); Fighter player = new Fighter("Hero", 100, 36, 16, 14, 20, 10, "fireball", "greater fireball", "heal", "agility"); Fighter player2 = new Fighter("Lesser Hero", 20, 36, 16, 14, 10, 10, "fireball"); Fighter theEnemy = new Fighter("Lesser Demon", 60, 10, 10, 16, 10, 11, "fireball", "agility"); Fighter theEnemy2 = new Fighter("Bigger Demon", 80, 12, 12, 16, 13, 15, "fireball", "heal"); //Items Equipment Item bSword = new Item("Bronze Sword", "atk", 6); Item iSword = new Item("Iron Sword", "atk", 14); //Add Equipment player.AddEquipment(iSword); Fighter[] players = new Fighter[] { player, player2 }; Fighter[] enemies = new Fighter[] { theEnemy, theEnemy2 }; //Zum Sortieren; Initialisieren des Equipments int index = 0; foreach (Fighter f in players) { f.isPlayer = true; f.origIndex = index; f.EvalEquipment(); index++; } index = 0; foreach (Fighter f in enemies) { f.isPlayer = false; f.origIndex = index; index++; } //Zum Sortieren Fighter[] fightersSorted = new Fighter[players.Length + enemies.Length]; FSort[] fsorts = new FSort[players.Length + enemies.Length]; Array.Copy(players, fightersSorted, players.Length); Array.Copy(enemies, 0, fightersSorted, players.Length, enemies.Length); //Für BattleMsg, da ich derzeit nicht plane die Zugreihenfolge wie bei Octopath zu spoilern Fighter[] forBattleMsg = new Fighter[players.Length + enemies.Length]; Array.Copy(fightersSorted, forBattleMsg, fightersSorted.Length); //Initialisiere Statuswerte Battle.InitiateStats(players); Battle.InitiateStats(enemies); string tmp; while (true) { fightersSorted = fightersSorted.OrderByDescending(o => o.tempSpd).ToArray(); index = 0; foreach (Fighter f in fightersSorted) { fsorts[index] = new FSort(f.isPlayer, f.origIndex); index++; } StringBuilder choices = new StringBuilder(); foreach (Fighter f in players) { Battle.BattleMsg(choices, players.Length, forBattleMsg); tmp = Battle.PlayerChoice(f, enemies, inv); if (tmp != "") { choices.AppendLine(tmp); } } foreach (Fighter f in enemies) { Battle.EnemyChoice(f, players); } Console.Clear(); foreach (FSort fs in fsorts) { int ind = fs.index; if (fs.isPlayer) { int foeInd = players[ind].foeIndex; if (foeInd != -1) { Battle.Turn(players[ind], enemies[foeInd], players, enemies, inv); } else { Battle.Turn(players[ind], enemies[0], players, enemies, inv, true); } } else { int foeInd = enemies[ind].foeIndex; if (foeInd != -1) { Battle.Turn(enemies[ind], players[foeInd], players, enemies, inv); } else { Battle.Turn(enemies[ind], players[0], players, enemies, inv, true); } } } bool done = true; do { done = true; int toRemove = -1; foreach (Item it in inv) { toRemove++; if (it.reserved == true) { done = false; break; } } if (done == false) { inv.RemoveAt(toRemove); } } while (done != true); Console.WriteLine("Press any key to continue"); Console.ReadLine(); } }