diff --git a/README.md b/README.md index 1a06642..7d8361b 100644 --- a/README.md +++ b/README.md @@ -157,6 +157,17 @@ c:AdjustAscension(1) -- 메뉴에서 승천 단계 +1 밸런스 검증: `node tools/balance/sim-balance.mjs [N] [--seed S]` · 테스트: `node --test tools/balance/sim-balance.test.mjs tools/map/rogue-map.test.mjs`. 상세 설계는 [`docs/slaymaple_basic_framework.md`](docs/slaymaple_basic_framework.md) 및 `docs/superpowers/specs/` 참조. +### 디버그 단축키 + +개발·QA용 키보드 단축키. **전투 중**(런 활성 + 전투 진행 중)에만 동작합니다. + +| 단축키 | 기능 | +|---|---| +| **Ctrl + Shift + C** | **카드 picker** — 직업 전체 카드 패널을 띄우고, 카드를 클릭하면 **즉시 손패에 추가**. 상단 탭(전사/도적/마법사)으로 직업별 카드 풀 전환. 카드 효과·메커니즘 즉석 테스트용 | +| **Ctrl + Shift + E** | **에너지 치트** — 현재 에너지를 최대치로 회복 | + +> 카드 picker는 메이커 저작 UI `DeckUIGroup/DeckAllHud`(120 슬롯 그리드 + 직업 탭 3종)를 사용하고, 컨트롤러가 런타임에 카드 비주얼·버튼을 바인딩합니다. 구현: 키 바인딩 `tools/deck/cb/boot.mjs`, picker 로직 `tools/deck/cb/deckview.mjs`(`OpenDebugCardPicker`/`OnAllDeckCardButton`), 버튼 바인딩 `tools/deck/cb/deckturn.mjs`(`BindButtons`). 옛 picker UI 생성기 `tools/deck/legacy/hud/deckall.mjs`는 UI 메이커-저작 전환 후 **휴면**(Maker UI가 대체). + ### 산출물 재생성 ```bash node tools/deck/gen-slaydeck.mjs # 컨트롤러+common (UI는 메이커 저작 — 미생성) diff --git a/RootDesk/MyDesk/SlayDeckController.codeblock b/RootDesk/MyDesk/SlayDeckController.codeblock index 54ea3ba..42559f5 100644 --- a/RootDesk/MyDesk/SlayDeckController.codeblock +++ b/RootDesk/MyDesk/SlayDeckController.codeblock @@ -1714,7 +1714,7 @@ "Name": null }, "Arguments": [], - "Code": "local endTurn = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/DeckHud/EndTurnButton\")\nif endTurn ~= nil and (endTurn.ButtonComponent ~= nil or endTurn:AddComponent(\"ButtonComponent\") ~= nil) then\n\tif self.EndTurnHandler ~= nil then\n\t\tendTurn:DisconnectEvent(ButtonClickEvent, self.EndTurnHandler)\n\t\tself.EndTurnHandler = nil\n\tend\n\tself.EndTurnHandler = endTurn:ConnectEvent(ButtonClickEvent, function() self:EndPlayerTurn() end)\nend\nlocal drawPile = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/DeckHud/DrawPile\")\nif drawPile ~= nil and (drawPile.ButtonComponent ~= nil or drawPile:AddComponent(\"ButtonComponent\") ~= nil) then\n\tif self.DrawPileHandler ~= nil then\n\t\tdrawPile:DisconnectEvent(ButtonClickEvent, self.DrawPileHandler)\n\t\tself.DrawPileHandler = nil\n\tend\n\tself.DrawPileHandler = drawPile:ConnectEvent(ButtonClickEvent, function() self:OpenDeckInspect(\"draw\") end)\nend\nlocal discardPile = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/DeckHud/DiscardPile\")\nif discardPile ~= nil and (discardPile.ButtonComponent ~= nil or discardPile:AddComponent(\"ButtonComponent\") ~= nil) then\n\tif self.DiscardPileHandler ~= nil then\n\t\tdiscardPile:DisconnectEvent(ButtonClickEvent, self.DiscardPileHandler)\n\t\tself.DiscardPileHandler = nil\n\tend\n\tself.DiscardPileHandler = discardPile:ConnectEvent(ButtonClickEvent, function() self:OpenDeckInspect(\"discard\") end)\nend\nlocal exhaustPile = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/DeckHud/ExhaustPile\")\nif exhaustPile ~= nil and (exhaustPile.ButtonComponent ~= nil or exhaustPile:AddComponent(\"ButtonComponent\") ~= nil) then\n\tif self.ExhaustPileHandler ~= nil then\n\t\texhaustPile:DisconnectEvent(ButtonClickEvent, self.ExhaustPileHandler)\n\t\tself.ExhaustPileHandler = nil\n\tend\n\tself.ExhaustPileHandler = exhaustPile:ConnectEvent(ButtonClickEvent, function() self:OpenDeckInspect(\"exhaust\") end)\nend\nlocal inspectClose = _EntityService:GetEntityByPath(\"/ui/DeckUIGroup/DeckInspectHud/Close\")\nif inspectClose ~= nil and (inspectClose.ButtonComponent ~= nil or inspectClose:AddComponent(\"ButtonComponent\") ~= nil) then\n\tif self.DeckInspectCloseHandler ~= nil then\n\t\tinspectClose:DisconnectEvent(ButtonClickEvent, self.DeckInspectCloseHandler)\n\t\tself.DeckInspectCloseHandler = nil\n\tend\n\tself.DeckInspectCloseHandler = inspectClose:ConnectEvent(ButtonClickEvent, function() self:CloseDeckInspect() end)\nend\nlocal allDeckButton = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/CombatHud/TopBar/AllDeckButton\")\nif allDeckButton ~= nil and (allDeckButton.ButtonComponent ~= nil or allDeckButton:AddComponent(\"ButtonComponent\") ~= nil) then\n\tif self.AllDeckHandler ~= nil then\n\t\tallDeckButton:DisconnectEvent(ButtonClickEvent, self.AllDeckHandler)\n\t\tself.AllDeckHandler = nil\n\tend\n\tself.AllDeckHandler = allDeckButton:ConnectEvent(ButtonClickEvent, function() self:OpenAllDeck() end)\nend\nlocal allDeckClose = _EntityService:GetEntityByPath(\"/ui/DeckUIGroup/DeckAllHud/Close\")\nif allDeckClose ~= nil and (allDeckClose.ButtonComponent ~= nil or allDeckClose:AddComponent(\"ButtonComponent\") ~= nil) then\n\tif self.AllDeckCloseHandler ~= nil then\n\t\tallDeckClose:DisconnectEvent(ButtonClickEvent, self.AllDeckCloseHandler)\n\t\tself.AllDeckCloseHandler = nil\n\tend\n\tself.AllDeckCloseHandler = allDeckClose:ConnectEvent(ButtonClickEvent, function() self:CloseAllDeck() end)\nend\nself:BindClassDeckTabs()\nfor i = 1, 120 do\n\tlocal allCard = _EntityService:GetEntityByPath(\"/ui/DeckUIGroup/DeckAllHud/Grid/Card\" .. tostring(i))\n\tif allCard ~= nil and (allCard.ButtonComponent ~= nil or allCard:AddComponent(\"ButtonComponent\") ~= nil) then\n\t\tlocal slot = i\n\t\tallCard:ConnectEvent(ButtonClickEvent, function() self:OnAllDeckCardButton(slot) end)\n\tend\nend\nfor i = 1, 10 do\n\tlocal cardEntity = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/CardHand/Card\" .. tostring(i))\n\tif cardEntity ~= nil and cardEntity.UITouchReceiveComponent ~= nil then\n\t\tlocal cardPath = \"/ui/RunUIGroup/CardHand/Card\" .. tostring(i)\n\t\tcardEntity:ConnectEvent(UITouchEnterEvent, function() self:SetCardHover(cardPath, true) end)\n\t\tcardEntity:ConnectEvent(UITouchExitEvent, function() self:SetCardHover(cardPath, false) end)\n\t\tcardEntity:ConnectEvent(UITouchBeginDragEvent, function(ev) self:OnCardDragBegin(i) end)\n\t\tcardEntity:ConnectEvent(UITouchDragEvent, function(ev) self:OnCardDrag(i, ev.TouchPoint) end)\n\t\tcardEntity:ConnectEvent(UITouchEndDragEvent, function(ev) self:OnCardDragEnd(i, ev.TouchPoint) end)\n\t\tcardEntity:ConnectEvent(UITouchEnterEvent, function() self:HoverCard(i) end)\n\t\tcardEntity:ConnectEvent(UITouchExitEvent, function() self:UnhoverCard(i) end)\n\t\tif (cardEntity.ButtonComponent ~= nil or cardEntity:AddComponent(\"ButtonComponent\") ~= nil) then\n\t\t\tcardEntity:ConnectEvent(ButtonClickEvent, function() self:OnCardButton(i) end)\n\t\tend\n\tend\nend\nfor i = 1, 3 do\n\tlocal rc = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/RewardHud/Reward\" .. tostring(i))\n\tif rc ~= nil and (rc.ButtonComponent ~= nil or rc:AddComponent(\"ButtonComponent\") ~= nil) then\n\t\trc:ConnectEvent(ButtonClickEvent, function() self:PickReward(i) end)\n\t\tif rc.UITouchReceiveComponent ~= nil then\n\t\t\tlocal cardPath = \"/ui/RunUIGroup/RewardHud/Reward\" .. tostring(i)\n\t\t\trc:ConnectEvent(UITouchEnterEvent, function() self:SetCardHover(cardPath, true) end)\n\t\t\trc:ConnectEvent(UITouchExitEvent, function() self:SetCardHover(cardPath, false) end)\n\t\tend\n\tend\nend\nlocal skip = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/RewardHud/Skip\")\nif skip ~= nil and (skip.ButtonComponent ~= nil or skip:AddComponent(\"ButtonComponent\") ~= nil) then\n\tskip:ConnectEvent(ButtonClickEvent, function() self:PickReward(0) end)\nend\nlocal mapNodeIds = {}\nfor r = 1, 6 do\n\tfor c = 1, 4 do\n\t\ttable.insert(mapNodeIds, \"r\" .. tostring(r) .. \"c\" .. tostring(c))\n\tend\nend\ntable.insert(mapNodeIds, \"boss\")\nfor i = 1, #mapNodeIds do\n\tlocal nid = mapNodeIds[i]\n\tlocal mn = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/MapHud/Node_\" .. nid)\n\tif mn ~= nil and (mn.ButtonComponent ~= nil or mn:AddComponent(\"ButtonComponent\") ~= nil) then\n\t\tmn:ConnectEvent(ButtonClickEvent, function() self:PickNode(nid) end)\n\tend\nend\nfor i = 1, 3 do\n\tlocal sc = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/ShopHud/Card\" .. tostring(i))\n\tif sc ~= nil and (sc.ButtonComponent ~= nil or sc:AddComponent(\"ButtonComponent\") ~= nil) then\n\t\tsc:ConnectEvent(ButtonClickEvent, function() self:BuyCard(i) end)\n\t\tif sc.UITouchReceiveComponent ~= nil then\n\t\t\tlocal cardPath = \"/ui/RunUIGroup/ShopHud/Card\" .. tostring(i)\n\t\t\tsc:ConnectEvent(UITouchEnterEvent, function() self:SetCardHover(cardPath, true) end)\n\t\t\tsc:ConnectEvent(UITouchExitEvent, function() self:SetCardHover(cardPath, false) end)\n\t\tend\n\tend\nend\nlocal shopLeave = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/ShopHud/Leave\")\nif shopLeave ~= nil and (shopLeave.ButtonComponent ~= nil or shopLeave:AddComponent(\"ButtonComponent\") ~= nil) then\n\tshopLeave:ConnectEvent(ButtonClickEvent, function() self:LeaveNode() end)\nend\nlocal shopRelic = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/ShopHud/Relic\")\nif shopRelic ~= nil and (shopRelic.ButtonComponent ~= nil or shopRelic:AddComponent(\"ButtonComponent\") ~= nil) then\n\tshopRelic:ConnectEvent(ButtonClickEvent, function() self:BuyRelic() end)\nend\nlocal restLeave = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/RestHud/Leave\")\nif restLeave ~= nil and (restLeave.ButtonComponent ~= nil or restLeave:AddComponent(\"ButtonComponent\") ~= nil) then\n\trestLeave:ConnectEvent(ButtonClickEvent, function() self:LeaveNode() end)\nend\nfor i = 1, 4 do\n\tlocal ms = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/CombatHud/MonsterStatus\" .. tostring(i))\n\tif ms ~= nil and (ms.ButtonComponent ~= nil or ms:AddComponent(\"ButtonComponent\") ~= nil) then\n\t\tms:ConnectEvent(ButtonClickEvent, function() self:SetTarget(i) end)\n\tend\nend\nfor i = 1, 10 do\n\tlocal rs = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/CombatHud/TopBar/RelicSlot\" .. tostring(i))\n\tif rs ~= nil and rs.UITouchReceiveComponent ~= nil then\n\t\tlocal idx = i\n\t\trs:ConnectEvent(UITouchEnterEvent, function()\n\t\t\tlocal rid = nil\n\t\t\tif self.RunRelics ~= nil then rid = self.RunRelics[idx] end\n\t\t\tif rid ~= nil and self.Relics[rid] ~= nil then\n\t\t\t\tself:ShowTooltip(self.Relics[rid].name, self.Relics[rid].desc, -240 + (idx - 1) * 48)\n\t\t\tend\n\t\tend)\n\t\trs:ConnectEvent(UITouchExitEvent, function() self:HideTooltip() end)\n\tend\nend\nfor i = 1, 5 do\n\tlocal ps = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/CombatHud/TopBar/PotionSlot\" .. tostring(i))\n\tif ps ~= nil and ps.UITouchReceiveComponent ~= nil then\n\t\tlocal idx = i\n\t\tps:ConnectEvent(UITouchEnterEvent, function()\n\t\t\tlocal pid = nil\n\t\t\tif self.RunPotions ~= nil then pid = self.RunPotions[idx] end\n\t\t\tif pid ~= nil and self.Potions[pid] ~= nil then\n\t\t\t\tself:ShowTooltip(self.Potions[pid].name, self.Potions[pid].desc, 240 + (idx - 1) * 44)\n\t\t\tend\n\t\tend)\n\t\tps:ConnectEvent(UITouchExitEvent, function() self:HideTooltip() end)\n\t\tps:ConnectEvent(UITouchDownEvent, function() self:OpenPotionMenu(idx) end)\n\tend\nend\nlocal pmUse = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/CombatHud/PotionMenu/Use\")\nif pmUse ~= nil and (pmUse.ButtonComponent ~= nil or pmUse:AddComponent(\"ButtonComponent\") ~= nil) then\n\tpmUse:ConnectEvent(ButtonClickEvent, function() self:UsePotion() end)\nend\nlocal pmToss = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/CombatHud/PotionMenu/Toss\")\nif pmToss ~= nil and (pmToss.ButtonComponent ~= nil or pmToss:AddComponent(\"ButtonComponent\") ~= nil) then\n\tpmToss:ConnectEvent(ButtonClickEvent, function() self:TossPotion() end)\nend\nlocal pmClose = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/CombatHud/PotionMenu/Close\")\nif pmClose ~= nil and (pmClose.ButtonComponent ~= nil or pmClose:AddComponent(\"ButtonComponent\") ~= nil) then\n\tpmClose:ConnectEvent(ButtonClickEvent, function() self:ClosePotionMenu() end)\nend\nlocal shopPotion = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/ShopHud/Potion\")\nif shopPotion ~= nil and (shopPotion.ButtonComponent ~= nil or shopPotion:AddComponent(\"ButtonComponent\") ~= nil) then\n\tshopPotion:ConnectEvent(ButtonClickEvent, function() self:BuyPotion() end)\nend\nlocal chest = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/TreasureHud/Chest\")\nif chest ~= nil and (chest.ButtonComponent ~= nil or chest:AddComponent(\"ButtonComponent\") ~= nil) then\n\tchest:ConnectEvent(ButtonClickEvent, function() self:OpenChest() end)\nend\nlocal treasureLeave = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/TreasureHud/Leave\")\nif treasureLeave ~= nil and (treasureLeave.ButtonComponent ~= nil or treasureLeave:AddComponent(\"ButtonComponent\") ~= nil) then\n\ttreasureLeave:ConnectEvent(ButtonClickEvent, function() self:LeaveNode() end)\nend\nlocal jcRelic = _EntityService:GetEntityByPath(\"/ui/SelectUIGroup/JobChoiceHud/RelicButton\")\nif jcRelic ~= nil and (jcRelic.ButtonComponent ~= nil or jcRelic:AddComponent(\"ButtonComponent\") ~= nil) then\n\tjcRelic:ConnectEvent(ButtonClickEvent, function() self:PickJobReward(\"relic\") end)\nend\nlocal jcJob = _EntityService:GetEntityByPath(\"/ui/SelectUIGroup/JobChoiceHud/JobButton\")\nif jcJob ~= nil and (jcJob.ButtonComponent ~= nil or jcJob:AddComponent(\"ButtonComponent\") ~= nil) then\n\tjcJob:ConnectEvent(ButtonClickEvent, function() self:PickJobReward(\"job\") end)\nend\nfor i = 1, 3 do\n\tlocal slotIdx = i\n\tlocal jb = _EntityService:GetEntityByPath(\"/ui/SelectUIGroup/JobSelectHud/Job_slot\" .. tostring(i))\n\tif jb ~= nil and (jb.ButtonComponent ~= nil or jb:AddComponent(\"ButtonComponent\") ~= nil) then\n\t\tjb:ConnectEvent(ButtonClickEvent, function()\n\t\t\tif self.JobOpts ~= nil and self.JobOpts[slotIdx] ~= nil then\n\t\t\t\tself:SetJob(self.JobOpts[slotIdx].id)\n\t\t\tend\n\t\tend)\n\tend\nend", + "Code": "local endTurn = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/DeckHud/EndTurnButton\")\nif endTurn ~= nil and (endTurn.ButtonComponent ~= nil or endTurn:AddComponent(\"ButtonComponent\") ~= nil) then\n\tif self.EndTurnHandler ~= nil then\n\t\tendTurn:DisconnectEvent(ButtonClickEvent, self.EndTurnHandler)\n\t\tself.EndTurnHandler = nil\n\tend\n\tself.EndTurnHandler = endTurn:ConnectEvent(ButtonClickEvent, function() self:EndPlayerTurn() end)\nend\nlocal drawPile = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/DeckHud/DrawPile\")\nif drawPile ~= nil and (drawPile.ButtonComponent ~= nil or drawPile:AddComponent(\"ButtonComponent\") ~= nil) then\n\tif self.DrawPileHandler ~= nil then\n\t\tdrawPile:DisconnectEvent(ButtonClickEvent, self.DrawPileHandler)\n\t\tself.DrawPileHandler = nil\n\tend\n\tself.DrawPileHandler = drawPile:ConnectEvent(ButtonClickEvent, function() self:OpenDeckInspect(\"draw\") end)\nend\nlocal discardPile = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/DeckHud/DiscardPile\")\nif discardPile ~= nil and (discardPile.ButtonComponent ~= nil or discardPile:AddComponent(\"ButtonComponent\") ~= nil) then\n\tif self.DiscardPileHandler ~= nil then\n\t\tdiscardPile:DisconnectEvent(ButtonClickEvent, self.DiscardPileHandler)\n\t\tself.DiscardPileHandler = nil\n\tend\n\tself.DiscardPileHandler = discardPile:ConnectEvent(ButtonClickEvent, function() self:OpenDeckInspect(\"discard\") end)\nend\nlocal exhaustPile = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/DeckHud/ExhaustPile\")\nif exhaustPile ~= nil and (exhaustPile.ButtonComponent ~= nil or exhaustPile:AddComponent(\"ButtonComponent\") ~= nil) then\n\tif self.ExhaustPileHandler ~= nil then\n\t\texhaustPile:DisconnectEvent(ButtonClickEvent, self.ExhaustPileHandler)\n\t\tself.ExhaustPileHandler = nil\n\tend\n\tself.ExhaustPileHandler = exhaustPile:ConnectEvent(ButtonClickEvent, function() self:OpenDeckInspect(\"exhaust\") end)\nend\nlocal inspectClose = _EntityService:GetEntityByPath(\"/ui/DeckUIGroup/DeckInspectHud/Close\")\nif inspectClose ~= nil and (inspectClose.ButtonComponent ~= nil or inspectClose:AddComponent(\"ButtonComponent\") ~= nil) then\n\tif self.DeckInspectCloseHandler ~= nil then\n\t\tinspectClose:DisconnectEvent(ButtonClickEvent, self.DeckInspectCloseHandler)\n\t\tself.DeckInspectCloseHandler = nil\n\tend\n\tself.DeckInspectCloseHandler = inspectClose:ConnectEvent(ButtonClickEvent, function() self:CloseDeckInspect() end)\nend\nlocal allDeckButton = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/CombatHud/TopBar/AllDeckButton\")\nif allDeckButton ~= nil and (allDeckButton.ButtonComponent ~= nil or allDeckButton:AddComponent(\"ButtonComponent\") ~= nil) then\n\tif self.AllDeckHandler ~= nil then\n\t\tallDeckButton:DisconnectEvent(ButtonClickEvent, self.AllDeckHandler)\n\t\tself.AllDeckHandler = nil\n\tend\n\tself.AllDeckHandler = allDeckButton:ConnectEvent(ButtonClickEvent, function() self:OpenAllDeck() end)\nend\nlocal allDeckClose = _EntityService:GetEntityByPath(\"/ui/DeckUIGroup/DeckAllHud/Close\")\nif allDeckClose ~= nil and (allDeckClose.ButtonComponent ~= nil or allDeckClose:AddComponent(\"ButtonComponent\") ~= nil) then\n\tif self.AllDeckCloseHandler ~= nil then\n\t\tallDeckClose:DisconnectEvent(ButtonClickEvent, self.AllDeckCloseHandler)\n\t\tself.AllDeckCloseHandler = nil\n\tend\n\tself.AllDeckCloseHandler = allDeckClose:ConnectEvent(ButtonClickEvent, function() self:CloseAllDeck() end)\nend\nself:BindClassDeckTabs()\nfor i = 1, 120 do\n\tlocal allCard = _EntityService:GetEntityByPath(\"/ui/DeckUIGroup/DeckAllHud/Grid/Card\" .. tostring(i))\n\tif allCard ~= nil and (allCard.ButtonComponent ~= nil or allCard:AddComponent(\"ButtonComponent\") ~= nil) then\n\t\tif allCard.SpriteGUIRendererComponent ~= nil then\n\t\t\tallCard.SpriteGUIRendererComponent.RaycastTarget = true\n\t\tend\n\t\tlocal slot = i\n\t\tallCard:ConnectEvent(ButtonClickEvent, function() self:OnAllDeckCardButton(slot) end)\n\tend\nend\nfor i = 1, 10 do\n\tlocal cardEntity = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/CardHand/Card\" .. tostring(i))\n\tif cardEntity ~= nil and cardEntity.UITouchReceiveComponent ~= nil then\n\t\tlocal cardPath = \"/ui/RunUIGroup/CardHand/Card\" .. tostring(i)\n\t\tcardEntity:ConnectEvent(UITouchEnterEvent, function() self:SetCardHover(cardPath, true) end)\n\t\tcardEntity:ConnectEvent(UITouchExitEvent, function() self:SetCardHover(cardPath, false) end)\n\t\tcardEntity:ConnectEvent(UITouchBeginDragEvent, function(ev) self:OnCardDragBegin(i) end)\n\t\tcardEntity:ConnectEvent(UITouchDragEvent, function(ev) self:OnCardDrag(i, ev.TouchPoint) end)\n\t\tcardEntity:ConnectEvent(UITouchEndDragEvent, function(ev) self:OnCardDragEnd(i, ev.TouchPoint) end)\n\t\tcardEntity:ConnectEvent(UITouchEnterEvent, function() self:HoverCard(i) end)\n\t\tcardEntity:ConnectEvent(UITouchExitEvent, function() self:UnhoverCard(i) end)\n\t\tif (cardEntity.ButtonComponent ~= nil or cardEntity:AddComponent(\"ButtonComponent\") ~= nil) then\n\t\t\tcardEntity:ConnectEvent(ButtonClickEvent, function() self:OnCardButton(i) end)\n\t\tend\n\tend\nend\nfor i = 1, 3 do\n\tlocal rc = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/RewardHud/Reward\" .. tostring(i))\n\tif rc ~= nil and (rc.ButtonComponent ~= nil or rc:AddComponent(\"ButtonComponent\") ~= nil) then\n\t\trc:ConnectEvent(ButtonClickEvent, function() self:PickReward(i) end)\n\t\tif rc.UITouchReceiveComponent ~= nil then\n\t\t\tlocal cardPath = \"/ui/RunUIGroup/RewardHud/Reward\" .. tostring(i)\n\t\t\trc:ConnectEvent(UITouchEnterEvent, function() self:SetCardHover(cardPath, true) end)\n\t\t\trc:ConnectEvent(UITouchExitEvent, function() self:SetCardHover(cardPath, false) end)\n\t\tend\n\tend\nend\nlocal skip = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/RewardHud/Skip\")\nif skip ~= nil and (skip.ButtonComponent ~= nil or skip:AddComponent(\"ButtonComponent\") ~= nil) then\n\tskip:ConnectEvent(ButtonClickEvent, function() self:PickReward(0) end)\nend\nlocal mapNodeIds = {}\nfor r = 1, 6 do\n\tfor c = 1, 4 do\n\t\ttable.insert(mapNodeIds, \"r\" .. tostring(r) .. \"c\" .. tostring(c))\n\tend\nend\ntable.insert(mapNodeIds, \"boss\")\nfor i = 1, #mapNodeIds do\n\tlocal nid = mapNodeIds[i]\n\tlocal mn = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/MapHud/Node_\" .. nid)\n\tif mn ~= nil and (mn.ButtonComponent ~= nil or mn:AddComponent(\"ButtonComponent\") ~= nil) then\n\t\tmn:ConnectEvent(ButtonClickEvent, function() self:PickNode(nid) end)\n\tend\nend\nfor i = 1, 3 do\n\tlocal sc = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/ShopHud/Card\" .. tostring(i))\n\tif sc ~= nil and (sc.ButtonComponent ~= nil or sc:AddComponent(\"ButtonComponent\") ~= nil) then\n\t\tsc:ConnectEvent(ButtonClickEvent, function() self:BuyCard(i) end)\n\t\tif sc.UITouchReceiveComponent ~= nil then\n\t\t\tlocal cardPath = \"/ui/RunUIGroup/ShopHud/Card\" .. tostring(i)\n\t\t\tsc:ConnectEvent(UITouchEnterEvent, function() self:SetCardHover(cardPath, true) end)\n\t\t\tsc:ConnectEvent(UITouchExitEvent, function() self:SetCardHover(cardPath, false) end)\n\t\tend\n\tend\nend\nlocal shopLeave = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/ShopHud/Leave\")\nif shopLeave ~= nil and (shopLeave.ButtonComponent ~= nil or shopLeave:AddComponent(\"ButtonComponent\") ~= nil) then\n\tshopLeave:ConnectEvent(ButtonClickEvent, function() self:LeaveNode() end)\nend\nlocal shopRelic = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/ShopHud/Relic\")\nif shopRelic ~= nil and (shopRelic.ButtonComponent ~= nil or shopRelic:AddComponent(\"ButtonComponent\") ~= nil) then\n\tshopRelic:ConnectEvent(ButtonClickEvent, function() self:BuyRelic() end)\nend\nlocal restLeave = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/RestHud/Leave\")\nif restLeave ~= nil and (restLeave.ButtonComponent ~= nil or restLeave:AddComponent(\"ButtonComponent\") ~= nil) then\n\trestLeave:ConnectEvent(ButtonClickEvent, function() self:LeaveNode() end)\nend\nfor i = 1, 4 do\n\tlocal ms = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/CombatHud/MonsterStatus\" .. tostring(i))\n\tif ms ~= nil and (ms.ButtonComponent ~= nil or ms:AddComponent(\"ButtonComponent\") ~= nil) then\n\t\tms:ConnectEvent(ButtonClickEvent, function() self:SetTarget(i) end)\n\tend\nend\nfor i = 1, 10 do\n\tlocal rs = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/CombatHud/TopBar/RelicSlot\" .. tostring(i))\n\tif rs ~= nil and rs.UITouchReceiveComponent ~= nil then\n\t\tlocal idx = i\n\t\trs:ConnectEvent(UITouchEnterEvent, function()\n\t\t\tlocal rid = nil\n\t\t\tif self.RunRelics ~= nil then rid = self.RunRelics[idx] end\n\t\t\tif rid ~= nil and self.Relics[rid] ~= nil then\n\t\t\t\tself:ShowTooltip(self.Relics[rid].name, self.Relics[rid].desc, -240 + (idx - 1) * 48)\n\t\t\tend\n\t\tend)\n\t\trs:ConnectEvent(UITouchExitEvent, function() self:HideTooltip() end)\n\tend\nend\nfor i = 1, 5 do\n\tlocal ps = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/CombatHud/TopBar/PotionSlot\" .. tostring(i))\n\tif ps ~= nil and ps.UITouchReceiveComponent ~= nil then\n\t\tlocal idx = i\n\t\tps:ConnectEvent(UITouchEnterEvent, function()\n\t\t\tlocal pid = nil\n\t\t\tif self.RunPotions ~= nil then pid = self.RunPotions[idx] end\n\t\t\tif pid ~= nil and self.Potions[pid] ~= nil then\n\t\t\t\tself:ShowTooltip(self.Potions[pid].name, self.Potions[pid].desc, 240 + (idx - 1) * 44)\n\t\t\tend\n\t\tend)\n\t\tps:ConnectEvent(UITouchExitEvent, function() self:HideTooltip() end)\n\t\tps:ConnectEvent(UITouchDownEvent, function() self:OpenPotionMenu(idx) end)\n\tend\nend\nlocal pmUse = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/CombatHud/PotionMenu/Use\")\nif pmUse ~= nil and (pmUse.ButtonComponent ~= nil or pmUse:AddComponent(\"ButtonComponent\") ~= nil) then\n\tpmUse:ConnectEvent(ButtonClickEvent, function() self:UsePotion() end)\nend\nlocal pmToss = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/CombatHud/PotionMenu/Toss\")\nif pmToss ~= nil and (pmToss.ButtonComponent ~= nil or pmToss:AddComponent(\"ButtonComponent\") ~= nil) then\n\tpmToss:ConnectEvent(ButtonClickEvent, function() self:TossPotion() end)\nend\nlocal pmClose = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/CombatHud/PotionMenu/Close\")\nif pmClose ~= nil and (pmClose.ButtonComponent ~= nil or pmClose:AddComponent(\"ButtonComponent\") ~= nil) then\n\tpmClose:ConnectEvent(ButtonClickEvent, function() self:ClosePotionMenu() end)\nend\nlocal shopPotion = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/ShopHud/Potion\")\nif shopPotion ~= nil and (shopPotion.ButtonComponent ~= nil or shopPotion:AddComponent(\"ButtonComponent\") ~= nil) then\n\tshopPotion:ConnectEvent(ButtonClickEvent, function() self:BuyPotion() end)\nend\nlocal chest = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/TreasureHud/Chest\")\nif chest ~= nil and (chest.ButtonComponent ~= nil or chest:AddComponent(\"ButtonComponent\") ~= nil) then\n\tchest:ConnectEvent(ButtonClickEvent, function() self:OpenChest() end)\nend\nlocal treasureLeave = _EntityService:GetEntityByPath(\"/ui/RunUIGroup/TreasureHud/Leave\")\nif treasureLeave ~= nil and (treasureLeave.ButtonComponent ~= nil or treasureLeave:AddComponent(\"ButtonComponent\") ~= nil) then\n\ttreasureLeave:ConnectEvent(ButtonClickEvent, function() self:LeaveNode() end)\nend\nlocal jcRelic = _EntityService:GetEntityByPath(\"/ui/SelectUIGroup/JobChoiceHud/RelicButton\")\nif jcRelic ~= nil and (jcRelic.ButtonComponent ~= nil or jcRelic:AddComponent(\"ButtonComponent\") ~= nil) then\n\tjcRelic:ConnectEvent(ButtonClickEvent, function() self:PickJobReward(\"relic\") end)\nend\nlocal jcJob = _EntityService:GetEntityByPath(\"/ui/SelectUIGroup/JobChoiceHud/JobButton\")\nif jcJob ~= nil and (jcJob.ButtonComponent ~= nil or jcJob:AddComponent(\"ButtonComponent\") ~= nil) then\n\tjcJob:ConnectEvent(ButtonClickEvent, function() self:PickJobReward(\"job\") end)\nend\nfor i = 1, 3 do\n\tlocal slotIdx = i\n\tlocal jb = _EntityService:GetEntityByPath(\"/ui/SelectUIGroup/JobSelectHud/Job_slot\" .. tostring(i))\n\tif jb ~= nil and (jb.ButtonComponent ~= nil or jb:AddComponent(\"ButtonComponent\") ~= nil) then\n\t\tjb:ConnectEvent(ButtonClickEvent, function()\n\t\t\tif self.JobOpts ~= nil and self.JobOpts[slotIdx] ~= nil then\n\t\t\t\tself:SetJob(self.JobOpts[slotIdx].id)\n\t\t\tend\n\t\tend)\n\tend\nend", "Scope": 2, "ExecSpace": 6, "Attributes": [], @@ -1978,7 +1978,7 @@ "Name": "title" } ], - "Code": "local count = 0\nif pile ~= nil then\n\tcount = #pile\nend\nlocal suffix = \" (\" .. tostring(count) .. \")\"\nif count > 60 then\n\tsuffix = suffix .. \" - 60장까지 표시\"\nend\nself:SetText(\"/ui/DeckUIGroup/DeckInspectHud/Title\", title .. suffix)\nlocal empty = _EntityService:GetEntityByPath(\"/ui/DeckUIGroup/DeckInspectHud/Empty\")\nif empty ~= nil then\n\tempty.Enable = count <= 0\nend\nfor i = 1, 60 do\n\tlocal e = _EntityService:GetEntityByPath(\"/ui/DeckUIGroup/DeckInspectHud/Grid/Card\" .. tostring(i))\n\tif e ~= nil then\n\t\tlocal cardId = nil\n\t\tif pile ~= nil then\n\t\t\tcardId = pile[i]\n\t\tend\n\t\tif cardId == nil then\n\t\t\te.Enable = false\n\t\telse\n\t\t\te.Enable = true\n\t\t\tself:ApplyInspectCardVisual(i, cardId)\n\t\tend\n\tend\nend", + "Code": "local count = 0\nif pile ~= nil then\n\tcount = #pile\nend\nlocal suffix = \" (\" .. tostring(count) .. \")\"\nif count > 60 then\n\tsuffix = suffix .. \" - 60장까지 표시\"\nend\nself:SetText(\"/ui/DeckUIGroup/DeckInspectHud/Title\", title .. suffix)\nself:SetEntityEnabled(\"/ui/DeckUIGroup/DeckInspectHud/Empty\", count <= 0)\nfor i = 1, 60 do\n\tlocal path = \"/ui/DeckUIGroup/DeckInspectHud/Grid/Card\" .. tostring(i)\n\tlocal cardId = nil\n\tif pile ~= nil then\n\t\tcardId = pile[i]\n\tend\n\tif cardId == nil then\n\t\tself:SetEntityEnabled(path, false)\n\telse\n\t\tself:SetEntityEnabled(path, true)\n\t\tself:ApplyInspectCardVisual(i, cardId)\n\tend\nend", "Scope": 2, "ExecSpace": 6, "Attributes": [], @@ -2099,7 +2099,7 @@ "Name": null }, "Arguments": [], - "Code": "local tabs = {\n\t{ path = \"/ui/DeckUIGroup/DeckAllHud/WarriorTab\", cls = \"warrior\" },\n\t{ path = \"/ui/DeckUIGroup/DeckAllHud/ThiefTab\", cls = \"bandit\" },\n\t{ path = \"/ui/DeckUIGroup/DeckAllHud/MageTab\", cls = \"magician\" },\n}\nfor i = 1, #tabs do\n\tlocal e = _EntityService:GetEntityByPath(tabs[i].path)\n\tif e ~= nil then\n\t\te.Enable = self.ClassDeckMode == true\n\t\tif e.SpriteGUIRendererComponent ~= nil then\n\t\t\tif self.ClassDeckClass == tabs[i].cls then\n\t\t\t\te.SpriteGUIRendererComponent.Color = Color(0.22, 0.28, 0.34, 1)\n\t\t\telse\n\t\t\t\te.SpriteGUIRendererComponent.Color = Color(0.11, 0.13, 0.16, 1)\n\t\t\tend\n\t\tend\n\tend\nend", + "Code": "local tabs = {\n\t{ path = \"/ui/DeckUIGroup/DeckAllHud/WarriorTab\", cls = \"warrior\" },\n\t{ path = \"/ui/DeckUIGroup/DeckAllHud/ThiefTab\", cls = \"bandit\" },\n\t{ path = \"/ui/DeckUIGroup/DeckAllHud/MageTab\", cls = \"magician\" },\n}\nfor i = 1, #tabs do\n\tself:SetEntityEnabled(tabs[i].path, self.ClassDeckMode == true)\n\tlocal e = _EntityService:GetEntityByPath(tabs[i].path)\n\tif e ~= nil and e.SpriteGUIRendererComponent ~= nil then\n\t\tif self.ClassDeckClass == tabs[i].cls then\n\t\t\te.SpriteGUIRendererComponent.Color = Color(0.22, 0.28, 0.34, 1)\n\t\telse\n\t\t\te.SpriteGUIRendererComponent.Color = Color(0.11, 0.13, 0.16, 1)\n\t\tend\n\tend\nend", "Scope": 2, "ExecSpace": 6, "Attributes": [], @@ -2144,7 +2144,7 @@ "Name": null }, "Arguments": [], - "Code": "local pile = self.RunDeck or {}\nlocal title = \"모든 덱\"\nif self.ClassDeckMode == true then\n\tpile = self.ClassDeckCards or {}\n\ttitle = self.ClassDeckTitle\n\tif self.DebugCardPickerMode == true then\n\t\ttitle = title .. \" - 테스트 카드 추가\"\n\tend\nelseif self.CodexMode == true then\n\tpile = self.CodexCards or {}\n\ttitle = \"카드 도감\"\nend\nlocal count = #pile\nself:SetText(\"/ui/DeckUIGroup/DeckAllHud/Title\", title .. \" (\" .. tostring(count) .. \")\")\nself:RenderClassDeckTabs()\nlocal empty = _EntityService:GetEntityByPath(\"/ui/DeckUIGroup/DeckAllHud/Empty\")\nif empty ~= nil then\n\tempty.Enable = count <= 0\nend\nfor i = 1, 120 do\n\tlocal e = _EntityService:GetEntityByPath(\"/ui/DeckUIGroup/DeckAllHud/Grid/Card\" .. tostring(i))\n\tif e ~= nil then\n\t\tlocal cardId = pile[i]\n\t\tif cardId == nil then\n\t\t\te.Enable = false\n\t\telse\n\t\t\te.Enable = true\n\t\t\tself:ApplyAllDeckCardVisual(i, cardId)\n\t\tend\n\tend\nend", + "Code": "local pile = self.RunDeck or {}\nlocal title = \"모든 덱\"\nif self.ClassDeckMode == true then\n\tpile = self.ClassDeckCards or {}\n\ttitle = self.ClassDeckTitle\n\tif self.DebugCardPickerMode == true then\n\t\ttitle = title .. \" - 테스트 카드 추가\"\n\tend\nelseif self.CodexMode == true then\n\tpile = self.CodexCards or {}\n\ttitle = \"카드 도감\"\nend\nlocal count = #pile\nself:SetText(\"/ui/DeckUIGroup/DeckAllHud/Title\", title .. \" (\" .. tostring(count) .. \")\")\nself:RenderClassDeckTabs()\nself:SetEntityEnabled(\"/ui/DeckUIGroup/DeckAllHud/Empty\", count <= 0)\nfor i = 1, 120 do\n\tlocal path = \"/ui/DeckUIGroup/DeckAllHud/Grid/Card\" .. tostring(i)\n\tlocal cardId = pile[i]\n\tif cardId == nil then\n\t\tself:SetEntityEnabled(path, false)\n\telse\n\t\tself:SetEntityEnabled(path, true)\n\t\tself:ApplyAllDeckCardVisual(i, cardId)\n\tend\nend", "Scope": 2, "ExecSpace": 6, "Attributes": [], diff --git a/tools/deck/cb/deckturn.mjs b/tools/deck/cb/deckturn.mjs index 0e2a301..720085d 100644 --- a/tools/deck/cb/deckturn.mjs +++ b/tools/deck/cb/deckturn.mjs @@ -70,6 +70,9 @@ self:BindClassDeckTabs() for i = 1, 120 do local allCard = _EntityService:GetEntityByPath("/ui/DeckUIGroup/DeckAllHud/Grid/Card" .. tostring(i)) if allCard ~= nil and (allCard.ButtonComponent ~= nil or allCard:AddComponent("ButtonComponent") ~= nil) then + if allCard.SpriteGUIRendererComponent ~= nil then + allCard.SpriteGUIRendererComponent.RaycastTarget = true + end local slot = i allCard:ConnectEvent(ButtonClickEvent, function() self:OnAllDeckCardButton(slot) end) end diff --git a/tools/deck/cb/deckview.mjs b/tools/deck/cb/deckview.mjs index 9b36555..aea9b6d 100644 --- a/tools/deck/cb/deckview.mjs +++ b/tools/deck/cb/deckview.mjs @@ -42,23 +42,18 @@ if count > 60 then suffix = suffix .. " - 60장까지 표시" end self:SetText("/ui/DeckUIGroup/DeckInspectHud/Title", title .. suffix) -local empty = _EntityService:GetEntityByPath("/ui/DeckUIGroup/DeckInspectHud/Empty") -if empty ~= nil then - empty.Enable = count <= 0 -end +self:SetEntityEnabled("/ui/DeckUIGroup/DeckInspectHud/Empty", count <= 0) for i = 1, 60 do - local e = _EntityService:GetEntityByPath("/ui/DeckUIGroup/DeckInspectHud/Grid/Card" .. tostring(i)) - if e ~= nil then - local cardId = nil - if pile ~= nil then - cardId = pile[i] - end - if cardId == nil then - e.Enable = false - else - e.Enable = true - self:ApplyInspectCardVisual(i, cardId) - end + local path = "/ui/DeckUIGroup/DeckInspectHud/Grid/Card" .. tostring(i) + local cardId = nil + if pile ~= nil then + cardId = pile[i] + end + if cardId == nil then + self:SetEntityEnabled(path, false) + else + self:SetEntityEnabled(path, true) + self:ApplyInspectCardVisual(i, cardId) end end`, [ { Type: 'any', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'pile' }, @@ -171,15 +166,13 @@ self:RenderClassDeckTabs()`, [{ Type: 'string', DefaultValue: null, SyncDirectio { path = "/ui/DeckUIGroup/DeckAllHud/MageTab", cls = "magician" }, } for i = 1, #tabs do + self:SetEntityEnabled(tabs[i].path, self.ClassDeckMode == true) local e = _EntityService:GetEntityByPath(tabs[i].path) - if e ~= nil then - e.Enable = self.ClassDeckMode == true - if e.SpriteGUIRendererComponent ~= nil then - if self.ClassDeckClass == tabs[i].cls then - e.SpriteGUIRendererComponent.Color = Color(0.22, 0.28, 0.34, 1) - else - e.SpriteGUIRendererComponent.Color = Color(0.11, 0.13, 0.16, 1) - end + if e ~= nil and e.SpriteGUIRendererComponent ~= nil then + if self.ClassDeckClass == tabs[i].cls then + e.SpriteGUIRendererComponent.Color = Color(0.22, 0.28, 0.34, 1) + else + e.SpriteGUIRendererComponent.Color = Color(0.11, 0.13, 0.16, 1) end end end`), @@ -230,20 +223,15 @@ end local count = #pile self:SetText("/ui/DeckUIGroup/DeckAllHud/Title", title .. " (" .. tostring(count) .. ")") self:RenderClassDeckTabs() -local empty = _EntityService:GetEntityByPath("/ui/DeckUIGroup/DeckAllHud/Empty") -if empty ~= nil then - empty.Enable = count <= 0 -end +self:SetEntityEnabled("/ui/DeckUIGroup/DeckAllHud/Empty", count <= 0) for i = 1, 120 do - local e = _EntityService:GetEntityByPath("/ui/DeckUIGroup/DeckAllHud/Grid/Card" .. tostring(i)) - if e ~= nil then - local cardId = pile[i] - if cardId == nil then - e.Enable = false - else - e.Enable = true - self:ApplyAllDeckCardVisual(i, cardId) - end + local path = "/ui/DeckUIGroup/DeckAllHud/Grid/Card" .. tostring(i) + local cardId = pile[i] + if cardId == nil then + self:SetEntityEnabled(path, false) + else + self:SetEntityEnabled(path, true) + self:ApplyAllDeckCardVisual(i, cardId) end end`), method('ApplyAllDeckCardVisual', `self:ApplyCardFace("/ui/DeckUIGroup/DeckAllHud/Grid/Card" .. tostring(slot), cardId)`, [ diff --git a/ui/DeckUIGroup.ui b/ui/DeckUIGroup.ui index d2c2447..d1b226b 100644 --- a/ui/DeckUIGroup.ui +++ b/ui/DeckUIGroup.ui @@ -23,7 +23,7 @@ "nameEditable": true, "enable": true, "visible": true, - "localize": false, + "localize": true, "displayOrder": 4, "pathConstraints": "//", "revision": 1, @@ -86,7 +86,7 @@ { "@type": "MOD.Core.UIGroupComponent", "DefaultShow": false, - "GroupOrder": 4, + "GroupOrder": 6, "GroupType": 2, "Enable": true }, @@ -1797,8 +1797,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -2659,8 +2659,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -3521,8 +3521,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -4383,8 +4383,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -5245,8 +5245,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -6107,8 +6107,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -6969,8 +6969,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -7831,8 +7831,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -8693,8 +8693,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -9555,8 +9555,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -10417,8 +10417,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -11279,8 +11279,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -12141,8 +12141,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -13003,8 +13003,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -13865,8 +13865,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -14727,8 +14727,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -15589,8 +15589,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -16451,8 +16451,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -17313,8 +17313,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -18175,8 +18175,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -19037,8 +19037,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -19899,8 +19899,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -20761,8 +20761,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -21623,8 +21623,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -22485,8 +22485,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -23347,8 +23347,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -24209,8 +24209,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -25071,8 +25071,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -25933,8 +25933,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -26795,8 +26795,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -27657,8 +27657,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -28519,8 +28519,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -29381,8 +29381,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -30243,8 +30243,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -31105,8 +31105,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -31967,8 +31967,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -32829,8 +32829,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -33691,8 +33691,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -34553,8 +34553,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -35415,8 +35415,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -36277,8 +36277,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -37139,8 +37139,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -38001,8 +38001,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -38863,8 +38863,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -39725,8 +39725,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -40587,8 +40587,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -41449,8 +41449,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -42311,8 +42311,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -43173,8 +43173,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -44035,8 +44035,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -44897,8 +44897,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -45759,8 +45759,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -46621,8 +46621,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -47483,8 +47483,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -48345,8 +48345,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -49207,8 +49207,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -50069,8 +50069,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -50931,8 +50931,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -51793,8 +51793,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -52655,8 +52655,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -53517,8 +53517,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -54379,8 +54379,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -55241,8 +55241,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -56103,8 +56103,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -56965,8 +56965,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -57827,8 +57827,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -58689,8 +58689,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -59551,8 +59551,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -60413,8 +60413,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -61275,8 +61275,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -62137,8 +62137,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -62999,8 +62999,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -63861,8 +63861,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -64723,8 +64723,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -65585,8 +65585,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -66447,8 +66447,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -67309,8 +67309,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -68171,8 +68171,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -69033,8 +69033,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -69895,8 +69895,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -70757,8 +70757,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -71619,8 +71619,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -72481,8 +72481,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -73343,8 +73343,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -74205,8 +74205,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -75067,8 +75067,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -75929,8 +75929,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -76791,8 +76791,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -77653,8 +77653,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -78515,8 +78515,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -79377,8 +79377,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -80239,8 +80239,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -81101,8 +81101,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -81963,8 +81963,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -82825,8 +82825,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -83687,8 +83687,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -84549,8 +84549,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -85411,8 +85411,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -86273,8 +86273,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -87135,8 +87135,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -87997,8 +87997,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -88859,8 +88859,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -89721,8 +89721,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -90583,8 +90583,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -91445,8 +91445,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -92307,8 +92307,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -93169,8 +93169,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -94031,8 +94031,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -94893,8 +94893,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -95755,8 +95755,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -96617,8 +96617,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -97479,8 +97479,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -98341,8 +98341,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -99203,8 +99203,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -100065,8 +100065,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -100927,8 +100927,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -101789,8 +101789,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -102651,8 +102651,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -103513,8 +103513,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -104375,8 +104375,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 490.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -106296,8 +106296,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -107158,8 +107158,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -108020,8 +108020,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -108882,8 +108882,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -109744,8 +109744,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -110606,8 +110606,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -111468,8 +111468,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -112330,8 +112330,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -113192,8 +113192,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -114054,8 +114054,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -114916,8 +114916,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -115778,8 +115778,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -116640,8 +116640,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -117502,8 +117502,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -118364,8 +118364,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -119226,8 +119226,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -120088,8 +120088,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -120950,8 +120950,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -121812,8 +121812,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -122674,8 +122674,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -123536,8 +123536,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -124398,8 +124398,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -125260,8 +125260,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -126122,8 +126122,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -126984,8 +126984,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -127846,8 +127846,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -128708,8 +128708,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -129570,8 +129570,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -130432,8 +130432,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -131294,8 +131294,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -132156,8 +132156,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -133018,8 +133018,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -133880,8 +133880,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -134742,8 +134742,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -135604,8 +135604,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -136466,8 +136466,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -137328,8 +137328,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -138190,8 +138190,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -139052,8 +139052,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -139914,8 +139914,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -140776,8 +140776,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -141638,8 +141638,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -142500,8 +142500,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -143362,8 +143362,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -144224,8 +144224,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -145086,8 +145086,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -145948,8 +145948,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -146810,8 +146810,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -147672,8 +147672,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -148534,8 +148534,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -149396,8 +149396,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -150258,8 +150258,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -151120,8 +151120,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -151982,8 +151982,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -152844,8 +152844,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -153706,8 +153706,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -154568,8 +154568,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -155430,8 +155430,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -156292,8 +156292,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { @@ -157154,8 +157154,8 @@ "y": 0.0 }, "Position": { - "x": 455.0, - "y": -5.0, + "x": 475.0, + "y": -50.0, "z": 0.0 }, "QuaternionRotation": { diff --git a/ui/LobbyUIGroup.ui b/ui/LobbyUIGroup.ui index 4460195..5d36ac8 100644 --- a/ui/LobbyUIGroup.ui +++ b/ui/LobbyUIGroup.ui @@ -23,7 +23,7 @@ "nameEditable": true, "enable": true, "visible": true, - "localize": false, + "localize": true, "displayOrder": 5, "pathConstraints": "//", "revision": 1, @@ -86,7 +86,7 @@ { "@type": "MOD.Core.UIGroupComponent", "DefaultShow": false, - "GroupOrder": 5, + "GroupOrder": 1, "GroupType": 2, "Enable": true }, diff --git a/ui/PopupGroup.ui b/ui/PopupGroup.ui index f0d785f..c46c170 100644 --- a/ui/PopupGroup.ui +++ b/ui/PopupGroup.ui @@ -97,7 +97,7 @@ { "@type": "MOD.Core.UIGroupComponent", "DefaultShow": false, - "GroupOrder": 1, + "GroupOrder": 2, "GroupType": 1, "Enable": true }, diff --git a/ui/RunUIGroup.ui b/ui/RunUIGroup.ui index f1eea83..3588c09 100644 --- a/ui/RunUIGroup.ui +++ b/ui/RunUIGroup.ui @@ -23,7 +23,7 @@ "nameEditable": true, "enable": true, "visible": true, - "localize": false, + "localize": true, "displayOrder": 6, "pathConstraints": "//", "revision": 1, @@ -86,7 +86,7 @@ { "@type": "MOD.Core.UIGroupComponent", "DefaultShow": false, - "GroupOrder": 6, + "GroupOrder": 5, "GroupType": 2, "Enable": true }, diff --git a/ui/SelectUIGroup.ui b/ui/SelectUIGroup.ui index 5ce00b6..83e53a4 100644 --- a/ui/SelectUIGroup.ui +++ b/ui/SelectUIGroup.ui @@ -23,7 +23,7 @@ "nameEditable": true, "enable": true, "visible": true, - "localize": false, + "localize": true, "displayOrder": 3, "pathConstraints": "//", "revision": 1, @@ -86,7 +86,7 @@ { "@type": "MOD.Core.UIGroupComponent", "DefaultShow": false, - "GroupOrder": 3, + "GroupOrder": 4, "GroupType": 2, "Enable": true }, diff --git a/ui/ToastGroup.ui b/ui/ToastGroup.ui index d56b208..fba4d02 100644 --- a/ui/ToastGroup.ui +++ b/ui/ToastGroup.ui @@ -97,7 +97,7 @@ { "@type": "MOD.Core.UIGroupComponent", "DefaultShow": false, - "GroupOrder": 2, + "GroupOrder": 3, "GroupType": 1, "Enable": true },