private IEnumerator DamagePhase(Player.Player player, EnvironmentCard environmentCard)
        {
            var otherPlayer = _playerCollection.GetOtherPlayer(player);

            yield return(environmentCard.Damage(player.CurrentSelectedCard.Card, otherPlayer.CurrentSelectedCard.Card,
                                                _isSurge.Value, _powerSurge, _shielded, _elusive, _isBossFight.Value, _isVictory, player.PlayerId));
        }
    private void Update()
    {
        if (PlayerMoving.Value == true)
        {
            transform.position -= Vector3.left * PlayerSpeed.Value * Time.deltaTime / SpeedDevider;
        }

        if (player == null)
        {
            player = Player.Instance.transform;
        }
        if (Vector2.Distance(transform.position, player.position) > dist1)
        {
            if (player.position.x < transform.position.x)
            {
                if (rightNeighbour == null)
                {
                    GameObject newCardGO = Instantiate(gameObject);
                    newCardGO.transform.SetParent(transform.parent);
                    Vector3 position = transform.position;
                    position.x -= Width;
                    newCardGO.transform.position = position;
                    newCardGO.name = name;
                    rightNeighbour = newCardGO.GetComponent <EnvironmentCard>();
                    rightNeighbour.leftNeighbour = this;
                }
            }
            else
            {
                if (leftNeighbour == null)
                {
                    GameObject newCardGO = Instantiate(gameObject);
                    newCardGO.transform.SetParent(transform.parent);
                    Vector3 position = transform.position;
                    position.x += Width;
                    newCardGO.transform.position = position;
                    newCardGO.name = name;
                    leftNeighbour  = newCardGO.GetComponent <EnvironmentCard>();
                    leftNeighbour.rightNeighbour = this;
                }
            }
        }
        if (Vector2.Distance(transform.position, player.position) > dist2)
        {
            if (rightNeighbour != null)
            {
                rightNeighbour.leftNeighbour = null;
            }

            if (leftNeighbour != null)
            {
                leftNeighbour.rightNeighbour = null;
            }

            Destroy(gameObject);
        }
    }
        private IEnumerator RevengePhase(Player.Player player, EnvironmentCard environmentCard)
        {
            yield return(environmentCard.ApplyEffects(_revengeTrigger, player));

            _environmentDeck.RemoveAllDefeated();
        }
 private IEnumerator DefensePhase(Player.Player player, EnvironmentCard environmentCard)
 {
     yield return(environmentCard.ApplyEffects(_defenseTrigger, player));
 }
 private IEnumerator AmbushPhase(Player.Player player, EnvironmentCard environmentCard)
 {
     // TODO: HERE GOES THE ANIMATION FOR FLIPPING A CARD FROM THE ENVIRONMENT DECK
     yield return(environmentCard.ApplyEffects(_ambushTrigger, player));
 }