public override void display(TableManager table, InitReplaceRequest request)
 {
     if (!table.ui.InitReplaceDialog.isDisplaying)
     {
         table.ui.InitReplaceDialog.display();
         table.ui.InitReplaceDialog.InitReplaceCardList.clearItems();
         table.ui.InitReplaceDialog.InitReplaceCardList.updateItems(table.player.init, (i, c) => i.Card.card == c, (item, card) =>
         {
             item.Card.card = card;//TODO:如果不这么做会导致下面的换卡逻辑无法使用,这口屎只能暂时吃了。
             table.setCard(item.Card, card, true);
             item.MarkImage.enabled = false;
             item.asButton.onClick.set(() =>
             {
                 item.MarkImage.enabled = !item.MarkImage.enabled;
             });
         });
         table.ui.InitReplaceDialog.InitReplaceCardList.sortItems((a, b) => table.player.init.indexOf(a.Card.card) - table.player.init.indexOf(b.Card.card));
         table.ui.InitReplaceDialog.ConfirmButtonBlack.asButton.setSelectable(true);
         table.ui.InitReplaceDialog.ConfirmButtonBlack.asButton.onClick.set(() =>
         {
             table.game.answers.answer(table.player.id, new InitReplaceResponse()
             {
                 cardsId = table.ui.InitReplaceDialog.InitReplaceCardList.Where(item => item.MarkImage.enabled).Select(item => item.Card.card.id).ToArray()
             });
             table.ui.InitReplaceDialog.ConfirmButtonBlack.asButton.setSelectable(false);
         });
     }
 }
Exemplo n.º 2
0
 public override bool update(TableManager table, THHPlayer.BurnEventArg eventArg)
 {
     if (!_timer.isStarted)
     {
         if (eventArg.player == table.player)
         {
             _card = UnityEngine.Object.Instantiate(table.ui.SelfDeck.Card_5, table.ui.SelfDeck.rectTransform.position, Quaternion.identity, table.ui.rectTransform);
         }
         else
         {
             _card = UnityEngine.Object.Instantiate(table.ui.EnemyDeck.Card_5, table.ui.EnemyDeck.rectTransform.position, Quaternion.identity, table.ui.rectTransform);
         }
         table.setCard(_card, eventArg.card, true);
         _timer.start();
     }
     if (eventArg.player == table.player)
     {
         _card.rectTransform.position = Vector3.Lerp(table.ui.SelfDeck.rectTransform.position, table.ui.SelfGraveDeck.rectTransform.position, _timer.progress);
     }
     else
     {
         _card.rectTransform.position = Vector3.Lerp(table.ui.EnemyDeck.rectTransform.position, table.ui.EnemyGraveDeck.rectTransform.position, _timer.progress);
     }
     if (!_timer.isExpired())
     {
         return(false);
     }
     UnityEngine.Object.Destroy(_card.gameObject);
     return(true);
 }
Exemplo n.º 3
0
 public override bool update(TableManager table, THHPlayer.UseEventArg eventArg)
 {
     if (eventArg.card.define is ServantCardDefine)
     {
         if (eventArg.player == table.player)
         {
             if (!table.ui.ServantPlaceHolder.Servant.isDisplaying)
             {
                 HandListItem item = table.getHand(eventArg.card);
                 if (_handToField == null)
                 {
                     _handToField = new HandToFieldAnim(table, item, table.ui.SelfFieldList, eventArg.position);
                 }
                 if (!_handToField.update(table))
                 {
                     return(false);
                 }
             }
             if (tryTargetedAnim(table, eventArg))
             {
                 return(false);
             }
             table.ui.SelfHandList.removeItem(table.getHand(eventArg.card));
             table.ui.addChild(table.ui.ServantPlaceHolder.rectTransform);
             table.ui.ServantPlaceHolder.hide();
         }
         else
         {
             var hand = table.getHand(eventArg.card);
             if (hand == null)
             {
                 throw new ActorNotFoundException(eventArg.card);
             }
             if (!table.ui.ServantPlaceHolder.Servant.isDisplaying)
             {
                 //敌方使用随从
                 if (_handToField == null)
                 {
                     _handToField = new HandToFieldAnim(table, hand, table.ui.EnemyFieldList, eventArg.position);
                 }
                 if (!_handToField.update(table))
                 {
                     return(false);
                 }
             }
             if (tryTargetedAnim(table, eventArg))
             {
                 return(false);
             }
             table.ui.EnemyHandList.removeItem(hand);
             table.ui.addChild(table.ui.ServantPlaceHolder.rectTransform);
             table.ui.ServantPlaceHolder.hide();
         }
     }
     else if (eventArg.card.define is SpellCardDefine)
     {
         if (eventArg.player == table.player)
         {
             table.ui.SelfHandList.removeItem(table.getHand(eventArg.card));
             if (tryTargetedAnim(table, eventArg))
             {
                 return(false);
             }
         }
         else
         {
             HandListItem hand = table.getHand(eventArg.card);
             table.setCard(hand.Card, eventArg.card, true);
             hand.GetComponentInChildren <PositionLerp>().setTarget(table.ui.getChild("SpellDisplay"));
             if (!SimpleAnimHelper.update(table, ref _useAnim, hand.onEnemyUse, hand.animator))
             {
                 return(false);
             }
             table.ui.EnemyHandList.removeItem(table.getHand(eventArg.card));
             if (tryTargetedAnim(table, eventArg))
             {
                 return(false);
             }
         }
     }
     else if (eventArg.card.isSkill())
     {
         if (eventArg.player == table.player)
         {
             table.setSkill(table.ui.SelfSkill, eventArg.card);
         }
         else
         {
             table.setSkill(table.ui.EnemySkill, eventArg.card);
         }
         if (tryTargetedAnim(table, eventArg))
         {
             return(false);
         }
     }
     else if (eventArg.card.isItem())
     {
         if (eventArg.player == table.player)
         {
             table.setItem(table.ui.SelfItem, eventArg.card);
             if (!SimpleAnimHelper.update(table, ref _useAnim, table.ui.SelfItem.onEquip, table.ui.SelfItem.animator))
             {
                 return(false);
             }
         }
         else
         {
             table.setItem(table.ui.EnemyItem, eventArg.card);
             if (!SimpleAnimHelper.update(table, ref _useAnim, table.ui.EnemyItem.onEquip, table.ui.EnemyItem.animator))
             {
                 return(false);
             }
         }
         if (tryTargetedAnim(table, eventArg))
         {
             return(false);
         }
     }
     return(true);
 }