FreeKill/docs/fkp/usr/viewas_skill.rst

83 lines
3.6 KiB
ReStructuredText
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

.. SPDX-License-Identifier: GFDL-1.3-or-later
视为技能
========
视为技能概述
------------
视为技就是把一张或者好几张牌当某张其他牌使用的技能,比如武圣倾国等等,但不包括奇策这种。
在fkparse中创建视为技能的语法格式为
::
视为技 条件:<代码块> 选牌规则:<代码块> 可以点确定:<代码块>
视为规则:<代码块> [ 响应条件:<代码块> 响应规则:<字符串数组> ]
可以看出,视为技的创建格式和主动技十分相似。事实上,由于某些原因,视为技和主动技是冲突的,不能同时存在同一个技能下面。如果同时存在的话,则只有主动技会起作用。
下面来一一叙述各个\ ``代码块``\ 的意义。
条件
~~~~
条件指的是视为技在出牌阶段的空闲时间点能不能被使用。更加确切的说,“条件”是指技能按钮需要被点亮的一系列条件,如果这些条件不能满足的话,技能按钮就会显示为灰色。例如技能“倾国”是把黑牌当闪用,那么自然就不能在出牌阶段主动使用了。
在\ ``条件:``\ 后面跟随的\ ``<代码块>``\ 中,玩家可以使用以下预定义的变量名:
- ````\ :玩家自己。
选牌规则
~~~~~~~~
选牌规则指的是技能按钮按下之后,哪些手牌/装备区的牌可以被选择,哪些不能。“选牌规则”会在玩家每次点击技能按钮,或者点选一张卡牌后,对每张未被选择的卡牌各自进行一次判断,根据判断的结果来确定要不要将卡牌点亮。
在\ ``选牌规则:``\ 后面跟随的\ ``<代码块>``\ 中,玩家可以使用以下预定义的变量名:
- ````\ :玩家自己。
- ``'已选卡牌'``\ :已经被选中的卡牌,类型为卡牌数组。
- ``'备选卡牌'``\ :每一张未被选择的卡牌,类型为卡牌类型。
可以点确定
~~~~~~~~~~
顾名思义,“可以点确定”指的是技能按钮已经被激活后的某一个时刻下,确定按钮能否被点击。实际上,视为技必须要先通过“可以点确定”的检测,才会去调用“视为规则”去获得转化之后的牌。
在\ ``可以点确定:``\ 后面跟随的\ ``<代码块>``\ 中,玩家可以使用以下预定义的变量名:
- ````\ :玩家自己。
- ``'已选卡牌'``\ :已经被选中的卡牌,类型为卡牌数组。
视为规则
~~~~~~~~
视为规则自然就是想要视为什么牌了。玩家可以在这里编写各种控制结构之类的,最后返回一张虚拟牌即可。
关于如何返回虚拟牌,可以参见“所有的预定义函数”一章,或者直接看示例。
在\ ``视为规则:``\ 后面跟随的\ ``<代码块>``\ 中,玩家可以使用以下预定义的变量名:
- ````\ :玩家自己。
- ``'选择的卡牌'``\ :已经被选中的卡牌,类型为卡牌数组。
为什么和前面的不太相同,这个我也不太懂 = =
响应条件
~~~~~~~~
与主动技不同,视为技转化的卡牌有些是可以在响应时被使用或者打出的。而“响应条件”自然就是判断能否响应了。一般也就判断一下隐藏标记之类的吧,或者自己有没有牌之类的(防烧条,然而现在没法判断自己是不是没牌)
在\ ``响应条件:``\ 后面跟随的\ ``<代码块>``\ 中,玩家可以使用以下预定义的变量名:
- ````\ :玩家自己。
响应规则
~~~~~~~~
响应规则是一个字符串数组,表示这个视为技可以响应的所有牌的类型。你可以简单的只写个牌名上去,也可以通过\ ``'创建卡牌规则'``\ 函数创造出相当复杂的响应规则。