//levels up or class changes a card on the field //should only be called by the ContextMenu buttons and so doesn't do any checks on location, etc. public void PlayToFieldFromHand(BasicCard card, bool classChange) { //Increment the used bond count before anything on the board changes. if (classChange) { GameManager.instance.bondDeployCount += card.PromotionCost; } else //this is just a level up { GameManager.instance.bondDeployCount += card.DeploymentCost; } //remove the card from the hand. Hand.Remove(card); //Find the location on the field to play the card to. CardStack stackToAddTo = FieldStacks.Find(x => x.TopCard.CompareNames(card, true)); //Post this action to the Game Log if (classChange) { CardReader.instance.UpdateGameLog(card.Owner.playerName + " class changes " + stackToAddTo.TopCard.CharName + " into " + card.CharName + ": " + card.CharTitle + "!"); } else { CardReader.instance.UpdateGameLog(card.Owner.playerName + " levels up " + stackToAddTo.TopCard.CharName + " into " + card.CharName + ": " + card.CharTitle + "!"); } stackToAddTo.AddCardToStack(card, classChange); //Draw a card and/or call skills as appropriate. if (classChange) { Draw(1); //Call class change SKILLS } else //this is just a level up { //call level up SKILLS } //TEMP location for the FieldChangeEvent skill calls. Should actually be before class change and/or level up skills once implemented? FieldChangeEvent.Invoke(); //once any skills have activated, then we can update the deployment text with any changes. GameManager.instance.UpdateDeploymentHintText(); }