From 520523bcc1d3b84ee271f071ad2664bc5c75dff3 Mon Sep 17 00:00:00 2001 From: YoumuKon <38815081+YoumuKon@users.noreply.github.com> Date: Sun, 10 Dec 2023 18:56:50 +0800 Subject: [PATCH] bug fix x2 ! (#291) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ![devbugfix_ba-style@nulla top](https://github.com/Qsgs-Fans/FreeKill/assets/38815081/9879a2bd-3edc-4f09-b4e5-06f600823659) - 修复了铁索传导的伤害仍然觉得自己是伤害起点的bug - 修复了转化牌前后同名仍然显示转化小白框的bug - 修复了黑色花色不是黑色的bug - 重写了改判流程,支持判定虚拟牌 --------- Co-authored-by: notify --- Fk/RoomElement/CardItem.qml | 4 +-- lua/client/i18n/en_US.lua | 6 ++-- lua/client/i18n/zh_CN.lua | 6 ++-- lua/server/events/hp.lua | 1 + lua/server/events/judge.lua | 6 ++-- lua/server/room.lua | 40 ++++++++++++-------------- packages/standard/i18n/en_US.lua | 4 --- packages/standard/i18n/zh_CN.lua | 4 --- packages/standard_cards/i18n/en_US.lua | 9 ++++-- packages/standard_cards/i18n/zh_CN.lua | 9 ++++-- 10 files changed, 42 insertions(+), 47 deletions(-) diff --git a/Fk/RoomElement/CardItem.qml b/Fk/RoomElement/CardItem.qml index d74ea8d3..6b58a0dd 100644 --- a/Fk/RoomElement/CardItem.qml +++ b/Fk/RoomElement/CardItem.qml @@ -122,14 +122,14 @@ Item { Image { id: colorItem - visible: known && (suit === "" || suit === "nosuit") + visible: known && (suit === "" || suit === "nosuit") // && number <= 0 // <- FIX ME:需要区分“黑色有点数”和“无色有点数” source: (visible && color !== "") ? SkinBank.CARD_SUIT_DIR + "/" + color : "" x: 1 } Rectangle { id: virt_rect - visible: root.virt_name !== "" + visible: root.virt_name !== "" && root.virt_name !== root.name width: parent.width height: 20 y: 40 diff --git a/lua/client/i18n/en_US.lua b/lua/client/i18n/en_US.lua index 5f34c0f1..49be024c 100644 --- a/lua/client/i18n/en_US.lua +++ b/lua/client/i18n/en_US.lua @@ -376,9 +376,9 @@ Fk:loadTranslationTable({ -- judge ["#StartJudgeReason"] = "%from started a judgement (%arg)", - ["#InitialJudge"] = "Judge card of %from was %card", - ["#ChangedJudge"] = "%from invoked %arg, retrialed judgement of %to with %card", - ["#JudgeResult"] = "The judge result of %from was %card", + ["#InitialJudge"] = "Judge card of %from was %arg", + ["#ChangedJudge"] = "%from invoked %arg, retrialed judgement of %to with %arg2", + ["#JudgeResult"] = "The judge result of %from was %arg", -- turnOver ["#TurnOver"] = "%from turned over character card, now his status is %arg", diff --git a/lua/client/i18n/zh_CN.lua b/lua/client/i18n/zh_CN.lua index 1d19be8e..0283e36e 100644 --- a/lua/client/i18n/zh_CN.lua +++ b/lua/client/i18n/zh_CN.lua @@ -430,9 +430,9 @@ Fk:loadTranslationTable{ -- judge ["#StartJudgeReason"] = "%from 开始了 %arg 的判定", - ["#InitialJudge"] = "%from 的判定牌为 %card", - ["#ChangedJudge"] = "%from 发动“%arg”把 %to 的判定牌改为 %card", - ["#JudgeResult"] = "%from 的判定结果为 %card", + ["#InitialJudge"] = "%from 的判定牌为 %arg", + ["#ChangedJudge"] = "%from 发动“%arg”把 %to 的判定牌改为 %arg2", + ["#JudgeResult"] = "%from 的判定结果为 %arg", -- turnOver ["#TurnOver"] = "%from 将武将牌翻面,现在是 %arg", diff --git a/lua/server/events/hp.lua b/lua/server/events/hp.lua index 2bd26f38..b4745a32 100644 --- a/lua/server/events/hp.lua +++ b/lua/server/events/hp.lua @@ -212,6 +212,7 @@ GameEvent.exit_funcs[GameEvent.Damage] = function(self) type = "#ChainDamage", from = p.id } + local dmg = { from = damageStruct.from, to = p, diff --git a/lua/server/events/judge.lua b/lua/server/events/judge.lua index 3f41eed5..86a59f9f 100644 --- a/lua/server/events/judge.lua +++ b/lua/server/events/judge.lua @@ -17,11 +17,12 @@ GameEvent.functions[GameEvent.Judge] = function(self) arg = data.reason, } end + Fk:filterCard(data.card.id, who, data) room:sendLog{ type = "#InitialJudge", from = who.id, - card = {data.card.id}, + arg = data.card:toLogString(), } room:moveCardTo(data.card, Card.Processing, nil, fk.ReasonJudge) room:sendFootnote({ data.card.id }, { @@ -31,11 +32,10 @@ GameEvent.functions[GameEvent.Judge] = function(self) logic:trigger(fk.AskForRetrial, who, data) logic:trigger(fk.FinishRetrial, who, data) - Fk:filterCard(data.card.id, who, data) room:sendLog{ type = "#JudgeResult", from = who.id, - card = {data.card.id}, + arg = data.card:toLogString(), } room:sendFootnote({ data.card.id }, { type = "##JudgeCard", diff --git a/lua/server/room.lua b/lua/server/room.lua index 9ac5e40a..ec49f0aa 100644 --- a/lua/server/room.lua +++ b/lua/server/room.lua @@ -3119,25 +3119,26 @@ function Room:retrial(card, player, judge, skillName, exchange) local triggerResponded = self.owner_map[card:getEffectiveId()] == player local isHandcard = (triggerResponded and self:getCardArea(card:getEffectiveId()) == Card.PlayerHand) - local oldJudge = judge.card - judge.card = Fk:getCardById(card:getEffectiveId()) - local rebyre = judge.retrial_by_response - judge.retrial_by_response = player - - local resp = {} ---@type CardResponseEvent - resp.from = player.id - resp.card = card - if triggerResponded then - self.logic:trigger(fk.PreCardRespond, player, resp) + local resp = {} ---@type CardResponseEvent + resp.from = player.id + resp.card = card + resp.skipDrop = true + self:responseCard(resp) + else + local move1 = {} ---@type CardsMoveInfo + move1.ids = { card:getEffectiveId() } + move1.from = player.id + move1.toArea = Card.Processing + move1.moveReason = fk.ReasonJustMove + move1.skillName = skillName + self:moveCards(move1) end - local move1 = {} ---@type CardsMoveInfo - move1.ids = { card:getEffectiveId() } - move1.from = player.id - move1.toArea = Card.Processing - move1.moveReason = fk.ReasonResonpse - move1.skillName = skillName + local oldJudge = judge.card + judge.card = card + local rebyre = judge.retrial_by_response + judge.retrial_by_response = player local move2 = {} ---@type CardsMoveInfo move2.ids = { oldJudge:getEffectiveId() } @@ -3149,16 +3150,11 @@ function Room:retrial(card, player, judge, skillName, exchange) type = "#ChangedJudge", from = player.id, to = { judge.who.id }, - card = { card:getEffectiveId() }, + arg2 = card:toLogString(), arg = skillName, } - self:moveCards(move1) self:moveCards(move2) - - if triggerResponded then - self.logic:trigger(fk.CardRespondFinished, player, resp) - end end --- 弃置一名角色的牌。 diff --git a/packages/standard/i18n/en_US.lua b/packages/standard/i18n/en_US.lua index 5c6238c5..948ef599 100644 --- a/packages/standard/i18n/en_US.lua +++ b/packages/standard/i18n/en_US.lua @@ -7,10 +7,6 @@ Fk:loadTranslationTable({ ["wu"] = "*Wu*", ["qun"] = "*Neutral*", - ["black"] = "Black", - ["red"] = 'Red', - ["nocolor"] = 'NoColor', - ["caocao"] = "Cao Cao", ["jianxiong"] = "Villainous Hero", [":jianxiong"] = "After you suffer DMG: you can take the card(s) that caused it.", diff --git a/packages/standard/i18n/zh_CN.lua b/packages/standard/i18n/zh_CN.lua index 152d88e6..ee58a4a7 100644 --- a/packages/standard/i18n/zh_CN.lua +++ b/packages/standard/i18n/zh_CN.lua @@ -7,10 +7,6 @@ Fk:loadTranslationTable{ ["wu"] = "吴", ["qun"] = "群", - ["black"] = "黑色", - ["red"] = '红色', - ["nocolor"] = '无色', - ["caocao"] = "曹操", ["~caocao"] = "霸业未成!未成啊!", ["$jianxiong1"] = "宁教我负天下人,休教天下人负我!", diff --git a/packages/standard_cards/i18n/en_US.lua b/packages/standard_cards/i18n/en_US.lua index b27709ed..db6a662d 100644 --- a/packages/standard_cards/i18n/en_US.lua +++ b/packages/standard_cards/i18n/en_US.lua @@ -4,16 +4,19 @@ Fk:loadTranslationTable({ ["standard_cards"] = "Standard", ["unknown_card"] = 'Unknown card', - ["log_spade"] = "♠", + ["log_spade"] = '', ["log_heart"] = '', - ["log_club"] = "♣", + ["log_club"] = '', ["log_diamond"] = '', ["log_nosuit"] = "No suit", - ["nosuit"] = "No suit", -- ["spade"] = "Spade", -- ["heart"] = "Heart", -- ["club"] = "Club", -- ["diamond"] = "Diamond", + ["nosuit"] = "No suit", + ["black"] = '黑色', + ["red"] = 'Red', + ["nocolor"] = 'NoColor', -- ["suit"] = "花色", -- ["color"] = "颜色", -- ["number"] = "点数", diff --git a/packages/standard_cards/i18n/zh_CN.lua b/packages/standard_cards/i18n/zh_CN.lua index c241beae..4cda3e1a 100644 --- a/packages/standard_cards/i18n/zh_CN.lua +++ b/packages/standard_cards/i18n/zh_CN.lua @@ -4,16 +4,19 @@ Fk:loadTranslationTable{ ["standard_cards"] = "标+EX", ["unknown_card"] = '未知牌', - ["log_spade"] = "♠", + ["log_spade"] = '', ["log_heart"] = '', - ["log_club"] = "♣", + ["log_club"] = '', ["log_diamond"] = '', ["log_nosuit"] = "无花色", - ["nosuit"] = "无花色", ["spade"] = "黑桃", ["heart"] = "红桃", ["club"] = "梅花", ["diamond"] = "方块", + ["nosuit"] = "无花色", + ["black"] = '黑色', + ["red"] = '红色', + ["nocolor"] = '无色', ["suit"] = "花色", ["color"] = "颜色", ["number"] = "点数",