private void BeginSelection()
    {
        if (selectedCardZone.Count < 1)
        {
            return;
        }

        battleState.SelectionStarted = true;
        _card = selectedCardZone.Cards[0];
        Message.Publish(new TargetSelectionBegun(_card.Type));

        cardPresenter.Set(_card, () => { });
        cardPresenter.SetHighlightGraphicState(true);
        Log.Info($"Showing Selected Card {_card.Name}", gameObject);
        uiView.SetActive(true);

        _actionIndex   = 0;
        _numActions    = _card.ActionSequences.Length;
        _actionTargets = new Target[_numActions];
        if (_numActions == 0)
        {
            Log.Info($"Card {_card.Name} has no Card Actions");
            OnTargetConfirmed(Group.All, Scope.All);
            return;
        }

        PresentPossibleTargets();
    }
示例#2
0
    public void Init(CardType card, int numTotal, int numAvailable)
    {
        var action = numAvailable > 0
            ? (Action)(() => AddCard(card))
            : () => { };

        presenter.Set(card, action);
        numCopiesLabel.text = $"{numAvailable}/{numTotal}";
    }
示例#3
0
    private void UpdateAffordability()
    {
        if (_purchased)
        {
            return;
        }

        var canAfford = party.Credits >= _price;

        cardPresenter.Set(_card, canAfford ? PurchaseCard : (Action)(() => { }));
        if (!canAfford)
        {
            cardPresenter.SetDisabled(true);
        }
    }
示例#4
0
    private void BeginSelection()
    {
        if (selectedCardZone.Count < 1)
        {
            return;
        }

        battleState.SelectionStarted = true;
        onTargetSelectionStarted.Publish();
        _selectedCard        = selectedCardZone.Cards[0];
        _isReadyForSelection = false;

        var cardClass = _selectedCard.LimitedToClass;

        if (!cardClass.IsPresent)
        {
            Debug.Log($"Card {_selectedCard.Name} is not playable by Heroes", _selectedCard);
            return;
        }

        cardPresenter.Set(_selectedCard, () => { });
        uiView.SetActive(true);

        _hero = battleState.Members.Values.FirstOrDefault(x => x.Class.Equals(cardClass.Value));
        if (_hero == null)
        {
            Debug.Log($"Could not find Party Member with Class {cardClass.Value}");
            return;
        }

        _actionIndex   = 0;
        _numActions    = _selectedCard.Actions.Length;
        _actionTargets = new Target[_numActions];
        if (_numActions == 0)
        {
            Debug.Log($"Card {_selectedCard.Name} has no Card Actions");
            OnTargetConfirmed();
            return;
        }

        PresentPossibleTargets();
    }
示例#5
0
 public void Init(Card card)
 {
     presenter.Set(card, () => AddCard(card));
 }
示例#6
0
 public void Init(CardType card)
 {
     presenter.Set(card, () => {});
 }