void BeginNormalSummon(Card summon) { cardHandleState = CardHandleState.TRIBUTE; cardToSummon = summon; tributedCards = new List <Card>(); ConfirmNormalSummon(); }
public void BeginAttack(Card target) { SetTurnState(TurnState.ATTACK); cardHandleState = CardHandleState.NORMAL; currentTarget = target; if (currentAttacker.face == Card.Face.FACEDOWN) { currentAttacker.FlipCard(); } if (currentTarget.face == Card.Face.FACEDOWN) { currentTarget.FlipCard(); } var denAttacker = currentAttacker.dataInstance as DenigenData; var denTarget = currentTarget.dataInstance as DenigenData; int atk = 0, sh = 0; GetTypeStats(denAttacker, denTarget, ref atk, ref sh); var diff = atk - sh; // if atk is greater, then discard target and player loses pp if (diff > 0) { currentTarget.player.LosePoints(Mathf.Abs(diff)); currentTarget.Destroy(); GameControl.control.tributeMessage.gameObject.SetActive(false); } else { currentAttacker.player.LosePoints(Mathf.Abs(diff)); GameControl.control.tributeMessage.text = "not stronk enough"; } // after attack currentAttacker.hasAttacked = true; currentTarget = null; currentAttacker = null; // check if we go to POST bool canStillAttack = false; foreach (var c in field) { if (!c.hasAttacked) { canStillAttack = true; break; } } if (!canStillAttack) { SetTurnState(TurnState.POST); } }
void BeginTarget(Card card) { if (OpponentTargetsExist() && !card.hasAttacked) { currentAttacker = card; cardHandleState = CardHandleState.TARGET; GameControl.control.tributeMessage.text = "Select target"; GameControl.control.tributeMessage.gameObject.SetActive(true); } }
public void EndTurn() { if (GameControl.control.CurrentPlayer != this) { return; } cardHandleState = CardHandleState.NORMAL; SetTurnState(TurnState.STANDBY); GameControl.control.NextTurn(); }
public void SetTurnState(TurnState newState) { if (turnState == newState) { return; } turnState = newState; switch (turnState) { case TurnState.DRAW: break; case TurnState.SUMMON: normalSummonsPerformed = 0; break; case TurnState.ATTACK: break; case TurnState.POST: break; case TurnState.OUTOFGAME: break; case TurnState.STANDBY: // at end of turn, set any field cards hasAttacked flag to false foreach (var c in field) { c.hasAttacked = false; } tributedCards.Clear(); cardHandleState = CardHandleState.NORMAL; currentAttacker = null; currentTarget = null; cardToSummon = null; readyToNormalSummon = false; break; } }