From c5e28062eb0686383e38fe45bdd91ed65efbfcce Mon Sep 17 00:00:00 2001 From: gahusb Date: Thu, 11 Jun 2026 01:50:00 +0900 Subject: [PATCH] =?UTF-8?q?feat(combat-ui):=20=EC=97=90=EB=84=88=EC=A7=80?= =?UTF-8?q?=20=EC=98=A4=EB=B8=8C(=EC=A2=8C)=C2=B7=ED=84=B4=20=EC=A2=85?= =?UTF-8?q?=EB=A3=8C=20=EB=B2=84=ED=8A=BC(=EC=9A=B0)=20=EC=9E=AC=EB=B0=B0?= =?UTF-8?q?=EC=B9=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- tools/deck/gen-slaydeck.mjs | 39 ++++++++++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/tools/deck/gen-slaydeck.mjs b/tools/deck/gen-slaydeck.mjs index ef8e430..8853f35 100644 --- a/tools/deck/gen-slaydeck.mjs +++ b/tools/deck/gen-slaydeck.mjs @@ -525,24 +525,49 @@ function upsertUi() { componentNames: 'MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent,MOD.Core.ButtonComponent,MOD.Core.TextComponent', displayOrder: 2, components: [ - transform({ parentW: 1280, parentH: 330, anchor: { x: 0.5, y: 0.5 }, pivot: { x: 0.5, y: 0.5 }, size: { x: 170, y: 58 }, pos: { x: 0, y: 135 }, align: ALIGN_CENTER }), + transform({ parentW: 1280, parentH: 330, anchor: { x: 0.5, y: 0.5 }, pivot: { x: 0.5, y: 0.5 }, size: { x: 200, y: 64 }, pos: { x: 560, y: 130 }, align: ALIGN_CENTER }), sprite({ color: DARK, type: 1, raycast: true }), button(), - text({ value: '턴 종료', fontSize: 25, bold: true, color: GOLD, alignment: 0 }), + text({ value: '턴 종료', fontSize: 28, bold: true, color: GOLD, alignment: 0 }), ], })); add(entity({ id: guid('hud', hud.length), - path: '/ui/DefaultGroup/DeckHud/Energy', + path: '/ui/DefaultGroup/DeckHud/EnergyOrb', + modelId: 'uisprite', + entryId: 'UISprite', + componentNames: 'MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent', + displayOrder: 3, + components: [ + transform({ parentW: 1280, parentH: 330, anchor: { x: 0.5, y: 0.5 }, pivot: { x: 0.5, y: 0.5 }, size: { x: 96, y: 96 }, pos: { x: -560, y: 130 }, align: ALIGN_CENTER }), + sprite({ color: { r: 0.12, g: 0.2, b: 0.34, a: 0.95 }, type: 1 }), + ], + })); + add(entity({ + id: guid('hud', hud.length), + path: '/ui/DefaultGroup/DeckHud/EnergyOrb/Value', modelId: 'uitext', entryId: 'UIText', componentNames: 'MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent,MOD.Core.TextComponent', - displayOrder: 3, + displayOrder: 0, components: [ - transform({ parentW: 1280, parentH: 330, anchor: { x: 0.5, y: 0.5 }, pivot: { x: 0.5, y: 0.5 }, size: { x: 220, y: 42 }, pos: { x: 0, y: 90 }, align: ALIGN_CENTER }), + transform({ parentW: 96, parentH: 96, anchor: { x: 0.5, y: 0.5 }, pivot: { x: 0.5, y: 0.5 }, size: { x: 92, y: 48 }, pos: { x: 0, y: 6 } }), sprite({ color: TRANSPARENT }), - text({ value: '에너지 3/3', fontSize: 24, bold: true, color: { r: 0.6, g: 0.9, b: 1, a: 1 }, alignment: 0 }), + text({ value: '3/3', fontSize: 34, bold: true, color: { r: 0.65, g: 0.92, b: 1, a: 1 }, alignment: 4 }), + ], + })); + add(entity({ + id: guid('hud', hud.length), + path: '/ui/DefaultGroup/DeckHud/EnergyOrb/Label', + modelId: 'uitext', + entryId: 'UIText', + componentNames: 'MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent,MOD.Core.TextComponent', + displayOrder: 1, + components: [ + transform({ parentW: 96, parentH: 96, anchor: { x: 0.5, y: 0.5 }, pivot: { x: 0.5, y: 0.5 }, size: { x: 92, y: 24 }, pos: { x: 0, y: -28 } }), + sprite({ color: TRANSPARENT }), + text({ value: '에너지', fontSize: 14, bold: true, color: { r: 0.55, g: 0.7, b: 0.85, a: 1 }, alignment: 4 }), ], })); @@ -1970,7 +1995,7 @@ self.DiscardPile = {} self:Shuffle(self.DrawPile)`), method('RenderPiles', `self:SetText("/ui/DefaultGroup/DeckHud/DrawPile/Count", tostring(#self.DrawPile)) self:SetText("/ui/DefaultGroup/DeckHud/DiscardPile/Count", tostring(#self.DiscardPile)) -self:SetText("/ui/DefaultGroup/DeckHud/Energy", "에너지 " .. string.format("%d", self.Energy) .. "/" .. string.format("%d", self.MaxEnergy)) +self:SetText("/ui/DefaultGroup/DeckHud/EnergyOrb/Value", string.format("%d", self.Energy) .. "/" .. string.format("%d", self.MaxEnergy)) local inspect = _EntityService:GetEntityByPath("/ui/DefaultGroup/DeckInspectHud") if inspect ~= nil and inspect.Enable == true and self.DeckInspectKind ~= "" then self:OpenDeckInspect(self.DeckInspectKind)