private void GetPossibleNewUnitByMinCost(ReplaceUnitInfo replaceUnitInfo)
        {
            List <Card> possibleUnits = DataManager.CachedCardsLibraryData.Cards.FindAll(x => x.Cost >= replaceUnitInfo.NewUnitPossibleCost);

            if (possibleUnits.Count == 0)
            {
                possibleUnits = DataManager.CachedCardsLibraryData.Cards.FindAll(x => x.Cost >= replaceUnitInfo.OldUnitCost);
            }

            replaceUnitInfo.NewUnitCardTitle = possibleUnits[UnityEngine.Random.Range(0, possibleUnits.Count)].Name;
        }
        private void GetPossibleNewUnits()
        {
            ReplaceUnitInfo replaceUnitInfo = null;

            foreach (BoardUnit unit in _boardUnits)
            {
                replaceUnitInfo = new ReplaceUnitInfo()
                {
                    OldUnitCost         = unit.Card.RealCost,
                    NewUnitPossibleCost = unit.Card.RealCost + 1,
                    OldUnit             = unit,
                    OwnerPlayer         = unit.OwnerPlayer
                };

                _replaceUnitInfos.Add(replaceUnitInfo);
            }

            _replaceUnitInfos.ForEach(GetPossibleNewUnitByMinCost);
        }