5. 移动牌#
本节讲述关于移动牌的结算规则。移动牌指的是,玩家用手把一张游戏牌从一处移动到 另一处的操作。整个游戏中最最常见的事件就是移动牌。
毫无疑问,移动牌操作的对象只能是实体牌。
移动牌本身属于事件之一。在事件的各要素中,其只有主效果。
5.1. 移牌信息#
移动牌事件携带的数据自然就是移牌信息了。移牌信息有以下要素:
要移动的实体牌
移动的来源区域
移动的目标区域
移动的来源角色
移动的目标角色
移动类型:无类型,摸牌,弃牌,交给,置入,置入弃牌堆,获得,交换,使用, 打出,判定,重铸
移动的发起者
相关的技能名
移动是否可见
私人牌堆名(在目标区域为私人牌堆的情况下)
在一次移动牌中,这个信息可以同时携带多个,用来表示在一次移动事件中同时进行两次 移动。
提示
同时移动的例子就是鲁肃的缔盟中的交换双方手牌,这个交换手牌分为两次移动:
将双方的手牌同时移动到处理区;
将处理区中一方的手牌同时移动到另一方手中。
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
摸牌是移动的一种,但是它特地增设了“摸牌前”时机。这是为了实现从牌堆底摸牌。