import { method, RUN_LENGTH, GOLD_PER_WIN, CARD_PRICE, REST_HEAL, RELIC_PRICE, ACT_COUNT, ACT_MAPS, LOBBY_MAP, LOBBY_SPAWN } from '../lib/codeblock.mjs'; import { CARDS, ENEMIES, CLASSES, JOBS, SOUL_UNLOCKS, CARDFRAMES, RARITIES, MAP_ROWS, MAP_COLS, CHEST_CLOSED_RUID, CHEST_OPEN_RUID, NODEICONS, CHARS, CAM, RELICS, POTIONS, luaSoulShopTable, frameRuid, luaFramesTable, luaNodeIconsTable, luaRelicsTable, luaPotionsTable, luaIntentsArray, luaEnemiesTable, luaStr, luaJobsTable, luaCardsTable, luaDeckTable } from '../lib/data.mjs'; import { UI_FILE, COMMON_FILE, UI_ROOT, GENERATED_UI_SECTIONS, UI_APPEND_ORDER, DISABLED_STOCK_CONTROLS, TRANSPARENT, DARK, GOLD, ATTACK, DEFEND, SKILL, DAMAGE_DIGIT_RUIDS, DAMAGE_POP_MAX_DIGITS, DAMAGE_POP_DIGIT_W, DAMAGE_POP_DIGIT_H, DAMAGE_POP_DIGIT_SPACING, MAX_MONSTERS, HEAD_OFFSET_Y, HP_BAR_W, WHITE, CARD_NAME_TEXT, CARD_DESC_TEXT, cardFaceLayout, CARD_W, CARD_H, CARD_SPACING, CARD_XS, ALIGN_CENTER, ALIGN_BOTTOM_CENTER, guid, transform, sprite, button, text, scrollLayoutGroup, popupLayerFor, uiOrderFor, displayOrderFor, applySortingOverride, entity, uiPath, sectionRoot, isGeneratedUiEntity, appendUiSection } from '../lib/ui-helpers.mjs'; export const charSelectMethods = [ method('ShowCharacterSelect', `self.SelectedClass = "" self:ShowState("charselect") self:RenderCharacterSelect()`), method('SelectClass', `self.SelectedClass = className self:RenderCharacterSelect()`, [ { Type: 'string', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'className' }, ]), method('RenderCharacterSelect', `local warrior = _EntityService:GetEntityByPath("/ui/DefaultGroup/CharacterSelectHud/WarriorButton") if warrior ~= nil and warrior.SpriteGUIRendererComponent ~= nil then if self.SelectedClass == "warrior" then warrior.SpriteGUIRendererComponent.Color = Color(1, 0.82, 0.3, 1) else warrior.SpriteGUIRendererComponent.Color = Color(0.16, 0.2, 0.26, 1) end end local mage = _EntityService:GetEntityByPath("/ui/DefaultGroup/CharacterSelectHud/MageButton") if mage ~= nil and mage.SpriteGUIRendererComponent ~= nil then if self.SelectedClass == "magician" then mage.SpriteGUIRendererComponent.Color = Color(1, 0.82, 0.3, 1) else mage.SpriteGUIRendererComponent.Color = Color(0.16, 0.2, 0.26, 1) end end local thief = _EntityService:GetEntityByPath("/ui/DefaultGroup/CharacterSelectHud/ThiefButton") if thief ~= nil and thief.SpriteGUIRendererComponent ~= nil then if self.SelectedClass == "bandit" then thief.SpriteGUIRendererComponent.Color = Color(1, 0.82, 0.3, 1) else thief.SpriteGUIRendererComponent.Color = Color(0.16, 0.2, 0.26, 1) end end if self.SelectedClass == "warrior" then self:SetText("/ui/DefaultGroup/CharacterSelectHud/Status", "전사 선택됨") elseif self.SelectedClass == "bandit" then self:SetText("/ui/DefaultGroup/CharacterSelectHud/Status", "도적 선택됨") elseif self.SelectedClass == "magician" then self:SetText("/ui/DefaultGroup/CharacterSelectHud/Status", "마법사 선택됨") else self:SetText("/ui/DefaultGroup/CharacterSelectHud/Status", "직업을 선택하고 시작하세요") end`), method('StartNewGame', `if self.SelectedClass ~= "warrior" and self.SelectedClass ~= "bandit" and self.SelectedClass ~= "magician" then self:SetText("/ui/DefaultGroup/CharacterSelectHud/Status", "직업을 먼저 선택하세요") return end self:StartRun()`), method('SetEntityEnabled', `local e = _EntityService:GetEntityByPath(path) if e ~= nil then e.Enable = enabled end`, [ { Type: 'string', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'path' }, { Type: 'boolean', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'enabled' }, ]), ];