diff --git a/init.lua b/init.lua index 702a6fdcfff622e237b64d4c2e74d2d70101116c..2fbb52b623b69ff54f681c9f6f48cf57a71065ec 100644 --- a/init.lua +++ b/init.lua @@ -684,21 +684,20 @@ local qinzheng = fk.CreateTriggerSkill{ on_trigger = function(self, event, target, player, data) self.cancel_cost = false local num = player:getMark("@qinzheng") - local skillNum = 0 + local skillNum = {} - if num % 3 == 0 then skillNum = skillNum + 1 end - if num % 5 == 0 then skillNum = skillNum + 1 end - if num % 8 == 0 then skillNum = skillNum + 1 end + if num % 3 == 0 then table.insert(skillNum, 3) end + if num % 5 == 0 then table.insert(skillNum, 5) end + if num % 8 == 0 then table.insert(skillNum, 8) end - for i = 1, skillNum do + for _, i in ipairs(skillNum) do + self.cost_data = i self:doCost(event, target, player, data) end end, can_trigger = function(self, event, target, player, data) if player:hasSkill(self.name) and target == player then - local num = player:getMark("@qinzheng") - - return num % 3 == 0 or num % 5 == 0 or num % 8 == 0 + return self.cost_data == 3 or self.cost_data == 5 or self.cost_data == 8 end end, on_use = function(self, event, player, target, data) @@ -724,29 +723,24 @@ local qinzheng = fk.CreateTriggerSkill{ return nil end - local num = player:getMark("@qinzheng") - if num % 3 == 0 then + if self.cost_data == 3 then local card = randCard({"slash", "jink"}) if card ~= nil then - player.room:obtainCard(player.id, card, true, fk.ReasonPrey) + player.room:obtainCard(player.id, card, true, fk.ReasonDraw) end - end - - if num % 5 == 0 then + elseif self.cost_data == 5 then local card = randCard({"peach", "analeptic"}) if card ~= nil then - player.room:obtainCard(player.id, card, true, fk.ReasonPrey) + player.room:obtainCard(player.id, card, true, fk.ReasonDraw) end - end - - if num % 8 == 0 then + else local card = randCard({"ex_nihilo", "duel"}) if card ~= nil then - player.room:obtainCard(player.id, card, true, fk.ReasonPrey) + player.room:obtainCard(player.id, card, true, fk.ReasonDraw) end end end,