Beispiel #1
0
    public static void Click(Entity entity)
    {
        if (State != BattleActionState.SelectTargets || _activeCard == null)
        {
            return;
        }

        _targets.Add(entity);

        if (_activeCard.MeCard.NumTargets > _targets.Count)
        {
            return;
        }

        State = BattleActionState.HandleTurn;
        if (_activeCard.MeCard.NumTargets < _targets.Count)
        {
            Debug.Log("Too many targets! Card: " + _activeCard.GetType().FullName);
            _activeCard.MeCard.Cast(_targets.Take(_activeCard.MeCard.NumTargets).ToList());
        }
        else if (_activeCard.MeCard.NumTargets == _targets.Count)
        {
            _activeCard.MeCard.Cast(_targets);
        }

        Deck.Discards.Add(_activeCard.MeCard);
        _activeCard.DestroyCard();
        _activeCard = null;
        _targets.Clear();
        Deck.DrawCard();
        RoomMB.ActiveRoom.StartCoroutine(WaitAndAttackPlayer());
    }
Beispiel #2
0
    public static void ClearActive()
    {
        if (State == BattleActionState.HandleTurn)
        {
            return;
        }

        _activeCard = null;
        _targets.Clear();
        State = BattleActionState.SelectCard;
    }
Beispiel #3
0
    public static void Click(CardMB cardMb)
    {
        if (State != BattleActionState.SelectCard)
        {
            return;
        }
        if (!Player.PlayerRef.CanCast(cardMb.MeCard))
        {
            return;
        }

        _activeCard = cardMb;
        State       = BattleActionState.SelectTargets;
    }
Beispiel #4
0
    private static IEnumerator WaitAndAttackPlayer()
    {
        yield return(new WaitForSeconds(1.6f));

        if (BattleManager.BattleManagerRef.Enemies.Count != 0)
        {
            List <Entity> enemies   = BattleManager.BattleManagerRef.Enemies;
            Entity        attacking = enemies[Random.Range(0, enemies.Count)];
            attacking.MeEntityMB.Attack();
            yield return(new WaitForSeconds(0.7f));

            Player.PlayerRef.TakeHitDamage(attacking.GetAttackDamage());
            yield return(new WaitForSeconds(1));

            if (CheckSpellsUsable())
            {
                State = BattleActionState.SelectCard;
            }
        }
    }