.. SPDX-License-Identifier: GFDL-1.3-or-later 状态技 ====== 最后一种技能类型:状态技。所谓状态技就是那种既不被动也不主动就能产生影响的技能。所有的状态技都是全局生效的。 创建一个状态技的格式为: :: 状态技 [禁止指定目标:<代码块>] [选牌规则:<代码块> 视为规则:<代码块>] [距离修正:<代码块>] [手牌上限修正:<代码块>] [手牌上限固定:<代码块>] [出牌次数修正:<代码块>] [出牌距离修正:<代码块>] [出牌目标数量修正:<代码块>] [攻击范围修正:<代码块>] [攻击范围固定:<代码块>] 可以看出,除了“状态技”三个字之外,所有的都是可选的要素,但语法规定至少要有一个可选要素。这些可选要素又分为许多个大类,具体为以下几种: 卡牌禁止类 ---------- 卡牌禁止类就是让某人不能成为某种卡牌的目标,比如空城、帷幕等技能。(注意这与毅重这种令卡牌无效的技能有本质区别) 控制这种东西的代码块是\ ``禁止指定目标:``\ 之后的。在这个代码块中,你可以使用以下的预定义变量: - ``'目标'``\ :可能成为这张卡牌的目标的玩家。 - ``'来源'``\ :可能打算使用这张卡牌的玩家。 - ``'卡牌'``\ :可能会被使用的卡牌。 在这个代码块中返回真的话,那么就意味着这个目标被禁止成为来源使用此牌的目标。 注意,你不能在这个代码块中使用预定义变量“你”。这是因为,每当某人将手牌区的牌点亮后,禁止技就会在此时发挥作用,也就是说禁止技对所有人皆有效。 锁定视为类 ---------- 锁定视为就是像红颜这样的技能,某一类卡牌直接被视为另一种卡牌。 控制锁定视为的代码块是\ ``选牌规则:``\ 和\ ``视为规则:``\ 这两种。二者缺一不可。 在这两个代码块中,你都可以使用以下的预定义变量: - ``你``\ :玩家自己。 - ``'备选卡牌'``\ :每一张未被选择的卡牌,类型为卡牌类型。 注意到预定义变量只剩两个了。这是因为锁定视为技一次只会影响到一张牌,没有像“锁定技,你的两张杀均视为桃。”这种不合理的锁定视为技存在。 距离修改类 ---------- 这种技能指的是像马术、飞影这样影响距离计算的技能。 控制其代码块是\ ``距离修正:``\ 之后的。在这个代码块中,你可以使用以下的预定义变量: - ``'目标'``\ :位于本次距离计算终点的玩家。 - ``'来源'``\ :位于本次距离计算起点的玩家。 在这个函数中返回正数的话,就会导致来源到目标计算距离增加相应的数值。同理,返回负数的话,会导致来源到目标计算距离减少。 手牌上限修改类 -------------- 诸如慎拒、界英姿这类能修改手牌上限的技能。 控制锁定视为的代码块是\ ``手牌上限修正:``\ 和\ ``手牌上限固定:``\ 这两种。 在这两个代码块中,你都可以使用以下的预定义变量: - ``'玩家'``\ :将要计算手牌上限的玩家。 在\ ``手牌上限修正:``\ 中返回正数或负数可以修正手牌上限。另一个中则是直接返回想要的手牌上限。 两个代码块不允许同时存在。如果共存的话,手牌上限固定将会被忽略。 卡牌效果增强类 -------------- 诸如咆哮、天义这种能打破规则使用卡牌的技能。 控制卡牌增强的代码块是\ ``出牌次数修正:``\ 、\ ``出牌距离修正:``\ 、\ ``出牌目标数量修正:``\ 。根据返回值,第一个影响出牌次数限制,第二个影响出牌距离限制,第三个影响这张牌能选择的最大目标数量。 在这些代码块中能使用以下预定义变量: - ``'玩家'``\ :将要使用此牌的玩家。 - ``'卡牌'``\ :将要使用的卡牌。 攻击范围修改类 -------------- 和修改手牌上限一样,区别就是这个修改的是攻击范围。