From ac4cf13e5db79db0f1798ca10d1304ef385cde87 Mon Sep 17 00:00:00 2001 From: Diuse <123@qq.com> Date: Fri, 17 Mar 2023 20:13:52 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=AD=A6=E5=B0=86?= =?UTF-8?q?=E9=AA=86=E7=BB=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- init.lua | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/init.lua b/init.lua index 7b20257..2761450 100644 --- a/init.lua +++ b/init.lua @@ -676,4 +676,73 @@ Fk:loadTranslationTable{ "与其他角色计算距离-X且可以多使用X张杀。", } +local qinzheng = fk.CreateTriggerSkill{ + name = "qinzheng", + anim_type = "drawcard", + frequency = Skill.Compulsory, + events = {fk.AfterCardUseDeclared, fk.CardResponding}, + on_use = function(self, event, player, target, data) + player.room:addPlayerMark(player, "@qinzheng", 1) + + local randCard = function(cardName) + local cardNum = #player.room.draw_pile + local randNum = math.random(1, cardNum) + + for i = randNum, cardNum do + local card = Fk:getCardById(player.room.draw_pile[i]) + + if table.contains(cardName, card.name) then + return card + end + end + + for i = 1, randNum do + local card = Fk:getCardById(player.room.draw_pile[i]) + + if table.contains(cardName, card.name) then + return card + end + end + + return nil + end + local num = player:getMark("@qinzheng") + + if num % 3 == 0 then + local card = randCard({"slash", "jink"}) + + if card ~= nil then + player.room:obtainCard(player.id, card, true, fk.ReasonPrey) + end + end + + if num % 5 == 0 then + local card = randCard({"peach", "analeptic"}) + + if card ~= nil then + player.room:obtainCard(player.id, card, true, fk.ReasonPrey) + end + end + + if num % 8 == 0 then + local card = randCard({"ex_nihilo", "duel"}) + + if card ~= nil then + player.room:obtainCard(player.id, card, true, fk.ReasonPrey) + end + end + end, +} + +local luotong = General:new(extension, "luotong", "wu", 4) +luotong:addSkill(qinzheng) + +Fk:loadTranslationTable{ + ["luotong"] = "骆统", + ["qinzheng"] = "勤政", + [":qinzheng"] = "锁定技,你每使用或打出:三张牌时,你随机获得一张【杀】或【闪】;五张牌时,你随机获得一张【桃】或【酒】;八张牌时,你随机获得一张【无中生有】或【决斗】。", + ["@qinzheng"] = "勤政", +} + + return {extension} -- Gitee From da0c5a5607aeff8aa18d939562a65c34bbe6c00e Mon Sep 17 00:00:00 2001 From: Diuse <1754798088@qq.com> Date: Fri, 17 Mar 2023 20:44:15 +0800 Subject: [PATCH 2/2] =?UTF-8?q?update=20=E9=AA=86=E7=BB=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- init.lua | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/init.lua b/init.lua index 2761450..702a6fd 100644 --- a/init.lua +++ b/init.lua @@ -681,9 +681,27 @@ local qinzheng = fk.CreateTriggerSkill{ anim_type = "drawcard", frequency = Skill.Compulsory, events = {fk.AfterCardUseDeclared, fk.CardResponding}, + on_trigger = function(self, event, target, player, data) + self.cancel_cost = false + local num = player:getMark("@qinzheng") + local skillNum = 0 + + 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 + + for i = 1, skillNum do + 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 + end + end, on_use = function(self, event, player, target, data) - player.room:addPlayerMark(player, "@qinzheng", 1) - local randCard = function(cardName) local cardNum = #player.room.draw_pile local randNum = math.random(1, cardNum) @@ -732,6 +750,14 @@ local qinzheng = fk.CreateTriggerSkill{ end end end, + + refresh_events = {fk.AfterCardUseDeclared, fk.CardResponding}, + can_refresh = function(self, event, target, player, data) + return player:hasSkill(self.name) and target == player + end, + on_refresh = function(self, event, target, player, data) + player.room:addPlayerMark(player, "@qinzheng", 1) + end, } local luotong = General:new(extension, "luotong", "wu", 4) -- Gitee