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