public void SendCardToGraveyard(TakeCardAbilityEventInfo tkeCardInfo, RectTransform cardRect) { ISendCardToGraveyardCommand destroyCardCmd = new ISendCardToGraveyardCommand(tkeCardInfo.cardTaker, tkeCardInfo.card); Invoker.AddNewCommand(destroyCardCmd); Invoker.ExecuteCommands(); //Motion sendToGraveyardMotion = cardManagerUI.OnCardSendToGraveyard(cardRect, tkeCardInfo.cardTaker.PlayerID); //InvokerMotion.AddNewMotion(sendToGraveyardMotion); //InvokerMotion.StartExecution(cardManagerUI); Animotion sendToGraveyardMotion = cardManagerUI.OnCardSendToGraveyardAnimotion(cardRect, tkeCardInfo.cardTaker.OwnerPlayerID); InvokerAnimotion.AddNewMotion(sendToGraveyardMotion); InvokerAnimotion.StartExecution(cardManagerUI); }
private void TakeCardFromDeck(TakeCardAbilityEventInfo tkeCardInfo) { IAddCardCommand addCardCmd = new IAddCardCommand(tkeCardInfo.cardTaker, tkeCardInfo.card); Invoker.AddNewCommand(addCardCmd); Invoker.ExecuteCommands(); GameObject cardGo = cardManagerUI.CreateNewCardPrefab(tkeCardInfo.card, tkeCardInfo.cardTaker.OwnerPlayerID, this); //Motion takeCardMotion = cardManagerUI.AddCard(cardGo, tkeCardInfo.cardTaker.PlayerID); //InvokerMotion.AddNewMotion(takeCardMotion); //InvokerMotion.StartExecution(cardManagerUI); Animotion takeCardMotion = cardManagerUI.AddCardAnimotion(cardGo, tkeCardInfo.cardTaker.OwnerPlayerID); InvokerAnimotion.AddNewMotion(takeCardMotion); InvokerAnimotion.StartExecution(cardManagerUI); // ENTRAMOS EN ESTE ESTADO PARA PODER TOMAR LA CARD Y SOLO VER LA ANIMACION TakeCardState spawn = new TakeCardState(game, game.baseStateMachine.currentState); game.baseStateMachine.PopState(true); game.baseStateMachine.PushState(spawn); }
public void OnTakeCard(Player player) { TakeCardAbility takceCardAbility = (TakeCardAbility)player.Abilities[ABILITYTYPE.TAKEACARD]; TakeCardAbilityEventInfo tkeCardInfo = new TakeCardAbilityEventInfo(player, PeekCardFromDeck(player), PeekCardFromDeck(player).IDInGame); takceCardAbility.SetRequireGameData(tkeCardInfo); StartPerform(takceCardAbility); if (takceCardAbility.CanIExecute() == false) { if (debugOn) { Debug.Log("SPAWN ABILITY NO SE PUEDE EJECUTAR"); } return; } tkeCardInfo.card = TakeCardFromDeck(player); TakeCardFromDeck(tkeCardInfo); Perform(takceCardAbility); EndPerform(takceCardAbility); //cardIndex++; }