diff --git a/Fk/RoomElement/CardItem.qml b/Fk/RoomElement/CardItem.qml index 6b58a0dd..31537b3f 100644 --- a/Fk/RoomElement/CardItem.qml +++ b/Fk/RoomElement/CardItem.qml @@ -122,7 +122,7 @@ Item { Image { id: colorItem - visible: known && (suit === "" || suit === "nosuit") // && number <= 0 // <- FIX ME:需要区分“黑色有点数”和“无色有点数” + visible: known && (suit === "" || suit === "nosuit") // && number <= 0 // <- FIXME: 需要区分“黑色有点数”和“无色有点数” source: (visible && color !== "") ? SkinBank.CARD_SUIT_DIR + "/" + color : "" x: 1 } diff --git a/lua/server/room.lua b/lua/server/room.lua index cbaaa3bb..de8e5e6d 100644 --- a/lua/server/room.lua +++ b/lua/server/room.lua @@ -1477,7 +1477,7 @@ function Room:askForGeneral(player, generals, n, noConvert) return choices end - return defaultChoice + return n == 1 and defaultChoice[1] or defaultChoice end --- 询问玩家若为神将、双势力需选择一个势力。 @@ -1954,6 +1954,7 @@ end -- * exclusive_targets: integer[] -- * bypass_distances: boolean -- * bypass_times: boolean +--- --- 询问玩家使用一张牌。 ---@param player ServerPlayer @ 要询问的玩家 ---@param card_name? string @ 使用牌的牌名,若pattern指定了则可随意写,它影响的是烧条的提示信息 @@ -1983,10 +1984,10 @@ function Room:askForUseCard(player, card_name, pattern, prompt, cancelable, extr if extra_data then if extra_data.bypass_distances then - player.room:setPlayerMark(player, MarkEnum.BypassDistancesLimit .. "-tmp", 1) + player.room:setPlayerMark(player, MarkEnum.BypassDistancesLimit .. "-tmp", 1) -- FIXME: 缺少直接传入无限制的手段 end if extra_data.bypass_times == nil or extra_data.bypass_times then - player.room:setPlayerMark(player, MarkEnum.BypassTimesLimit .. "-tmp", 1) + player.room:setPlayerMark(player, MarkEnum.BypassTimesLimit .. "-tmp", 1) -- FIXME: 缺少直接传入无限制的手段 end end local command = "AskForUseCard" @@ -2006,8 +2007,8 @@ function Room:askForUseCard(player, card_name, pattern, prompt, cancelable, extr self.logic:trigger(fk.AskForCardUse, player, askForUseCardData) if askForUseCardData.result and type(askForUseCardData.result) == 'table' then - player.room:setPlayerMark(player, MarkEnum.BypassDistancesLimit .. "-tmp", 0) - player.room:setPlayerMark(player, MarkEnum.BypassTimesLimit .. "-tmp", 0) + player.room:setPlayerMark(player, MarkEnum.BypassDistancesLimit .. "-tmp", 0) -- FIXME: 缺少直接传入无限制的手段 + player.room:setPlayerMark(player, MarkEnum.BypassTimesLimit .. "-tmp", 0) -- FIXME: 缺少直接传入无限制的手段 return askForUseCardData.result else local useResult @@ -2022,8 +2023,8 @@ function Room:askForUseCard(player, card_name, pattern, prompt, cancelable, extr Fk.currentResponsePattern = nil if result ~= "" then - player.room:setPlayerMark(player, MarkEnum.BypassDistancesLimit .. "-tmp", 0) - player.room:setPlayerMark(player, MarkEnum.BypassTimesLimit .. "-tmp", 0) + player.room:setPlayerMark(player, MarkEnum.BypassDistancesLimit .. "-tmp", 0) -- FIXME: 缺少直接传入无限制的手段 + player.room:setPlayerMark(player, MarkEnum.BypassTimesLimit .. "-tmp", 0) -- FIXME: 缺少直接传入无限制的手段 useResult = self:handleUseCardReply(player, result) if type(useResult) == "string" and useResult ~= "" then @@ -2034,8 +2035,8 @@ function Room:askForUseCard(player, card_name, pattern, prompt, cancelable, extr return useResult end - player.room:setPlayerMark(player, MarkEnum.BypassDistancesLimit .. "-tmp", 0) - player.room:setPlayerMark(player, MarkEnum.BypassTimesLimit .. "-tmp", 0) + player.room:setPlayerMark(player, MarkEnum.BypassDistancesLimit .. "-tmp", 0) -- FIXME: 缺少直接传入无限制的手段 + player.room:setPlayerMark(player, MarkEnum.BypassTimesLimit .. "-tmp", 0) -- FIXME: 缺少直接传入无限制的手段 return nil end @@ -3155,6 +3156,7 @@ function Room:retrial(card, player, judge, skillName, exchange) } self:moveCards(move2) + Fk:filterCard(judge.card.id, judge.who, judge) end --- 弃置一名角色的牌。 diff --git a/lua/server/system_enum.lua b/lua/server/system_enum.lua index 4120b836..9f0b0b88 100644 --- a/lua/server/system_enum.lua +++ b/lua/server/system_enum.lua @@ -87,8 +87,9 @@ fk.IceDamage = 4 --- askForUseCard中的extra_data ---@class UseExtraData ----@field public must_targets? integer[] @ 必须选的目标(?) ----@field public exclusive_targets? integer[] @ ?? +---@field public must_targets? integer[] @ 必须选择这些目标? +---@field public include_targets? integer[] @ 必须选其中一个目标? +---@field public exclusive_targets? integer[] @ 只能选择这些目标? ---@field public bypass_distances? boolean @ 无距离限制? ---@field public bypass_times? boolean @ 无次数限制? ---@field public playing? boolean @ (AI专用) 出牌阶段? diff --git a/packages/standard_cards/i18n/en_US.lua b/packages/standard_cards/i18n/en_US.lua index c53ace84..b5fcde3a 100644 --- a/packages/standard_cards/i18n/en_US.lua +++ b/packages/standard_cards/i18n/en_US.lua @@ -4,9 +4,9 @@ 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", -- ["spade"] = "Spade", @@ -14,7 +14,7 @@ Fk:loadTranslationTable({ -- ["club"] = "Club", -- ["diamond"] = "Diamond", ["nosuit"] = "No suit", - ["black"] = 'Black', + ["black"] = 'Black', ["red"] = 'Red', ["nocolor"] = 'NoColor', -- ["suit"] = "花色", diff --git a/packages/standard_cards/i18n/zh_CN.lua b/packages/standard_cards/i18n/zh_CN.lua index 3136ecd3..f1aad0d6 100644 --- a/packages/standard_cards/i18n/zh_CN.lua +++ b/packages/standard_cards/i18n/zh_CN.lua @@ -4,9 +4,9 @@ Fk:loadTranslationTable{ ["standard_cards"] = "标+EX", ["unknown_card"] = '未知牌', - ["log_spade"] = '', + ["log_spade"] = '♠', ["log_heart"] = '', - ["log_club"] = '', + ["log_club"] = '♣', ["log_diamond"] = '', ["log_nosuit"] = "无花色", ["spade"] = "黑桃", @@ -14,7 +14,7 @@ Fk:loadTranslationTable{ ["club"] = "梅花", ["diamond"] = "方块", ["nosuit"] = "无花色", - ["black"] = '黑色', + ["black"] = '黑色', ["red"] = '红色', ["nocolor"] = '无色', ["suit"] = "花色",