新元的无名杀扩展教程(一)技能_11 事件与set函数
前言
在之前10期,我们已经了解了很多与trigger类技能相关的内容,这期是trigger类技能教学的最后一期,接下来会有2~3期的主动技讲解,这之后,技能的所有讲解内容就结束了,不定期的更新将会转向解释技能。本期中,将会讲到一些函数的等价写法。就是说不用在小括号里填东西,而直接
事件
事件及事件的触发
我们把摸牌,弃牌,用牌,恢复体力,失去体力,造成伤害,摸牌阶段,弃牌阶段等等称作一个事件。
比如,我们都知道,摸牌的函数是
player.draw()
这就是一个事件。事件就可以触发对应触发器的技能。
比如,如果我们的技能触发时机设置为摸牌。
trigger:{
player:'drawBegin'
},
当我们执行了函数:player.draw()后,就会触发带有trigger:{player:"drawBegin"},的技能
以上就是对于事件和触发事件的说明。
事件的数据表
我们根据经验可以知道,content函数中的trigger是和事件有关的对象。
还是以刚才的摸牌事件和触发器为摸牌的技能为例,
这时,在技能content函数中写的trigger.player是谁呢?
正是player。
此时,trigger.player与player是指向同一角色的。
从字面理解,trigger.player就是触发事件的角色。
有时,我们也可以看到,触发和用牌相关的技能时,会有trigger.card,trigger.cards的出现。
造成属性伤害,会有trigger.nature的出现。
多摸牌,会有trigger.num的出现
等等
把以上这些总结,可以得到两点:
①任何事件都有trigger.player
②其他的属性,如num,source,target,card,cards,nature,prompt,forced等等是根据不同的事件而出现或不出现的。
由此可见,content函数中的trigger就是事件的数据表。在下文中我们用next表示事件的数据表
set函数
而想要弄清楚trigger中的属性具体意思,就不如实战出真知。
而现在我们将用到一个set函数,它是专门为事件设置的函数。用法如下:
比如说有一个事件,其全部数据都在next这个obj中,我们现在要给他添加一个叫做'xinyuan'的属性,属性值设置成100,该怎么做?
next.set('xinyuan',100)
set要用到两个参数
参数1是属性名
参数2是属性值
除了以上演示的添加属性值外,也可以以此法更改属性值。
next属性的对应关系
我们通过日常代码的编写,可以察觉到next中属性的关系,而为了让这种关系更加明显,我将采用对比的方式来呈现。为了更加直观,会出一个关于set的视频系列。