125 lines
3.1 KiB
Python
125 lines
3.1 KiB
Python
import ui
|
|
import chr
|
|
import player
|
|
|
|
class EquipmentDialog(ui.ScriptWindow):
|
|
|
|
def __init__(self):
|
|
print "NEW EQUIPMENT DIALOG ----------------------------------------------------------------------------"
|
|
ui.ScriptWindow.__init__(self)
|
|
self.__LoadDialog()
|
|
|
|
self.vid = None
|
|
self.eventClose = None
|
|
self.itemDataDict = {}
|
|
self.tooltipItem = None
|
|
|
|
def __del__(self):
|
|
print "---------------------------------------------------------------------------- DELETE EQUIPMENT DIALOG "
|
|
ui.ScriptWindow.__del__(self)
|
|
|
|
def __LoadDialog(self):
|
|
try:
|
|
PythonScriptLoader = ui.PythonScriptLoader()
|
|
PythonScriptLoader.LoadScriptFile(self, "UIScript/EquipmentDialog.py")
|
|
|
|
getObject = self.GetChild
|
|
self.board = getObject("Board")
|
|
self.slotWindow = getObject("EquipmentSlot")
|
|
|
|
except:
|
|
import exception
|
|
exception.Abort("EquipmentDialog.LoadDialog.BindObject")
|
|
|
|
self.board.SetCloseEvent(ui.__mem_func__(self.Close))
|
|
self.slotWindow.SetOverInItemEvent(ui.__mem_func__(self.OverInItem))
|
|
self.slotWindow.SetOverOutItemEvent(ui.__mem_func__(self.OverOutItem))
|
|
|
|
def Open(self, vid):
|
|
|
|
self.vid = vid
|
|
self.itemDataDict = {}
|
|
|
|
name = chr.GetNameByVID(vid)
|
|
self.board.SetTitleName(name)
|
|
|
|
self.SetCenterPosition()
|
|
self.SetTop()
|
|
self.Show()
|
|
|
|
def Close(self):
|
|
self.itemDataDict = {}
|
|
self.tooltipItem = None
|
|
self.Hide()
|
|
|
|
if self.eventClose:
|
|
self.eventClose(self.vid)
|
|
|
|
def Destroy(self):
|
|
self.eventClose = None
|
|
|
|
self.Close()
|
|
self.ClearDictionary()
|
|
|
|
self.board = None
|
|
self.slotWindow = None
|
|
|
|
def SetEquipmentDialogItem(self, slotIndex, vnum, count):
|
|
if count <= 1:
|
|
count = 0
|
|
self.slotWindow.SetItemSlot(slotIndex, vnum, count)
|
|
|
|
emptySocketList = []
|
|
emptyAttrList = []
|
|
for i in xrange(player.METIN_SOCKET_MAX_NUM):
|
|
emptySocketList.append(0)
|
|
for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM):
|
|
emptyAttrList.append((0, 0))
|
|
self.itemDataDict[slotIndex] = (vnum, count, emptySocketList, emptyAttrList)
|
|
|
|
def SetEquipmentDialogSocket(self, slotIndex, socketIndex, value):
|
|
if not slotIndex in self.itemDataDict:
|
|
return
|
|
if socketIndex < 0 or socketIndex > player.METIN_SOCKET_MAX_NUM:
|
|
return
|
|
self.itemDataDict[slotIndex][2][socketIndex] = value
|
|
|
|
def SetEquipmentDialogAttr(self, slotIndex, attrIndex, type, value):
|
|
if not slotIndex in self.itemDataDict:
|
|
return
|
|
if attrIndex < 0 or attrIndex > player.ATTRIBUTE_SLOT_MAX_NUM:
|
|
return
|
|
self.itemDataDict[slotIndex][3][attrIndex] = (type, value)
|
|
|
|
def SetItemToolTip(self, tooltipItem):
|
|
self.tooltipItem = tooltipItem
|
|
|
|
def SetCloseEvent(self, event):
|
|
self.eventClose = event
|
|
|
|
def OverInItem(self, slotIndex):
|
|
|
|
if None == self.tooltipItem:
|
|
return
|
|
|
|
if not slotIndex in self.itemDataDict:
|
|
return
|
|
|
|
itemVnum = self.itemDataDict[slotIndex][0]
|
|
if 0 == itemVnum:
|
|
return
|
|
|
|
self.tooltipItem.ClearToolTip()
|
|
metinSlot = self.itemDataDict[slotIndex][2]
|
|
attrSlot = self.itemDataDict[slotIndex][3]
|
|
self.tooltipItem.AddItemData(itemVnum, metinSlot, attrSlot)
|
|
self.tooltipItem.ShowToolTip()
|
|
|
|
def OverOutItem(self):
|
|
if None != self.tooltipItem:
|
|
self.tooltipItem.HideToolTip()
|
|
|
|
def OnPressEscapeKey(self):
|
|
self.Close()
|
|
return True
|