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); } }
/// <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); }