From 4d55f43c26f2e5cb4ff98267c8589422b67e1933 Mon Sep 17 00:00:00 2001 From: Baisebaoma Date: Wed, 13 Dec 2023 19:52:29 +0800 Subject: [PATCH] tiaoshui bug fix --- README.md | 29 ++++++++++++++++--- jianyu.lua | 85 ++++++------------------------------------------------ 2 files changed, 34 insertions(+), 80 deletions(-) diff --git a/README.md b/README.md index c5c2b64..c998563 100644 --- a/README.md +++ b/README.md @@ -143,8 +143,8 @@ 若其拥有属性标记且与此次伤害属性不同,则依据伤害属性造成对应效果并移除标记:雷电伤害其翻面;火焰伤害该伤害+1。 附魔:当有角色造成无属性伤害时, - 你可以弃一张牌。若你弃的牌为: - 红色,将此次伤害改为火焰; + 你可以弃一张牌,根据该牌颜色变更伤害的属性: + 红色,改为火焰; 黑色,改为雷电。 ### 群·阿威罗 体力3 @@ -153,17 +153,38 @@ > 该武将由玩家“导演片子怎么样了”设计。 -游龙:锁定技,你的回合开始时,每名有手牌的角色选择一张手牌交给下家。 +游龙:锁定技,你的回合开始时,每名有手牌的角色将一张手牌交给下家。 核爆:你的回合开始时,你可以将一张手牌置于你的武将牌上,称为【点】。 跳水:当你受到伤害时,你可以弃置一张【点】。 +玉玊:出牌阶段,你每使用第二张基本牌时,可以将其作为【点】置于你的武将牌上。 + 罗绞:当你的【点】的数量变化后:
1. 若你没有两张及以上相同花色的【点】,可以视为立即使用一张【**入侵】,每回合限一次;
2. 若你有4张【点】,可以视为立即使用一张【万箭齐发】。 -玉玊:出牌阶段,你每使用第二张基本牌时,可以将其作为【点】置于你的武将牌上。 +## 正在开发的武将 + +### 群·杨藩 体力? + +(暂无肖像) + +> 该武将由玩家“敏敏伊人梦中卿”设计。 + +四吃:当你受到伤害后,你可以亮出牌顶4张牌,根据花色数量触发效果: +1种,将这些牌全部交给一名角色; +2种,你使用其中一张牌,若都无法使用,你弃置一张牌; +3种,你获得其中三张同类型的牌或其中两张不同类型的牌,其余角色各摸一张牌; +4种,你选择至多3名角色,你与其各失去一点体力。 + +花盆:锁定技,当其他角色使用♣牌且只指定了一个目标时,你进行一次判定,若为♥<\font>,则该牌额外指定你为目标。 + +博十:每当你判定10次之后,可以选择一项:
+1. 回复一点体力,然后弃一张牌;
+2. 【花盆】失效,直到你的下个回合结束;
+3. 弃置所有手牌,然后摸等量的牌。 ## 发现了 bug? diff --git a/jianyu.lua b/jianyu.lua index ddc46f5..ede13a8 100644 --- a/jianyu.lua +++ b/jianyu.lua @@ -43,47 +43,6 @@ local jy_zouwei = fk.CreateDistanceSkill{ return 0 end, } --- TODO: 没写好之前先禁用 --- -- 参考自孙尚香,formation君刘备 --- local jy_zouwei_audio = fk.CreateTriggerSkill{ --- name = "#jy_zouwei_audio", - --- refresh_events = {fk.AfterCardsMove}, --- -- 这个函数只有在装备区牌量变动时才检测 --- can_refresh = function(self, event, target, player, data) --- if not player:hasSkill(self) then return end --- for _, move in ipairs(data) do -- 对着抄的,开始第一个循环 --- if move.from == player.id or move.to == player.id then -- 这行对着抄的,判断是否是自己家 --- for _, info in ipairs(move.moveInfo) do -- 对着抄的,第二个循环 --- if info.fromArea == Card.PlayerEquip or info.toArea == Card.PlayerEquip then -- 对着抄的,在这里判断是去哪个区的 --- -- 不知道为啥用不了 --- if #player:getCardIds(Player.Equip) > 0 then -- 他进了你的装备区之后,你的装备数量为1 --- print("检测到装备不等于0") --- return true --- end --- -- 下面这个可以运行 --- if #player:getCardIds(Player.Equip) == 0 and info.fromArea == Card.PlayerEquip then -- 他出了你的装备区之后,你的装备数量为0 --- return true --- end --- end --- end --- end --- end --- end, --- on_refresh = function(self, event, target, player, data) --- local room = player.room --- -- 有装备时,-1马 --- if #player:getCardIds(player.Equip) > 0 then --- room:notifySkillInvoked(player, "jy_zouwei", "offensive") --- player:broadcastSkillInvoke("jy_zouwei", 1) --- -- 无装备时,+1马 --- elseif #player:getCardIds(player.Equip) == 0 then --- room:notifySkillInvoked(player, "jy_zouwei", "defensive") --- player:broadcastSkillInvoke("jy_zouwei", 2) --- end --- end, --- } --- jy_zouwei:addRelatedSkill(jy_zouwei_audio) -- 圣弩 -- 参考自formation包的君刘备 @@ -262,19 +221,12 @@ local jy_kaiju_2 = fk.CreateActiveSkill{ target_filter = function(self, to_select, selected) -- 判断目标是否有谦逊 - for _, s in ipairs(Fk:currentRoom():getPlayerById(to_select).player_skills) do + for _, s in ipairs(to:getAllSkills()) do if s.name == "qianxun" then return end end - -- 下面这段是杀里面的藤甲判定抄来的,感觉可以用。上面那个可能效率更高? - -- for _, s in ipairs(to:getAllSkills()) do - -- if s.name == "qianxun" then - -- return - -- end - -- end - return to_select ~= Self.id and -- 如果目标不是自己,而且没有谦逊 not Fk:currentRoom():getPlayerById(to_select):isAllNude() -- 而且不是啥也没有。 end, @@ -286,18 +238,6 @@ local jy_kaiju_2 = fk.CreateActiveSkill{ if not player.dead then room:useVirtualCard("snatch", nil, player, p, self.name, true) -- 顺 - - -- 顺手牵羊,但不能被无懈可击响应(那我为啥不直接顺?) - -- local snatch = Fk:cloneCard("snatch") - -- snatch.skillName = self.name - -- local new_use = { ---@type CardUseStruct - -- from = use.from, -- 应该是直接传id - -- tos = { { to } }, - -- card = snatch, - -- prohibitedCardNames = { "nullification" }, - -- } - -- room:useCard(new_use) - room:useVirtualCard("slash", nil, p, player, self.name, true) -- 杀 end end @@ -319,7 +259,7 @@ local jy_xizao_2 = fk.CreateTriggerSkill{ -- player:reset() player:drawCards(3, self.name) if player.dead or not player:isWounded() then return end - -- 将体力回复至3点 + -- 将体力回复至1点 room:recover({ who = player, num = math.min(1, player.maxHp) - player.hp, @@ -392,12 +332,10 @@ local jy_huxiao = fk.CreateTriggerSkill{ } -- 啸酒 --- 注释里是为了测试改成无中生有。保留在这里以防你后面还需要测试。 local jy_huxiao_analeptic = fk.CreateViewAsSkill{ name = "jy_huxiao_analeptic", anim_type = "defensive", pattern = "analeptic", - -- pattern = "ex_nihilo", expand_pile = "skl__liyuanhao_xiao", card_filter = function(self, to_select, selected) if #selected == 1 then return false end @@ -557,7 +495,6 @@ local jy_husanjian = fk.CreateTriggerSkill{ data.damage = data.damage - 1 end, } --- TODO: 加一个触发效果器 skl__liyuanhao:addSkill(jy_huxiao) skl__liyuanhao:addSkill(jy_huxiao_analeptic) @@ -618,12 +555,10 @@ local jy_huxiao_2 = fk.CreateTriggerSkill{ } -- 界啸酒 --- 注释里是为了测试改成无中生有。保留在这里以防你后面还需要测试。 local jy_huxiao_analeptic_2 = fk.CreateViewAsSkill{ name = "jy_huxiao_analeptic_2", anim_type = "defensive", pattern = "analeptic", - -- pattern = "ex_nihilo", expand_pile = "tym__liyuanhao_xiao", card_filter = function(self, to_select, selected) if #selected == 1 then return false end @@ -720,12 +655,11 @@ local jy_erduanxiao_2 = fk.CreateTriggerSkill{ end end end - end, -- 每个参数的结尾都要逗号。can_trigger是一个参数 + end, on_trigger = function(self, event, target, player, data) -- 触发之后,设置变量,告诉下一个函数有没有可能在发生变化 player.is_xiao_changing = true - -- print("二段笑(第一段) on_trigger已触发,现在是", player.is_xiao_changing, #player:getPile("tym__liyuanhao_xiao")) end, } @@ -1029,8 +963,6 @@ local jy_yuanshen_2 = fk.CreateTriggerSkill{ } -- 参考自悲歌 --- 因为如果每个无属性伤害都触发这个技能的话会极大增加等待时间,所以我的建议是更改成悲歌,只响应【杀】 --- TODO:建议把这个技能改成类似朱雀羽扇,在杀之前就转换伤害,这样方便在伤害计算后触发别的。建议直接改成选择是否要转化,免费判定。 local jy_fumo = fk.CreateTriggerSkill{ name = "jy_fumo", anim_type = "masochism", @@ -1081,8 +1013,8 @@ Fk:loadTranslationTable { ["jy_fumo"] = "附魔", ["#jy_fumo-invoke"] = "附魔:%dest 受到伤害,你可以弃置一张牌,改为属性伤害", [":jy_fumo"] = [[当有角色造成无属性伤害时, - 你可以弃一张牌。若你弃的牌为: - 红色,将此次伤害改为火焰; + 你可以弃一张牌,根据该牌颜色变更伤害的属性: + 红色,改为火焰; 黑色,改为雷电。]], } @@ -1136,7 +1068,8 @@ local jy_tiaoshui = fk.CreateTriggerSkill{ events = {fk.Damaged}, can_trigger = function(self, event, target, player, data) local dians = player:getPile("xjb__aweiluo_dian") - return #dians ~= 0 + return target == player and target:hasSkill(self.name) and + #dians ~= 0 end, on_use = function(self, event, target, player, data) local room = player.room @@ -1386,8 +1319,8 @@ jy_yusu:addRelatedSkill(jy_yusu_set_0) xjb__aweiluo:addSkill(jy_youlong) xjb__aweiluo:addSkill(jy_hebao) xjb__aweiluo:addSkill(jy_tiaoshui) -xjb__aweiluo:addSkill(jy_luojiao) xjb__aweiluo:addSkill(jy_yusu) +xjb__aweiluo:addSkill(jy_luojiao) Fk:loadTranslationTable { ["xjb__aweiluo"] = "阿威罗", @@ -1395,7 +1328,7 @@ Fk:loadTranslationTable { ["jy_youlong"] = "游龙", ["#jy_youlong-choose"] = "游龙:选择一张牌交给下家", - [":jy_youlong"] = "锁定技,你的回合开始时,从你开始,每名有手牌的角色选择一张手牌交给下家。", + [":jy_youlong"] = "锁定技,你的回合开始时,每名有手牌的角色将一张手牌交给下家。", ["$jy_youlong1"] = "翩若惊鸿!婉若游龙!", ["jy_hebao"] = "核爆",