private void NextTurn(object sender, EventArgs eventArgs) { Debug.Log(CurrentCombat); if (!CurrentCombat.IsPlayerTurn) { foreach (var enemy in Enemies) { enemy.PerformCombatAction(); } } if (eventArgs is CombatEventArgs combatEventArgs) { //Debug.Log(combatEventArgs.TurnNumber); } CombatHistory.Enqueue(CurrentCombat); TurnNumber++; CurrentHand = Game.PlayerDeck.DrawHand(); GetNewHand?.Invoke(CurrentHand); var lastCombat = CurrentCombat; CurrentCombat = new Combat { OnTurnCompleted = NextTurn, TurnNumber = TurnNumber, IsPlayerTurn = !lastCombat.IsPlayerTurn }; }
public void StartCombat(bool playerStarts) { CurrentHand = Game.PlayerDeck.DrawHand(); GetNewHand?.Invoke(CurrentHand); CombatHistory = new Queue <Combat>(); TurnNumber = 1; CurrentCombat = new Combat { OnTurnCompleted = NextTurn, CardsInCombat = new List <Card>(), TurnNumber = TurnNumber, IsPlayerTurn = playerStarts }; //Spawn Enemies int enemyCount = Random.Range(1, 5); int enemyPoolAmount = Game.EnemyPool.Count; for (var i = 0; i < enemyCount; i++) { var enemyToSpawn = Game.Spawner.SpawnEnemy(Game.EnemyPool[Random.Range(0, enemyPoolAmount)], i); this.Enemies.Add(enemyToSpawn); } //CurrentCombat.EndTurn(); }