forked from Mogara/LuaExamplesManualForHegAPI
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChapterR.lua
75 lines (68 loc) · 2.12 KB
/
ChapterR.lua
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
--[[
国战技能速查手册(R区)
技能索引:
仁德
]]--
--[[
仁德
相关武将:标-刘备、阵-君刘备
描述:出牌阶段,你可以将至少一张手牌交给一名角色,若如此做,当你以此法交给其他角色的手牌首次达到三张或更多时,你回复1点体力。
引用:
状态:
]]
LuaRendeCard = sgs.CreateSkillCard{
name = "LuaRendeCard",
skill_name = "LuaRende",
will_throw = false,
handling_method = sgs.Card_MethodNone,
filter = function(self, selected, to_select)
return (#selected == 0) and (to_select:objectName() ~= sgs.Self:objectName())
end ,
extra_cost = function(self,room,card_use)
local target = card_use.to:first()
local reason = sgs.CardMoveReason(sgs.CardMoveReason_S_REASON_GIVE, card_use.from:objectName(), target:objectName(), "rende", "")
room:obtainCard(target, self, reason, false)
end,
on_use = function(self, room, source)
local old_value = source:getMark("rende")
local new_value = old_value + self:getSubcards():length()
room:setPlayerMark(source, "rende", new_value)
if (old_value < 3 and new_value >= 3 and source:isWounded()) then
local recover = sgs.RecoverStruct()
recover.card = self
recover.who = source
room:recover(source, recover)
end
end,
}
LuaRendeVS = sgs.CreateViewAsSkill{
name = "LuaRende",
view_filter = function(self, selected, to_select)
return not to_select:isEquipped()
end,
enabled_at_play = function(self, player)
return not player:isKongcheng()
end,
view_as = function(self,cards)
if #cards == 0 then return nil end
local card = LuaRendeCard:clone()
for _,c in ipairs(cards)do
card:addSubcard(c)
end
card:setShowSkill(self:objectName())
return card
end,
}
LuaRende = sgs.CreateTriggerSkill{
name = "LuaRende",
events = {sgs.EventPhaseChanging},
view_as_skill = LuaRendeVS,
can_trigger = function(self,event,room,target,data)
if target:getMark("rende") > 0 then
local change = data:toPhaseChange()
if change.to == sgs.Player_NotActive then
room:setPlayerMark(target, "rende", 0)
end
end
end,
}