feat(potions-relics): 유물 아이콘 행·물약 슬롯·툴팁·물약 메뉴 UI (생성기+산출물)
- TopBar: RelicSlot×10(+오버플로)·PotionSlot×5 (UITouchReceive hover 툴팁) - TooltipBox(이름+설명)·PotionMenu(사용/버리기/닫기) 팝업 - ShopHud Potion 판매 항목, AllDeckButton 우측 이동 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -1166,7 +1166,6 @@ function upsertUi() {
|
|||||||
const topTexts = [
|
const topTexts = [
|
||||||
['Floor', -520, 160, '막 1/3', GOLD],
|
['Floor', -520, 160, '막 1/3', GOLD],
|
||||||
['Gold', -360, 160, '골드 0', { r: 0.98, g: 0.85, b: 0.4, a: 1 }],
|
['Gold', -360, 160, '골드 0', { r: 0.98, g: 0.85, b: 0.4, a: 1 }],
|
||||||
['Relics', 60, 560, '유물: 없음', { r: 0.8, g: 0.7, b: 0.95, a: 1 }],
|
|
||||||
];
|
];
|
||||||
topTexts.forEach(([suffix, x, w, value, color], ti) => {
|
topTexts.forEach(([suffix, x, w, value, color], ti) => {
|
||||||
combat.push(entity({
|
combat.push(entity({
|
||||||
@@ -1178,7 +1177,129 @@ function upsertUi() {
|
|||||||
components: [
|
components: [
|
||||||
transform({ parentW: 1200, parentH: 52, anchor: { x: 0.5, y: 0.5 }, pivot: { x: 0.5, y: 0.5 }, size: { x: w, y: 40 }, pos: { x: x, y: 0 } }),
|
transform({ parentW: 1200, parentH: 52, anchor: { x: 0.5, y: 0.5 }, pivot: { x: 0.5, y: 0.5 }, size: { x: w, y: 40 }, pos: { x: x, y: 0 } }),
|
||||||
sprite({ color: TRANSPARENT }),
|
sprite({ color: TRANSPARENT }),
|
||||||
text({ value, fontSize: suffix === 'Relics' ? 18 : 22, bold: true, color, alignment: 4 }),
|
text({ value, fontSize: 22, bold: true, color, alignment: 4 }),
|
||||||
|
],
|
||||||
|
}));
|
||||||
|
});
|
||||||
|
for (let i = 1; i <= 10; i++) {
|
||||||
|
combat.push(entity({
|
||||||
|
id: guid('cmb', 300 + i),
|
||||||
|
path: `/ui/DefaultGroup/CombatHud/TopBar/RelicSlot${i}`,
|
||||||
|
modelId: 'uisprite', entryId: 'UISprite',
|
||||||
|
componentNames: 'MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent,MOD.Core.UITouchReceiveComponent',
|
||||||
|
displayOrder: 3 + i,
|
||||||
|
components: [
|
||||||
|
transform({ parentW: 1200, parentH: 52, anchor: { x: 0.5, y: 0.5 }, pivot: { x: 0.5, y: 0.5 }, size: { x: 40, y: 40 }, pos: { x: -240 + (i - 1) * 48, y: 0 } }),
|
||||||
|
sprite({ color: { r: 0.15, g: 0.16, b: 0.2, a: 0.6 }, type: 0, raycast: true }),
|
||||||
|
{ '@type': 'MOD.Core.UITouchReceiveComponent', Enable: true },
|
||||||
|
],
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
combat.push(entity({
|
||||||
|
id: guid('cmb', 311),
|
||||||
|
path: '/ui/DefaultGroup/CombatHud/TopBar/RelicOverflow',
|
||||||
|
modelId: 'uitext', entryId: 'UIText',
|
||||||
|
componentNames: 'MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent,MOD.Core.TextComponent',
|
||||||
|
displayOrder: 14,
|
||||||
|
components: [
|
||||||
|
transform({ parentW: 1200, parentH: 52, anchor: { x: 0.5, y: 0.5 }, pivot: { x: 0.5, y: 0.5 }, size: { x: 60, y: 30 }, pos: { x: 192, y: 0 } }),
|
||||||
|
sprite({ color: TRANSPARENT }),
|
||||||
|
text({ value: '', fontSize: 18, bold: true, color: { r: 0.8, g: 0.7, b: 0.95, a: 1 }, alignment: 4 }),
|
||||||
|
],
|
||||||
|
}));
|
||||||
|
for (let i = 1; i <= 5; i++) {
|
||||||
|
combat.push(entity({
|
||||||
|
id: guid('cmb', 320 + i),
|
||||||
|
path: `/ui/DefaultGroup/CombatHud/TopBar/PotionSlot${i}`,
|
||||||
|
modelId: 'uisprite', entryId: 'UISprite',
|
||||||
|
componentNames: 'MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent,MOD.Core.UITouchReceiveComponent',
|
||||||
|
displayOrder: 14 + i,
|
||||||
|
components: [
|
||||||
|
transform({ parentW: 1200, parentH: 52, anchor: { x: 0.5, y: 0.5 }, pivot: { x: 0.5, y: 0.5 }, size: { x: 40, y: 40 }, pos: { x: 240 + (i - 1) * 44, y: 0 } }),
|
||||||
|
sprite({ color: { r: 0.22, g: 0.25, b: 0.3, a: 0.9 }, type: 0, raycast: true }),
|
||||||
|
{ '@type': 'MOD.Core.UITouchReceiveComponent', Enable: true },
|
||||||
|
],
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
const tooltipBox = entity({
|
||||||
|
id: guid('cmb', 330),
|
||||||
|
path: '/ui/DefaultGroup/CombatHud/TooltipBox',
|
||||||
|
modelId: 'uisprite', entryId: 'UISprite',
|
||||||
|
componentNames: 'MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent',
|
||||||
|
displayOrder: 20,
|
||||||
|
components: [
|
||||||
|
transform({ parentW: 1920, parentH: 1080, anchor: { x: 0.5, y: 0.5 }, pivot: { x: 0.5, y: 0.5 }, size: { x: 300, y: 80 }, pos: { x: 0, y: 400 }, align: ALIGN_CENTER }),
|
||||||
|
sprite({ color: { r: 0.04, g: 0.05, b: 0.08, a: 0.96 }, type: 1 }),
|
||||||
|
],
|
||||||
|
});
|
||||||
|
tooltipBox.jsonString.enable = false;
|
||||||
|
combat.push(tooltipBox);
|
||||||
|
combat.push(entity({
|
||||||
|
id: guid('cmb', 331),
|
||||||
|
path: '/ui/DefaultGroup/CombatHud/TooltipBox/Name',
|
||||||
|
modelId: 'uitext', entryId: 'UIText',
|
||||||
|
componentNames: 'MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent,MOD.Core.TextComponent',
|
||||||
|
displayOrder: 0,
|
||||||
|
components: [
|
||||||
|
transform({ parentW: 300, parentH: 80, anchor: { x: 0.5, y: 0.5 }, pivot: { x: 0.5, y: 0.5 }, size: { x: 280, y: 28 }, pos: { x: 0, y: 18 } }),
|
||||||
|
sprite({ color: TRANSPARENT }),
|
||||||
|
text({ value: '', fontSize: 19, bold: true, color: GOLD, alignment: 4 }),
|
||||||
|
],
|
||||||
|
}));
|
||||||
|
combat.push(entity({
|
||||||
|
id: guid('cmb', 332),
|
||||||
|
path: '/ui/DefaultGroup/CombatHud/TooltipBox/Desc',
|
||||||
|
modelId: 'uitext', entryId: 'UIText',
|
||||||
|
componentNames: 'MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent,MOD.Core.TextComponent',
|
||||||
|
displayOrder: 1,
|
||||||
|
components: [
|
||||||
|
transform({ parentW: 300, parentH: 80, anchor: { x: 0.5, y: 0.5 }, pivot: { x: 0.5, y: 0.5 }, size: { x: 284, y: 30 }, pos: { x: 0, y: -14 } }),
|
||||||
|
sprite({ color: TRANSPARENT }),
|
||||||
|
text({ value: '', fontSize: 15, bold: false, color: { r: 0.92, g: 0.92, b: 0.95, a: 1 }, alignment: 4 }),
|
||||||
|
],
|
||||||
|
}));
|
||||||
|
const potionMenu = entity({
|
||||||
|
id: guid('cmb', 340),
|
||||||
|
path: '/ui/DefaultGroup/CombatHud/PotionMenu',
|
||||||
|
modelId: 'uisprite', entryId: 'UISprite',
|
||||||
|
componentNames: 'MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent',
|
||||||
|
displayOrder: 21,
|
||||||
|
components: [
|
||||||
|
transform({ parentW: 1920, parentH: 1080, anchor: { x: 0.5, y: 0.5 }, pivot: { x: 0.5, y: 0.5 }, size: { x: 380, y: 180 }, pos: { x: 0, y: 120 }, align: ALIGN_CENTER }),
|
||||||
|
sprite({ color: { r: 0.07, g: 0.08, b: 0.12, a: 0.97 }, type: 1 }),
|
||||||
|
],
|
||||||
|
});
|
||||||
|
potionMenu.jsonString.enable = false;
|
||||||
|
combat.push(potionMenu);
|
||||||
|
combat.push(entity({
|
||||||
|
id: guid('cmb', 341),
|
||||||
|
path: '/ui/DefaultGroup/CombatHud/PotionMenu/Title',
|
||||||
|
modelId: 'uitext', entryId: 'UIText',
|
||||||
|
componentNames: 'MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent,MOD.Core.TextComponent',
|
||||||
|
displayOrder: 0,
|
||||||
|
components: [
|
||||||
|
transform({ parentW: 380, parentH: 180, anchor: { x: 0.5, y: 0.5 }, pivot: { x: 0.5, y: 0.5 }, size: { x: 360, y: 36 }, pos: { x: 0, y: 52 } }),
|
||||||
|
sprite({ color: TRANSPARENT }),
|
||||||
|
text({ value: '', fontSize: 19, bold: true, color: { r: 1, g: 1, b: 1, a: 1 }, alignment: 4 }),
|
||||||
|
],
|
||||||
|
}));
|
||||||
|
const pmButtons = [
|
||||||
|
['Use', '사용', -120, { r: 0.32, g: 0.55, b: 0.36, a: 1 }],
|
||||||
|
['Toss', '버리기', 0, { r: 0.6, g: 0.32, b: 0.3, a: 1 }],
|
||||||
|
['Close', '닫기', 120, { r: 0.25, g: 0.28, b: 0.35, a: 1 }],
|
||||||
|
];
|
||||||
|
pmButtons.forEach(([suffix, label, x, color], bi) => {
|
||||||
|
combat.push(entity({
|
||||||
|
id: guid('cmb', 342 + bi),
|
||||||
|
path: `/ui/DefaultGroup/CombatHud/PotionMenu/${suffix}`,
|
||||||
|
modelId: 'uibutton', entryId: 'UIButton',
|
||||||
|
componentNames: 'MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent,MOD.Core.ButtonComponent,MOD.Core.TextComponent',
|
||||||
|
displayOrder: 1 + bi,
|
||||||
|
components: [
|
||||||
|
transform({ parentW: 380, parentH: 180, anchor: { x: 0.5, y: 0.5 }, pivot: { x: 0.5, y: 0.5 }, size: { x: 104, y: 46 }, pos: { x, y: -40 } }),
|
||||||
|
sprite({ color, type: 1, raycast: true }),
|
||||||
|
button(),
|
||||||
|
text({ value: label, fontSize: 20, bold: true, color: { r: 1, g: 1, b: 1, a: 1 }, alignment: 4 }),
|
||||||
],
|
],
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
@@ -1189,7 +1310,7 @@ function upsertUi() {
|
|||||||
componentNames: 'MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent,MOD.Core.ButtonComponent,MOD.Core.TextComponent',
|
componentNames: 'MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent,MOD.Core.ButtonComponent,MOD.Core.TextComponent',
|
||||||
displayOrder: 3,
|
displayOrder: 3,
|
||||||
components: [
|
components: [
|
||||||
transform({ parentW: 1200, parentH: 52, anchor: { x: 0.5, y: 0.5 }, pivot: { x: 0.5, y: 0.5 }, size: { x: 150, y: 40 }, pos: { x: 510, y: 0 } }),
|
transform({ parentW: 1200, parentH: 52, anchor: { x: 0.5, y: 0.5 }, pivot: { x: 0.5, y: 0.5 }, size: { x: 140, y: 40 }, pos: { x: 528, y: 0 } }),
|
||||||
sprite({ color: DARK, type: 1, raycast: true }),
|
sprite({ color: DARK, type: 1, raycast: true }),
|
||||||
button(),
|
button(),
|
||||||
text({ value: '모든덱보기', fontSize: 18, bold: true, color: GOLD, alignment: 0 }),
|
text({ value: '모든덱보기', fontSize: 18, bold: true, color: GOLD, alignment: 0 }),
|
||||||
@@ -1523,6 +1644,45 @@ function upsertUi() {
|
|||||||
text({ value: '60 골드', fontSize: 20, bold: true, color: { r: 0.98, g: 0.85, b: 0.4, a: 1 }, alignment: 4 }),
|
text({ value: '60 골드', fontSize: 20, bold: true, color: { r: 0.98, g: 0.85, b: 0.4, a: 1 }, alignment: 4 }),
|
||||||
],
|
],
|
||||||
}));
|
}));
|
||||||
|
shop.push(entity({
|
||||||
|
id: guid('shp', shpN++),
|
||||||
|
path: '/ui/DefaultGroup/ShopHud/Potion',
|
||||||
|
modelId: 'uisprite',
|
||||||
|
entryId: 'UISprite',
|
||||||
|
componentNames: 'MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent,MOD.Core.ButtonComponent',
|
||||||
|
displayOrder: 11,
|
||||||
|
components: [
|
||||||
|
transform({ parentW: 1920, parentH: 1080, anchor: { x: 0.5, y: 0.5 }, pivot: { x: 0.5, y: 0.5 }, size: { x: 560, y: 76 }, pos: { x: 0, y: -278 } }),
|
||||||
|
sprite({ color: { r: 0.45, g: 0.7, b: 0.55, a: 1 }, type: 1, raycast: true }),
|
||||||
|
button(),
|
||||||
|
],
|
||||||
|
}));
|
||||||
|
shop.push(entity({
|
||||||
|
id: guid('shp', shpN++),
|
||||||
|
path: '/ui/DefaultGroup/ShopHud/Potion/Label',
|
||||||
|
modelId: 'uitext',
|
||||||
|
entryId: 'UIText',
|
||||||
|
componentNames: 'MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent,MOD.Core.TextComponent',
|
||||||
|
displayOrder: 0,
|
||||||
|
components: [
|
||||||
|
transform({ parentW: 560, parentH: 76, anchor: { x: 0.5, y: 0.5 }, pivot: { x: 0.5, y: 0.5 }, size: { x: 540, y: 40 }, pos: { x: 0, y: 12 } }),
|
||||||
|
sprite({ color: TRANSPARENT }),
|
||||||
|
text({ value: '물약', fontSize: 22, bold: true, color: { r: 1, g: 1, b: 1, a: 1 }, alignment: 4 }),
|
||||||
|
],
|
||||||
|
}));
|
||||||
|
shop.push(entity({
|
||||||
|
id: guid('shp', shpN++),
|
||||||
|
path: '/ui/DefaultGroup/ShopHud/Potion/Price',
|
||||||
|
modelId: 'uitext',
|
||||||
|
entryId: 'UIText',
|
||||||
|
componentNames: 'MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent,MOD.Core.TextComponent',
|
||||||
|
displayOrder: 1,
|
||||||
|
components: [
|
||||||
|
transform({ parentW: 560, parentH: 76, anchor: { x: 0.5, y: 0.5 }, pivot: { x: 0.5, y: 0.5 }, size: { x: 540, y: 30 }, pos: { x: 0, y: -22 } }),
|
||||||
|
sprite({ color: TRANSPARENT }),
|
||||||
|
text({ value: '20 골드', fontSize: 20, bold: true, color: { r: 0.98, g: 0.85, b: 0.4, a: 1 }, alignment: 4 }),
|
||||||
|
],
|
||||||
|
}));
|
||||||
shop.push(entity({
|
shop.push(entity({
|
||||||
id: guid('shp', shpN++),
|
id: guid('shp', shpN++),
|
||||||
path: '/ui/DefaultGroup/ShopHud/Leave',
|
path: '/ui/DefaultGroup/ShopHud/Leave',
|
||||||
@@ -1531,7 +1691,7 @@ function upsertUi() {
|
|||||||
componentNames: 'MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent,MOD.Core.ButtonComponent,MOD.Core.TextComponent',
|
componentNames: 'MOD.Core.UITransformComponent,MOD.Core.SpriteGUIRendererComponent,MOD.Core.ButtonComponent,MOD.Core.TextComponent',
|
||||||
displayOrder: 10,
|
displayOrder: 10,
|
||||||
components: [
|
components: [
|
||||||
transform({ parentW: 1920, parentH: 1080, anchor: { x: 0.5, y: 0.5 }, pivot: { x: 0.5, y: 0.5 }, size: { x: 200, y: 60 }, pos: { x: 0, y: -300 } }),
|
transform({ parentW: 1920, parentH: 1080, anchor: { x: 0.5, y: 0.5 }, pivot: { x: 0.5, y: 0.5 }, size: { x: 200, y: 60 }, pos: { x: 0, y: -380 } }),
|
||||||
sprite({ color: DARK, type: 1, raycast: true }),
|
sprite({ color: DARK, type: 1, raycast: true }),
|
||||||
button(),
|
button(),
|
||||||
text({ value: '나가기', fontSize: 26, bold: true, color: GOLD, alignment: 4 }),
|
text({ value: '나가기', fontSize: 26, bold: true, color: GOLD, alignment: 4 }),
|
||||||
@@ -2075,6 +2235,8 @@ self:RenderPotions()
|
|||||||
self:ShowMap()`),
|
self:ShowMap()`),
|
||||||
method('StartCombat', `self:ShowState("combat")
|
method('StartCombat', `self:ShowState("combat")
|
||||||
self:SetEntityEnabled("/ui/DefaultGroup/CombatHud/Result", false)
|
self:SetEntityEnabled("/ui/DefaultGroup/CombatHud/Result", false)
|
||||||
|
self:SetEntityEnabled("/ui/DefaultGroup/CombatHud/PotionMenu", false)
|
||||||
|
self:SetEntityEnabled("/ui/DefaultGroup/CombatHud/TooltipBox", false)
|
||||||
self.MaxEnergy = 3
|
self.MaxEnergy = 3
|
||||||
self.Turn = 0
|
self.Turn = 0
|
||||||
self.PlayerBlock = 0
|
self.PlayerBlock = 0
|
||||||
@@ -2269,6 +2431,51 @@ for i = 1, ${MAX_MONSTERS} do
|
|||||||
if ms ~= nil and ms.ButtonComponent ~= nil then
|
if ms ~= nil and ms.ButtonComponent ~= nil then
|
||||||
ms:ConnectEvent(ButtonClickEvent, function() self:SetTarget(i) end)
|
ms:ConnectEvent(ButtonClickEvent, function() self:SetTarget(i) end)
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
for i = 1, 10 do
|
||||||
|
local rs = _EntityService:GetEntityByPath("/ui/DefaultGroup/CombatHud/TopBar/RelicSlot" .. tostring(i))
|
||||||
|
if rs ~= nil and rs.UITouchReceiveComponent ~= nil then
|
||||||
|
local idx = i
|
||||||
|
rs:ConnectEvent(UITouchEnterEvent, function()
|
||||||
|
local rid = nil
|
||||||
|
if self.RunRelics ~= nil then rid = self.RunRelics[idx] end
|
||||||
|
if rid ~= nil and self.Relics[rid] ~= nil then
|
||||||
|
self:ShowTooltip(self.Relics[rid].name, self.Relics[rid].desc, -240 + (idx - 1) * 48)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
rs:ConnectEvent(UITouchExitEvent, function() self:HideTooltip() end)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
for i = 1, 5 do
|
||||||
|
local ps = _EntityService:GetEntityByPath("/ui/DefaultGroup/CombatHud/TopBar/PotionSlot" .. tostring(i))
|
||||||
|
if ps ~= nil and ps.UITouchReceiveComponent ~= nil then
|
||||||
|
local idx = i
|
||||||
|
ps:ConnectEvent(UITouchEnterEvent, function()
|
||||||
|
local pid = nil
|
||||||
|
if self.RunPotions ~= nil then pid = self.RunPotions[idx] end
|
||||||
|
if pid ~= nil and self.Potions[pid] ~= nil then
|
||||||
|
self:ShowTooltip(self.Potions[pid].name, self.Potions[pid].desc, 240 + (idx - 1) * 44)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
ps:ConnectEvent(UITouchExitEvent, function() self:HideTooltip() end)
|
||||||
|
ps:ConnectEvent(UITouchDownEvent, function() self:OpenPotionMenu(idx) end)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
local pmUse = _EntityService:GetEntityByPath("/ui/DefaultGroup/CombatHud/PotionMenu/Use")
|
||||||
|
if pmUse ~= nil and pmUse.ButtonComponent ~= nil then
|
||||||
|
pmUse:ConnectEvent(ButtonClickEvent, function() self:UsePotion() end)
|
||||||
|
end
|
||||||
|
local pmToss = _EntityService:GetEntityByPath("/ui/DefaultGroup/CombatHud/PotionMenu/Toss")
|
||||||
|
if pmToss ~= nil and pmToss.ButtonComponent ~= nil then
|
||||||
|
pmToss:ConnectEvent(ButtonClickEvent, function() self:TossPotion() end)
|
||||||
|
end
|
||||||
|
local pmClose = _EntityService:GetEntityByPath("/ui/DefaultGroup/CombatHud/PotionMenu/Close")
|
||||||
|
if pmClose ~= nil and pmClose.ButtonComponent ~= nil then
|
||||||
|
pmClose:ConnectEvent(ButtonClickEvent, function() self:ClosePotionMenu() end)
|
||||||
|
end
|
||||||
|
local shopPotion = _EntityService:GetEntityByPath("/ui/DefaultGroup/ShopHud/Potion")
|
||||||
|
if shopPotion ~= nil and shopPotion.ButtonComponent ~= nil then
|
||||||
|
shopPotion:ConnectEvent(ButtonClickEvent, function() self:BuyPotion() end)
|
||||||
end`),
|
end`),
|
||||||
method('StartPlayerTurn', `self.Turn = self.Turn + 1
|
method('StartPlayerTurn', `self.Turn = self.Turn + 1
|
||||||
self.Energy = self.MaxEnergy
|
self.Energy = self.MaxEnergy
|
||||||
@@ -3224,23 +3431,46 @@ if pid ~= nil then
|
|||||||
end
|
end
|
||||||
self:ClosePotionMenu()
|
self:ClosePotionMenu()
|
||||||
self:RenderPotions()`),
|
self:RenderPotions()`),
|
||||||
method('RenderRelics', `local names = ""
|
method('RenderRelics', `local count = 0
|
||||||
if self.RunRelics ~= nil then
|
if self.RunRelics ~= nil then
|
||||||
for i = 1, #self.RunRelics do
|
count = #self.RunRelics
|
||||||
local r = self.Relics[self.RunRelics[i]]
|
end
|
||||||
if r ~= nil then
|
for i = 1, 10 do
|
||||||
if names == "" then
|
local base = "/ui/DefaultGroup/CombatHud/TopBar/RelicSlot" .. tostring(i)
|
||||||
names = r.name
|
local e = _EntityService:GetEntityByPath(base)
|
||||||
else
|
if e ~= nil and e.SpriteGUIRendererComponent ~= nil then
|
||||||
names = names .. ", " .. r.name
|
local rid = nil
|
||||||
end
|
if self.RunRelics ~= nil then
|
||||||
|
rid = self.RunRelics[i]
|
||||||
|
end
|
||||||
|
if rid ~= nil and self.Relics[rid] ~= nil and (i < 10 or count <= 10) then
|
||||||
|
e.SpriteGUIRendererComponent.ImageRUID = self.Relics[rid].icon
|
||||||
|
e.SpriteGUIRendererComponent.Color = Color(1, 1, 1, 1)
|
||||||
|
else
|
||||||
|
e.SpriteGUIRendererComponent.ImageRUID = ""
|
||||||
|
e.SpriteGUIRendererComponent.Color = Color(0.15, 0.16, 0.2, 0.6)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if names == "" then
|
local of = ""
|
||||||
names = "없음"
|
if count > 10 then
|
||||||
|
of = "+" .. tostring(count - 9)
|
||||||
end
|
end
|
||||||
self:SetText("/ui/DefaultGroup/CombatHud/TopBar/Relics", "유물: " .. names)`),
|
self:SetText("/ui/DefaultGroup/CombatHud/TopBar/RelicOverflow", of)`),
|
||||||
|
method('ShowTooltip', `self:SetText("/ui/DefaultGroup/CombatHud/TooltipBox/Name", name)
|
||||||
|
self:SetText("/ui/DefaultGroup/CombatHud/TooltipBox/Desc", desc)
|
||||||
|
local e = _EntityService:GetEntityByPath("/ui/DefaultGroup/CombatHud/TooltipBox")
|
||||||
|
if e ~= nil then
|
||||||
|
if e.UITransformComponent ~= nil then
|
||||||
|
e.UITransformComponent.anchoredPosition = Vector2(x, 400)
|
||||||
|
end
|
||||||
|
e.Enable = true
|
||||||
|
end`, [
|
||||||
|
{ Type: 'string', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'name' },
|
||||||
|
{ Type: 'string', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'desc' },
|
||||||
|
{ Type: 'number', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'x' },
|
||||||
|
]),
|
||||||
|
method('HideTooltip', `self:SetEntityEnabled("/ui/DefaultGroup/CombatHud/TooltipBox", false)`),
|
||||||
method('ShowMap', `self:ShowState("map")
|
method('ShowMap', `self:ShowState("map")
|
||||||
self:RenderMap()`),
|
self:RenderMap()`),
|
||||||
method('IsReachable', `local list
|
method('IsReachable', `local list
|
||||||
|
|||||||
4338
ui/DefaultGroup.ui
4338
ui/DefaultGroup.ui
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user