wszhuilieMD = sgs.CreateTargetModSkill{
name = "wszhuilieMD",
distance_limit_func = function(self, from, card)
if from:hasSkill("wszhuilie") and card:isKindOf("Slash") then
return 1000
else
return 0
end
end,
}
wszhuilie = sgs.CreateTriggerSkill{
name = "wszhuilie",
global = true,
frequency = sgs.Skill_Compulsory,
events = {sgs.CardUsed, sgs.DamageInflicted, sgs.CardFinished},
on_trigger = function(self, event, player, data)
local room = player:getRoom()
if event == sgs.CardUsed and player:hasSkill(self:objectName()) then
local use = data:toCardUse()
if use.card:isKindOf("Slash") then
for _, p in sgs.qlist(use.to) do
if not player:inMyAttackRange(p) then
room:broadcastSkillInvoke(self:objectName())
if use.m_addHistory then
room:addPlayerHistory(player, use.card:getClassName(), -1)
end
local judge = sgs.JudgeStruct()
judge.play_animation = false
judge.reason = self:objectName()
judge.who = player
room:judge(judge)
if judge.card:isKindOf("Weapon") or judge.card:isKindOf("DefensiveHorse") or judge.card:isKindOf("OffensiveHorse") then
room:setPlayerFlag(p, "wszhuilieMdmg")
else
room:loseHp(player, 1)
end
end
end
end
elseif event == sgs.DamageInflicted and player:hasFlag("wszhuilieMdmg") then
local n = player:getHp()
local wangshuang = room:findPlayerBySkillName(self:objectName())
if wangshuang then
local log = sgs.LogMessage()
log.type = "$wszhuilieMdmg"
log.from = wangshuang
log.to:append(player)
log.arg2 = n
room:sendLog(log)
end
room:broadcastSkillInvoke(self:objectName())
local damage = data:toDamage()
damage.damage = n
data:setValue(damage)
room:setPlayerFlag(player, "-wszhuilieMdmg")
elseif event == sgs.CardFinished and player:hasFlag("wszhuilieMdmg") then
local use = data:toCardUse()
room:setPlayerFlag(player, "-wszhuilieMdmg")
end
end,
can_trigger = function(self, player)
return true
end,
}
name = "wszhuilieMD",
distance_limit_func = function(self, from, card)
if from:hasSkill("wszhuilie") and card:isKindOf("Slash") then
return 1000
else
return 0
end
end,
}
wszhuilie = sgs.CreateTriggerSkill{
name = "wszhuilie",
global = true,
frequency = sgs.Skill_Compulsory,
events = {sgs.CardUsed, sgs.DamageInflicted, sgs.CardFinished},
on_trigger = function(self, event, player, data)
local room = player:getRoom()
if event == sgs.CardUsed and player:hasSkill(self:objectName()) then
local use = data:toCardUse()
if use.card:isKindOf("Slash") then
for _, p in sgs.qlist(use.to) do
if not player:inMyAttackRange(p) then
room:broadcastSkillInvoke(self:objectName())
if use.m_addHistory then
room:addPlayerHistory(player, use.card:getClassName(), -1)
end
local judge = sgs.JudgeStruct()
judge.play_animation = false
judge.reason = self:objectName()
judge.who = player
room:judge(judge)
if judge.card:isKindOf("Weapon") or judge.card:isKindOf("DefensiveHorse") or judge.card:isKindOf("OffensiveHorse") then
room:setPlayerFlag(p, "wszhuilieMdmg")
else
room:loseHp(player, 1)
end
end
end
end
elseif event == sgs.DamageInflicted and player:hasFlag("wszhuilieMdmg") then
local n = player:getHp()
local wangshuang = room:findPlayerBySkillName(self:objectName())
if wangshuang then
local log = sgs.LogMessage()
log.type = "$wszhuilieMdmg"
log.from = wangshuang
log.to:append(player)
log.arg2 = n
room:sendLog(log)
end
room:broadcastSkillInvoke(self:objectName())
local damage = data:toDamage()
damage.damage = n
data:setValue(damage)
room:setPlayerFlag(player, "-wszhuilieMdmg")
elseif event == sgs.CardFinished and player:hasFlag("wszhuilieMdmg") then
local use = data:toCardUse()
room:setPlayerFlag(player, "-wszhuilieMdmg")
end
end,
can_trigger = function(self, player)
return true
end,
}