diff --git a/RootDesk/MyDesk/SlayDeckController.codeblock b/RootDesk/MyDesk/SlayDeckController.codeblock index c99480b..6fc1fda 100644 --- a/RootDesk/MyDesk/SlayDeckController.codeblock +++ b/RootDesk/MyDesk/SlayDeckController.codeblock @@ -274,6 +274,13 @@ "Attributes": [], "Name": "LobbyBound" }, + { + "Type": "boolean", + "DefaultValue": "false", + "SyncDirection": 0, + "Attributes": [], + "Name": "ButtonsBound" + }, { "Type": "number", "DefaultValue": "0", @@ -1974,7 +1981,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\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", + "Code": "if self.ButtonsBound == true then\n\treturn\nend\nself.ButtonsBound = true\nlocal 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": [], diff --git a/tools/deck/cb/deckturn.mjs b/tools/deck/cb/deckturn.mjs index d1f4e6d..656983f 100644 --- a/tools/deck/cb/deckturn.mjs +++ b/tools/deck/cb/deckturn.mjs @@ -10,7 +10,11 @@ for i = #list, 2, -1 do \tlocal j = math.random(1, i) \tlist[i], list[j] = list[j], list[i] end`, [{ Type: 'any', DefaultValue: null, SyncDirection: 0, Attributes: [], Name: 'list' }]), - method('BindButtons', `local endTurn = _EntityService:GetEntityByPath("/ui/RunUIGroup/DeckHud/EndTurnButton") + method('BindButtons', `if self.ButtonsBound == true then + return +end +self.ButtonsBound = true +local endTurn = _EntityService:GetEntityByPath("/ui/RunUIGroup/DeckHud/EndTurnButton") if endTurn ~= nil and (endTurn.ButtonComponent ~= nil or endTurn:AddComponent("ButtonComponent") ~= nil) then if self.EndTurnHandler ~= nil then endTurn:DisconnectEvent(ButtonClickEvent, self.EndTurnHandler) diff --git a/tools/deck/gen-slaydeck.mjs b/tools/deck/gen-slaydeck.mjs index 7a899c9..eb063c4 100644 --- a/tools/deck/gen-slaydeck.mjs +++ b/tools/deck/gen-slaydeck.mjs @@ -61,6 +61,7 @@ function writeCodeblocks() { prop('any', 'AllDeckCloseHandler'), prop('number', 'SoulPoints', '0'), prop('boolean', 'LobbyBound', 'false'), + prop('boolean', 'ButtonsBound', 'false'), prop('number', 'LobbyTpTries', '0'), prop('boolean', 'CodexMode', 'false'), prop('any', 'CodexCards'),