5. 移动牌#

本节讲述关于移动牌的结算规则。移动牌指的是,玩家用手把一张游戏牌从一处移动到 另一处的操作。整个游戏中最最常见的事件就是移动牌。

毫无疑问,移动牌操作的对象只能是实体牌。

移动牌本身属于事件之一。在事件的各要素中,其只有主效果。

5.1. 移牌信息#

移动牌事件携带的数据自然就是移牌信息了。移牌信息有以下要素:

  • 要移动的实体牌

  • 移动的来源区域

  • 移动的目标区域

  • 移动的来源角色

  • 移动的目标角色

  • 移动类型:无类型,摸牌,弃牌,交给,置入,置入弃牌堆,获得,交换,使用, 打出,判定,重铸

  • 移动的发起者

  • 相关的技能名

  • 移动是否可见

  • 私人牌堆名(在目标区域为私人牌堆的情况下)

在一次移动牌中,这个信息可以同时携带多个,用来表示在一次移动事件中同时进行两次 移动。

提示

同时移动的例子就是鲁肃的缔盟中的交换双方手牌,这个交换手牌分为两次移动:

  1. 将双方的手牌同时移动到处理区;

  2. 将处理区中一方的手牌同时移动到另一方手中。

5.2. 移牌的流程#

移动牌涉及两个触发时机:卡牌移动前、卡牌移动后。都没有承担者。

fk.BeforeCardsMove @卡牌移动前 (若在触发本时机技能的on_use函数中return true则导致本事件与后续此事件流程终止)

fk.AfterCardsMove @卡牌移动后

若发现试图将牌置入已废除的区域,改为置入弃牌堆
触发“卡牌移动前”
将对应的卡牌从一处移动到另一处
触发“卡牌移动后”

两个时机都没有承担者,data为MoveCardsData,继承MoveCardsDataSpec。
具体参考解析TriggerData里的MoveCardsDataSpec。

其中,卡牌移动前这个时机可能会有一些触发技修改移牌信息。

提示

有一部分规则以触发技的形式存在着。例如一些牌说明着自己离开某某区域时或者 进入某某区域时改为销毁之,这个就由一个负责销毁牌的技能来进行。

5.3. 摸牌流程#

fk.BeforeDrawCard @摸牌前 (若在触发本时机技能的on_use函数中return true则导致本事件与后续此事件流程终止)

触发“摸牌前”
根据摸牌信息,将牌堆中相关的牌移动到角色手中
“摸牌前”中的data为DrawData,继承DrawDataSpec

摸牌是移动的一种,但是它特地增设了“摸牌前”时机。这是为了实现从牌堆底摸牌。