66 lines
2.1 KiB
Lua
66 lines
2.1 KiB
Lua
local CutLimbHandler = require("UI/TOC_CutLimbHandler")
|
|
|
|
-- TODO Use this to replace the sprites once a limb is cut
|
|
ISHealthBodyPartPanel = ISBodyPartPanel:derive("ISHealthBodyPartPanel")
|
|
|
|
function ISHealthBodyPartPanel:onMouseUp(x, y)
|
|
if self.selectedBp then
|
|
local dragging = ISInventoryPane.getActualItems(ISMouseDrag.dragging)
|
|
self.parent:dropItemsOnBodyPart(self.selectedBp.bodyPart, dragging)
|
|
end
|
|
end
|
|
|
|
function ISHealthBodyPartPanel:prerender()
|
|
self.nodeAlpha = 0.0
|
|
self.selectedAlpha = 0.1
|
|
if self.selectedBp then
|
|
for index,item in ipairs(self.parent.listbox.items) do
|
|
if item.item.bodyPart == self.selectedBp.bodyPart then
|
|
self.nodeAlpha = 1.0
|
|
self.selectedAlpha = 0.5
|
|
break
|
|
end
|
|
end
|
|
end
|
|
ISBodyPartPanel.prerender(self)
|
|
end
|
|
|
|
function ISHealthBodyPartPanel:cbSetSelected(bp)
|
|
if bp == nil then
|
|
self.parent.listbox.selected = 0
|
|
return
|
|
end
|
|
for index,item in ipairs(self.parent.listbox.items) do
|
|
if item.item.bodyPart == bp.bodyPart then
|
|
self.parent.listbox.selected = index
|
|
break
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
local og_ISHealthPanel_dropItemsOnBodyPart = ISHealthPanel.dropItemsOnBodyPart
|
|
|
|
function ISHealthPanel:dropItemsOnBodyPart(bodyPart, items)
|
|
og_ISHealthPanel_dropItemsOnBodyPart(self, bodyPart, items)
|
|
local cutLimbHandler = CutLimbHandler:new(self, bodyPart)
|
|
|
|
for _,item in ipairs(items) do
|
|
cutLimbHandler:checkItem(item)
|
|
end
|
|
|
|
if cutLimbHandler:dropItems(items) then
|
|
return
|
|
end
|
|
|
|
end
|
|
|
|
local og_ISHealthPanel_doBodyPartContextMenu = ISHealthPanel.doBodyPartContextMenu
|
|
|
|
function ISHealthPanel:doBodyPartContextMenu(bodyPart, x, y)
|
|
og_ISHealthPanel_doBodyPartContextMenu(self, bodyPart, x, y)
|
|
local playerNum = self.otherPlayer and self.otherPlayer:getPlayerNum() or self.character:getPlayerNum()
|
|
local context = getPlayerContextMenu(playerNum) -- To not recreate it but reuse the one that has been created in the original method
|
|
local cutLimbHandler = CutLimbHandler:new(self, bodyPart)
|
|
cutLimbHandler:addToMenu(context)
|
|
end |