luaxuyu = sgs.CreateTriggerSkill{
name = "luaxuyu" ,
events = {sgs.PreCardUsed, sgs.CardResponded, sgs.EventPhaseStart, sgs.CardUsed} ,
frequency = sgs.Skill_Compulsory ,
on_trigger = function(self, event, player, data)
local room = player:getRoom()
local source = room:findPlayersBySkillName(self:objectName())
if ((event == sgs.PreCardUsed) or (event == sgs.CardResponded)) and (player:getPhase() <= sgs.Player_Play) then
local card = nil
if event == sgs.PreCardUsed then
card = data:toCardUse().card
else
local response = data:toCardResponse()
if response.m_isUse then
card = response.m_card
end
end
if card and (card:getHandlingMethod() == sgs.Card_MethodUse) then
player:addMark(self:objectName())
end
elseif (event == sgs.EventPhaseStart) and (player:getPhase() == sgs.Player_RoundStart) then
player:setMark(self:objectName(), 0)
elseif event == sgs.CardUsed and player:getPhase() == sgs.Player_Play then
local x = player:getMark(self:objectName())
if x == 1 and (player:objectName() == source:objectName()) then
player:drawCards(1)
elseif x == 2 and (player:objectName() == source:objectName()) then
room:askForDiscard(player, self:objectName(), 1, 1, false, true)
elseif x == 3 and (player:objectName() ~= source:objectName()) then
source:drawCards(1)
elseif x == 4 and (player:objectName() ~= source:objectName()) then
source:drawCards(1)
end
end
return false
end,
can_trigger = function(self,target)
return target and target:isAlive()
end
}