diff --git a/lua/client/i18n/en_US.lua b/lua/client/i18n/en_US.lua index d83fd798f8b056133deabbae3937365f93ccf821..c34249a86aad0fd2d18af1493cb13a497238c0d4 100644 --- a/lua/client/i18n/en_US.lua +++ b/lua/client/i18n/en_US.lua @@ -443,4 +443,6 @@ Fk:loadTranslationTable({ ["##ResponsePlayCard"] = "%from plays", ["##ShowCard"] = "%from shows", ["##JudgeCard"] = "%arg judge", + ["##PindianCard"] = "%from point fights", + ["##RecastCard"] = "%from recasts", }, "en_US") diff --git a/lua/client/i18n/zh_CN.lua b/lua/client/i18n/zh_CN.lua index 3b90079f9709e137c59401e92f4314e4b728bf93..b4488c8346d13b72b93b76a71a29dafd8ecdf302 100644 --- a/lua/client/i18n/zh_CN.lua +++ b/lua/client/i18n/zh_CN.lua @@ -492,7 +492,7 @@ Fk:loadTranslationTable{ ["#HealMaxHP"] = "%from 加了 %arg 点体力上限", -- dying and death - ["#EnterDying"] = "%from 进入了濒死阶段", + ["#EnterDying"] = "%from 进入了濒死状态", ["#KillPlayer"] = "%from [%arg] 阵亡,凶手是 %to", ["#KillPlayerWithNoKiller"] = "%from [%arg] 阵亡,无伤害来源", ["#Revive"] = "%from 竟然复活了", @@ -519,4 +519,6 @@ Fk:loadTranslationTable{ ["##ResponsePlayCard"] = "%from打出", ["##ShowCard"] = "%from展示", ["##JudgeCard"] = "%arg判定", + ["##PindianCard"] = "%from拼点", + ["##RecastCard"] = "%from重铸", } diff --git a/lua/server/events/pindian.lua b/lua/server/events/pindian.lua index 5318896cf7400771a241802902a6f2aee17b1ad4..64c1bec171f13337e392d5ca4aab959e2726cc42 100644 --- a/lua/server/events/pindian.lua +++ b/lua/server/events/pindian.lua @@ -37,6 +37,7 @@ function Pindian:main() pindianCard:addSubcard(_pindianCard.id) pindianData.fromCard = pindianCard + pindianData._fromCard = _pindianCard table.insert(moveInfos, { ids = { _pindianCard.id }, @@ -55,6 +56,7 @@ function Pindian:main() pindianCard:addSubcard(_pindianCard.id) pindianData.results[to.id].toCard = pindianCard + pindianData.results[to.id]._toCard = _pindianCard table.insert(moveInfos, { ids = { _pindianCard.id }, @@ -88,9 +90,11 @@ function Pindian:main() if p == pindianData.from then pindianData.fromCard = pindianCard + pindianData._fromCard = _pindianCard else pindianData.results[p.id] = pindianData.results[p.id] or {} pindianData.results[p.id].toCard = pindianCard + pindianData.results[p.id]._toCard = _pindianCard end table.insert(moveInfos, { @@ -111,6 +115,17 @@ function Pindian:main() room:moveCards(table.unpack(moveInfos)) + room:sendFootnote({ pindianData._fromCard.id }, { + type = "##PindianCard", + from = pindianData.from.id, + }) + for _, to in ipairs(pindianData.tos) do + room:sendFootnote({ pindianData.results[to.id]._toCard.id }, { + type = "##PindianCard", + from = to.id, + }) + end + logic:trigger(fk.PindianCardsDisplayed, nil, pindianData) for _, to in ipairs(pindianData.tos) do @@ -136,6 +151,10 @@ function Pindian:main() to = { to.id }, arg = result.winner == pindianData.from and "pindianwin" or "pindiannotwin" } + + -- room:setCardEmotion(pindianData._fromCard.id, result.winner == pindianData.from and "pindianwin" or "pindiannotwin") + -- room:setCardEmotion(pindianData.results[to.id]._toCard.id, result.winner == to and "pindianwin" or "pindiannotwin") + logic:trigger(fk.PindianResultConfirmed, nil, singlePindianData) end diff --git a/lua/server/room.lua b/lua/server/room.lua index 9610fb9a4360f2fae3017d593508323313077db1..ca42c56beeda3db030f9548056c90b081e1fd71d 100644 --- a/lua/server/room.lua +++ b/lua/server/room.lua @@ -3573,6 +3573,10 @@ function Room:recastCard(card_ids, who, skillName) moveReason = fk.ReasonRecast, proposer = who.id }) + self:sendFootnote(card_ids, { + type = "##RecastCard", + from = who.id, + }) self:broadcastPlaySound("./audio/system/recast") self:sendLog{ type = skillName == "recast" and "#Recast" or "#RecastBySkill", diff --git a/standard_cards/init.lua b/standard_cards/init.lua index e2879c3ef44d28c94a8961d0d31af171725ecd8c..143af4309274aa9d52af1acccbf8e73d9a74c999 100644 --- a/standard_cards/init.lua +++ b/standard_cards/init.lua @@ -1163,9 +1163,13 @@ local eightDiagramSkill = fk.CreateTriggerSkill{ attached_equip = "eight_diagram", events = {fk.AskForCardUse, fk.AskForCardResponse}, can_trigger = function(self, event, target, player, data) - return target == player and player:hasSkill(self) and - (data.cardName == "jink" or (data.pattern and Exppattern:Parse(data.pattern):matchExp("jink|0|nosuit|none"))) and - (event == fk.AskForCardUse and not player:prohibitUse(Fk:cloneCard("jink")) or not player:prohibitResponse(Fk:cloneCard("jink"))) + if not (target == player and player:hasSkill(self) and + (data.cardName == "jink" or (data.pattern and Exppattern:Parse(data.pattern):matchExp("jink|0|nosuit|none")))) then return end + if event == fk.AskForCardUse then + return not player:prohibitUse(Fk:cloneCard("jink")) + else + return not player:prohibitResponse(Fk:cloneCard("jink")) + end end, on_use = function(self, event, target, player, data) local room = player.room