81 lines
4.4 KiB
JavaScript
81 lines
4.4 KiB
JavaScript
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 base = "/ui/SelectUIGroup/CharacterSelectHud"
|
|
local arts = { { p = "/WarriorButton/Art", c = "warrior" }, { p = "/MageButton/Art", c = "magician" }, { p = "/BanditButton/Art", c = "rogue" } }
|
|
for i = 1, #arts do
|
|
local e = _EntityService:GetEntityByPath(base .. arts[i].p)
|
|
if e ~= nil and e.SpriteGUIRendererComponent ~= nil and self.ClassPortraits ~= nil and self.ClassPortraits[arts[i].c] ~= nil then
|
|
e.SpriteGUIRendererComponent.ImageRUID = self.ClassPortraits[arts[i].c]
|
|
end
|
|
end
|
|
local btns = { { p = "/WarriorButton", c = "warrior" }, { p = "/MageButton", c = "magician" }, { p = "/BanditButton", c = "rogue" } }
|
|
for i = 1, #btns do
|
|
local e = _EntityService:GetEntityByPath(base .. btns[i].p)
|
|
if e ~= nil then
|
|
if e.MaskComponent == nil then
|
|
e:AddComponent("MaskComponent")
|
|
end
|
|
if e.SpriteGUIRendererComponent ~= nil then
|
|
if self.SelectedClass == btns[i].c then
|
|
e.SpriteGUIRendererComponent.Color = Color(1, 1, 1, 1)
|
|
else
|
|
e.SpriteGUIRendererComponent.Color = Color(0.45, 0.5, 0.58, 1)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
local nl = string.char(10)
|
|
local name = ""
|
|
local eng = ""
|
|
local desc = "직업을 선택하고 시작하세요"
|
|
local btnName = ""
|
|
if self.SelectedClass == "warrior" then
|
|
name = "전사"
|
|
eng = "Warrior"
|
|
btnName = "/WarriorButton"
|
|
desc = "직업군 · 모험가" .. nl .. "방어를 쌓고 버티는 공격형 전사."
|
|
elseif self.SelectedClass == "rogue" then
|
|
name = "도적"
|
|
eng = "Rogue"
|
|
btnName = "/BanditButton"
|
|
desc = "직업군 · 모험가" .. nl .. "기동성과 콤보로 빠르게 움직이는 도적."
|
|
elseif self.SelectedClass == "magician" then
|
|
name = "마법사"
|
|
eng = "Magician"
|
|
btnName = "/MageButton"
|
|
desc = "직업군 · 모험가" .. nl .. "주문과 원소로 전장을 장악하는 마법사."
|
|
end
|
|
if btnName ~= "" then
|
|
local art = _EntityService:GetEntityByPath(base .. btnName .. "/Art")
|
|
local target = _EntityService:GetEntityByPath(base .. "/SelectedCharacterArt")
|
|
if art ~= nil and art.SpriteGUIRendererComponent ~= nil and target ~= nil and target.SpriteGUIRendererComponent ~= nil then
|
|
target.SpriteGUIRendererComponent.ImageRUID = art.SpriteGUIRendererComponent.ImageRUID
|
|
end
|
|
end
|
|
self:SetText(base .. "/SelectedClass", name)
|
|
self:SetText(base .. "/SelectedClass/SelectedClassEng", eng)
|
|
self:SetText(base .. "/SelectedClassStatus", desc)`),
|
|
method('StartNewGame', `if self.SelectedClass ~= "warrior" and self.SelectedClass ~= "rogue" and self.SelectedClass ~= "magician" then
|
|
self:SetText("/ui/SelectUIGroup/CharacterSelectHud/SelectedClassStatus", "직업을 먼저 선택하세요")
|
|
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' },
|
|
], 2),
|
|
];
|