From 2f7d7d4a96aea08c72dae94cf2d552ef161628c4 Mon Sep 17 00:00:00 2001 From: Ho-spair <62695577+Ho-spair@users.noreply.github.com> Date: Sun, 13 Aug 2023 12:35:23 +0800 Subject: [PATCH] fix abort areas (#252) Co-authored-by: Nyutanislavsky --- Fk/PhotoElement/EquipItem.qml | 2 +- lua/client/i18n/zh_CN.lua | 7 +++++++ lua/server/event.lua | 5 ++++- lua/server/gamelogic.lua | 1 + lua/server/room.lua | 27 ++++++++++++++++++++++++++- 5 files changed, 39 insertions(+), 3 deletions(-) diff --git a/Fk/PhotoElement/EquipItem.qml b/Fk/PhotoElement/EquipItem.qml index aa4a07e0..f519c985 100644 --- a/Fk/PhotoElement/EquipItem.qml +++ b/Fk/PhotoElement/EquipItem.qml @@ -158,7 +158,7 @@ Item { hideAnime.stop(); x = 0; - opacity = 1; + opacity = sealed ? 1 : 0; text = ' ' + Backend.translate(subtype + "_sealed") } } diff --git a/lua/client/i18n/zh_CN.lua b/lua/client/i18n/zh_CN.lua index b2a303ce..3e08cdf3 100644 --- a/lua/client/i18n/zh_CN.lua +++ b/lua/client/i18n/zh_CN.lua @@ -343,6 +343,13 @@ Fk:loadTranslationTable{ ["weapon_sealed"] = "武器栏废除", ["armor_sealed"] = "防具栏废除", ["treasure_sealed"] = "宝物栏废除", + + ["WeaponSlot"] = "武器栏", + ["ArmorSlot"] = "防具栏", + ["OffensiveRideSlot"] = "进攻坐骑栏", + ["DefensiveRideSlot"] = "防御坐骑栏", + ["TreasureSlot"] = "宝物栏", + ["JudgeSlot"] = "判定区", } -- related to sendLog diff --git a/lua/server/event.lua b/lua/server/event.lua index e3ee23f7..2d95149b 100644 --- a/lua/server/event.lua +++ b/lua/server/event.lua @@ -122,4 +122,7 @@ fk.AfterSkillEffect = 82 -- 85 = xxx -- 86 = AfterPhaseEnd -fk.NumOfEvents = 83 +fk.AreaAborted = 87 +fk.AreaResumed = 88 + +fk.NumOfEvents = 89 diff --git a/lua/server/gamelogic.lua b/lua/server/gamelogic.lua index 186b3ec3..1242f66b 100644 --- a/lua/server/gamelogic.lua +++ b/lua/server/gamelogic.lua @@ -128,6 +128,7 @@ function GameLogic:chooseGenerals() room:setPlayerGeneral(lord, lord_general, true) room:askForChooseKingdom({lord}) room:broadcastProperty(lord, "general") + room:broadcastProperty(lord, "kingdom") room:setDeputyGeneral(lord, deputy) room:broadcastProperty(lord, "deputyGeneral") end diff --git a/lua/server/room.lua b/lua/server/room.lua index d00549bc..5604a5ff 100644 --- a/lua/server/room.lua +++ b/lua/server/room.lua @@ -3258,7 +3258,7 @@ function Room:abortPlayerArea(player, playerSlots) end end - if next(slotsSealed) == nil then + if #slotsToSeal == 0 then return end @@ -3271,6 +3271,31 @@ function Room:abortPlayerArea(player, playerSlots) table.insertTable(player.sealedSlots, slotsToSeal) self:broadcastProperty(player, "sealedSlots") + + self.logic:trigger(fk.AreaAborted, player, { slots = slotsSealed }) +end + +function Room:resumePlayerArea(player, playerSlots) + assert(type(playerSlots) == "string" or type(playerSlots) == "table") + + if type(playerSlots) == "string" then + playerSlots = { playerSlots } + end + + local slotsToResume = {} + for _, slot in ipairs(playerSlots) do + for i = 1, #player.sealedSlots do + if player.sealedSlots[i] == slot then + table.remove(player.sealedSlots, i) + table.insert(slotsToResume, slot) + end + end + end + + if #slotsToResume > 0 then + self:broadcastProperty(player, "sealedSlots") + self.logic:trigger(fk.AreaResumed, player, { slots = slotsToResume }) + end end return Room