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, luaCharsTable, 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 bootMethods = [ method('OnBeginPlay', `${luaCardsTable(CARDS.cards)} ${luaFramesTable()} ${luaNodeIconsTable()} ${luaCharsTable()} ${luaSoulShopTable(SOUL_UNLOCKS)} self.SoulUnlocks = {} self.SoulPoints = self.SoulPoints or 0 local uiTries = 0 local uiInit = 0 uiInit = _TimerService:SetTimerRepeat(function() uiTries = uiTries + 1 if _EntityService:GetEntityByPath("/ui/DeckUIGroup") ~= nil then self:ActivateUIGroups() self:ShowMainMenu() _TimerService:ClearTimer(uiInit) elseif uiTries > 80 then _TimerService:ClearTimer(uiInit) end end, 0.1) local lp = _UserService.LocalPlayer if lp ~= nil then self:ReqLoadAscension(lp.PlayerComponent.UserId) self:ReqLoadSouls(lp.PlayerComponent.UserId) end _InputService:ConnectEvent(KeyDownEvent, function(e) if e.key == KeyboardKey.LeftControl then local lp2 = _UserService.LocalPlayer if lp2 ~= nil and lp2.CurrentMapName == "${LOBBY_MAP}" and self.RunActive ~= true then self:PlayerAttackMotion() end end end)`), method('ReqLoadAscension', `local ds = _DataStorageService:GetUserDataStorage(userId) local errCode, value = ds:GetAndWait("ascensionUnlocked") local n = 0 if errCode == 0 and value ~= nil and value ~= "" then n = tonumber(value) or 0 end self:RecvAscension(n, userId)`, [{ Type: 'string', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'userId' }], 5), method('RecvAscension', `self.AscensionUnlocked = n if self.AscensionLevel > self.AscensionUnlocked then self.AscensionLevel = self.AscensionUnlocked end self:RenderAscension()`, [ { Type: 'number', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'n' }, { Type: 'string', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'userId' }, ], 6), method('SaveAscension', `local ds = _DataStorageService:GetUserDataStorage(userId) ds:SetAndWait("ascensionUnlocked", tostring(n))`, [ { Type: 'number', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'n' }, { Type: 'string', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'userId' }, ], 5), method('AdjustAscension', `local v = self.AscensionLevel + delta if v < 0 then v = 0 end if v > self.AscensionUnlocked then v = self.AscensionUnlocked end self.AscensionLevel = v self:RenderAscension()`, [{ Type: 'number', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'delta' }]), method('RenderAscension', `self:SetText("/ui/DefaultGroup/MainMenu/AscLabel", "승천 " .. string.format("%d", self.AscensionLevel) .. " / 해금 " .. string.format("%d", self.AscensionUnlocked)) self:SetText("/ui/LobbyUIGroup/LobbyHud/AscLabel", "승천 " .. string.format("%d", self.AscensionLevel) .. " / 해금 " .. string.format("%d", self.AscensionUnlocked))`), method('AscHpMult', `local m = 1 if self.AscensionLevel >= 1 then m = m + 0.1 end if self.AscensionLevel >= 6 then m = m + 0.1 end return m`, [], 0, 'number'), method('AscAtkMult', `local m = 1 if self.AscensionLevel >= 2 then m = m + 0.1 end if self.AscensionLevel >= 7 then m = m + 0.1 end return m`, [], 0, 'number'), method('AscEliteBonus', `local b = 0 if self.AscensionLevel >= 4 then b = b + 0.2 end if self.AscensionLevel >= 9 then b = b + 0.2 end return b`, [], 0, 'number'), method('AscGoldMult', `local m = 1 if self.AscensionLevel >= 5 then m = m - 0.25 end if self.AscensionLevel >= 10 then m = m - 0.25 end return m`, [], 0, 'number'), method('AscStartHpPenalty', `local p = 0 if self.AscensionLevel >= 3 then p = p + 10 end if self.AscensionLevel >= 8 then p = p + 10 end return p`, [], 0, 'number'), ];