private IEnumerator GameLoop() { yield return(DeckPreparationPhase()); _isGameOver.Value = false; _isVictory.Value = false; while (!_isGameOver.Value || _isVictory.Value) { _environmentDeck.UpdateAll(); foreach (var player in _playerCollection.Value) { yield return(AmbushPhase(player, _environmentDeck.GetByPlayer(player.PlayerId))); _environmentDeck.UpdateAll(); } _isGameOver.Value = _playerCollection.Value.Any(p => !p.Deck.Cards.Any()); if (_isGameOver.Value) { break; } yield return(DrawPhase()); Debug.Log("Action Select Phase"); yield return(ActionSelectPhase()); foreach (var player in _playerCollection.Value) { Debug.Log($"Attack Phase [Player {player.PlayerId}]"); yield return(AttackPhase(player)); } _surgeHandler.RemoveSurge(); yield return(new WaitForSeconds(2)); Debug.Log("Discard Phase"); yield return(DiscardPhase()); } AudioManager.Instance.SwitchToMain(); UnityEngine.SceneManagement.SceneManager.LoadScene("End Screen"); }
public void UpdateCard() { if (_environmentDeck.Count == 0) { return; } _card = _environmentDeck.GetByPlayer(_playerId); UpdateText(); if (_card.NameId == _anomalieBossData.NameId) { _cardImage.enabled = false; _anomaliesBoss.gameObject.SetActive(true); } else if (_card.NameId == _meteroitBossData.NameId) { _cardImage.enabled = false; _meteroitBoss.gameObject.SetActive(true); } else if (_card.NameId == _technicalsBossData.NameId) { _cardImage.enabled = false; _technicalsBoss.gameObject.SetActive(true); } else { _cardImage.sprite = _card.Sprite; } _valueTextMesh.text = _card.Value.ToString(); _valueImage.sprite = _card.ValueBackground; _borderImage.sprite = _card.CardFrame; foreach (Transform child in _fractionTransform) { Destroy(child.gameObject); } foreach (var fraction in _card.Fractions) { SpawnFractionIcon(fraction); } }