Exemple #1
0
    internal override void UseCard()
    {
        PlayerInGame localPlayer = PlayerInGame.localPlayerInGame;

        // If target can be chosen
        if (choosable)
        {
            //Debug.Log("Putting choosable card on table");
            transform.SetParent(localPlayer.handContent);
            // Storing card to use it upon choosing target
            localPlayer.storedObject = this.gameObject;

            switch (target)
            {
            case Target.Player:
                ChoicePanel.PrepareToReceiveObjects(ChoicePanelTitle.ChoosePlayerTarget);
                ChoicePanel.ReceivePlayersToChoose();
                break;

            case Target.Monster:
                if (TableDropZone.singleton.transform.GetComponentsInChildren <MonsterCard>().Length > 1)    // If there are multiple monsters in battle
                {
                    ChoicePanel.PrepareToReceiveObjects(ChoicePanelTitle.ChooseMonsterToBuff);
                    foreach (var monster in TableDropZone.singleton.transform.GetComponent <TableDropZone>().BorrowMonsterCards())
                    {
                        ChoicePanel.ReceiveObjectToChoose(monster);     // Create placeholders of monsters on table and send monsters to choice panel
                    }
                }
                else
                {
                    localPlayer.UseStoredCardOnTarget(gameManager.fightingMonsters[0].GetComponent <Card>().GetNetId());    // Apply Buff to only Monster in battle
                }
                break;

            case Target.Any:
                ChoicePanel.PrepareToReceiveObjects(ChoicePanelTitle.ChooseFightingTarget);
                foreach (var monster in TableDropZone.singleton.transform.GetComponent <TableDropZone>().BorrowMonsterCards())
                {
                    ChoicePanel.ReceiveObjectToChoose(monster);
                }
                ChoicePanel.ReceiveFightingPlayersToChoose();
                break;

            default:
                break;
            }
        }
        else
        {
            localPlayer.UseCardOnLocalPlayer(this.netId);
        }
    }
Exemple #2
0
    /// <summary> Checking if player can start a fight. </summary>
    internal override void UseCard()
    {
        PlayerInGame localPlayer = PlayerInGame.localPlayerInGame;

        if (gameManager.turnPhase != TurnPhase.Search || gameManager.fightInProggres || !localPlayer.hasTurn || gameManager.foughtInThisRound)
        {
            InfoPanel.AlertCannotUseCard();
            // Return card to hand
            StartCoroutine(
                GetComponent <Draggable>()
                .ClientSlideWithNewPlaceholder(PlayerInGame.localPlayerInGame.handContent)
                );
            return;
        }

        localPlayer.UseCardOnLocalPlayer(this.netId);
    }