diff --git a/tools/deck/gen-slaydeck.mjs b/tools/deck/gen-slaydeck.mjs index ac16002..72b3460 100644 --- a/tools/deck/gen-slaydeck.mjs +++ b/tools/deck/gen-slaydeck.mjs @@ -1732,10 +1732,22 @@ self:SetEntityEnabled("/ui/DefaultGroup/RewardHud", false) self:SetEntityEnabled("/ui/DefaultGroup/MapHud", false) self:SetEntityEnabled("/ui/DefaultGroup/ShopHud", false) self:SetEntityEnabled("/ui/DefaultGroup/RestHud", false)`), + method('ShowState', `self:HideGameHud() +self:SetEntityEnabled("/ui/DefaultGroup/MainMenu", state == "menu") +self:SetEntityEnabled("/ui/DefaultGroup/CharacterSelectHud", state == "charselect") +if state == "map" then + self:SetEntityEnabled("/ui/DefaultGroup/MapHud", true) +elseif state == "combat" then + self:SetEntityEnabled("/ui/DefaultGroup/CombatHud", true) + self:SetEntityEnabled("/ui/DefaultGroup/DeckHud", true) + self:SetEntityEnabled("/ui/DefaultGroup/CardHand", true) +elseif state == "shop" then + self:SetEntityEnabled("/ui/DefaultGroup/ShopHud", true) +elseif state == "rest" then + self:SetEntityEnabled("/ui/DefaultGroup/RestHud", true) +end`, [{ Type: 'string', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'state' }]), method('ShowMainMenu', `self.SelectedClass = "" -self:HideGameHud() -self:SetEntityEnabled("/ui/DefaultGroup/MainMenu", true) -self:SetEntityEnabled("/ui/DefaultGroup/CharacterSelectHud", false) +self:ShowState("menu") self:SetText("/ui/DefaultGroup/MainMenu/Title", "메이플 덱 어드벤처") self:SetText("/ui/DefaultGroup/MainMenu/Subtitle", "캐릭터를 고르고 덱을 만들어 모험을 시작하세요") self:SetText("/ui/DefaultGroup/MainMenu/NewGameButton", "새 게임") @@ -1765,9 +1777,7 @@ if start ~= nil and start.ButtonComponent ~= nil then self.StartGameHandler = start:ConnectEvent(ButtonClickEvent, function() self:StartNewGame() end) end`), method('ShowCharacterSelect', `self.SelectedClass = "" -self:HideGameHud() -self:SetEntityEnabled("/ui/DefaultGroup/MainMenu", false) -self:SetEntityEnabled("/ui/DefaultGroup/CharacterSelectHud", true) +self:ShowState("charselect") self:RenderCharacterSelect()`), method('SelectClass', `self.SelectedClass = className self:RenderCharacterSelect()`, [ @@ -1790,8 +1800,6 @@ end`), self:SetText("/ui/DefaultGroup/CharacterSelectHud/Status", "현재는 전사만 선택할 수 있습니다") return end -self:SetEntityEnabled("/ui/DefaultGroup/MainMenu", false) -self:SetEntityEnabled("/ui/DefaultGroup/CharacterSelectHud", false) self:StartRun()`), method('SetEntityEnabled', `local e = _EntityService:GetEntityByPath(path) if e ~= nil then @@ -1818,10 +1826,8 @@ self.CurrentEnemyId = "" self:BindButtons() self:AddRelic("${RELICS.startingRelic}") self:ShowMap()`), - method('StartCombat', `self:SetEntityEnabled("/ui/DefaultGroup/MapHud", false) -self:SetEntityEnabled("/ui/DefaultGroup/DeckHud", true) -self:SetEntityEnabled("/ui/DefaultGroup/CardHand", true) -self:SetEntityEnabled("/ui/DefaultGroup/CombatHud", true) + method('StartCombat', `self:ShowState("combat") +self:SetEntityEnabled("/ui/DefaultGroup/CombatHud/Result", false) self.MaxEnergy = 3 self.Turn = 0 self.PlayerBlock = 0 @@ -2541,14 +2547,8 @@ if names == "" then names = "없음" end self:SetText("/ui/DefaultGroup/CombatHud/TopBar/Relics", "유물: " .. names)`), - method('ShowMap', `self:SetEntityEnabled("/ui/DefaultGroup/DeckHud", false) -self:SetEntityEnabled("/ui/DefaultGroup/CardHand", false) -self:SetEntityEnabled("/ui/DefaultGroup/CombatHud", false) -self:RenderMap() -local hud = _EntityService:GetEntityByPath("/ui/DefaultGroup/MapHud") -if hud ~= nil then - hud.Enable = true -end`), + method('ShowMap', `self:ShowState("map") +self:RenderMap()`), method('IsReachable', `local list if self.CurrentNodeId == "" then list = self.MapStart @@ -2613,10 +2613,7 @@ end self.ShopRelic = self.RelicPool[math.random(1, #self.RelicPool)] self.ShopRelicBought = false self:RenderShop() -local hud = _EntityService:GetEntityByPath("/ui/DefaultGroup/ShopHud") -if hud ~= nil then - hud.Enable = true -end`), +self:ShowState("shop")`), method('RenderShop', `self:SetText("/ui/DefaultGroup/ShopHud/Gold", "골드 " .. string.format("%d", self.Gold)) for i = 1, 3 do local cid = self.ShopChoices[i] @@ -2684,10 +2681,7 @@ end local healed = self.PlayerHp - old self:SetText("/ui/DefaultGroup/RestHud/Info", "HP " .. string.format("%d", old) .. " → " .. string.format("%d", self.PlayerHp) .. " (+" .. string.format("%d", healed) .. ")") self:RenderCombat() -local hud = _EntityService:GetEntityByPath("/ui/DefaultGroup/RestHud") -if hud ~= nil then - hud.Enable = true -end`), +self:ShowState("rest")`), method('LeaveNode', `local s = _EntityService:GetEntityByPath("/ui/DefaultGroup/ShopHud") if s ~= nil then s.Enable = false