public CardName(ECardName cardName)
 {
     this.Value = cardName.ToString();
 }
Beispiel #2
0
    private static void _EndMove()
    {
        //yield return new WaitForSeconds(5f);

        if (_bot.Hand.Count <= _bot.CurrentHealth)
        {
            _bot.endMove = true;
            return;// yield break;
        }

        _bot.Hand.RemoveAll(card => card.CardType == ECardType.Weapon);

        if (_bot.Hand.Count <= _bot.CurrentHealth)
        {
            _bot.endMove = true;
            return;// yield break;
        }

        _bot.Hand.RemoveAll(card => card.CardType == ECardType.Buff);

        if (_bot.Hand.Count <= _bot.CurrentHealth)
        {
            _bot.endMove = true;
            return;// yield break;
        }

        ECardName[] cardsToDelete = new ECardName[]
        {
            ECardName.Jail,
            ECardName.Duel,
            ECardName.Indians,
            ECardName.Beauty,
            ECardName.Panic,
            ECardName.Saloon,
            ECardName.Stagecoach,
            ECardName.Store,
            ECardName.WellsFargo,
            ECardName.Bang,
            ECardName.Beer,
            ECardName.Gatling,
            ECardName.Missed
        };

        foreach (ECardName name in cardsToDelete)
        {
            List <PackAsset> cards = new List <PackAsset>(_bot.Hand.FindAll(card => card.CardName == name));

            foreach (PackAsset card in cards)
            {
                _bot.Hand.Remove(card);
                if (_bot.Hand.Count <= _bot.CurrentHealth)
                {
                    _bot.endMove = true;
                    return;// yield break;
                }
            }
        }

        Debug.Log(_bot.name + " can't delete cards any more, change algorithm");
        _bot.Hand.Clear();
    }