-
Notifications
You must be signed in to change notification settings - Fork 0
/
HM基本结算原则.txt
125 lines (105 loc) · 4.71 KB
/
HM基本结算原则.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
一、基本触发技的结算:
每个触发技都对应一个onTriggered(eventName, data)函数,eventName是一个字符串,data表示与该事件相关的一些信息。对于"damageDealt"事件来讲,携带的信息包括指向伤害来源的指针、指向受到伤害者的指针以及伤害点数等内容。
当一个时机来临时,系统触发trigger(eventName)函数,该函数会考虑到priority以及登场顺序等因素,遍历所有随从(英雄、奥秘等),寻找所有在该时机下触发的触发技,并且依次触发这些随从(英雄、奥秘等)的onTriggered函数。
需要注意的是,在一个技能的结算中(即一个onTriggered函数的结算中),有可能会触发新的事件,触发新的onTriggered函数,最终程序的执行流会形成一个栈。
举例说明:场上有按照上场顺序,有攻城车(回合开始时对一个随机敌方造成2伤害)以及纳特帕格(回合开始时50%几率抽一张牌)
engine.trigger("turnStart")
攻城车.onTriggered("turnStart")
engine.damage(攻城车, target, 2)
engine.trigger("damageDealing")
相关技能结算
engine.trigger("damageReceiving")
相关技能结算
engine.trigger("damageDealt")
相关技能结算
engine.trigger("damageReceived")
相关技能结算
结算结束
纳特帕格.onTriggered("turnStart")
engine.drawCards(1)
摸牌事件流程结算及时机触发
结算结束
遍历结束
结算结束
在一个事件流程的结算中,事件相关的data内容可能会发生改变(如:在伤害结算中,有些技能可以改变伤害目标,有些技能可以直接将伤害降为0)。比如在damageReceiving时机中,data中伤害数值被降为0,那么就不会继续触发后续的damageDealt和damageReceived事件。
二、亡语触发机制:
在一个事件流程的每个(或每几个)阶段结束后,都会进行一次死亡检测阶段。在一个事件流程的一个阶段尚未结束时,一般不进行死亡检测。
死亡检测阶段的内容:检测当时所有生命值<=0的随从,并且均加上to_be_destroyed标记。
按照入场顺序将所有具有to_be_destroyed标记的随从(英雄)排列,对每个随从,依次触发如下时机:
移出战场(消除光环)
死亡时(亡语触发)
死亡后(食腐土狼、洗脚;复制,复仇,轮回等)
死亡检测阶段结束后,继续检查是否还有新的生命值<=0的随从,若有,重复上述阶段;若无,进行事件流程的下一个阶段。
有些效果可以直接消灭一个随从。这类消灭类效果的结算:
将且只将要消灭的随从加上to_be_destroyed标记,并且立即进行一个死亡检测阶段。但如果该死亡检测阶段产生了新的生命值<=0的随从,暂不结算,仍等到一个阶段结束之后再结算。
关于武器的亡语:如果是因为英雄攻击造成耐久度降为0而触发亡语,则按照上述结算方式,在一个阶段之后结算;如果是因为替换武器而顶掉原来的武器触发亡语,或者因为某些随从的战吼或法术效果降低了武器的耐久度而触发亡语,则按照消灭类效果,立即结算。
e.g. 洗脚、憎恶。对憎恶造成4点伤害之后?
e.g. 自爆绵羊、麦田、2血憎恶,场上有复仇。对面一个烈焰风暴之后?
三、常见事件结算流程:
使用随从事件:
消耗法力水晶时
失去手牌
使用随从时(任务达人、怒风、魔能机甲)
随从进场时(秃鹫、送葬、大胖;光环生效)
随从战吼结算
召唤随从后(飞刀;镜像、狙击、审判、公正之剑、忏悔)
非使用类召唤随从事件:
失去手牌 //若不是从手牌中拉出来,则跳过此步骤
随从进场时(秃鹫、送葬、大胖;光环生效)
召唤随从后(飞刀;镜像、狙击、审判、公正之剑、忏悔)
使用法术事件:
消耗法力水晶时
失去手牌
使用法术时(任务达人、怒风、魔能机甲、紫罗兰、周卓、法力浮龙、奥秘守护者、加基森、魔瘾者)
法术结算前(法术反制)
指定目标时(扰咒术) //如果是不需要指定目标的法术,则跳过此步骤
指定目标后(灯神、龙人、双子) //如果是不需要指定目标的法术,则跳过此步骤
法术结算
法术结算后(炎术士、火妖)
使用武器事件:
消耗法力水晶时
失去手牌
使用武器时(任务达人、怒风、魔能机甲)
替换原有武器(立即触发原有武器的亡语)
武器战吼结算
装备武器后(锈水海盗)
攻击事件:
指定目标时(冰冻、误导、各种50%几率攻击错误的敌人;崇高牺牲)
指定目标后(爆炸、窃贼,智慧祝福、寒冰护体、毒蛇、蒸发)
攻击结算(依次触发两方的伤害结算)
攻击完成后(捕熊陷阱)
伤害结算:
造成伤害时
受到伤害时(博尔夫碎盾、寒冰屏障、复活的铠甲、诅咒之刃)
减少HP
造成伤害后(各种死触生物、死神4000型、痛苦女王、酸喉)
受到伤害后(铸甲师、漂浮观察者、暴乱狂、古拉巴什、以眼还眼)
使用英雄技能:
指定目标时
指定目标后
英雄技能结算
使用技能后(激励效果、毒镖陷阱)
回复体力事件:
回复体力时
增加HP
回复体力后(暗影打击装甲)
摸牌事件:
摸牌前
摸牌时(检测手牌是否已满、检测牌库是否已空)
(1) (若牌库已空)抽疲劳牌时-->接伤害结算
(2) (若手牌已满)爆牌时
(3) 摸牌后(瓦王、地雷、伏击、远古诅咒、侏儒变鸡大师)
获得手牌
随从回手事件:
随从离场
回手时(检测手牌是否已满)
(1) (若手牌已满)随从死亡结算【注:此处可以略作调整,可以什么都不结算,直接消除此随从】
(2) 获得手牌
弃置手牌事件:
失去手牌
手牌弃置时(加拉克苏斯之拳)
手牌弃置后(小鬼骑士)
四、关于除触发技外其他种类技能
1、光环类技能:此类光环是暂时的,会随着拥有该技能的随从离场而消失。此类技能又分为2种,一是影响随从的光环(恐狼、暴风城勇士、鱼人领军、等);二是影响英雄的光环(法术伤害+1;先知维纶等) 【奥金尼??铜须??瑞文戴尔??】
2、目标合法性类技能:此类技能的特点是“不能成为……的目标”,如潜行、精灵龙、欢笑的姐妹等。
3、嘲讽。