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"] = "花色",