def makeCell(self, cellImage = None, imageScale = None, imagePos = None): returnCell = InventoryUIContainer.InventoryUIContainer.makeCell(self, cellImage, imageScale, imagePos) textScale = 0.29999999999999999 * self.cellSizeX returnCell.label['text_align'] = TextNode.ALeft returnCell.label['text_scale'] = textScale returnCell.label['text_font'] = PiratesGlobals.getInterfaceOutlineFont() returnCell.label['text_pos'] = (0.55000000000000004 * self.cellSizeX - 0, 0.45000000000000001 * self.cellSizeZ - textScale) returnCell.label['text_wordwrap'] = self.spaceSizeX / textScale returnCell.hide() return returnCell
def makeCheckbox(self, pos, text, command, initialState, extraArgs, levelText): charGui = loader.loadModel('models/gui/toplevel_gui') buttonImage = (charGui.find('**/generic_button'), charGui.find('**/generic_button'), charGui.find('**/generic_button'), charGui.find('**/generic_button')) geomCheck = [ charGui.find('**/generic_check'), charGui.find('**/generic_check'), charGui.find('**/generic_check'), None ] c = DirectCheckButton( parent=self, relief=None, scale=0.064000000000000001, boxBorder=0.080000000000000002, boxRelief=None, boxImage=geomCheck, boxImageScale=6, boxImageColor=VBase4(0, 1, 0, 1), pos=pos, text=text, text_fg=PiratesGuiGlobals.TextFG1, text_scale=0.5, text_pos=(-2.3999999999999999, 0, -2.7999999999999998), text_align=TextNode.ALeft, text_font=PiratesGlobals.getInterfaceOutlineFont(), indicator_pos=(2.2000000000000002, 0, 0.14999999999999999), command=command, indicatorValue=initialState, extraArgs=extraArgs, text0_fg=PiratesGuiGlobals.TextFG1, text1_fg=PiratesGuiGlobals.TextFG1, text2_fg=PiratesGuiGlobals.TextFG1, text3_fg=PiratesGuiGlobals.TextFG1, text_shadow=PiratesGuiGlobals.TextShadow, image=buttonImage, image_pos=(0, 0, 0.14999999999999999), image_scale=(6, 1, 2.4500000000000002), state=DGG.DISABLED) l = DirectLabel(parent=c, text=levelText, text_font=PiratesGlobals.getInterfaceFont(), text_scale=0.5, text_align=TextNode.ALeft, frameColor=(0.80000000000000004, 0.69999999999999996, 0.5, 1), pos=(-0.29999999999999999, 0, 0)) c.setIndicatorValue() del charGui return c
def refreshList(self, setKey=0): if setKey == 0 or setKey == None: return None if self.currentDisplay != 0: oldSize = CollectionMap.Collection_Set_Sizes.get(self.currentDisplay) for loopItr in range(oldSize): curNum = self.currentDisplay + loopItr + 1 if curNum in self.setPics: self.setPics[curNum].hide() self.setFrames[curNum].hide() self.currentDisplay = setKey self.setLabel["text"] = PLocalizer.Collections[setKey] inv = localAvatar.getInventory() if not inv: return None setCount = 0 heightOffset = 0 setSize = CollectionMap.Collection_Set_Sizes.get(setKey) gui = loader.loadModel("models/gui/toplevel_gui") for loopItr in range(setSize): setItem = setKey + 1 + loopItr rowSpot = loopItr % 4 colSpot = loopItr / 4 localHeight = PiratesGuiGlobals.InventoryPanelHeight - 0.20000000000000001 howMany = inv.getStackQuantity(setItem) if setItem in CollectionMap.Collection_Set_Locked: if not Freebooter.getPaidStatus(base.localAvatar.getDoId()): isLocked = True else: isLocked = False else: isLocked = False if isLocked or howMany > 0: if setItem in self.setPics: self.setPics[setItem].show() self.setFrames[setItem].show() else: frameImg = gui.find("**/treasure_w_b_slot_full") self.setFrames[setItem] = DirectFrame( parent=self, relief=None, image=frameImg, image_scale=0.40000000000000002, image_pos=(0, 0, 0), pos=( 0.28000000000000003 + 0.17999999999999999 * rowSpot, 0, localHeight - 0.35999999999999999 - 0.17999999999999999 * colSpot, ), ) pic_name = CollectionMap.Assets[setItem] if isLocked: tex = gui.find("**/pir_t_gui_gen_key_subscriber") use_scale = 0.25 self.setPics[setItem] = DirectButton( parent=self, relief=None, image=tex, image_scale=use_scale, image_pos=(0, 0, 0), pos=( 0.28000000000000003 + 0.17999999999999999 * rowSpot, 0, localHeight - 0.35999999999999999 - 0.17999999999999999 * colSpot, ), text=PLocalizer.Collections[setItem], text_fg=PiratesGuiGlobals.TextFG2, text_align=TextNode.ACenter, text_wordwrap=6, text_scale=0.025000000000000001, text_pos=(0, -0.085000000000000006, 0), command=base.localAvatar.guiMgr.showNonPayer, extraArgs=["Restricted_Treasure_Selection", 7], ) else: tex = self.card.find("**/%s*" % pic_name) use_scale = 0.39000000000000001 self.setPics[setItem] = DirectButton( parent=self, relief=None, image=tex, image_scale=use_scale, image_pos=(0, 0, 0), pos=( 0.28000000000000003 + 0.17999999999999999 * rowSpot, 0, localHeight - 0.35999999999999999 - 0.17999999999999999 * colSpot, ), command=self.clickedTreasure, extraArgs=[setItem], text=PLocalizer.Collections[setItem], text_fg=PiratesGuiGlobals.TextFG2, text_align=TextNode.ACenter, text_wordwrap=6, text_scale=0.025000000000000001, text_pos=(0, -0.085000000000000006, 0), ) self.setPics[setItem].setTransparency(1) if setItem in CollectionMap.Collection_Needed: howManyINeed = CollectionMap.Collection_Needed[setItem] else: howManyINeed = 1 if setItem in CollectionMap.Collection_SingleNumeric: if howMany > 0: if howMany == 1: weightTxt = "Lb" else: weightTxt = "Lbs" if setItem in self.setHowMany: self.setHowMany[setItem]["text"] = "%d %s" % (howMany, weightTxt) else: self.setHowMany[setItem] = DirectLabel( parent=self.setPics[setItem], relief=None, text="%d %s" % (howMany, weightTxt), text_align=TextNode.ARight, text_scale=0.040000000000000001, text_fg=PiratesGuiGlobals.TextFG2, text_shadow=PiratesGuiGlobals.TextShadow, textMayChange=1, pos=(0.080000000000000002, 0, -0.050000000000000003), text_font=PiratesGlobals.getInterfaceOutlineFont(), ) elif setItem in self.setHowMany: if howManyINeed < 2: self.setHowMany[setItem].hide() else: self.setHowMany[setItem]["text"] = "%d/%d" % (howMany, howManyINeed) self.setHowMany[setItem].show() elif howMany > 1: self.setHowMany[setItem] = DirectLabel( parent=self.setPics[setItem], relief=None, text="%d/%d" % (howMany, howManyINeed), text_align=TextNode.ARight, text_scale=0.040000000000000001, text_fg=PiratesGuiGlobals.TextFG2, text_shadow=PiratesGuiGlobals.TextShadow, textMayChange=1, pos=(0.080000000000000002, 0, -0.050000000000000003), text_font=PiratesGlobals.getInterfaceOutlineFont(), ) if isLocked: if setItem in self.setHowMany: self.setHowMany[setItem].hide() if setItem in self.setFrames: self.setFrames[setItem].show() continue frameImg = gui.find("**/treasure_w_b_slot_empty") self.setFrames[setItem] = DirectFrame( parent=self, relief=None, image=frameImg, image_scale=0.40000000000000002, image_pos=(0, 0, 0), pos=( 0.28000000000000003 + 0.17999999999999999 * rowSpot, 0, localHeight - 0.35999999999999999 - 0.17999999999999999 * colSpot, ), ) gui.removeNode()
def _createIface(self): self.descText = DirectLabel( parent=self, relief=None, text=self.item.get('Text'), text_align=TextNode.ALeft, text_scale=0.050000000000000003, text_fg=PiratesGuiGlobals.TextFG2, text_shadow=PiratesGuiGlobals.TextShadow, textMayChange=1, pos=(0.02, 0, self.height / 2), text_font=PiratesGlobals.getInterfaceOutlineFont()) self.valueText = DirectLabel( parent=self, relief=None, text=str(self.item.get('Value1')), text_align=TextNode.ALeft, text_scale=0.050000000000000003, text_fg=PiratesGuiGlobals.TextFG2, text_shadow=PiratesGuiGlobals.TextShadow, textMayChange=1, pos=(self.width * 0.65000000000000002, 0, self.height / 2), text_font=PiratesGlobals.getInterfaceOutlineFont()) if self.item.get('Type') == 'Title': self.descText['text_scale'] = 0.055 self.descText['text_fg'] = PiratesGuiGlobals.TextFG1 self.descText[ 'text_font'] = PiratesGlobals.getInterfaceOutlineFont() self.valueText['text_scale'] = 0.044999999999999998 self.valueText[ 'text_font'] = PiratesGlobals.getInterfaceOutlineFont() if self.item.has_key('Value2'): self.valueText2 = DirectLabel( parent=self, relief=None, text=str(self.item.get('Value2')), text_align=TextNode.ALeft, text_scale=0.050000000000000003, text_fg=PiratesGuiGlobals.TextFG2, text_shadow=PiratesGuiGlobals.TextShadow, textMayChange=1, pos=(self.width * 0.80000000000000004, 0, self.height / 2), text_font=PiratesGlobals.getInterfaceOutlineFont()) if self.valueText2: self.valueText2['text_scale'] = 0.044999999999999998 self.valueText2[ 'text_font'] = PiratesGlobals.getInterfaceOutlineFont() elif self.item.get('Type') == 'Entry': self.descText['text_pos'] = (self.width * 0.059999999999999998, 0, 0) if self.item.has_key('Value2'): self.valueText2 = DirectLabel( parent=self, relief=None, text=str(self.item.get('Value2')), text_align=TextNode.ALeft, text_scale=0.050000000000000003, text_fg=PiratesGuiGlobals.TextFG2, text_shadow=PiratesGuiGlobals.TextShadow, textMayChange=1, pos=(self.width * 0.80000000000000004, 0, self.height / 2), text_font=PiratesGlobals.getInterfaceOutlineFont()) elif self.item.get('Type') == 'Space': self.descText['text_scale'] = 0.02 self.descText['text'] = ' ' self.valueText['text_scale'] = 0.02 self.valueText['text'] = ' ' elif self.item.get('Type') == 'Button': self.descText['text_pos'] = (self.width * 0.059999999999999998, 0, 0) self.valueText['text'] = ' ' self.button = DirectButton( parent=self, relief=DGG.RIDGE, text=self.item.get('Text'), text_align=TextNode.ALeft, text_scale=PiratesGuiGlobals.TextScaleLarge, text_fg=PiratesGuiGlobals.TextFG1, text_shadow=PiratesGuiGlobals.TextShadow, frameColor=PiratesGuiGlobals.ButtonColor1, command=self.item.get('Value2'), pos=(self.width * 0.65000000000000002, 0, self.height / 2), borderWidth=(0.01, 0.01), pad=(0.0050000000000000001, 0.0050000000000000001), textMayChange=1) if self.item.get('State') == 'off': self.button['state'] = DGG.DISABLED self.button['text_fg'] = PiratesGuiGlobals.TextFG3 elif self.item.get('State') == 'oneShot': self.button.bind(DGG.B1RELEASE, self.disableButton) elif self.item.get('Type') == 'Cargo': itemId = self.item.get('Value1') iconId = EconomyGlobals.getCargoCategory(itemId) if not iconId: self.notify.error('Invalid Item in Cargo! item: %s' % (self.item, )) icon = self.icons.get(iconId) self.descText['geom'] = self.getCargoIcon(icon[0], icon[1]) self.descText[ 'geom_scale'] = 0.089999999999999997 * self.height * 10 self.descText['geom_pos'] = (0.050000000000000003, 0, 0.01) self.descText['text_pos'] = (0.23999999999999999, 0, 0) self.descText['text'] = icon[2] self.descText['text_fg'] = PiratesGuiGlobals.TextFG2 self.descText[ 'text_font'] = PiratesGlobals.getInterfaceOutlineFont() self.descText[ 'text_scale'] = 0.050000000000000003 * self.height * 10 self.descText.setTransparency(1) self.valueText['text'] = PLocalizer.UnknownGoldValue self.valueText[ 'text_font'] = PiratesGlobals.getInterfaceOutlineFont() self.valueText[ 'text_scale'] = 0.050000000000000003 * self.height * 10 icon = self.icons.get(ItemId.CARGO_CRATE) self.descText2 = DirectLabel( parent=self, relief=None, text='?', text_align=TextNode.ACenter, text_scale=0.050000000000000003 * self.height * 10, text_fg=PiratesGuiGlobals.TextFG2, text_shadow=PiratesGuiGlobals.TextShadow, textMayChange=1, pos=(0.080000000000000002, 0, self.height / 2), geom=self.getCargoIcon(icon[0], icon[1]), geom_scale=0.089999999999999997 * self.height * 10, geom_pos=(0.10000000000000001, 0, 0.01), text_pos=(0.10000000000000001, 0, 0), geom_color=Vec4(0, 0, 0, 1), text_font=PiratesGlobals.getInterfaceOutlineFont()) elif self.item.get('Type') == 'Gold': amount = self.item.get('Value2') itemName = PLocalizer.LootGold % amount self.descText['geom'] = self.getGoldIcon() self.descText[ 'geom_scale'] = 0.14999999999999999 * self.height * 10 self.descText['geom_pos'] = (0.050000000000000003, 0, 0.01) self.descText['text_pos'] = (0.23999999999999999, 0, 0) self.descText['text'] = itemName self.descText['text_fg'] = PiratesGuiGlobals.TextFG2 self.descText[ 'text_font'] = PiratesGlobals.getInterfaceOutlineFont() self.descText[ 'text_scale'] = 0.050000000000000003 * self.height * 10 self.descText.setTransparency(1) self.valueText['text'] = ' ' elif self.item.get('Type') == 'LootGold': amount = self.item.get('Amount') itemName = PLocalizer.PlunderGold self.descText['geom'] = self.getGoldIcon() self.descText[ 'geom_scale'] = 0.28000000000000003 * self.height * 10 self.descText['geom_pos'] = (0.050000000000000003, 0, 0.01) self.descText['text_pos'] = (0.23999999999999999, 0, 0) self.descText['text'] = itemName self.descText['text_fg'] = PiratesGuiGlobals.TextFG2 self.descText[ 'text_font'] = PiratesGlobals.getInterfaceOutlineFont() self.descText[ 'text_scale'] = 0.050000000000000003 * self.height * 10 self.descText.setTransparency(1) self.valueText['text'] = '%s' % amount elif self.item.get('Type') == 'MaterialText': amount = self.item.get('Amount') itemName = PLocalizer.LootShare self.descText['geom'] = None self.descText['text'] = itemName self.descText['text_fg'] = PiratesGuiGlobals.TextFG2 self.descText[ 'text_font'] = PiratesGlobals.getInterfaceOutlineFont() self.descText[ 'text_scale'] = 0.050000000000000003 * self.height * 10 self.descText.setTransparency(1) self.valueText['text'] = '' elif self.item.get('Type') == 'FreeMaterialRate': amount = self.item.get('Amount') itemName = PLocalizer.LimitedShare self.descText['geom'] = None self.descText['text'] = itemName self.descText['text_fg'] = PiratesGuiGlobals.TextFG2 self.descText[ 'text_font'] = PiratesGlobals.getInterfaceOutlineFont() self.descText[ 'text_scale'] = 0.050000000000000003 * self.height * 10 self.descText.setTransparency(1) self.valueText['text'] = '' elif self.item.get('Type') == 'PaidMaterialRate': amount = self.item.get('Amount') itemName = PLocalizer.UnlimitedShare self.descText['geom'] = None self.descText['text'] = itemName self.descText['text_fg'] = PiratesGuiGlobals.TextFG2 self.descText[ 'text_font'] = PiratesGlobals.getInterfaceOutlineFont() self.descText[ 'text_scale'] = 0.050000000000000003 * self.height * 10 self.descText.setTransparency(1) self.valueText['text'] = '' elif self.item.get('Type') == 'ShipMaterial': amount = self.item.get('Amount') typeId = self.item.get('Value1') itemName = PLocalizer.InventoryTypeNames.get(typeId, 'No Name') self.descText['geom'] = self.getMaterialIcon(typeId) self.descText[ 'geom_scale'] = 0.080000000000000002 * self.height * 10 self.descText['geom_pos'] = (0.050000000000000003, 0, 0.01) self.descText['text_pos'] = (0.23999999999999999, 0, 0) self.descText['text'] = itemName self.descText['text_fg'] = PiratesGuiGlobals.TextFG2 self.descText[ 'text_font'] = PiratesGlobals.getInterfaceOutlineFont() self.descText[ 'text_scale'] = 0.050000000000000003 * self.height * 10 self.descText.setTransparency(1) self.valueText['text'] = '%s' % amount elif self.item.get('Type') == 'Weapon': itemId = self.item.get('Value1') itemName = PLocalizer.InventoryTypeNames.get(itemId) iconName = EconomyGlobals.getItemIcons(itemId) self.descText['geom'] = self.getWeaponIcon(iconName) self.descText[ 'geom_scale'] = 0.089999999999999997 * self.height * 10 self.descText['geom_pos'] = (0.050000000000000003, 0, 0.01) self.descText['text_pos'] = (0.23999999999999999, 0, 0) self.descText['text'] = itemName self.descText['text_fg'] = PiratesGuiGlobals.TextFG2 self.descText[ 'text_font'] = PiratesGlobals.getInterfaceOutlineFont() self.descText[ 'text_scale'] = 0.050000000000000003 * self.height * 10 self.descText.setTransparency(1) self.valueText['text'] = ' ' elif self.item.get('Type') == 'Ammo': itemId = self.item.get('Value1') amount = self.item.get('Value2') itemName = '%s %s' % (amount, PLocalizer.InventoryTypeNames.get(itemId)) iconName = WeaponGlobals.getSkillIcon(itemId) self.descText['geom'] = self.getAmmoIcon(iconName) self.descText[ 'geom_scale'] = 0.089999999999999997 * self.height * 10 self.descText['geom_pos'] = (0.050000000000000003, 0, 0.01) self.descText['text_pos'] = (0.23999999999999999, 0, 0) self.descText['text'] = itemName self.descText['text_fg'] = PiratesGuiGlobals.TextFG2 self.descText[ 'text_font'] = PiratesGlobals.getInterfaceOutlineFont() self.descText[ 'text_scale'] = 0.050000000000000003 * self.height * 10 self.descText.setTransparency(1) self.valueText['text'] = ' '
def __init__(self, parent, showSkills = 0, **kw): GuiTray.GuiTray.__init__(self, parent, 0.75, 0.14999999999999999) self.initialiseoptions(StatusTray) self.name = None self.sticky = False self.level = 0 self.doId = 0 self.prevDoId = 0 self.hideValues = 0 self.card = None self.prevChange = 0 self.prevRange = 0 self.prevValue = 0 self.fader = None self.skillEffects = { } self.durationTask = None self.nameLabel = DirectLabel(parent = self, state = DGG.DISABLED, relief = None, text = '', text_align = TextNode.ALeft, text_scale = PiratesGuiGlobals.TextScaleLarge, text_fg = Vec4(0.80000000000000004, 0.69999999999999996, 0.59999999999999998, 1), text_shadow = PiratesGuiGlobals.TextShadow, textMayChange = 1, pos = (0.040000000000000001, 0, 0.11), text_font = PiratesGlobals.getPirateBoldOutlineFont()) self.stickyLabel = DirectLabel(parent = self, state = DGG.DISABLED, relief = None, text = '', text_align = TextNode.ARight, text_scale = PiratesGuiGlobals.TextScaleLarge, text_fg = PiratesGuiGlobals.TextFG2, text_shadow = PiratesGuiGlobals.TextShadow, textMayChange = 1, pos = (0.56999999999999995, 0, 0.025000000000000001), text_font = PiratesGlobals.getInterfaceOutlineFont()) self.hpLabel = DirectLabel(parent = self, state = DGG.DISABLED, relief = None, frameColor = (0, 0, 0, 0.20000000000000001), frameSize = (-0.01, 0.40000000000000002, -0.014999999999999999, 0.040000000000000001), pos = (0.32000000000000001, 0, 0.0060000000000000001), text = PLocalizer.StatusTrayHp, text_align = TextNode.ALeft, text_scale = PiratesGuiGlobals.TextScaleLarge, text_fg = PiratesGuiGlobals.TextFG1, text_shadow = PiratesGuiGlobals.TextShadow, text_font = PiratesGlobals.getInterfaceFont(), textMayChange = 0) self.hpLabel.hide() self.voodooMeter = DirectWaitBar(parent = self, state = DGG.DISABLED, relief = DGG.RAISED, borderWidth = (0.0050000000000000001, 0.0050000000000000001), frameSize = (0.0, 0.53000000000000003, 0.0070000000000000001, 0.035000000000000003), frameColor = (0, 0, 0, 1), pos = (0.20000000000000001, 0, -0.055), range = 100, value = 100, barColor = (0.59999999999999998, 0.59999999999999998, 0.94999999999999996, 1), text = '', text_align = TextNode.ARight, text_scale = PiratesGuiGlobals.TextScaleMed, text_fg = PiratesGuiGlobals.TextFG1, text_shadow = PiratesGuiGlobals.TextShadow, text_pos = (0.5, -0.035000000000000003, 0), text_font = PiratesGlobals.getInterfaceFont(), textMayChange = 1, sortOrder = 0) self.voodooMeter.setTransparency(1) self.voodooMeter.component('text0').hide() self.hpMeter = DirectWaitBar(parent = self, state = DGG.DISABLED, relief = DGG.RAISED, borderWidth = (0.0050000000000000001, 0.0050000000000000001), frameSize = (0.0, 0.53000000000000003, 0.002, 0.029999999999999999), frameColor = (0, 0, 0, 1), pos = (0.20000000000000001, 0, 0.050000000000000003), range = 100, value = 100, barColor = (0.10000000000000001, 0.69999999999999996, 0.10000000000000001, 1), text = '', text_align = TextNode.ARight, text_scale = PiratesGuiGlobals.TextScaleMed, text_fg = PiratesGuiGlobals.TextFG1, text_shadow = PiratesGuiGlobals.TextShadow, text_pos = (0.5, -0.044999999999999998, 0), text_font = PiratesGlobals.getInterfaceFont(), textMayChange = 1, sortOrder = 0) self.hpMeter.setTransparency(1) self.hpMeter.component('text0').hide() self.hpMeterChange = DirectFrame(parent = self, state = DGG.DISABLED, frameSize = (0.0, 0.53000000000000003, 0.0, 0.025999999999999999), frameColor = (1.0, 0.0, 0.0, 1.0), pos = (0, 0, 0)) self.hpMeterChange.setBin('gui-fixed', 0) self.hpMeterChange.hide() self.hpMeterDownIval = Sequence(Func(self.hpMeterChange.show), Wait(0.10000000000000001), LerpColorInterval(self.hpMeterChange, 0.5, color = VBase4(0.69999999999999996, 0.10000000000000001, 0.10000000000000001, 1.0), blendType = 'easeOut'), LerpColorInterval(self.hpMeterChange, 0.25, color = VBase4(0.0, 0.0, 0.0, 1.0), blendType = 'easeOut'), Func(self.hpMeterChange.hide)) self.hpMeterUpGreenIval = Sequence(Func(self.hpMeterChange.show), Wait(0.10000000000000001), LerpColorInterval(self.hpMeterChange, 0.75, color = VBase4(0.10000000000000001, 0.69999999999999996, 0.10000000000000001, 1.0)), Func(self.hpMeterChange.hide)) self.hpMeterUpRedIval = Sequence(Func(self.hpMeterChange.show), Wait(0.10000000000000001), LerpColorInterval(self.hpMeterChange, 0.75, color = VBase4(1.0, 0.0, 0.0, 1.0)), Func(self.hpMeterChange.hide)) self.hpMeterUpYellowIval = Sequence(Func(self.hpMeterChange.show), Wait(0.10000000000000001), LerpColorInterval(self.hpMeterChange, 0.75, color = VBase4(1.0, 1.0, 0.10000000000000001, 1.0)), Func(self.hpMeterChange.hide)) self.meterChangeOffset = (0.0, 0.0, 0.050000000000000003) self.prevTargetName = '' self.voodooLabel = DirectLabel(parent = self, state = DGG.DISABLED, relief = None, frameColor = (0, 0, 0, 0.20000000000000001), frameSize = (-0.01, 0.40000000000000002, -0.014999999999999999, 0.040000000000000001), pos = (0.32000000000000001, 0, -0.091999999999999998), text = PLocalizer.StatusTrayVoodoo, text_align = TextNode.ALeft, text_scale = PiratesGuiGlobals.TextScaleLarge, text_fg = PiratesGuiGlobals.TextFG1, text_shadow = PiratesGuiGlobals.TextShadow, text_font = PiratesGlobals.getInterfaceFont(), textMayChange = 0) self.voodooLabel.hide() self.statusEffectsPanel = StatusEffectsPanel.StatusEffectsPanel(parent = self) flagModel = loader.loadModel('models/gui/flag_icons') flagModel2 = loader.loadModel('models/gui/gui_icons_weapon') flagModels = [ flagModel.find('**/flag_undead'), flagModel.find('**/flag_navy'), flagModel.find('**/flag_eitc'), flagModel2.find('**/pir_t_ico_dol_straw')] for icon in flagModels: if icon == flagModel2.find('**/pir_t_ico_dol_straw'): icon.setScale(0.10000000000000001) else: icon.setScale(0.44) icon.flattenStrong() self.icons = { PiratesGlobals.UNDEAD_TEAM: flagModels[0], PiratesGlobals.NAVY_TEAM: flagModels[1], PiratesGlobals.TRADING_CO_TEAM: flagModels[2], PiratesGlobals.FRENCH_UNDEAD_TEAM: flagModels[0], PiratesGlobals.SPANISH_UNDEAD_TEAM: flagModels[0], PiratesGlobals.PLAYER_TEAM: flagModels[3], PiratesGlobals.VOODOO_ZOMBIE_TEAM: flagModels[0], PiratesGlobals.BOUNTY_HUNTER_TEAM: flagModels[0] } self.pvpIcon = Beacon.getBeaconModel() self.pvpIcon.setScale(0.12) self.pvpIcon.flattenStrong() privateerLogos = loader.loadModel('models/textureCards/sailLogo') self.privateerLogos = { PVPGlobals.FrenchTeam: privateerLogos.find('**/logo_french_flag'), PVPGlobals.SpanishTeam: privateerLogos.find('**/logo_spanish_flag') } for logo in self.privateerLogos.itervalues(): logo.setScale(0.073999999999999996) logo.flattenStrong() self.currentIcon = None if showSkills: self.card = loader.loadModel('models/textureCards/skillIcons') icons = loader.loadModel('models/gui/gui_icons_weapon') icons.reparentTo(self.card) self.reloadFrame = DirectFrame(parent = self, state = DGG.DISABLED, relief = None) self.reloadFrame.hide() self.activeName = DirectLabel(parent = self.reloadFrame, state = DGG.DISABLED, relief = None, text = 'Using Skill', text_align = TextNode.ARight, text_scale = 0.059999999999999998, pos = (-0.050000000000000003, 0, 0.01), text_fg = PiratesGuiGlobals.TextFG11, text_shadow = PiratesGuiGlobals.TextShadow, text_font = PiratesGlobals.getPirateOutlineFont()) tex = self.card.find('**/base') self.reloadFrame['scale'] = 0.5 self.reloadFrame['image'] = tex self.reloadFrame['image_scale'] = 0.085000000000000006 self.reloadFrame['image_pos'] = (0, 0, 0.02) self.reloadFrame.setPos(0.12, 0, -0.019) self.reloadFrame.setScale(0.69999999999999996) tex = self.card.find('**/cutlass_sweep') self.skillFrame = DirectFrame(parent = self.reloadFrame, state = DGG.DISABLED, relief = None, sortOrder = 20, image_pos = (0, 0, 0)) self.skillFrame.setTransparency(1) self.skillFrame['image'] = tex self.skillFrame['image_scale'] = 0.10000000000000001 self.skillFrame['image_pos'] = (0, 0, 0.02) self.activeName['text_align'] = TextNode.ALeft self.activeName.setPos(0.089999999999999997, 0, 0.01)
def __init__(self, parent=None, type=PiratesGuiGlobals.REWARD_PANEL_BLACK_PEARL, doneCallback=None, **kw): optiondefs = (('pad', (0.55, 0.475), self.resetFrameSize), ('pos', (0.4, 0, 0), None)) self.defineoptions(kw, optiondefs) PDialog.__init__(self, parent) self.type = type if doneCallback: self.doneCallback = doneCallback else: self.doneCallback = self.cleanup self.showWeaponsTrack = None skillIcons = loader.loadModel('models/textureCards/skillIcons') weaponIcons = loader.loadModel('models/gui/gui_icons_weapon') isWeapon = TextDict[type]['isWeapon'] if isWeapon: background = skillIcons.find('**/box_base_over') background.setTransparency(0.5) icon = weaponIcons.find('**/' + TextDict[type]['icon']) icon.setScale(0.75) else: background = skillIcons.find('**/base_over') icon = skillIcons.find('**/' + TextDict[type]['icon']) icon.reparentTo(background) self.congratsText = DirectLabel( parent=self, relief=None, state=DGG.DISABLED, textMayChange=1, text=PLocalizer.RewardCongratulations, text_font=PiratesGlobals.getInterfaceOutlineFont(), text_align=TextNode.ACenter, text_scale=0.12, text_fg=PiratesGuiGlobals.TextFG1, pos=(0.0, 0, 0.34)) self.completeText = DirectLabel( parent=self, relief=None, state=DGG.DISABLED, textMayChange=1, text=TextDict[type]['title'], text_font=PiratesGlobals.getInterfaceOutlineFont(), text_align=TextNode.ACenter, text_scale=0.05, text_fg=PiratesGuiGlobals.TextFG2, pos=(0, 0, 0.26)) self.iconLabel = DirectLabel( parent=self, relief=None, state=DGG.DISABLED, geom=background, geom_scale=0.3, text=TextDict[type]['summary'], text_font=PiratesGlobals.getInterfaceFont(), text_align=TextNode.ACenter, text_scale=0.04, text_fg=PiratesGuiGlobals.TextFG1, text_pos=(0, 0.2), pos=(0, 0, -0.03)) self.descriptionText = DirectLabel( parent=self, relief=None, state=DGG.DISABLED, textMayChange=1, text=TextDict[type]['description'], text_font=PiratesGlobals.getInterfaceFont(), text_align=TextNode.ACenter, text_scale=0.038, text_fg=PiratesGuiGlobals.TextFG1, pos=(0, 0, -0.26)) self.nextButton = GuiButton.GuiButton( parent=self, state=DGG.NORMAL, text=PLocalizer.lOk, textMayChange=1, text_scale=PiratesGuiGlobals.TextScaleMed, text_pos=(0, -0.01), pos=(0, 0, -0.5), command=self.doneCallback) self.borderFrame['borderScale'] = 1 self.setupCustomReward() self.initialiseoptions(RewardPanel) self.setScale(1.25) return
def showDetails(self, cell, detailsPos, detailsHeight, event = None): self.notify.debug('Item showDetails') if self.manager.heldItem and self.manager.locked and cell.isEmpty() and self.isEmpty() or not (self.itemTuple): self.notify.debug(' early exit') return None inv = localAvatar.getInventory() if not inv: return None itemId = self.getId() self.helpFrame = DirectFrame(parent = self.manager, relief = None, state = DGG.DISABLED, sortOrder = 1) self.helpFrame.setBin('gui-popup', -5) detailGui = loader.loadModel('models/gui/gui_card_detail') topGui = loader.loadModel('models/gui/toplevel_gui') coinImage = topGui.find('**/treasure_w_coin*') self.SkillIcons = loader.loadModel('models/textureCards/skillIcons') self.BuffIcons = loader.loadModel('models/textureCards/buff_icons') border = self.SkillIcons.find('**/base') halfWidth = 0.29999999999999999 halfHeight = 0.20000000000000001 basePosX = cell.getX(aspect2d) basePosZ = cell.getZ(aspect2d) cellSizeX = 0.0 cellSizeZ = 0.0 if cell: cellSizeX = cell.cellSizeX cellSizeZ = cell.cellSizeZ textScale = PiratesGuiGlobals.TextScaleMed titleScale = PiratesGuiGlobals.TextScaleTitleSmall if len(self.getName()) >= 30: titleNameScale = PiratesGuiGlobals.TextScaleLarge else: titleNameScale = PiratesGuiGlobals.TextScaleExtraLarge subtitleScale = PiratesGuiGlobals.TextScaleMed iconScalar = 1.5 borderScaler = 0.25 splitHeight = 0.01 vMargin = 0.029999999999999999 runningVertPosition = 0.29999999999999999 runningSize = 0.0 labels = [] titleColor = PiratesGuiGlobals.TextFG6 rarity = ItemGlobals.getRarity(itemId) rarityText = PLocalizer.getItemRarityName(rarity) subtypeText = PLocalizer.getItemSubtypeName(ItemGlobals.getSubtype(itemId)) if rarity == ItemGlobals.CRUDE: titleColor = PiratesGuiGlobals.TextFG24 elif rarity == ItemGlobals.COMMON: titleColor = PiratesGuiGlobals.TextFG13 elif rarity == ItemGlobals.RARE: titleColor = PiratesGuiGlobals.TextFG4 elif rarity == ItemGlobals.FAMED: titleColor = PiratesGuiGlobals.TextFG5 titleLabel = DirectLabel(parent = self, relief = None, text = self.getName(), text_scale = titleNameScale, text_fg = titleColor, text_shadow = PiratesGuiGlobals.TextShadow, text_align = TextNode.ACenter, pos = (0.0, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) self.bg.setColor(titleColor) tHeight = 0.070000000000000007 titleLabel.setZ(runningVertPosition) runningVertPosition -= tHeight runningSize += tHeight labels.append(titleLabel) subtitleLabel = DirectLabel(parent = self, relief = None, text = '\x001slant\x001%s %s\x002' % (rarityText, subtypeText), text_scale = subtitleScale, text_fg = PiratesGuiGlobals.TextFG2, text_shadow = PiratesGuiGlobals.TextShadow, text_align = TextNode.ACenter, pos = (0.0, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) subtHeight = 0.050000000000000003 subtitleLabel.setZ(subtHeight * 0.5 + runningVertPosition) runningVertPosition -= subtHeight runningSize += subtHeight labels.append(subtitleLabel) itemType = ItemGlobals.getType(itemId) itemSubtype = ItemGlobals.getSubtype(itemId) model = ItemGlobals.getModel(itemId) if model: self.realItem = loader.loadModel('models/inventory/' + model) if self.realItem: posHpr = ItemGlobals.getModelPosHpr(model) if posHpr: self.realItem.setPos(posHpr[0], posHpr[1], posHpr[2]) self.realItem.setHpr(posHpr[3], posHpr[4], posHpr[5]) elif itemSubtype == ItemGlobals.RAM: self.realItem.setPos(-1.5, 1.5, -0.59999999999999998) self.realItem.setHpr(70, 160, -90) else: self.realItem.setPos(0.0, 1.5, -0.059999999999999998) self.realItem.setHpr(0, 90, 0) self.realItem.reparentTo(self.portraitSceneGraph) iHeight = 0.17999999999999999 self.createBuffer() self.itemCard.setZ(runningVertPosition - 0.059999999999999998) runningVertPosition -= iHeight runningSize += iHeight labels.append(self.itemCard) itemCost = int(ItemGlobals.getGoldCost(itemId)) if self.cell and self.cell.container: itemCost = int(itemCost * self.cell.container.getItemPriceMult()) goldLabel = DirectLabel(parent = self, relief = None, image = coinImage, image_scale = 0.12, image_pos = Vec3(0.025000000000000001, 0, -0.02), text = str(itemCost), text_scale = subtitleScale, text_align = TextNode.ARight, text_fg = PiratesGuiGlobals.TextFG1, text_shadow = PiratesGuiGlobals.TextShadow, pos = (halfWidth - 0.050000000000000003, 0.0, runningVertPosition + 0.080000000000000002), text_pos = (0.0, -textScale)) labels.append(goldLabel) specialAttack = ItemGlobals.getSpecialAttack(itemId) if specialAttack: attackIcon = self.SkillIcons.find('**/%s' % WeaponGlobals.getSkillIcon(specialAttack)) specialAttackNameLabel = DirectLabel(parent = self, relief = None, image = border, image_scale = 0.10000000000000001, geom = attackIcon, geom_scale = 0.10000000000000001, image_pos = (-0.070000000000000007, 0.0, -0.050000000000000003), geom_pos = (-0.070000000000000007, 0.0, -0.050000000000000003), text = PLocalizer.getInventoryTypeName(specialAttack), text_scale = PiratesGuiGlobals.TextScaleLarge, text_wordwrap = halfWidth * 2.0 * (0.90000000000000002 / titleScale), text_align = TextNode.ALeft, text_fg = titleColor, text_font = PiratesGlobals.getInterfaceOutlineFont(), pos = (-halfWidth + 0.12 + textScale * 0.5, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) specialAttackRankLabel = DirectLabel(parent = self, relief = None, text = PLocalizer.ItemRank % ItemGlobals.getSpecialAttackRank(itemId), text_scale = textScale, text_wordwrap = halfWidth * 2.0 * (0.90000000000000002 / titleScale), text_align = TextNode.ARight, pos = (halfWidth - textScale * 0.5, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) specialAttackType = WeaponGlobals.getSkillTrack(specialAttack) if specialAttackType == WeaponGlobals.BREAK_ATTACK_SKILL_INDEX: specialAttackTypeText = PLocalizer.BreakAttackSkill elif specialAttackType == WeaponGlobals.DEFENSE_SKILL_INDEX: specialAttackTypeText = PLocalizer.DefenseSkill else: specialAttackTypeText = PLocalizer.WeaponSkill specialAttackTypeLabel = DirectLabel(parent = self, relief = None, text = specialAttackTypeText, text_scale = PiratesGuiGlobals.TextScaleLarge, text_wordwrap = halfWidth * 2.7999999999999998 * (0.90000000000000002 / titleScale), text_align = TextNode.ALeft, pos = (-halfWidth + 0.12 + textScale * 0.5, 0.0, runningVertPosition - PiratesGuiGlobals.TextScaleLarge), text_pos = (0.0, -textScale)) specialAttackInfo = PLocalizer.SkillDescriptions.get(specialAttack) specialAttackDescriptionText = specialAttackInfo[1] specialAttackDescriptionLabel = DirectLabel(parent = self, relief = None, text = specialAttackDescriptionText, text_scale = textScale, text_wordwrap = halfWidth * 2.7999999999999998 * (0.90000000000000002 / titleScale), text_align = TextNode.ALeft, pos = (-halfWidth + 0.12 + textScale * 0.5, 0.0, runningVertPosition - specialAttackNameLabel.getHeight() + specialAttackTypeLabel.getHeight() - 0.059999999999999998), text_pos = (0.0, -textScale)) saHeight = specialAttackNameLabel.getHeight() + specialAttackTypeLabel.getHeight() + specialAttackDescriptionLabel.getHeight() - 0.040000000000000001 runningVertPosition -= saHeight runningSize += saHeight labels.append(specialAttackNameLabel) labels.append(specialAttackRankLabel) labels.append(specialAttackTypeLabel) labels.append(specialAttackDescriptionLabel) attributes = ItemGlobals.getAttributes(itemId) for i in range(0, len(attributes)): attributeIcon = self.SkillIcons.find('**/%s' % ItemGlobals.getAttributeIcon(attributes[i][0])) if not attributeIcon: attributeIcon = self.BuffIcons.find('**/%s' % ItemGlobals.getAttributeIcon(attributes[i][0])) attributeNameLabel = DirectLabel(parent = self, relief = None, image = border, image_scale = 0.050000000000000003, geom = attributeIcon, geom_scale = 0.050000000000000003, image_pos = (-0.070000000000000007, 0.0, -0.029999999999999999), geom_pos = (-0.070000000000000007, 0.0, -0.029999999999999999), text = PLocalizer.getItemAttributeName(attributes[i][0]), text_scale = textScale, text_wordwrap = halfWidth * 2.0 * (0.90000000000000002 / titleScale), text_align = TextNode.ALeft, text_fg = titleColor, text_font = PiratesGlobals.getInterfaceOutlineFont(), pos = (-halfWidth + 0.12 + textScale * 0.5, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) attributeRankLabel = DirectLabel(parent = self, relief = None, text = PLocalizer.ItemRank % attributes[i][1], text_scale = textScale, text_wordwrap = halfWidth * 2.0 * (0.90000000000000002 / titleScale), text_align = TextNode.ARight, pos = (halfWidth - textScale * 0.5, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) if attributeNameLabel.getHeight() > 0.074999999999999997: attributeNameSpace = 0.080000000000000002 else: attributeNameSpace = PiratesGuiGlobals.TextScaleLarge attributeDescriptionLabel = DirectLabel(parent = self, relief = None, text = PLocalizer.getItemAttributeDescription(attributes[i][0]), text_scale = textScale, text_wordwrap = halfWidth * 2.7999999999999998 * (0.90000000000000002 / titleScale), text_align = TextNode.ALeft, pos = (-halfWidth + 0.12 + textScale * 0.5, 0.0, runningVertPosition - attributeNameSpace), text_pos = (0.0, -textScale)) aHeight = attributeNameLabel.getHeight() + attributeDescriptionLabel.getHeight() runningVertPosition -= aHeight + splitHeight runningSize += aHeight + splitHeight labels.append(attributeNameLabel) labels.append(attributeRankLabel) labels.append(attributeDescriptionLabel) skillBoosts = ItemGlobals.getSkillBoosts(itemId) for i in range(0, len(skillBoosts)): boostIcon = self.SkillIcons.find('**/%s' % WeaponGlobals.getSkillIcon(skillBoosts[i][0])) boostNameLabel = DirectLabel(parent = self, relief = None, image = border, image_scale = 0.050000000000000003, geom = boostIcon, geom_scale = 0.050000000000000003, image_pos = (-0.070000000000000007, 0.0, -0.029999999999999999), geom_pos = (-0.070000000000000007, 0.0, -0.029999999999999999), text = PLocalizer.ItemBoost % PLocalizer.getInventoryTypeName(skillBoosts[i][0]), text_scale = textScale, text_wordwrap = halfWidth * 2.0 * (0.90000000000000002 / titleScale), text_align = TextNode.ALeft, pos = (-halfWidth + 0.12 + textScale * 0.5, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) boostRankLabel = DirectLabel(parent = self, relief = None, text = '+%s' % str(skillBoosts[i][1]), text_scale = textScale, text_wordwrap = halfWidth * 2.0 * (0.90000000000000002 / titleScale), text_align = TextNode.ARight, pos = (halfWidth - textScale * 0.5, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) bHeight = boostNameLabel.getHeight() runningVertPosition -= bHeight + splitHeight runningSize += bHeight + splitHeight labels.append(boostNameLabel) labels.append(boostRankLabel) description = PLocalizer.getItemFlavorText(itemId) if description != '': descriptionLabel = DirectLabel(parent = self, relief = None, text = description, text_scale = textScale, text_wordwrap = halfWidth * 2.0 * (0.94999999999999996 / textScale), text_align = TextNode.ALeft, pos = (-halfWidth + textScale * 0.5, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) dHeight = descriptionLabel.getHeight() + 0.02 runningVertPosition -= dHeight runningSize += dHeight labels.append(descriptionLabel) weaponLevel = 0 weaponRepId = WeaponGlobals.getRepId(itemId) weaponRep = inv.getReputation(weaponRepId) weaponReq = ItemGlobals.getWeaponRequirement(itemId) weaponText = None if weaponReq: weaponLevel = ReputationGlobals.getLevelFromTotalReputation(weaponRepId, weaponRep)[0] if weaponLevel < weaponReq: weaponColor = PiratesGuiGlobals.TextFG6 else: weaponColor = (0.40000000000000002, 0.40000000000000002, 0.40000000000000002, 1.0) weaponText = PLocalizer.ItemLevelRequirement % (weaponReq, PLocalizer.getItemTypeName(itemType)) else: trainingToken = EconomyGlobals.getItemTrainingReq(itemId) trainingAmt = inv.getItemQuantity(trainingToken) if trainingAmt == 0: weaponColor = PiratesGuiGlobals.TextFG6 weaponText = PLocalizer.ItemTrainingRequirement % PLocalizer.getItemTypeName(itemType) if weaponText: weaponReqLabel = DirectLabel(parent = self, relief = None, text = weaponText, text_scale = textScale, text_wordwrap = halfWidth * 2.0 * (1.5 / titleScale), text_fg = weaponColor, text_shadow = PiratesGuiGlobals.TextShadow, text_align = TextNode.ACenter, pos = (0.0, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) wHeight = weaponReqLabel.getHeight() runningVertPosition -= wHeight runningSize += wHeight labels.append(weaponReqLabel) if not Freebooter.getPaidStatus(localAvatar.getDoId()): if rarity != ItemGlobals.CRUDE: unlimitedLabel = DirectLabel(parent = self, relief = None, text = PLocalizer.UnlimitedAccessRequirement, text_scale = textScale, text_wordwrap = halfWidth * 2.0 * (1.5 / titleScale), text_fg = PiratesGuiGlobals.TextFG6, text_shadow = PiratesGuiGlobals.TextShadow, text_align = TextNode.ACenter, pos = (0.0, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) uHeight = unlimitedLabel.getHeight() runningVertPosition -= uHeight runningSize += uHeight labels.append(unlimitedLabel) runningVertPosition -= 0.02 runningSize += 0.02 panels = self.helpFrame.attachNewNode('panels') topPanel = panels.attachNewNode('middlePanel') detailGui.find('**/top_panel').copyTo(topPanel) topPanel.setScale(0.080000000000000002) topPanel.reparentTo(self.helpFrame) middlePanel = panels.attachNewNode('middlePanel') detailGui.find('**/middle_panel').copyTo(middlePanel) middlePanel.setScale(0.080000000000000002) middlePanel.reparentTo(self.helpFrame) placement = 0 i = 0 heightMax = -0.080000000000000002 currentHeight = runningVertPosition while currentHeight < heightMax: middlePanel = panels.attachNewNode('middlePanel%s' % 1) detailGui.find('**/middle_panel').copyTo(middlePanel) middlePanel.setScale(0.080000000000000002) middlePanel.reparentTo(self.helpFrame) if currentHeight + 0.20000000000000001 >= heightMax: difference = heightMax - currentHeight placement += (0.16800000000000001 / 0.20000000000000001) * difference currentHeight += difference else: placement += 0.16800000000000001 currentHeight += 0.20000000000000001 middlePanel.setZ(-placement) i += 1 bottomPanel = panels.attachNewNode('bottomPanel') detailGui.find('**/bottom_panel').copyTo(bottomPanel) bottomPanel.setScale(0.080000000000000002) bottomPanel.setZ(-placement) bottomPanel.reparentTo(self.helpFrame) colorPanel = panels.attachNewNode('colorPanel') detailGui.find('**/color').copyTo(colorPanel) colorPanel.setScale(0.080000000000000002) colorPanel.setColor(titleColor) colorPanel.reparentTo(self.helpFrame) lineBreakTopPanel = panels.attachNewNode('lineBreakTopPanel') detailGui.find('**/line_break_top').copyTo(lineBreakTopPanel) lineBreakTopPanel.setScale(0.080000000000000002, 0.080000000000000002, 0.070000000000000007) lineBreakTopPanel.setZ(0.0080000000000000002) lineBreakTopPanel.reparentTo(self.helpFrame) panels.flattenStrong() self.helpFrame['frameSize'] = (-halfWidth, halfWidth, -(runningSize + vMargin), vMargin) totalHeight = self.helpFrame.getHeight() - 0.10000000000000001 for label in labels: label.reparentTo(self.helpFrame) if basePosX > 0.0: newPosX = basePosX - halfWidth + cellSizeX * 0.45000000000000001 else: newPosX = basePosX + halfWidth + cellSizeX * 0.45000000000000001 if basePosZ > 0.0: newPosZ = basePosZ + cellSizeZ * 0.45000000000000001 else: newPosZ = basePosZ + totalHeight - cellSizeZ * 0.75 if detailsPos: (newPosX, newPosZ) = detailsPos self.helpFrame.setPos(newPosX, 0, newPosZ)
def showWeaponNotoriety(self): totalReputation = 0 inv = localAvatar.getInventory() level = localAvatar.getLevel() maxLevel = ReputationGlobals.GlobalLevelCap if level < maxLevel: textStr = PLocalizer.RewardNotorietyLessThanMax % (level, maxLevel) textScale = 0.050000000000000003 labelY = 0.37 buttonY = 0.10000000000000001 else: textStr = PLocalizer.RewardNotorietyAtMax % maxLevel textScale = 0.040000000000000001 self.congratsText.show() labelY = 0.25 buttonY = 0.13 self.notorietyText = DirectLabel(parent = self, relief = None, state = DGG.DISABLED, textMayChange = 1, text = textStr, text_font = PiratesGlobals.getInterfaceOutlineFont(), text_align = TextNode.ACenter, text_scale = textScale, text_fg = PiratesGuiGlobals.TextFG1, pos = (0, 0, labelY)) self.notorietyText.hide() if level < maxLevel: self.todoText = DirectLabel(parent = self, relief = None, state = DGG.DISABLED, textMayChange = 1, text = PLocalizer.RewardTodo, text_font = PiratesGlobals.getInterfaceOutlineFont(), text_align = TextNode.ACenter, text_scale = 0.035000000000000003, text_fg = PiratesGuiGlobals.TextFG1, pos = (0, 0, 0.19)) self.todoText.hide() else: self.stayTunedText = DirectLabel(parent = self, relief = None, state = DGG.DISABLED, textMayChange = 1, text = PLocalizer.RewardStayTuned, text_font = PiratesGlobals.getInterfaceOutlineFont(), text_align = TextNode.ACenter, text_scale = 0.035000000000000003, text_fg = PiratesGuiGlobals.TextFG1, pos = (0, 0, -0.40999999999999998)) self.stayTunedText.hide() weapons = [ [ InventoryType.CutlassToken, InventoryType.CutlassRep], [ InventoryType.PistolToken, InventoryType.PistolRep], [ InventoryType.DaggerToken, InventoryType.DaggerRep], [ InventoryType.GrenadeToken, InventoryType.GrenadeRep], [ InventoryType.WandToken, InventoryType.WandRep], [ InventoryType.DollToken, InventoryType.DollRep], [ InventoryType.NewPlayerToken, InventoryType.CannonRep], [ InventoryType.NewPlayerToken, InventoryType.SailingRep]] maxRep = ReputationGlobals.getTotalReputation(InventoryType.GeneralRep, ReputationGlobals.LevelCap) self.guiElements = [] i = 0 for (weaponToken, weaponId) in weapons: weaponUnlocked = False levelText = PLocalizer.RewardLevelLocked state = 0 if inv.getStackQuantity(weaponToken): weaponUnlocked = True if weaponUnlocked: rep = inv.getReputation(weaponId) (wlevel, value) = ReputationGlobals.getLevelFromTotalReputation(weaponId, rep) levelText = PLocalizer.RewardLevelOfMax % (wlevel, ReputationGlobals.LevelCap) if rep >= maxRep: levelText = PLocalizer.RepCapText_Skill state = 1 cb = self.makeCheckbox((0, 0, buttonY - 0.065000000000000002 * i), PLocalizer.InventoryTypeNames[weaponId], None, state, [ 3], levelText) cb['indicatorValue'] = state cb.hide() self.guiElements.append(cb) i += 1 self.showWeaponsTrack = Sequence() self.showWeaponsTrack.append(Sequence(Func(self.notorietyText.show), Wait(1))) if level < maxLevel: self.showWeaponsTrack.append(Sequence(Func(self.todoText.show), Wait(1))) for b in self.guiElements: self.showWeaponsTrack.append(Sequence(Func(b.show), Wait(0.5))) if level >= maxLevel: self.showWeaponsTrack.append(Sequence(Func(self.stayTunedText.show), Wait(1))) self.showWeaponsTrack.append(Func(self.nextButton.show)) self.showWeaponsTrack.start()
def __init__(self): InventoryPage.InventoryPage.__init__(self) self.initialiseoptions(CollectionMain) gui = loader.loadModel('models/gui/toplevel_gui') ornament = loader.loadModel('models/gui/gui_treasure_window_a') ornament.setPos(0.53, 0, 0.72) ornament.setScale(0.315) ornament.reparentTo(self) ornament.flattenStrong() self.treasureList = DirectScrolledFrame(parent=self, relief=None, state=DGG.NORMAL, frameColor=PiratesGuiGlobals.FrameColor, borderWidth=PiratesGuiGlobals.BorderWidth, frameSize=(0, PiratesGuiGlobals.InventoryPanelWidth - 0.1, 0, PiratesGuiGlobals.InventoryPanelHeight - 0.1 - PiratesGuiGlobals.ScrollbarSize), canvasSize=(0, PiratesGuiGlobals.InventoryPanelWidth - 1.1, 0, PiratesGuiGlobals.InventoryPanelHeight - 0.1 - PiratesGuiGlobals.ScrollbarSize), verticalScroll_frameColor=PiratesGuiGlobals.ScrollbarColor, verticalScroll_borderWidth=(0.005, 0.005), verticalScroll_frameSize=(0, PiratesGuiGlobals.ScrollbarSize, 0, PiratesGuiGlobals.InventoryPageHeight - 0.4), verticalScroll_thumb_frameColor=PiratesGuiGlobals.ButtonColor2, verticalScroll_incButton_frameColor=PiratesGuiGlobals.ButtonColor2, verticalScroll_decButton_frameColor=PiratesGuiGlobals.ButtonColor2, horizontalScroll_frameColor=PiratesGuiGlobals.ScrollbarColor, horizontalScroll_borderWidth=(0.005, 0.005), horizontalScroll_frameSize=(0, PiratesGuiGlobals.InventoryItemGuiWidth + PiratesGuiGlobals.ScrollbarSize, 0, PiratesGuiGlobals.ScrollbarSize), horizontalScroll_thumb_frameColor=PiratesGuiGlobals.ButtonColor2, horizontalScroll_incButton_frameColor=PiratesGuiGlobals.ButtonColor2, horizontalScroll_decButton_frameColor=PiratesGuiGlobals.ButtonColor2, sortOrder=5) self.treasureList.setPos(0.02, 0, -0.02) localHeight = PiratesGuiGlobals.InventoryPanelHeight - 0.2 self.card = loader.loadModel('models/gui/treasure_gui') tex = gui.find('**/treasure_w_coin*') self.goldPic = DirectFrame(parent=self.treasureList.getCanvas(), relief=None, image=tex, image_scale=0.4, image_pos=(-0.05, 0, 0), pos=(0.35, 0, localHeight - 0.36), text=PLocalizer.MoneyName, text_fg=PiratesGuiGlobals.TextFG2, text_align=TextNode.ALeft, text_scale=0.03, text_pos=(-0.2, 0.02, 0)) self.numGold = DirectLabel(parent=self.goldPic, relief=None, text='0', text_align=TextNode.ALeft, text_scale=0.04, text_fg=PiratesGuiGlobals.TextFG2, textMayChange=1, pos=(0.04, 0, -0.03), text_font=PiratesGlobals.getInterfaceOutlineFont()) if base.cr.config.GetBool('buried-treasure', 0): self.buryButton = DirectButton(parent=self, relief=None, image=tex, image_scale=0.4, image_pos=(0, 0, 0), pos=(0.5, 0, localHeight - 0.12), command=self.buryTreasure, text='BURY TREASURE', text_fg=PiratesGuiGlobals.TextFG2, text_align=TextNode.ACenter, text_scale=0.025, text_pos=(0, -0.085, 0)) tex = gui.find('**/treasure_w_card*') self.cardPic = DirectFrame(parent=self.treasureList.getCanvas(), relief=None, image=tex, image_scale=0.4, image_pos=(-0.05, 0, 0), pos=(0.76, 0, localHeight - 0.36), text=PLocalizer.CheatCardName, text_fg=PiratesGuiGlobals.TextFG2, text_align=TextNode.ALeft, text_scale=0.03, text_pos=(-0.23, 0.02, 0)) self.cardPic.setTransparency(1) self.numCards = DirectLabel(parent=self.cardPic, relief=None, text='0', text_align=TextNode.ALeft, text_scale=0.04, text_fg=PiratesGuiGlobals.TextFG2, textMayChange=1, pos=(0.042, 0, -0.03), text_font=PiratesGlobals.getInterfaceOutlineFont()) self.treLabel = DirectLabel(parent=self.treasureList.getCanvas(), relief=None, text=PLocalizer.Treasure, text_align=TextNode.ALeft, text_scale=0.03, text_fg=PiratesGuiGlobals.TextFG2, textMayChange=1, pos=(0.144, 0, localHeight - 0.48)) spotPic = gui.find('**/treasure_w_a_slot') blipParent = NodePath('blipParent') for colSpot in range(4): for rowSpot in range(4): if colSpot > 0: blip = spotPic.copyTo(blipParent) blip.setScale(0.45) blip.setPos(0.24 + 0.18 * rowSpot, 0, localHeight - 0.4 - 0.18 * colSpot) blipParent.flattenStrong() blipFrame = DirectFrame(parent=self.treasureList.getCanvas(), relief=None, geom=blipParent) gui.removeNode() self.setPics = {} return
def __init__(self, shipPage, shipId, **kwargs): self.shipPage = shipPage self.setShipId(shipId) self.timer = None self.crewDots = [] self.lBroadsideLimit = 0 self.rBroadsideLimit = 0 kwargs.setdefault('relief', None) kwargs.setdefault('frameSize', (0, self.Width, 0, self.Height)) DirectFrame.__init__(self) self.initialiseoptions(ShipPanel) gui = loader.loadModel('models/gui/toplevel_gui') chestIcon = gui.find('**/icon_crate') cannonIcon = gui.find('**/topgui_icon_ship_cannon_single') broadsideIcon = gui.find('**/topgui_icon_ship_cannon_multiple') self.bottleFrame = ShipFrameBottle(parent = self, shipId = shipId, relief = None, state = DGG.DISABLED, pos = (0.074999999999999997, 0, 0.75), scale = 0.83499999999999996) ornament = loader.loadModel('models/gui/gui_ship_window') ornament.reparentTo(self) ornament.setScale(0.29999999999999999) ornament.setPos(0.54000000000000004, 0, 0.72999999999999998) ornament.flattenStrong() self.nameLabel = DirectLabel(parent = self, relief = None, state = DGG.DISABLED, text = PLocalizer.makeHeadingString(PLocalizer.EmptyBottle, 2), text_fg = PiratesGuiGlobals.TextFG1, text_scale = PiratesGuiGlobals.TextScaleTitleSmall, text_align = TextNode.ACenter, text_shadow = (0, 0, 0, 1), text_wordwrap = 30, textMayChange = 1, text_font = PiratesGlobals.getPirateFont(), pos = (0.55000000000000004, 0, 1.22)) self.classLabel = DirectLabel(parent = self, relief = None, state = DGG.DISABLED, text = PLocalizer.makeHeadingString(PLocalizer.EmptyBottleDesc, 1), text_scale = PiratesGuiGlobals.TextScaleMed, text_align = TextNode.ACenter, text_fg = PiratesGuiGlobals.TextFG2, text_shadow = (0, 0, 0, 1), text_wordwrap = 30, textMayChange = 1, text_font = PiratesGlobals.getInterfaceFont(), pos = (0.55000000000000004, 0, 1.1799999999999999)) self.timer = PiratesTimer.PiratesTimer(showMinutes = True, mode = None, titleText = '', titleFg = '', infoText = '', cancelText = '', cancelCallback = None) self.timer.setFontColor(PiratesGuiGlobals.TextFG2) self.timer.reparentTo(self) self.timer.setPos(0.45000000000000001, 0, 0.93999999999999995) self.timer.setScale(0.59999999999999998) self.timer.stash() self.hpMeter = DirectWaitBar(parent = self, relief = DGG.RAISED, state = DGG.DISABLED, range = 1, value = 0, frameColor = (0.0, 0.0, 0.0, 0.0), barColor = (0.10000000000000001, 0.69999999999999996, 0.10000000000000001, 1), frameSize = (0, 0.31, 0, 0.018599999999999998), text = '', text_align = TextNode.ARight, text_scale = 0.029999999999999999, text_fg = (1, 1, 1, 1), text_shadow = (0, 0, 0, 1), text_pos = (0.29999999999999999, 0.029999999999999999), pos = (0.36099999999999999, 0.0, 0.621), scale = 1.2) hpLabel = DirectLabel(parent = self.hpMeter, relief = None, state = DGG.DISABLED, text = PLocalizer.HP, text_scale = 0.029999999999999999, text_align = TextNode.ALeft, text_pos = (0.014999999999999999, 0.029999999999999999), text_fg = (1, 1, 1, 1), text_shadow = (0, 0, 0, 1)) self.speedMeter = DirectWaitBar(parent = self, relief = DGG.RAISED, state = DGG.DISABLED, range = 1, value = 0, frameColor = (0.0, 0.0, 0.0, 0.0), barColor = (0.69999999999999996, 0.69999999999999996, 0.10000000000000001, 1), frameSize = (0, 0.31, 0, 0.018599999999999998), text = '', text_align = TextNode.ARight, text_scale = 0.029999999999999999, text_fg = (1, 1, 1, 1), text_shadow = (0, 0, 0, 1), text_pos = (0.29999999999999999, 0.029999999999999999), pos = (0.36099999999999999, 0.0, 0.55000000000000004), scale = 1.2) speedLabel = DirectLabel(parent = self.speedMeter, relief = None, state = DGG.DISABLED, text = PLocalizer.Speed, text_scale = 0.029999999999999999, text_align = TextNode.ALeft, text_pos = (0.014999999999999999, 0.029999999999999999), text_fg = (1, 1, 1, 1), text_shadow = (0, 0, 0, 1)) textPos = (0.0, -0.16) self.plunderLimit = DirectLabel(parent = self, relief = None, state = DGG.DISABLED, geom = chestIcon, geom_scale = 0.10000000000000001, text = '', text_scale = 0.044999999999999998, text_align = TextNode.ACenter, text_pos = textPos, text_fg = (1, 1, 1, 1), text_shadow = (0, 0, 0, 1), textMayChange = 1, text_font = PiratesGlobals.getInterfaceOutlineFont(), pos = (0.20000000000000001, 0, 0.31)) plunderLabel = DirectLabel(parent = self.plunderLimit, relief = None, state = DGG.DISABLED, text = PLocalizer.Cargo, text_scale = 0.035999999999999997, text_align = TextNode.ACenter, text_pos = (0, 0.14999999999999999), text_fg = (1, 1, 1, 1), text_shadow = (0, 0, 0, 1)) self.cannonLimit = DirectLabel(parent = self, relief = None, state = DGG.DISABLED, geom = cannonIcon, geom_scale = 0.45000000000000001, text = '', text_scale = 0.044999999999999998, text_align = TextNode.ACenter, text_pos = textPos, text_fg = (1, 1, 1, 1), text_shadow = (0, 0, 0, 1), textMayChange = 1, text_font = PiratesGlobals.getInterfaceOutlineFont(), pos = (0.37, 0, 0.31)) cannonLabel = DirectLabel(parent = self.cannonLimit, relief = None, state = DGG.DISABLED, text = PLocalizer.Cannon, text_scale = 0.035999999999999997, text_align = TextNode.ACenter, text_pos = (0, 0.14999999999999999), text_fg = (1, 1, 1, 1), text_shadow = (0, 0, 0, 1)) self.broadsideLeftLimit = DirectLabel(parent = self, relief = None, state = DGG.DISABLED, geom = broadsideIcon, geom_scale = (-0.45000000000000001, 0.45000000000000001, 0.45000000000000001), text = '', text_scale = 0.044999999999999998, text_align = TextNode.ACenter, text_pos = textPos, text_fg = (1, 1, 1, 1), text_shadow = (0, 0, 0, 1), textMayChange = 1, text_font = PiratesGlobals.getInterfaceOutlineFont(), pos = (0.73999999999999999, 0, 0.31)) self.broadsideRightLimit = DirectLabel(parent = self, relief = None, state = DGG.DISABLED, geom = broadsideIcon, geom_scale = 0.45000000000000001, text = '', text_scale = 0.044999999999999998, text_align = TextNode.ACenter, text_pos = textPos, text_fg = (1, 1, 1, 1), text_shadow = (0, 0, 0, 1), textMayChange = 1, text_font = PiratesGlobals.getInterfaceOutlineFont(), pos = (0.88500000000000001, 0, 0.31)) broadsideLabel = DirectLabel(parent = self, relief = None, state = DGG.DISABLED, text = PLocalizer.Broadsides, text_scale = 0.035999999999999997, text_align = TextNode.ACenter, text_fg = (1, 1, 1, 1), text_shadow = (0, 0, 0, 1), pos = (0.81000000000000005, 0, 0.46000000000000002)) crewLabel = DirectLabel(parent = self, relief = None, state = DGG.DISABLED, text = PLocalizer.Crew, text_scale = 0.035999999999999997, text_align = TextNode.ALeft, text_pos = (0.47499999999999998, 0.46000000000000002), text_fg = (1, 1, 1, 1), text_shadow = (0, 0, 0, 1)) self.crewLimit = DirectLabel(parent = self, relief = None, state = DGG.DISABLED, text = '', text_scale = 0.044999999999999998, text_align = TextNode.ACenter, text_pos = (0.56000000000000005, 0.14999999999999999), text_fg = (1, 1, 1, 1), text_shadow = (0, 0, 0, 1), textMayChange = 1, text_font = PiratesGlobals.getInterfaceOutlineFont()) shipOV = base.cr.getOwnerView(self.shipId) if shipOV: self.setShipName(shipOV.name) self.setShipClass(shipOV.shipClass) self.setShipHp(shipOV.Hp, shipOV.maxHp) self.setShipSp(shipOV.Sp, shipOV.maxSp) self.setShipCrew(shipOV.crew, shipOV.maxCrew) self.setShipCargo([], shipOV.maxCargo) if hasattr(shipOV, 'cannonConfig'): self.setShipMaxCannons(shipOV.cannonConfig) self.setShipMaxLeftBroadside(shipOV.lBroadsideConfig) self.setShipMaxRightBroadside(shipOV.rBroadsideConfig) self.accept('setName-%s' % self.shipId, self.setShipName) self.accept('setShipClass-%s' % self.shipId, self.setShipClass) self.accept('setShipHp-%s' % self.shipId, self.setShipHp) self.accept('setShipSp-%s' % self.shipId, self.setShipSp) self.accept('setShipCargo-%s' % self.shipId, self.setShipCargo) self.accept('setShipCrew-%s' % self.shipId, self.setShipCrew) self.accept('setShipTimer-%s' % self.shipId, self.setShipTimer) self.accept('setHullCannonConfig-%s' % self.shipId, self.setShipMaxCannons) self.accept('setHullLeftBroadsideConfig-%s' % self.shipId, self.setShipMaxLeftBroadside) self.accept('setHullRightBroadsideConfig-%s' % self.shipId, self.setShipMaxRightBroadside) if base.config.GetBool('want-deploy-button', 0): pass 1
def setup(self): self.buttonSize = self.manager.standardButtonSize self.grid = InventoryUIPlunderGridContainer.InventoryUIPlunderGridContainer( self.manager, self.buttonSize * 7, self.buttonSize * 3.0, 2, 3) self.grid.reparentTo(self) self.grid.setPos(self.sizeX * 0.5 - self.grid.sizeX * 0.4, 0.0, 0.25) self.grid.setScale(0.8) Gui = loader.loadModel('models/gui/char_gui') buttonImage = (Gui.find('**/chargui_text_block_large'), Gui.find('**/chargui_text_block_large_down'), Gui.find('**/chargui_text_block_large_over'), Gui.find('**/chargui_text_block_large')) self.takeAllButton = GuiButton.GuiButton( parent=self, relief=None, image=buttonImage, image_scale=0.4, text=PLocalizer.InventoryPlunderTakeAll, text_font=PiratesGlobals.getInterfaceOutlineFont(), text_align=TextNode.ACenter, text_pos=(0, -0.01), text_scale=PiratesGuiGlobals.TextScaleLarge, text_fg=PiratesGuiGlobals.TextFG2, text_shadow=PiratesGuiGlobals.TextShadow, pos=(self.sizeX * 0.8, 0, 0.2), helpText=PLocalizer.InventoryPlunderGiveNothingBack, helpPos=(0.1, 0, -0.07), helpOpaque=1, helpDelay=1.0, command=self.takeAllLoot) if self.takeAllButton.helpBox: self.takeAllButton.helpBox.setPos(0.3, 0, -0.01) if self.itemsToTake: self.takeAllButton.hide() if self.timer: self.timerUI = DirectLabel( parent=self, relief=None, pos=(0.64, 0, 0.21), text=str(self.timer), text_align=TextNode.ACenter, text_font=PiratesGlobals.getInterfaceOutlineFont(), text_fg=PiratesGuiGlobals.TextFG1, text_shadow=PiratesGuiGlobals.TextShadow, text_scale=PiratesGuiGlobals.TextScaleTitleSmall, text_pos=(0.0, -0.02)) self.takeAllButton.setPos(Point3(0.825, 0, 0.2)) self.timerStart = globalClock.getRealTime() taskMgr.add(self.__updateTimer, self.taskName('plunderPanelTimeUpdate')) maingui = loader.loadModel('models/gui/gui_main') box = (maingui.find('**/exit_button'), maingui.find('**/exit_button'), maingui.find('**/exit_button_over'), maingui.find('**/exit_button')) x = maingui.find('**/x2') titleText = text = PLocalizer.InventoryPlunderTitle % self.typeName if self.customName: titleText = self.customName self.titleLabel = DirectLabel( parent=self, relief=None, pos=(0.5, 0, 0.68), text=titleText, text_align=TextNode.ACenter, text_font=PiratesGlobals.getInterfaceOutlineFont(), text_fg=PiratesGuiGlobals.TextFG1, text_shadow=PiratesGuiGlobals.TextShadow, text_scale=PiratesGuiGlobals.TextScaleTitleSmall, text_pos=(0.0, -0.02), image=maingui.find('**/gui_inv_treasure_loot_bg'), image_scale=(0.3, 0.35, 0.35), image_pos=(0.04, 0, 0)) self.closeButton = DirectButton(parent=self, relief=None, pos=(self.sizeX + 0.25, 0, self.sizeZ - 1.08), image=box, image_scale=0.5, geom=x, geom_scale=0.25, geom_pos=(-0.32, 0, 0.958), command=self.manager.closePlunder) if self.autoShow: self.closeButton.hide() self.ratingLabel = DirectLabel( parent=self, relief=None, text=PLocalizer.InventoryPlunderRating, text_align=TextNode.ALeft, text_font=PiratesGlobals.getInterfaceFont(), text_fg=PiratesGuiGlobals.TextFG16, text_scale=PiratesGuiGlobals.TextScaleLarge, pos=(self.sizeX * 0.1, 0, 0.2)) if self.rating < 0: self.ratingLabel.hide() else: if self.itemsToTake: if self.itemsToTake == 1: self.ratingLabel[ 'text'] = PLocalizer.InventoryPlunderPickSingular else: self.ratingLabel[ 'text'] = PLocalizer.InventoryPlunderPickPlural % self.itemsToTake else: toplevelgui = loader.loadModel('models/gui/toplevel_gui') rating = self.attachNewNode('rating') rating.setPos(self.sizeX * 0.35, 0, 0.21) for i in range(0, 5): skull = rating.attachNewNode('skull%s' % i) toplevelgui.find('**/pir_t_gui_gen_goldSkull').copyTo( skull) skull.setScale(0.2) skull.setX(i * 0.05) if i >= self.rating: skull.setColor(0, 0, 0, 0.25) rating.flattenStrong() self.setupPlunder(self.plunderList) self.accept('lootsystem-plunderContainer-Empty', self.checkAllContainers) return
def showDetails(self, cell, detailsPos, detailsHeight, event=None): self.notify.debug('Item showDetails') if self.manager.heldItem or self.manager.locked or cell.isEmpty( ) or self.isEmpty() or not self.itemTuple: self.notify.debug(' early exit') return inv = localAvatar.getInventory() if not inv: return itemId = self.getId() self.helpFrame = DirectFrame(parent=self.manager, relief=None, state=DGG.DISABLED, sortOrder=1) self.helpFrame.setBin('gui-popup', -5) detailGui = loader.loadModel('models/gui/gui_card_detail') topGui = loader.loadModel('models/gui/toplevel_gui') coinImage = topGui.find('**/treasure_w_coin*') self.SkillIcons = loader.loadModel('models/textureCards/skillIcons') self.BuffIcons = loader.loadModel('models/textureCards/buff_icons') border = self.SkillIcons.find('**/base') halfWidth = 0.3 halfHeight = 0.2 basePosX = cell.getX(aspect2d) basePosZ = cell.getZ(aspect2d) cellSizeX = 0.0 cellSizeZ = 0.0 if cell: cellSizeX = cell.cellSizeX cellSizeZ = cell.cellSizeZ textScale = PiratesGuiGlobals.TextScaleMed titleScale = PiratesGuiGlobals.TextScaleTitleSmall if len(self.getName()) >= 30: titleNameScale = PiratesGuiGlobals.TextScaleLarge else: titleNameScale = PiratesGuiGlobals.TextScaleExtraLarge subtitleScale = PiratesGuiGlobals.TextScaleMed iconScalar = 1.5 borderScaler = 0.25 splitHeight = 0.01 vMargin = 0.03 runningVertPosition = 0.3 runningSize = 0.0 labels = [] titleColor = PiratesGuiGlobals.TextFG6 itemColor = 'itemRed' rarity = ItemGlobals.getRarity(itemId) rarityText = PLocalizer.getItemRarityName(rarity) subtypeText = PLocalizer.getItemSubtypeName( ItemGlobals.getSubtype(itemId)) if rarity == ItemGlobals.CRUDE: titleColor = PiratesGuiGlobals.TextFG24 itemColor = 'itemBrown' else: if rarity == ItemGlobals.COMMON: titleColor = PiratesGuiGlobals.TextFG13 itemColor = 'itemYellow' else: if rarity == ItemGlobals.RARE: titleColor = PiratesGuiGlobals.TextFG4 itemColor = 'itemGreen' else: if rarity == ItemGlobals.FAMED: titleColor = PiratesGuiGlobals.TextFG5 itemColor = 'itemBlue' titleLabel = DirectLabel(parent=self, relief=None, text=self.getName(), text_scale=titleNameScale, text_fg=titleColor, text_shadow=PiratesGuiGlobals.TextShadow, text_align=TextNode.ACenter, pos=(0.0, 0.0, runningVertPosition), text_pos=(0.0, -textScale)) self.bg.setColor(titleColor) tHeight = 0.07 titleLabel.setZ(runningVertPosition) runningVertPosition -= tHeight runningSize += tHeight labels.append(titleLabel) subtitleLabel = DirectLabel(parent=self, relief=None, text='\x01slant\x01%s %s\x02' % (rarityText, subtypeText), text_scale=subtitleScale, text_fg=PiratesGuiGlobals.TextFG2, text_shadow=PiratesGuiGlobals.TextShadow, text_align=TextNode.ACenter, pos=(0.0, 0.0, runningVertPosition), text_pos=(0.0, -textScale)) subtHeight = 0.05 subtitleLabel.setZ(subtHeight * 0.5 + runningVertPosition) runningVertPosition -= subtHeight runningSize += subtHeight labels.append(subtitleLabel) itemType = ItemGlobals.getType(itemId) itemSubtype = ItemGlobals.getSubtype(itemId) model = ItemGlobals.getModel(itemId) if model: if itemType == ItemGlobals.GRENADE: self.realItem = loader.loadModel('models/ammunition/' + model) else: self.realItem = loader.loadModel('models/handheld/' + model) if self.realItem: spinBlur = self.realItem.find('**/motion_blur') if spinBlur: spinBlur.hide() if itemSubtype == ItemGlobals.MUSKET: bayonetPart = self.realItem.find('**/bayonet') if bayonetPart: bayonetPart.stash() posHpr = ItemGlobals.getModelPosHpr(model) if posHpr: self.realItem.setPos(posHpr[0], posHpr[1], posHpr[2]) self.realItem.setHpr(posHpr[3], posHpr[4], posHpr[5]) else: if itemType == ItemGlobals.SWORD: self.realItem.setPos(-1.5, 3.0, -0.3) self.realItem.setHpr(90, 170, -90) else: if itemSubtype in (ItemGlobals.MUSKET, ItemGlobals.BAYONET): self.realItem.setPos(-1.2, 3.0, -0.1) self.realItem.setHpr(0, 135, 10) else: if itemSubtype == ItemGlobals.BLUNDERBUSS: self.realItem.setPos(-0.3, 2.0, 0.0) self.realItem.setHpr(0, 90, 0) else: if itemType == ItemGlobals.GUN: self.realItem.setPos(-0.5, 2.0, -0.2) self.realItem.setHpr(0, 90, 0) else: if itemType == ItemGlobals.DOLL: self.realItem.setPos(0.0, 1.9, -0.1) self.realItem.setHpr(0, 90, 180) else: if itemType == ItemGlobals.DAGGER: self.realItem.setPos( -1.0, 2.0, -0.3) self.realItem.setHpr(90, 170, -90) else: if itemType == ItemGlobals.GRENADE: self.realItem.setPos( 0.0, 3.5, -0.2) self.realItem.setHpr(0, 0, 0) else: if itemType == ItemGlobals.STAFF: self.realItem.setPos( -0.4, 3.0, -0.3) self.realItem.setHpr( -90, 15, -90) self.realItem.reparentTo(self.portraitSceneGraph) iHeight = 0.175 self.createBuffer() self.itemCard.setZ(runningVertPosition - 0.06) runningVertPosition -= iHeight runningSize += iHeight labels.append(self.itemCard) itemCost = int(ItemGlobals.getGoldCost(itemId)) if self.cell: if self.cell.container: itemCost = int(itemCost * self.cell.container.getItemPriceMult()) goldLabel = DirectLabel(parent=self, relief=None, image=coinImage, image_scale=0.12, image_pos=Vec3(0.025, 0, -0.02), text=str(itemCost), text_scale=subtitleScale, text_align=TextNode.ARight, text_fg=PiratesGuiGlobals.TextFG1, text_shadow=PiratesGuiGlobals.TextShadow, pos=(halfWidth - 0.05, 0.0, runningVertPosition + 0.08), text_pos=(0.0, -textScale)) labels.append(goldLabel) infoText = PLocalizer.ItemAttackStrength % ( '\x01%s\x01%s\x02' % (itemColor, ItemGlobals.getPower(itemId))) if itemType == ItemGlobals.GUN: infoText += ' %s' % ( PLocalizer.ItemBarrels % ('\x01%s\x01%s\x02' % (itemColor, ItemGlobals.getBarrels(itemId)))) infoText += ' %s' % ( PLocalizer.ItemRangeStrength % ('\x01%s\x01%s\x02' % (itemColor, PLocalizer.getItemRangeName( WeaponGlobals.getRange(itemId))))) infoLabel = DirectLabel(parent=self, relief=None, text=infoText, text_scale=textScale, text_align=TextNode.ACenter, pos=(0.0, 0.0, runningVertPosition), text_pos=(0.0, -textScale)) iHeight = 0.08 runningVertPosition -= iHeight runningSize += iHeight labels.append(infoLabel) specialAttack = ItemGlobals.getSpecialAttack(itemId) if specialAttack: attackIcon = self.SkillIcons.find( '**/%s' % WeaponGlobals.getSkillIcon(specialAttack)) specialAttackNameLabel = DirectLabel( parent=self, relief=None, image=border, image_scale=0.1, geom=attackIcon, geom_scale=0.1, image_pos=(-0.07, 0.0, -0.05), geom_pos=(-0.07, 0.0, -0.05), text=PLocalizer.getInventoryTypeName(specialAttack), text_scale=PiratesGuiGlobals.TextScaleLarge, text_wordwrap=halfWidth * 2.0 * (0.9 / titleScale), text_align=TextNode.ALeft, text_fg=titleColor, text_font=PiratesGlobals.getInterfaceOutlineFont(), text_shadow=PiratesGuiGlobals.TextShadow, pos=(-halfWidth + 0.12 + textScale * 0.5, 0.0, runningVertPosition), text_pos=(0.0, -textScale)) specialAttackRankLabel = DirectLabel( parent=self, relief=None, text=PLocalizer.ItemRank % ItemGlobals.getSpecialAttackRank(itemId), text_scale=textScale, text_wordwrap=halfWidth * 2.0 * (0.9 / titleScale), text_align=TextNode.ARight, pos=(halfWidth - textScale * 0.5, 0.0, runningVertPosition), text_pos=(0.0, -textScale)) specialAttackType = WeaponGlobals.getSkillTrack(specialAttack) if specialAttackType == WeaponGlobals.BREAK_ATTACK_SKILL_INDEX: specialAttackTypeText = PLocalizer.BreakAttackSkill else: if specialAttackType == WeaponGlobals.DEFENSE_SKILL_INDEX: specialAttackTypeText = PLocalizer.DefenseSkill else: specialAttackTypeText = PLocalizer.WeaponSkill specialAttackTypeLabel = DirectLabel( parent=self, relief=None, text=specialAttackTypeText, text_scale=0.0335, text_wordwrap=halfWidth * 2.8 * (0.9 / titleScale), text_align=TextNode.ALeft, pos=(-halfWidth + 0.12 + textScale * 0.5, 0.0, runningVertPosition - PiratesGuiGlobals.TextScaleLarge), text_pos=(0.0, -textScale)) specialAttackInfo = PLocalizer.SkillDescriptions.get( specialAttack) specialAttackDescriptionText = specialAttackInfo[1] specialAttackDescriptionLabel = DirectLabel( parent=self, relief=None, text=specialAttackDescriptionText, text_scale=textScale, text_wordwrap=halfWidth * 2.8 * (0.9 / titleScale), text_align=TextNode.ALeft, pos=(-halfWidth + 0.12 + textScale * 0.5, 0.0, runningVertPosition - (specialAttackNameLabel.getHeight() + specialAttackTypeLabel.getHeight() - 0.06)), text_pos=(0.0, -textScale)) saHeight = specialAttackNameLabel.getHeight( ) + specialAttackTypeLabel.getHeight( ) + specialAttackDescriptionLabel.getHeight() - 0.04 runningVertPosition -= saHeight runningSize += saHeight labels.append(specialAttackNameLabel) labels.append(specialAttackRankLabel) labels.append(specialAttackTypeLabel) labels.append(specialAttackDescriptionLabel) attributes = ItemGlobals.getAttributes(itemId) for i in range(0, len(attributes)): attributeIcon = self.SkillIcons.find( '**/%s' % ItemGlobals.getAttributeIcon(attributes[i][0])) if not attributeIcon: attributeIcon = self.BuffIcons.find( '**/%s' % ItemGlobals.getAttributeIcon(attributes[i][0])) attributeNameLabel = DirectLabel( parent=self, relief=None, image=border, image_scale=0.05, geom=attributeIcon, geom_scale=0.05, image_pos=(-0.07, 0.0, -0.03), geom_pos=(-0.07, 0.0, -0.03), text=PLocalizer.getItemAttributeName(attributes[i][0]), text_scale=PiratesGuiGlobals.TextScaleLarge, text_wordwrap=halfWidth * 2.0 * (0.9 / titleScale), text_align=TextNode.ALeft, text_fg=titleColor, text_font=PiratesGlobals.getInterfaceOutlineFont(), text_shadow=PiratesGuiGlobals.TextShadow, pos=(-halfWidth + 0.12 + textScale * 0.5, 0.0, runningVertPosition), text_pos=(0.0, -textScale)) attributeRankLabel = DirectLabel( parent=self, relief=None, text=PLocalizer.ItemRank % attributes[i][1], text_scale=textScale, text_wordwrap=halfWidth * 2.0 * (0.9 / titleScale), text_align=TextNode.ARight, pos=(halfWidth - textScale * 0.5, 0.0, runningVertPosition), text_pos=(0.0, -textScale)) if attributeNameLabel.getHeight() > 0.075: attributeNameSpace = 0.08 else: attributeNameSpace = PiratesGuiGlobals.TextScaleLarge attributeDescriptionLabel = DirectLabel( parent=self, relief=None, text=PLocalizer.getItemAttributeDescription( attributes[i][0]), text_scale=textScale, text_wordwrap=halfWidth * 2.8 * (0.9 / titleScale), text_align=TextNode.ALeft, pos=(-halfWidth + 0.12 + textScale * 0.5, 0.0, runningVertPosition - attributeNameSpace), text_pos=(0.0, -textScale)) aHeight = attributeNameLabel.getHeight( ) + attributeDescriptionLabel.getHeight() runningVertPosition -= aHeight + splitHeight runningSize += aHeight + splitHeight labels.append(attributeNameLabel) labels.append(attributeRankLabel) labels.append(attributeDescriptionLabel) skillBoosts = ItemGlobals.getSkillBoosts(itemId) for i in range(0, len(skillBoosts)): skillId, skillBoost = skillBoosts[i] linkedSkills = ItemGlobals.getLinkedSkills(itemId) if linkedSkills: for id in linkedSkills: if skillId == WeaponGlobals.getLinkedSkillId(id): skillId = id boostIcon = self.SkillIcons.find( '**/%s' % WeaponGlobals.getSkillIcon(skillId)) boostNameLabel = DirectLabel( parent=self, relief=None, image=border, image_scale=0.05, geom=boostIcon, geom_scale=0.05, image_pos=(-0.07, 0.0, -0.03), geom_pos=(-0.07, 0.0, -0.03), text=PLocalizer.ItemBoost % PLocalizer.getInventoryTypeName(skillId), text_scale=textScale, text_wordwrap=halfWidth * 2.0 * (0.9 / titleScale), text_align=TextNode.ALeft, pos=(-halfWidth + 0.12 + textScale * 0.5, 0.0, runningVertPosition), text_pos=(0.0, -textScale)) boostRankLabel = DirectLabel( parent=self, relief=None, text='+%s' % str(skillBoost), text_scale=textScale, text_wordwrap=halfWidth * 2.0 * (0.9 / titleScale), text_align=TextNode.ARight, pos=(halfWidth - textScale * 0.5, 0.0, runningVertPosition), text_pos=(0.0, -textScale)) bHeight = boostNameLabel.getHeight() runningVertPosition -= bHeight + splitHeight runningSize += bHeight + splitHeight labels.append(boostNameLabel) labels.append(boostRankLabel) description = PLocalizer.getItemFlavorText(itemId) if description != '': descriptionLabel = DirectLabel( parent=self, relief=None, text=description, text_scale=textScale, text_wordwrap=halfWidth * 2.0 * (0.95 / textScale), text_align=TextNode.ALeft, pos=(-halfWidth + textScale * 0.5, 0.0, runningVertPosition), text_pos=(0.0, -textScale)) dHeight = descriptionLabel.getHeight() + 0.02 runningVertPosition -= dHeight runningSize += dHeight labels.append(descriptionLabel) weaponLevel = 0 weaponRepId = WeaponGlobals.getRepId(itemId) weaponRep = inv.getReputation(weaponRepId) weaponReq = ItemGlobals.getWeaponRequirement(itemId) weaponText = None trainingToken = EconomyGlobals.getItemTrainingReq(itemId) trainingAmt = inv.getItemQuantity(trainingToken) if weaponReq: weaponLevel = ReputationGlobals.getLevelFromTotalReputation( weaponRepId, weaponRep)[0] if weaponLevel < weaponReq: weaponColor = PiratesGuiGlobals.TextFG6 else: weaponColor = (0.4, 0.4, 0.4, 1.0) weaponText = PLocalizer.ItemLevelRequirement % ( weaponReq, PLocalizer.getItemTypeName(itemType)) else: if trainingAmt == 0: weaponColor = PiratesGuiGlobals.TextFG6 weaponText = PLocalizer.ItemTrainingRequirement % PLocalizer.getItemTypeName( itemType) if trainingAmt == 0: if itemType == ItemGlobals.GUN: base.localAvatar.sendRequestContext( InventoryType.GunTrainingRequired) elif itemType == ItemGlobals.DOLL: base.localAvatar.sendRequestContext( InventoryType.DollTrainingRequired) elif itemType == ItemGlobals.DAGGER: base.localAvatar.sendRequestContext( InventoryType.DaggerTrainingRequired) elif itemType == ItemGlobals.STAFF: base.localAvatar.sendRequestContext( InventoryType.StaffTrainingRequired) if weaponText: weaponReqLabel = DirectLabel( parent=self, relief=None, text=weaponText, text_scale=textScale, text_wordwrap=halfWidth * 2.0 * (1.5 / titleScale), text_fg=weaponColor, text_shadow=PiratesGuiGlobals.TextShadow, text_align=TextNode.ACenter, pos=(0.0, 0.0, runningVertPosition), text_pos=(0.0, -textScale)) wHeight = weaponReqLabel.getHeight() runningVertPosition -= wHeight runningSize += wHeight labels.append(weaponReqLabel) if not Freebooter.getPaidStatus(localAvatar.getDoId()): if rarity != ItemGlobals.CRUDE: unlimitedLabel = DirectLabel( parent=self, relief=None, text=PLocalizer.UnlimitedAccessRequirement, text_scale=textScale, text_wordwrap=halfWidth * 2.0 * (1.5 / titleScale), text_fg=PiratesGuiGlobals.TextFG6, text_shadow=PiratesGuiGlobals.TextShadow, text_align=TextNode.ACenter, pos=(0.0, 0.0, runningVertPosition), text_pos=(0.0, -textScale)) uHeight = unlimitedLabel.getHeight() runningVertPosition -= uHeight runningSize += uHeight labels.append(unlimitedLabel) runningVertPosition -= 0.02 runningSize += 0.02 panels = self.helpFrame.attachNewNode('panels') topPanel = panels.attachNewNode('middlePanel') detailGui.find('**/top_panel').copyTo(topPanel) topPanel.setScale(0.08) topPanel.reparentTo(self.helpFrame) middlePanel = panels.attachNewNode('middlePanel') detailGui.find('**/middle_panel').copyTo(middlePanel) middlePanel.setScale(0.08) middlePanel.reparentTo(self.helpFrame) placement = 0 i = 0 heightMax = -0.08 currentHeight = runningVertPosition if detailsHeight: currentHeight = -detailsHeight while currentHeight < heightMax: middlePanel = panels.attachNewNode('middlePanel%s' % 1) detailGui.find('**/middle_panel').copyTo(middlePanel) middlePanel.setScale(0.08) middlePanel.reparentTo(self.helpFrame) if currentHeight + 0.2 >= heightMax: difference = heightMax - currentHeight placement += 0.168 / 0.2 * difference currentHeight += difference else: placement += 0.168 currentHeight += 0.2 middlePanel.setZ(-placement) i += 1 bottomPanel = panels.attachNewNode('bottomPanel') detailGui.find('**/bottom_panel').copyTo(bottomPanel) bottomPanel.setScale(0.08) bottomPanel.setZ(-placement) bottomPanel.reparentTo(self.helpFrame) colorPanel = panels.attachNewNode('colorPanel') detailGui.find('**/color').copyTo(colorPanel) colorPanel.setScale(0.08) colorPanel.setColor(titleColor) colorPanel.reparentTo(self.helpFrame) lineBreakTopPanel = panels.attachNewNode('lineBreakTopPanel') detailGui.find('**/line_break_top').copyTo(lineBreakTopPanel) lineBreakTopPanel.setScale(0.08, 0.08, 0.07) lineBreakTopPanel.setZ(0.008) lineBreakTopPanel.reparentTo(self.helpFrame) lineBreakBottomPanel = panels.attachNewNode('lineBreakBottomPanel') detailGui.find('**/line_break_bottom').copyTo(lineBreakBottomPanel) lineBreakBottomPanel.setScale(0.08, 0.08, 0.07) lineBreakBottomPanel.setZ(-0.015) lineBreakBottomPanel.reparentTo(self.helpFrame) panels.flattenStrong() self.helpFrame['frameSize'] = (-halfWidth, halfWidth, -(runningSize + vMargin), vMargin) totalHeight = self.helpFrame.getHeight() - 0.1 for label in labels: label.reparentTo(self.helpFrame) if basePosX > 0.0: newPosX = basePosX - (halfWidth + cellSizeX * 0.45) else: newPosX = basePosX + (halfWidth + cellSizeX * 0.45) newPosZ = basePosZ > 0.0 and basePosZ + cellSizeZ * 0.45 else: newPosZ = basePosZ + totalHeight - cellSizeZ * 0.75 if detailsPos: newPosX, newPosZ = detailsPos self.helpFrame.setPos(newPosX, 0, newPosZ) return
def __init__(self): InventoryPage.InventoryPage.__init__(self) self.initialiseoptions(CollectionMain) gui = loader.loadModel('models/gui/toplevel_gui') ornament = loader.loadModel('models/gui/gui_treasure_window_a') ornament.setPos(0.53000000000000003, 0, 0.71999999999999997) ornament.setScale(0.315) ornament.reparentTo(self) ornament.flattenStrong() self.treasureList = DirectScrolledFrame(parent = self, relief = None, state = DGG.NORMAL, frameColor = PiratesGuiGlobals.FrameColor, borderWidth = PiratesGuiGlobals.BorderWidth, frameSize = (0, PiratesGuiGlobals.InventoryPanelWidth - 0.10000000000000001, 0, PiratesGuiGlobals.InventoryPanelHeight - 0.10000000000000001 - PiratesGuiGlobals.ScrollbarSize), canvasSize = (0, PiratesGuiGlobals.InventoryPanelWidth - 1.1000000000000001, 0, PiratesGuiGlobals.InventoryPanelHeight - 0.10000000000000001 - PiratesGuiGlobals.ScrollbarSize), verticalScroll_frameColor = PiratesGuiGlobals.ScrollbarColor, verticalScroll_borderWidth = (0.0050000000000000001, 0.0050000000000000001), verticalScroll_frameSize = (0, PiratesGuiGlobals.ScrollbarSize, 0, PiratesGuiGlobals.InventoryPageHeight - 0.40000000000000002), verticalScroll_thumb_frameColor = PiratesGuiGlobals.ButtonColor2, verticalScroll_incButton_frameColor = PiratesGuiGlobals.ButtonColor2, verticalScroll_decButton_frameColor = PiratesGuiGlobals.ButtonColor2, horizontalScroll_frameColor = PiratesGuiGlobals.ScrollbarColor, horizontalScroll_borderWidth = (0.0050000000000000001, 0.0050000000000000001), horizontalScroll_frameSize = (0, PiratesGuiGlobals.InventoryItemGuiWidth + PiratesGuiGlobals.ScrollbarSize, 0, PiratesGuiGlobals.ScrollbarSize), horizontalScroll_thumb_frameColor = PiratesGuiGlobals.ButtonColor2, horizontalScroll_incButton_frameColor = PiratesGuiGlobals.ButtonColor2, horizontalScroll_decButton_frameColor = PiratesGuiGlobals.ButtonColor2, sortOrder = 5) self.treasureList.setPos(0.02, 0, -0.02) localHeight = PiratesGuiGlobals.InventoryPanelHeight - 0.20000000000000001 self.card = loader.loadModel('models/gui/treasure_gui') tex = gui.find('**/treasure_w_coin*') self.goldPic = DirectFrame(parent = self.treasureList.getCanvas(), relief = None, image = tex, image_scale = 0.40000000000000002, image_pos = (-0.050000000000000003, 0, 0), pos = (0.34999999999999998, 0, localHeight - 0.35999999999999999), text = PLocalizer.MoneyName, text_fg = PiratesGuiGlobals.TextFG2, text_align = TextNode.ALeft, text_scale = 0.029999999999999999, text_pos = (-0.20000000000000001, 0.02, 0)) self.numGold = DirectLabel(parent = self.goldPic, relief = None, text = '0', text_align = TextNode.ALeft, text_scale = 0.040000000000000001, text_fg = PiratesGuiGlobals.TextFG2, textMayChange = 1, pos = (0.040000000000000001, 0, -0.029999999999999999), text_font = PiratesGlobals.getInterfaceOutlineFont()) if base.cr.config.GetBool('buried-treasure', 0): self.buryButton = DirectButton(parent = self, relief = None, image = tex, image_scale = 0.40000000000000002, image_pos = (0, 0, 0), pos = (0.5, 0, localHeight - 0.12), command = self.buryTreasure, text = 'BURY TREASURE', text_fg = PiratesGuiGlobals.TextFG2, text_align = TextNode.ACenter, text_scale = 0.025000000000000001, text_pos = (0, -0.085000000000000006, 0)) tex = gui.find('**/treasure_w_card*') self.cardPic = DirectFrame(parent = self.treasureList.getCanvas(), relief = None, image = tex, image_scale = 0.40000000000000002, image_pos = (-0.050000000000000003, 0, 0), pos = (0.76000000000000001, 0, localHeight - 0.35999999999999999), text = PLocalizer.CheatCardName, text_fg = PiratesGuiGlobals.TextFG2, text_align = TextNode.ALeft, text_scale = 0.029999999999999999, text_pos = (-0.23000000000000001, 0.02, 0)) self.cardPic.setTransparency(1) self.numCards = DirectLabel(parent = self.cardPic, relief = None, text = '0', text_align = TextNode.ALeft, text_scale = 0.040000000000000001, text_fg = PiratesGuiGlobals.TextFG2, textMayChange = 1, pos = (0.042000000000000003, 0, -0.029999999999999999), text_font = PiratesGlobals.getInterfaceOutlineFont()) self.treLabel = DirectLabel(parent = self.treasureList.getCanvas(), relief = None, text = PLocalizer.Treasure, text_align = TextNode.ALeft, text_scale = 0.029999999999999999, text_fg = PiratesGuiGlobals.TextFG2, textMayChange = 1, pos = (0.14399999999999999, 0, localHeight - 0.47999999999999998)) spotPic = gui.find('**/treasure_w_a_slot') blipParent = NodePath('blipParent') for colSpot in range(4): for rowSpot in range(4): if colSpot > 0: blip = spotPic.copyTo(blipParent) blip.setScale(0.45000000000000001) blip.setPos(0.23999999999999999 + 0.17999999999999999 * rowSpot, 0, localHeight - 0.40000000000000002 - 0.17999999999999999 * colSpot) continue blipParent.flattenStrong() blipFrame = DirectFrame(parent = self.treasureList.getCanvas(), relief = None, geom = blipParent) gui.removeNode() self.setPics = { }
def __init__(self, shipPage, shipId, **kwargs): self.shipPage = shipPage self.emptyBottle = True self.setShipId(shipId) self.timer = None self.lBroadsideLimit = 0 self.rBroadsideLimit = 0 kwargs.setdefault('relief', None) kwargs.setdefault('frameSize', (0, self.Width, 0, self.Height)) DirectFrame.__init__(self, **kwargs) self.initialiseoptions(ShipPanel) gui = loader.loadModel('models/gui/toplevel_gui') inventoryGui = loader.loadModel('models/gui/gui_icons_inventory') chestIcon = inventoryGui.find('**/pir_t_ico_trs_chest_01*') cannonIcon = gui.find('**/topgui_icon_ship_cannon_single') skillIcons = loader.loadModel('models/textureCards/skillIcons') broadsideId = InventoryType.CannonRoundShot ammoIconName = WeaponGlobals.getSkillIcon(broadsideId) broadsideIcon = skillIcons.find('**/%s' % ammoIconName) crewIcon = (gui.find('**/pir_t_gui_gen_friends_pirates'), ) self.bottleFrame = ShipFrameBottle(parent=self, shipId=shipId, relief=None, state=DGG.DISABLED, pos=(0.075, 0, 0.75), scale=0.835) gui = loader.loadModel('models/gui/gui_ship_window') bottleImage = gui.find('**/ship_bottle') self.shipBottle = DirectLabel(parent=self.bottleFrame, relief=None, state=DGG.DISABLED, geom=bottleImage, geom_scale=0.3, geom_pos=(0, 0, 0), pos=(0.5, 0, -0.0)) self.nameLabel = DirectLabel( parent=self, relief=None, state=DGG.DISABLED, text=PLocalizer.makeHeadingString(PLocalizer.EmptyBottle, 2), text_fg=PiratesGuiGlobals.TextFG1, text_scale=PiratesGuiGlobals.TextScaleTitleSmall, text_align=TextNode.ACenter, text_shadow=(0, 0, 0, 1), text_wordwrap=30, textMayChange=1, text_font=PiratesGlobals.getPirateFont(), pos=(0.55, 0, 1.22)) self.classLabel = DirectLabel( parent=self, relief=None, state=DGG.DISABLED, text=PLocalizer.makeHeadingString(PLocalizer.EmptyBottleDesc, 1), text_scale=PiratesGuiGlobals.TextScaleMed, text_align=TextNode.ACenter, text_fg=PiratesGuiGlobals.TextFG2, text_shadow=(0, 0, 0, 1), text_wordwrap=30, textMayChange=1, text_font=PiratesGlobals.getInterfaceFont(), pos=(0.55, 0, 1.18)) self.timer = PiratesTimer.PiratesTimer(showMinutes=True, mode=None, titleText='', titleFg='', infoText='', cancelText='', cancelCallback=None) self.timer.setFontColor(PiratesGuiGlobals.TextFG2) self.timer.reparentTo(self) self.timer.setPos(0.45, 0, 0.94) self.timer.setScale(0.6) self.timer.stash() self.hpMeter = DirectWaitBar(parent=self, relief=DGG.RAISED, state=DGG.DISABLED, range=1, value=0, frameColor=(0.0, 0.0, 0.0, 0.0), barColor=(0.1, 0.7, 0.1, 1), frameSize=(0, 0.31, 0, 0.0186), text='', text_align=TextNode.ARight, text_scale=0.03, text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1), text_pos=(0.3, 0.03), pos=(0.55, 0.0, 0.45), scale=1.2) hpLabel = DirectLabel(parent=self.hpMeter, relief=None, state=DGG.DISABLED, text=PLocalizer.HP, text_scale=0.03, text_align=TextNode.ALeft, text_pos=(0.015, 0.03), text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1)) self.speedMeter = DirectWaitBar(parent=self, relief=DGG.RAISED, state=DGG.DISABLED, range=1, value=0, frameColor=(0.0, 0.0, 0.0, 0.0), barColor=(0.7, 0.7, 0.1, 1), frameSize=(0, 0.31, 0, 0.0186), text='', text_align=TextNode.ARight, text_scale=0.03, text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1), text_pos=(0.3, 0.03), pos=(0.55, 0.0, 0.35), scale=1.2) speedLabel = DirectLabel(parent=self.speedMeter, relief=None, state=DGG.DISABLED, text=PLocalizer.Sails, text_scale=0.03, text_align=TextNode.ALeft, text_pos=(0.015, 0.03), text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1)) self.customHullLabel = DirectLabel( parent=self, relief=None, state=DGG.DISABLED, geom=chestIcon, geom_scale=0.15, geom_pos=(0, 0, 0), text='', text_scale=0.045, text_align=TextNode.ACenter, text_pos=(0, -0.07), text_fg=PiratesGuiGlobals.TextFG1, text_shadow=(0, 0, 0, 1), textMayChange=1, text_font=PiratesGlobals.getInterfaceOutlineFont(), pos=(0.35, 0, 0.68)) self.customHullLabel.hide() self.customRiggingLabel = DirectLabel( parent=self, relief=None, state=DGG.DISABLED, geom=chestIcon, geom_scale=0.15, geom_pos=(0, 0, 0), text='', text_scale=0.045, text_align=TextNode.ACenter, text_pos=(0, -0.07), text_fg=PiratesGuiGlobals.TextFG1, text_shadow=(0, 0, 0, 1), textMayChange=1, text_font=PiratesGlobals.getInterfaceOutlineFont(), pos=(0.75, 0, 0.68)) self.customRiggingLabel.hide() textPos = (0.0, -0.16) self.plunderLimit = DirectLabel( parent=self, relief=None, state=DGG.DISABLED, geom=chestIcon, geom_scale=0.1, geom_pos=(0, 0, -0.05), text='', text_scale=0.045, text_align=TextNode.ACenter, text_pos=textPos, text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1), textMayChange=1, text_font=PiratesGlobals.getInterfaceOutlineFont(), pos=(0.2, 0, 0.2)) plunderLabel = DirectLabel(parent=self.plunderLimit, relief=None, state=DGG.DISABLED, text=PLocalizer.Cargo, text_scale=0.036, text_align=TextNode.ACenter, text_pos=(0, 0.04), text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1)) self.cannonLimit = DirectLabel( parent=self, relief=None, state=DGG.DISABLED, geom=cannonIcon, geom_scale=0.45, geom_pos=(0, 0, -0.05), text='', text_scale=0.045, text_align=TextNode.ACenter, text_pos=textPos, text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1), textMayChange=1, text_font=PiratesGlobals.getInterfaceOutlineFont(), pos=(0.37, 0, 0.2)) cannonLabel = DirectLabel(parent=self.cannonLimit, relief=None, state=DGG.DISABLED, text=PLocalizer.Cannon, text_scale=0.036, text_align=TextNode.ACenter, text_pos=(0, 0.04), text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1)) self.cannonLabel = cannonLabel self.broadsideLimit = DirectLabel( parent=self, relief=None, state=DGG.DISABLED, geom=broadsideIcon, geom_scale=0.15, geom_pos=(0, 0, -0.05), text='', text_scale=0.045, text_align=TextNode.ACenter, text_pos=textPos, text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1), textMayChange=1, text_font=PiratesGlobals.getInterfaceOutlineFont(), pos=(0.81, 0, 0.2)) broadsideLabel = DirectLabel(parent=self.broadsideLimit, relief=None, state=DGG.DISABLED, text=PLocalizer.Broadsides, text_scale=0.036, text_align=TextNode.ACenter, text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1), text_pos=(0.0, 0.04)) self.broadsideLabel = broadsideLabel self.crewLimit = DirectLabel( parent=self, relief=None, state=DGG.DISABLED, geom=crewIcon, geom_scale=0.4, geom_pos=(0, 0, 0.1), text='', text_scale=0.045, text_align=TextNode.ACenter, text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1), textMayChange=1, text_font=PiratesGlobals.getInterfaceOutlineFont(), pos=(0.56, 0, 0.04)) crewLabel = DirectLabel(parent=self.crewLimit, relief=None, state=DGG.DISABLED, text=PLocalizer.Crew, text_scale=0.036, text_align=TextNode.ACenter, text_pos=(0.0, 0.2), text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1)) self.crewLabel = crewLabel shipOV = base.cr.getOwnerView(self.shipId) if shipOV: self.setShipName(shipOV.name) self.setShipClass(shipOV.shipClass) self.setShipHp(shipOV.Hp, shipOV.maxHp) self.setShipSp(shipOV.Sp, shipOV.maxSp) self.setShipCrew(shipOV.crew, shipOV.maxCrew) self.setShipCargo([], shipOV.maxCargo) if hasattr(shipOV, 'cannonConfig'): self.setShipMaxCannons(shipOV.cannonConfig) self.setShipMaxBroadside(shipOV.lBroadsideConfig, shipOV.rBroadsideConfig) self.updateIcons() if self.emptyBottle: self.hpMeter.hide() self.speedMeter.hide() self.plunderLimit.hide() self.cannonLimit.hide() self.broadsideLimit.hide() self.crewLimit.hide() self.accept('setName-%s' % self.shipId, self.setShipName) self.accept('setShipClass-%s' % self.shipId, self.setShipClass) self.accept('setShipHp-%s' % self.shipId, self.setShipHp) self.accept('setShipSp-%s' % self.shipId, self.setShipSp) self.accept('setShipCargo-%s' % self.shipId, self.setShipCargo) self.accept('setShipCrew-%s' % self.shipId, self.setShipCrew) self.accept('setShipTimer-%s' % self.shipId, self.setShipTimer) self.accept('setHullCannonConfig-%s' % self.shipId, self.setShipMaxCannons) self.accept('setHullLeftBroadsideConfig-%s' % self.shipId, self.setShipMaxLeftBroadside) self.accept('setHullRightBroadsideConfig-%s' % self.shipId, self.setShipMaxRightBroadside) self.accept('ShipChanged-%s' % self.shipId, self.handleShipChanged) if base.config.GetBool('want-deploy-button', 0): pass return
def __init__(self, parent = None, type = PiratesGuiGlobals.REWARD_PANEL_BLACK_PEARL, doneCallback = None, **kw): optiondefs = (('pad', (0.55000000000000004, 0.47499999999999998), self.resetFrameSize), ('pos', (0.40000000000000002, 0, 0), None)) self.defineoptions(kw, optiondefs) PDialog.__init__(self, parent) self.type = type if doneCallback: self.doneCallback = doneCallback else: self.doneCallback = self.cleanup self.showWeaponsTrack = None skillIcons = loader.loadModel('models/textureCards/skillIcons') weaponIcons = loader.loadModel('models/gui/gui_icons_weapon') isWeapon = TextDict[type]['isWeapon'] if isWeapon: background = skillIcons.find('**/box_base_over') background.setTransparency(0.5) icon = weaponIcons.find('**/' + TextDict[type]['icon']) icon.setScale(0.75) else: background = skillIcons.find('**/base_over') icon = skillIcons.find('**/' + TextDict[type]['icon']) icon.reparentTo(background) self.congratsText = DirectLabel(parent = self, relief = None, state = DGG.DISABLED, textMayChange = 1, text = PLocalizer.RewardCongratulations, text_font = PiratesGlobals.getInterfaceOutlineFont(), text_align = TextNode.ACenter, text_scale = 0.12, text_fg = PiratesGuiGlobals.TextFG1, pos = (0.0, 0, 0.34000000000000002)) self.completeText = DirectLabel(parent = self, relief = None, state = DGG.DISABLED, textMayChange = 1, text = TextDict[type]['title'], text_font = PiratesGlobals.getInterfaceOutlineFont(), text_align = TextNode.ACenter, text_scale = 0.050000000000000003, text_fg = PiratesGuiGlobals.TextFG2, pos = (0, 0, 0.26000000000000001)) self.iconLabel = DirectLabel(parent = self, relief = None, state = DGG.DISABLED, geom = background, geom_scale = 0.29999999999999999, text = TextDict[type]['summary'], text_font = PiratesGlobals.getInterfaceFont(), text_align = TextNode.ACenter, text_scale = 0.040000000000000001, text_fg = PiratesGuiGlobals.TextFG1, text_pos = (0, 0.20000000000000001), pos = (0, 0, -0.029999999999999999)) self.descriptionText = DirectLabel(parent = self, relief = None, state = DGG.DISABLED, textMayChange = 1, text = TextDict[type]['description'], text_font = PiratesGlobals.getInterfaceFont(), text_align = TextNode.ACenter, text_scale = 0.037999999999999999, text_fg = PiratesGuiGlobals.TextFG1, pos = (0, 0, -0.26000000000000001)) self.nextButton = GuiButton.GuiButton(parent = self, state = DGG.NORMAL, text = PLocalizer.lOk, textMayChange = 1, text_scale = PiratesGuiGlobals.TextScaleMed, text_pos = (0, -0.01), pos = (0, 0, -0.5), command = self.doneCallback) self.borderFrame['borderScale'] = 1 self.setupCustomReward() self.initialiseoptions(RewardPanel) self.setScale(1.25)
def makeCheckbox(self, pos, text, command, initialState, extraArgs, levelText): charGui = loader.loadModel('models/gui/toplevel_gui') buttonImage = (charGui.find('**/generic_button'), charGui.find('**/generic_button'), charGui.find('**/generic_button'), charGui.find('**/generic_button')) geomCheck = [ charGui.find('**/generic_check'), charGui.find('**/generic_check'), charGui.find('**/generic_check'), None] c = DirectCheckButton(parent = self, relief = None, scale = 0.064000000000000001, boxBorder = 0.080000000000000002, boxRelief = None, boxImage = geomCheck, boxImageScale = 6, boxImageColor = VBase4(0, 1, 0, 1), pos = pos, text = text, text_fg = PiratesGuiGlobals.TextFG1, text_scale = 0.5, text_pos = (-2.3999999999999999, 0, -2.7999999999999998), text_align = TextNode.ALeft, text_font = PiratesGlobals.getInterfaceOutlineFont(), indicator_pos = (2.2000000000000002, 0, 0.14999999999999999), command = command, indicatorValue = initialState, extraArgs = extraArgs, text0_fg = PiratesGuiGlobals.TextFG1, text1_fg = PiratesGuiGlobals.TextFG1, text2_fg = PiratesGuiGlobals.TextFG1, text3_fg = PiratesGuiGlobals.TextFG1, text_shadow = PiratesGuiGlobals.TextShadow, image = buttonImage, image_pos = (0, 0, 0.14999999999999999), image_scale = (6, 1, 2.4500000000000002), state = DGG.DISABLED) l = DirectLabel(parent = c, text = levelText, text_font = PiratesGlobals.getInterfaceFont(), text_scale = 0.5, text_align = TextNode.ALeft, frameColor = (0.80000000000000004, 0.69999999999999996, 0.5, 1), pos = (-0.29999999999999999, 0, 0)) c.setIndicatorValue() del charGui return c
def __init__(self, shipPage, shipId, **kwargs): self.shipPage = shipPage self.emptyBottle = True self.setShipId(shipId) self.timer = None self.lBroadsideLimit = 0 self.rBroadsideLimit = 0 kwargs.setdefault("relief", None) kwargs.setdefault("frameSize", (0, self.Width, 0, self.Height)) DirectFrame.__init__(self, **None) self.initialiseoptions(ShipPanel) gui = loader.loadModel("models/gui/toplevel_gui") inventoryGui = loader.loadModel("models/gui/gui_icons_inventory") chestIcon = inventoryGui.find("**/pir_t_ico_trs_chest_01*") cannonIcon = gui.find("**/topgui_icon_ship_cannon_single") skillIcons = loader.loadModel("models/textureCards/skillIcons") broadsideId = InventoryType.CannonRoundShot ammoIconName = WeaponGlobals.getSkillIcon(broadsideId) broadsideIcon = skillIcons.find("**/%s" % ammoIconName) crewIcon = (gui.find("**/pir_t_gui_gen_friends_pirates"),) self.bottleFrame = ShipFrameBottle( parent=self, shipId=shipId, relief=None, state=DGG.DISABLED, pos=(0.074999999999999997, 0, 0.75), scale=0.83499999999999996, ) gui = loader.loadModel("models/gui/gui_ship_window") bottleImage = gui.find("**/ship_bottle") self.shipBottle = DirectLabel( parent=self.bottleFrame, relief=None, state=DGG.DISABLED, geom=bottleImage, geom_scale=0.29999999999999999, geom_pos=(0, 0, 0), pos=(0.5, 0, -0.0), ) self.nameLabel = DirectLabel( parent=self, relief=None, state=DGG.DISABLED, text=PLocalizer.makeHeadingString(PLocalizer.EmptyBottle, 2), text_fg=PiratesGuiGlobals.TextFG1, text_scale=PiratesGuiGlobals.TextScaleTitleSmall, text_align=TextNode.ACenter, text_shadow=(0, 0, 0, 1), text_wordwrap=30, textMayChange=1, text_font=PiratesGlobals.getPirateFont(), pos=(0.55000000000000004, 0, 1.22), ) self.classLabel = DirectLabel( parent=self, relief=None, state=DGG.DISABLED, text=PLocalizer.makeHeadingString(PLocalizer.EmptyBottleDesc, 1), text_scale=PiratesGuiGlobals.TextScaleMed, text_align=TextNode.ACenter, text_fg=PiratesGuiGlobals.TextFG2, text_shadow=(0, 0, 0, 1), text_wordwrap=30, textMayChange=1, text_font=PiratesGlobals.getInterfaceFont(), pos=(0.55000000000000004, 0, 1.1799999999999999), ) self.timer = PiratesTimer.PiratesTimer( showMinutes=True, mode=None, titleText="", titleFg="", infoText="", cancelText="", cancelCallback=None ) self.timer.setFontColor(PiratesGuiGlobals.TextFG2) self.timer.reparentTo(self) self.timer.setPos(0.45000000000000001, 0, 0.93999999999999995) self.timer.setScale(0.59999999999999998) self.timer.stash() self.hpMeter = DirectWaitBar( parent=self, relief=DGG.RAISED, state=DGG.DISABLED, range=1, value=0, frameColor=(0.0, 0.0, 0.0, 0.0), barColor=(0.10000000000000001, 0.69999999999999996, 0.10000000000000001, 1), frameSize=(0, 0.31, 0, 0.018599999999999998), text="", text_align=TextNode.ARight, text_scale=0.029999999999999999, text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1), text_pos=(0.29999999999999999, 0.029999999999999999), pos=(0.55000000000000004, 0.0, 0.45000000000000001), scale=1.2, ) hpLabel = DirectLabel( parent=self.hpMeter, relief=None, state=DGG.DISABLED, text=PLocalizer.HP, text_scale=0.029999999999999999, text_align=TextNode.ALeft, text_pos=(0.014999999999999999, 0.029999999999999999), text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1), ) self.speedMeter = DirectWaitBar( parent=self, relief=DGG.RAISED, state=DGG.DISABLED, range=1, value=0, frameColor=(0.0, 0.0, 0.0, 0.0), barColor=(0.69999999999999996, 0.69999999999999996, 0.10000000000000001, 1), frameSize=(0, 0.31, 0, 0.018599999999999998), text="", text_align=TextNode.ARight, text_scale=0.029999999999999999, text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1), text_pos=(0.29999999999999999, 0.029999999999999999), pos=(0.55000000000000004, 0.0, 0.34999999999999998), scale=1.2, ) speedLabel = DirectLabel( parent=self.speedMeter, relief=None, state=DGG.DISABLED, text=PLocalizer.Sails, text_scale=0.029999999999999999, text_align=TextNode.ALeft, text_pos=(0.014999999999999999, 0.029999999999999999), text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1), ) self.customHullLabel = DirectLabel( parent=self, relief=None, state=DGG.DISABLED, geom=chestIcon, geom_scale=0.14999999999999999, geom_pos=(0, 0, 0), text="", text_scale=0.044999999999999998, text_align=TextNode.ACenter, text_pos=(0, -0.070000000000000007), text_fg=PiratesGuiGlobals.TextFG1, text_shadow=(0, 0, 0, 1), textMayChange=1, text_font=PiratesGlobals.getInterfaceOutlineFont(), pos=(0.34999999999999998, 0, 0.68000000000000005), ) self.customHullLabel.hide() self.customRiggingLabel = DirectLabel( parent=self, relief=None, state=DGG.DISABLED, geom=chestIcon, geom_scale=0.14999999999999999, geom_pos=(0, 0, 0), text="", text_scale=0.044999999999999998, text_align=TextNode.ACenter, text_pos=(0, -0.070000000000000007), text_fg=PiratesGuiGlobals.TextFG1, text_shadow=(0, 0, 0, 1), textMayChange=1, text_font=PiratesGlobals.getInterfaceOutlineFont(), pos=(0.75, 0, 0.68000000000000005), ) self.customRiggingLabel.hide() textPos = (0.0, -0.16) self.plunderLimit = DirectLabel( parent=self, relief=None, state=DGG.DISABLED, geom=chestIcon, geom_scale=0.10000000000000001, geom_pos=(0, 0, -0.050000000000000003), text="", text_scale=0.044999999999999998, text_align=TextNode.ACenter, text_pos=textPos, text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1), textMayChange=1, text_font=PiratesGlobals.getInterfaceOutlineFont(), pos=(0.20000000000000001, 0, 0.20000000000000001), ) plunderLabel = DirectLabel( parent=self.plunderLimit, relief=None, state=DGG.DISABLED, text=PLocalizer.Cargo, text_scale=0.035999999999999997, text_align=TextNode.ACenter, text_pos=(0, 0.040000000000000001), text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1), ) self.cannonLimit = DirectLabel( parent=self, relief=None, state=DGG.DISABLED, geom=cannonIcon, geom_scale=0.45000000000000001, geom_pos=(0, 0, -0.050000000000000003), text="", text_scale=0.044999999999999998, text_align=TextNode.ACenter, text_pos=textPos, text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1), textMayChange=1, text_font=PiratesGlobals.getInterfaceOutlineFont(), pos=(0.37, 0, 0.20000000000000001), ) cannonLabel = DirectLabel( parent=self.cannonLimit, relief=None, state=DGG.DISABLED, text=PLocalizer.Cannon, text_scale=0.035999999999999997, text_align=TextNode.ACenter, text_pos=(0, 0.040000000000000001), text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1), ) self.cannonLabel = cannonLabel self.broadsideLimit = DirectLabel( parent=self, relief=None, state=DGG.DISABLED, geom=broadsideIcon, geom_scale=0.14999999999999999, geom_pos=(0, 0, -0.050000000000000003), text="", text_scale=0.044999999999999998, text_align=TextNode.ACenter, text_pos=textPos, text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1), textMayChange=1, text_font=PiratesGlobals.getInterfaceOutlineFont(), pos=(0.81000000000000005, 0, 0.20000000000000001), ) broadsideLabel = DirectLabel( parent=self.broadsideLimit, relief=None, state=DGG.DISABLED, text=PLocalizer.Broadsides, text_scale=0.035999999999999997, text_align=TextNode.ACenter, text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1), text_pos=(0.0, 0.040000000000000001), ) self.broadsideLabel = broadsideLabel self.crewLimit = DirectLabel( parent=self, relief=None, state=DGG.DISABLED, geom=crewIcon, geom_scale=0.40000000000000002, geom_pos=(0, 0, 0.10000000000000001), text="", text_scale=0.044999999999999998, text_align=TextNode.ACenter, text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1), textMayChange=1, text_font=PiratesGlobals.getInterfaceOutlineFont(), pos=(0.56000000000000005, 0, 0.040000000000000001), ) crewLabel = DirectLabel( parent=self.crewLimit, relief=None, state=DGG.DISABLED, text=PLocalizer.Crew, text_scale=0.035999999999999997, text_align=TextNode.ACenter, text_pos=(0.0, 0.20000000000000001), text_fg=(1, 1, 1, 1), text_shadow=(0, 0, 0, 1), ) self.crewLabel = crewLabel shipOV = base.cr.getOwnerView(self.shipId) if shipOV: self.setShipName(shipOV.name) self.setShipClass(shipOV.shipClass) self.setShipHp(shipOV.Hp, shipOV.maxHp) self.setShipSp(shipOV.Sp, shipOV.maxSp) self.setShipCrew(shipOV.crew, shipOV.maxCrew) self.setShipCargo([], shipOV.maxCargo) if hasattr(shipOV, "cannonConfig"): self.setShipMaxCannons(shipOV.cannonConfig) self.setShipMaxBroadside(shipOV.lBroadsideConfig, shipOV.rBroadsideConfig) self.updateIcons() if self.emptyBottle: self.hpMeter.hide() self.speedMeter.hide() self.plunderLimit.hide() self.cannonLimit.hide() self.broadsideLimit.hide() self.crewLimit.hide() self.accept("setName-%s" % self.shipId, self.setShipName) self.accept("setShipClass-%s" % self.shipId, self.setShipClass) self.accept("setShipHp-%s" % self.shipId, self.setShipHp) self.accept("setShipSp-%s" % self.shipId, self.setShipSp) self.accept("setShipCargo-%s" % self.shipId, self.setShipCargo) self.accept("setShipCrew-%s" % self.shipId, self.setShipCrew) self.accept("setShipTimer-%s" % self.shipId, self.setShipTimer) self.accept("setHullCannonConfig-%s" % self.shipId, self.setShipMaxCannons) self.accept("setHullLeftBroadsideConfig-%s" % self.shipId, self.setShipMaxLeftBroadside) self.accept("setHullRightBroadsideConfig-%s" % self.shipId, self.setShipMaxRightBroadside) self.accept("ShipChanged-%s" % self.shipId, self.handleShipChanged) if base.config.GetBool("want-deploy-button", 0): pass 1
def __init__(self, parent, **kw): optiondefs = (('relief', None, None), ) self.defineoptions(kw, optiondefs) DirectFrame.__init__(self, parent, **kw) self.initialiseoptions(RedeemCodeGUI) gui_main = loader.loadModel('models/gui/gui_main') topImage = gui_main.find('**/game_options_panel/top') topImage.setPos(0.52, 0, -0.15) gui_main.removeNode() self.artFrame = DirectFrame(parent=aspect2dp, relief=None, image=topImage, image_scale=(0.24, 0.24, 0.24), pos=(0.1, 0.0, -0.2)) self.artFrame.setBin('gui-fixed', 2) self.blackout = DirectFrame(parent=aspect2dp, state=DGG.NORMAL, frameSize=(-5, 5, -5, 5), frameColor=(0.0, 0.0, 0.0, 0.4), pos=(0.0, 0.0, 0.0)) self.enterCode = GuiButton.GuiButton(parent=self.artFrame, text=PLocalizer.lConfirm, pos=(0.385, 0.0, -0.025), command=self.confirmCode) self.cancelCode = GuiButton.GuiButton(parent=self.artFrame, text=PLocalizer.lCancel, pos=(0.65, 0.0, -0.025), command=self.hideCode) DirectLabel(parent=self.artFrame, relief=None, text=PLocalizer.ShopEnterCode, text_align=TextNode.ACenter, text_scale=PiratesGuiGlobals.TextScaleTitleSmall * 0.9, text_pos=(0.51, 0.335), text_fg=PiratesGuiGlobals.TextFG2, text_shadow=PiratesGuiGlobals.TextShadow, text_font=PiratesGlobals.getInterfaceOutlineFont(), textMayChange=0) DirectLabel(parent=self.artFrame, relief=None, text=PLocalizer.ShopCodeInst, text_align=TextNode.ACenter, text_scale=PiratesGuiGlobals.TextScaleLarge * 1.1, text_pos=(0.51, 0.25), text_fg=PiratesGuiGlobals.TextFG2, text_shadow=PiratesGuiGlobals.TextShadow, text_font=PiratesGlobals.getInterfaceOutlineFont(), textMayChange=0, text_wordwrap=12) self.codeInput = DirectEntry( parent=self.artFrame, relief=DGG.GROOVE, scale=PiratesGuiGlobals.TextScaleExtraLarge, pos=(0.52, 0, 0.06), borderWidth=PiratesGuiGlobals.BorderWidth, frameColor=(0.0, 0.0, 0.0, 1.0), text_align=TextNode.ACenter, width=15, numLines=1, focus=1, cursorKeys=1, text_fg=(1, 1, 1, 1), suppressKeys=1, suppressMouse=1, autoCapitalize=0, command=self.confirmCode) self.alertDialog = None self.accept('codeRedeemed', self.__handleCodeRedeem) return
def __init__(self, inventoryUIManager): self.inventoryUIManager = inventoryUIManager InventoryPage.InventoryPage.__init__(self) self.initialiseoptions(InventoryBagPage) self.containerList = [] self.containersToShowTrash = [] self.treasureTab = None self.isReady = 0 self.treasurePageReopen = 0 self.openedContainer = None self.redeemCodeGUI = None self.buttonSize = self.inventoryUIManager.standardButtonSize self.weaponBag = self.addContainer(InventoryUIWeaponContainer.InventoryUIWeaponContainer(self.inventoryUIManager, self.buttonSize * 6.0, self.buttonSize * 5.0, 6, 5, slotList = range(Locations.RANGE_WEAPONS[0], Locations.RANGE_WEAPONS[0] + 30))) self.clothingBag = self.addContainer(InventoryUIClothingContainer.InventoryUIClothingContainer(self.inventoryUIManager, self.buttonSize * 5.0, self.buttonSize * 7.0, 5, 7, slotList = range(Locations.RANGE_CLOTHES[0], Locations.RANGE_CLOTHES[0] + 35))) self.jewelryBag = self.addContainer(InventoryUIJewelryContainer.InventoryUIJewelryContainer(self.inventoryUIManager, self.buttonSize * 4.0, self.buttonSize * 7.0, 4, 7, slotList = range(Locations.RANGE_JEWELERY_AND_TATTOO[0], Locations.RANGE_JEWELERY_AND_TATTOO[0] + 28))) cardRange = range(UberDogGlobals.InventoryType.begin_Cards, UberDogGlobals.InventoryType.end_Cards) cardRange.reverse() self.potionBag = self.addContainer(InventoryUIConsumableContainerLocatable.InventoryUIConsumableContainerLocatable(self.inventoryUIManager, self.buttonSize * 6.0, self.buttonSize * 7.0, 6, 7, slotList = range(Locations.RANGE_CONSUMABLE[0], Locations.RANGE_CONSUMABLE[0] + 42))) self.ammoBag = self.addContainer(InventoryUIAmmoContainer.InventoryUIAmmoContainer(self.inventoryUIManager, self.buttonSize * 7.0, self.buttonSize * 6.0, maxCountX = 7, itemList = WeaponGlobals.getAllAmmoSkills()), showTrash = 0) self.materialBag = self.addContainer(InventoryUIMaterialContainer.InventoryUIMaterialContainer(self.inventoryUIManager, self.buttonSize * 7.0, self.buttonSize * 6.0, maxCountX = 7, itemList = WeaponGlobals.getAllAmmoSkills()), showTrash = 0) self.cardBag = self.addContainer(InventoryUICardContainer.InventoryUICardContainer(self.inventoryUIManager, self.buttonSize * 4.0, self.buttonSize * 13.0, 4, 13, minCountZ = 13, maxCountX = 4, itemList = cardRange), showTrash = 0) hotkeySlotStart = Locations.RANGE_EQUIP_WEAPONS[0] weaponKeySlotList = [] for weaponIndex in range(Locations.RANGE_EQUIP_WEAPONS[0], Locations.RANGE_EQUIP_WEAPONS[1] + 1): weaponKeySlotList.append(('F%s' % weaponIndex, 'f%s' % weaponIndex, weaponIndex)) weaponKeySlotList.append((PLocalizer.InventoryPageItemSlot, '', Locations.RANGE_EQUIP_ITEMS[0])) self.inventoryPanelHotkey = InventoryUIBeltGrid.InventoryUIBeltGrid(self.inventoryUIManager, self.buttonSize * float(len(weaponKeySlotList)), self.buttonSize, len(weaponKeySlotList), 1, weaponKeySlotList) self.inventoryPanelHotkey.setPos(0.42499999999999999 - 0.5 * self.inventoryPanelHotkey.sizeX, 0.0, 0.89500000000000002) self.inventoryPanelHotkey.reparentTo(self.weaponBag) self.inventoryPanelTrash = InventoryUITrashContainer.InventoryUITrashContainer(self.inventoryUIManager, self.buttonSize, self.buttonSize) self.inventoryPanelTrash.setup() self.inventoryPanelTrash.setPos(0.070000000000000007, 0.0, -0.029999999999999999) self.inventoryPanelTrash.reparentTo(self) self.inventoryPanelDrinker = InventoryUIDrinker.InventoryUIDrinker(self.inventoryUIManager, self.buttonSize, self.buttonSize) self.inventoryPanelDrinker.setup() self.inventoryPanelDrinker.setPos(0.29999999999999999, 0.0, -0.029999999999999999) self.inventoryPanelDrinker.reparentTo(self) self.inventoryPanelDressing = InventoryUIDressingContainer.InventoryUIDressingContainer(self.inventoryUIManager, self.buttonSize, self.buttonSize * 7.0, slotList = range(Locations.RANGE_EQUIP_CLOTHES[0], Locations.RANGE_EQUIP_CLOTHES[1] + 1)) self.inventoryPanelDressing.setPos(-0.22500000000000001, 0.0, -0.0) self.inventoryPanelDressing.reparentTo(self.clothingBag) self.inventoryPanelJewelryDressing = InventoryUIJewelryDressingContainer.InventoryUIJewelryDressingContainer(self.inventoryUIManager, self.buttonSize * 2.0, self.buttonSize * 4.0, slotList = range(Locations.RANGE_EQUIP_JEWELRY[0], Locations.RANGE_EQUIP_JEWELRY[1] + 1)) self.inventoryPanelJewelryDressing.setPos(-0.37, 0.0, 0.40999999999999998) self.inventoryPanelJewelryDressing.reparentTo(self.jewelryBag) self.inventoryPanelTattooDressing = InventoryUITattooDressingContainer.InventoryUITattooDressingContainer(self.inventoryUIManager, self.buttonSize * 2.0, self.buttonSize * 2.0, slotList = range(Locations.RANGE_EQUIP_TATTOO[0], Locations.RANGE_EQUIP_TATTOO[1] + 1)) self.inventoryPanelTattooDressing.setPos(-0.37, 0.0, 0.0) self.inventoryPanelTattooDressing.reparentTo(self.jewelryBag) self.inventoryPanelGold = InventoryUIGoldContainer.InventoryUIGoldContainer(self.inventoryUIManager, self.buttonSize, self.buttonSize) self.inventoryPanelGold.setPos(0.84999999999999998, 0.0, -0.029999999999999999) self.inventoryPanelGold.reparentTo(self) self.backTabParent = self.attachNewNode('backTabs') self.frontTabParent = self.attachNewNode('frontTab', sort = 2) self.tabBar = None self.tabCount = 0 for container in self.containerList: container.setPos(0.14000000000000001, 0.0, 0.44) container.setX(0.54000000000000004 - 0.5 * container.sizeX) container.setZ(1.2 - container.getTotalHeight()) container.reparentTo(self) self.weaponBag.setZ(0.20000000000000001) self.clothingBag.setPos(self.buttonSize * 2.0 + 0.029999999999999999, 0.0, 0.20000000000000001) self.jewelryBag.setPos(self.buttonSize * 3.0 + 0.040000000000000001, 0.0, 0.20999999999999999) self.ammoBag.setPos(self.buttonSize * 0.5 - 0.029999999999999999, 0.0, 0.248) self.cardBag.setPos(self.buttonSize * 1.5 - 0.02, 0.0, self.buttonSize * 2.0) Gui = loader.loadModel('models/gui/char_gui') buttonImage = (Gui.find('**/chargui_text_block_large'), Gui.find('**/chargui_text_block_large_down'), Gui.find('**/chargui_text_block_large_over'), Gui.find('**/chargui_text_block_large')) self.redeemCodeButton = DirectButton(parent = self, relief = None, image = buttonImage, image_scale = 0.45000000000000001, text = PLocalizer.InventoryRedeemCode, text_font = PiratesGlobals.getInterfaceOutlineFont(), text_align = TextNode.ACenter, text_pos = (0, -0.01), text_scale = PiratesGuiGlobals.TextScaleLarge, text_fg = PiratesGuiGlobals.TextFG2, text_shadow = PiratesGuiGlobals.TextShadow, pos = (0.68000000000000005, 0, 0.040000000000000001), command = self.showRedeemCodeGUI) self.redeemCodeButton.hide() self.faceCameraButton = DirectButton(parent = self, relief = None, image = buttonImage, image_scale = 0.45000000000000001, text = PLocalizer.InventoryFaceCamera, text_font = PiratesGlobals.getInterfaceOutlineFont(), text_align = TextNode.ACenter, text_pos = (0, -0.01), text_scale = PiratesGuiGlobals.TextScaleLarge, text_fg = PiratesGuiGlobals.TextFG2, text_shadow = PiratesGuiGlobals.TextShadow, pos = (0.37, 0, 0.040000000000000001), command = self.faceCamera) self.faceCameraButton.hide() self.notLoadedWarning = DirectLabel(parent = self, relief = DGG.SUNKEN, borderWidth = (0, 0), frameColor = (0.5, 0.14999999999999999, 0.050000000000000003, 1), text = PLocalizer.InventoryNotLoaded, text_align = TextNode.ALeft, text_font = PiratesGlobals.getInterfaceOutlineFont(), text_scale = 0.044999999999999998, text_fg = (1, 1, 1, 1), text_wordwrap = 20.0, state = DGG.DISABLED, pos = (0.10000000000000001, 0, 0.75)) self.accept('openingContainer', self.onOpen) self.acceptOnce('localPirate-created', self.askInventory) self.accept('pickedUpItem', self.onLocatable) self.invRequestId = None
def createHelpbox(self, args = None): if self.helpFrame: return None itemType = EconomyGlobals.getItemType(self.data[0]) if itemType <= ItemType.WAND or itemType == ItemType.POTION: itemId = self.data[0] self.helpFrame = DirectFrame(parent = aspect2d, relief = None, state = DGG.DISABLED, sortOrder = 1) detailGui = loader.loadModel('models/gui/gui_card_detail') topGui = loader.loadModel('models/gui/toplevel_gui') coinImage = topGui.find('**/treasure_w_coin*') self.SkillIcons = loader.loadModel('models/textureCards/skillIcons') self.BuffIcons = loader.loadModel('models/textureCards/buff_icons') border = self.SkillIcons.find('**/base') halfWidth = 0.29999999999999999 halfHeight = 0.20000000000000001 textScale = PiratesGuiGlobals.TextScaleMed titleScale = PiratesGuiGlobals.TextScaleTitleSmall titleNameScale = PiratesGuiGlobals.TextScaleExtraLarge subtitleScale = PiratesGuiGlobals.TextScaleMed iconScalar = 1.5 borderScaler = 0.25 splitHeight = 0.01 vMargin = 0.029999999999999999 runningVertPosition = 0.29999999999999999 runningSize = 0.0 labels = [] titleColor = PiratesGuiGlobals.TextFG6 itemColor = 'itemRed' rarity = ItemGlobals.getRarity(itemId) rarityText = PLocalizer.getItemRarityName(rarity) subtypeText = PLocalizer.getItemSubtypeName(ItemGlobals.getSubtype(itemId)) if rarity == ItemGlobals.CRUDE: titleColor = PiratesGuiGlobals.TextFG24 itemColor = 'itemBrown' elif rarity == ItemGlobals.COMMON: titleColor = PiratesGuiGlobals.TextFG13 itemColor = 'itemYellow' elif rarity == ItemGlobals.RARE: titleColor = PiratesGuiGlobals.TextFG4 itemColor = 'itemGreen' elif rarity == ItemGlobals.FAMED: titleColor = PiratesGuiGlobals.TextFG5 itemColor = 'itemBlue' titleLabel = DirectLabel(parent = self, relief = None, text = PLocalizer.getItemName(itemId), text_scale = titleNameScale, text_fg = titleColor, text_shadow = PiratesGuiGlobals.TextShadow, text_align = TextNode.ACenter, pos = (0.0, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) self.bg.setColor(titleColor) tHeight = 0.070000000000000007 titleLabel.setZ(runningVertPosition) runningVertPosition -= tHeight runningSize += tHeight labels.append(titleLabel) subtitleLabel = DirectLabel(parent = self, relief = None, text = '\x01slant\x01%s %s\x02' % (rarityText, subtypeText), text_scale = subtitleScale, text_fg = PiratesGuiGlobals.TextFG2, text_shadow = PiratesGuiGlobals.TextShadow, text_align = TextNode.ACenter, pos = (0.0, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) subtHeight = 0.050000000000000003 subtitleLabel.setZ(subtHeight * 0.5 + runningVertPosition) runningVertPosition -= subtHeight runningSize += subtHeight labels.append(subtitleLabel) itemType = ItemGlobals.getType(itemId) itemSubtype = ItemGlobals.getSubtype(itemId) model = ItemGlobals.getModel(itemId) if model: if itemType == ItemGlobals.GRENADE: self.realItem = loader.loadModel('models/ammunition/' + model) elif itemType == ItemGlobals.POTION: self.realItem = loader.loadModel('models/inventory/' + model) else: self.realItem = loader.loadModel('models/handheld/' + model) if self.realItem: spinBlur = self.realItem.find('**/motion_blur') if spinBlur: spinBlur.hide() if itemSubtype == ItemGlobals.MUSKET: bayonetPart = self.realItem.find('**/bayonet') if bayonetPart: bayonetPart.stash() posHpr = ItemGlobals.getModelPosHpr(model) if posHpr: self.realItem.setPos(posHpr[0], posHpr[1], posHpr[2]) self.realItem.setHpr(posHpr[3], posHpr[4], posHpr[5]) elif itemType == ItemGlobals.SWORD: self.realItem.setPos(-1.5, 3.0, -0.29999999999999999) self.realItem.setHpr(90, 170, -90) elif itemSubtype in (ItemGlobals.MUSKET, ItemGlobals.BAYONET): self.realItem.setPos(-1.2, 3.0, -0.10000000000000001) self.realItem.setHpr(0, 135, 10) elif itemSubtype == ItemGlobals.BLUNDERBUSS: self.realItem.setPos(-0.29999999999999999, 2.0, 0.0) self.realItem.setHpr(0, 90, 0) elif itemType == ItemGlobals.GUN: self.realItem.setPos(-0.5, 2.0, -0.20000000000000001) self.realItem.setHpr(0, 90, 0) elif itemType == ItemGlobals.DOLL: self.realItem.setPos(0.0, 1.8999999999999999, -0.10000000000000001) self.realItem.setHpr(0, 90, 180) elif itemType == ItemGlobals.DAGGER: self.realItem.setPos(-1.0, 2.0, -0.29999999999999999) self.realItem.setHpr(90, 170, -90) elif itemType == ItemGlobals.GRENADE: self.realItem.setPos(0.0, 3.5, -0.20000000000000001) self.realItem.setHpr(0, 0, 0) elif itemType == ItemGlobals.STAFF: self.realItem.setPos(-0.40000000000000002, 3.0, -0.29999999999999999) self.realItem.setHpr(-90, 15, -90) elif itemSubtype == ItemGlobals.RAM: self.realItem.setPos(-1.5, 1.5, -0.59999999999999998) self.realItem.setHpr(70, 160, -90) elif itemType == ItemGlobals.POTION: self.realItem.setPos(0.0, 2.5, -0.40000000000000002) self.realItem.setHpr(45, 0, 0) else: self.realItem.setPos(0.0, 1.5, -0.059999999999999998) self.realItem.setHpr(0, 90, 0) self.realItem.reparentTo(self.portraitSceneGraph) iHeight = 0.17499999999999999 self.createBuffer() self.itemCard.setZ(runningVertPosition - 0.059999999999999998) runningVertPosition -= iHeight runningSize += iHeight labels.append(self.itemCard) goldLabel = DirectLabel(parent = self, relief = None, image = coinImage, image_scale = 0.12, image_pos = Vec3(0.025000000000000001, 0, -0.02), text = str(int(ItemGlobals.getGoldCost(itemId) * ItemGlobals.GOLD_SALE_MULTIPLIER)), text_scale = subtitleScale, text_align = TextNode.ARight, text_fg = PiratesGuiGlobals.TextFG1, text_shadow = PiratesGuiGlobals.TextShadow, pos = (halfWidth - 0.050000000000000003, 0.0, runningVertPosition + 0.080000000000000002), text_pos = (0.0, -textScale)) labels.append(goldLabel) infoText = PLocalizer.ItemAttackStrength % '\x01%s\x01%s\x02' % (itemColor, ItemGlobals.getPower(itemId)) if itemType == ItemGlobals.GUN: infoText += ' %s' % PLocalizer.ItemBarrels % '\x01%s\x01%s\x02' % (itemColor, ItemGlobals.getBarrels(itemId)) infoText += ' %s' % PLocalizer.ItemRangeStrength % '\x01%s\x01%s\x02' % (itemColor, PLocalizer.getItemRangeName(WeaponGlobals.getRange(itemId))) if itemType != ItemGlobals.POTION: infoLabel = DirectLabel(parent = self, relief = None, text = infoText, text_scale = textScale, text_align = TextNode.ACenter, pos = (0.0, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) iHeight = 0.080000000000000002 runningVertPosition -= iHeight runningSize += iHeight labels.append(infoLabel) specialAttack = None if itemType != ItemGlobals.POTION: specialAttack = ItemGlobals.getSpecialAttack(itemId) if specialAttack: attackIcon = self.SkillIcons.find('**/%s' % WeaponGlobals.getSkillIcon(specialAttack)) specialAttackNameLabel = DirectLabel(parent = self, relief = None, image = border, image_scale = 0.10000000000000001, geom = attackIcon, geom_scale = 0.10000000000000001, image_pos = (-0.070000000000000007, 0.0, -0.050000000000000003), geom_pos = (-0.070000000000000007, 0.0, -0.050000000000000003), text = PLocalizer.getInventoryTypeName(specialAttack), text_scale = PiratesGuiGlobals.TextScaleLarge, text_wordwrap = halfWidth * 2.0 * (0.90000000000000002 / titleScale), text_align = TextNode.ALeft, text_fg = titleColor, text_font = PiratesGlobals.getInterfaceOutlineFont(), text_shadow = PiratesGuiGlobals.TextShadow, pos = (-halfWidth + 0.12 + textScale * 0.5, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) specialAttackRankLabel = DirectLabel(parent = self, relief = None, text = PLocalizer.ItemRank % ItemGlobals.getSpecialAttackRank(itemId), text_scale = textScale, text_wordwrap = halfWidth * 2.0 * (0.90000000000000002 / titleScale), text_align = TextNode.ARight, pos = (halfWidth - textScale * 0.5, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) specialAttackType = WeaponGlobals.getSkillTrack(specialAttack) if specialAttackType == WeaponGlobals.BREAK_ATTACK_SKILL_INDEX: specialAttackTypeText = PLocalizer.BreakAttackSkill elif specialAttackType == WeaponGlobals.DEFENSE_SKILL_INDEX: specialAttackTypeText = PLocalizer.DefenseSkill else: specialAttackTypeText = PLocalizer.WeaponSkill specialAttackTypeLabel = DirectLabel(parent = self, relief = None, text = specialAttackTypeText, text_scale = 0.033500000000000002, text_wordwrap = halfWidth * 2.7999999999999998 * (0.90000000000000002 / titleScale), text_align = TextNode.ALeft, pos = (-halfWidth + 0.12 + textScale * 0.5, 0.0, runningVertPosition - PiratesGuiGlobals.TextScaleLarge), text_pos = (0.0, -textScale)) specialAttackInfo = PLocalizer.SkillDescriptions.get(specialAttack) specialAttackDescriptionText = specialAttackInfo[1] specialAttackDescriptionLabel = DirectLabel(parent = self, relief = None, text = specialAttackDescriptionText, text_scale = textScale, text_wordwrap = halfWidth * 2.7999999999999998 * (0.90000000000000002 / titleScale), text_align = TextNode.ALeft, pos = (-halfWidth + 0.12 + textScale * 0.5, 0.0, runningVertPosition - specialAttackNameLabel.getHeight() + specialAttackTypeLabel.getHeight() - 0.059999999999999998), text_pos = (0.0, -textScale)) saHeight = specialAttackNameLabel.getHeight() + specialAttackTypeLabel.getHeight() + specialAttackDescriptionLabel.getHeight() - 0.040000000000000001 runningVertPosition -= saHeight runningSize += saHeight labels.append(specialAttackNameLabel) labels.append(specialAttackRankLabel) labels.append(specialAttackTypeLabel) labels.append(specialAttackDescriptionLabel) attributes = ItemGlobals.getAttributes(itemId) for i in range(0, len(attributes)): attributeIcon = self.SkillIcons.find('**/%s' % ItemGlobals.getAttributeIcon(attributes[i][0])) if not attributeIcon: attributeIcon = self.BuffIcons.find('**/%s' % ItemGlobals.getAttributeIcon(attributes[i][0])) attributeNameLabel = DirectLabel(parent = self, relief = None, image = border, image_scale = 0.050000000000000003, geom = attributeIcon, geom_scale = 0.050000000000000003, image_pos = (-0.070000000000000007, 0.0, -0.029999999999999999), geom_pos = (-0.070000000000000007, 0.0, -0.029999999999999999), text = PLocalizer.getItemAttributeName(attributes[i][0]), text_scale = PiratesGuiGlobals.TextScaleLarge, text_wordwrap = halfWidth * 2.0 * (0.90000000000000002 / titleScale), text_align = TextNode.ALeft, text_fg = titleColor, text_font = PiratesGlobals.getInterfaceOutlineFont(), text_shadow = PiratesGuiGlobals.TextShadow, pos = (-halfWidth + 0.12 + textScale * 0.5, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) attributeRankLabel = DirectLabel(parent = self, relief = None, text = PLocalizer.ItemRank % attributes[i][1], text_scale = textScale, text_wordwrap = halfWidth * 2.0 * (0.90000000000000002 / titleScale), text_align = TextNode.ARight, pos = (halfWidth - textScale * 0.5, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) if attributeNameLabel.getHeight() > 0.074999999999999997: attributeNameSpace = 0.080000000000000002 else: attributeNameSpace = PiratesGuiGlobals.TextScaleLarge attributeDescriptionLabel = DirectLabel(parent = self, relief = None, text = PLocalizer.getItemAttributeDescription(attributes[i][0]), text_scale = textScale, text_wordwrap = halfWidth * 2.7999999999999998 * (0.90000000000000002 / titleScale), text_align = TextNode.ALeft, pos = (-halfWidth + 0.12 + textScale * 0.5, 0.0, runningVertPosition - attributeNameSpace), text_pos = (0.0, -textScale)) aHeight = attributeNameLabel.getHeight() + attributeDescriptionLabel.getHeight() runningVertPosition -= aHeight + splitHeight runningSize += aHeight + splitHeight labels.append(attributeNameLabel) labels.append(attributeRankLabel) labels.append(attributeDescriptionLabel) skillBoosts = ItemGlobals.getSkillBoosts(itemId) for i in range(0, len(skillBoosts)): boostIcon = self.SkillIcons.find('**/%s' % WeaponGlobals.getSkillIcon(skillBoosts[i][0])) boostNameLabel = DirectLabel(parent = self, relief = None, image = border, image_scale = 0.050000000000000003, geom = boostIcon, geom_scale = 0.050000000000000003, image_pos = (-0.070000000000000007, 0.0, -0.029999999999999999), geom_pos = (-0.070000000000000007, 0.0, -0.029999999999999999), text = PLocalizer.ItemBoost % PLocalizer.getInventoryTypeName(skillBoosts[i][0]), text_scale = textScale, text_wordwrap = halfWidth * 2.0 * (0.90000000000000002 / titleScale), text_align = TextNode.ALeft, pos = (-halfWidth + 0.12 + textScale * 0.5, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) boostRankLabel = DirectLabel(parent = self, relief = None, text = '+%s' % str(skillBoosts[i][1]), text_scale = textScale, text_wordwrap = halfWidth * 2.0 * (0.90000000000000002 / titleScale), text_align = TextNode.ARight, pos = (halfWidth - textScale * 0.5, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) bHeight = boostNameLabel.getHeight() runningVertPosition -= bHeight + splitHeight runningSize += bHeight + splitHeight labels.append(boostNameLabel) labels.append(boostRankLabel) description = PLocalizer.getItemFlavorText(itemId) if description != '': descriptionLabel = DirectLabel(parent = self, relief = None, text = description, text_scale = textScale, text_wordwrap = halfWidth * 2.0 * (0.94999999999999996 / textScale), text_align = TextNode.ALeft, pos = (-halfWidth + textScale * 0.5, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) dHeight = descriptionLabel.getHeight() + 0.02 runningVertPosition -= dHeight runningSize += dHeight labels.append(descriptionLabel) inv = localAvatar.getInventory() weaponLevel = 0 weaponRepId = WeaponGlobals.getRepId(itemId) weaponRep = inv.getReputation(weaponRepId) weaponReq = ItemGlobals.getWeaponRequirement(itemId) weaponText = None trainingToken = EconomyGlobals.getItemTrainingReq(itemId) trainingAmt = inv.getItemQuantity(trainingToken) if weaponReq: weaponLevel = ReputationGlobals.getLevelFromTotalReputation(weaponRepId, weaponRep)[0] if weaponLevel < weaponReq: weaponColor = PiratesGuiGlobals.TextFG6 else: weaponColor = (0.40000000000000002, 0.40000000000000002, 0.40000000000000002, 1.0) weaponText = PLocalizer.ItemLevelRequirement % (weaponReq, PLocalizer.getItemTypeName(itemType)) elif trainingAmt == 0: weaponColor = PiratesGuiGlobals.TextFG6 weaponText = PLocalizer.ItemTrainingRequirement % PLocalizer.getItemTypeName(itemType) if trainingAmt == 0: if itemType == ItemGlobals.GUN: base.localAvatar.sendRequestContext(InventoryType.GunTrainingRequired) elif itemType == ItemGlobals.DOLL: base.localAvatar.sendRequestContext(InventoryType.DollTrainingRequired) elif itemType == ItemGlobals.DAGGER: base.localAvatar.sendRequestContext(InventoryType.DaggerTrainingRequired) elif itemType == ItemGlobals.STAFF: base.localAvatar.sendRequestContext(InventoryType.StaffTrainingRequired) if weaponText: weaponReqLabel = DirectLabel(parent = self, relief = None, text = weaponText, text_scale = textScale, text_wordwrap = halfWidth * 2.0 * (1.5 / titleScale), text_fg = weaponColor, text_shadow = PiratesGuiGlobals.TextShadow, text_align = TextNode.ACenter, pos = (0.0, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) wHeight = weaponReqLabel.getHeight() runningVertPosition -= wHeight runningSize += wHeight labels.append(weaponReqLabel) if not Freebooter.getPaidStatus(localAvatar.getDoId()): if rarity != ItemGlobals.CRUDE: unlimitedLabel = DirectLabel(parent = self, relief = None, text = PLocalizer.UnlimitedAccessRequirement, text_scale = textScale, text_wordwrap = halfWidth * 2.0 * (1.5 / titleScale), text_fg = PiratesGuiGlobals.TextFG6, text_shadow = PiratesGuiGlobals.TextShadow, text_align = TextNode.ACenter, pos = (0.0, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) uHeight = unlimitedLabel.getHeight() runningVertPosition -= uHeight runningSize += uHeight labels.append(unlimitedLabel) runningVertPosition -= 0.02 runningSize += 0.02 panels = self.helpFrame.attachNewNode('panels') topPanel = panels.attachNewNode('middlePanel') detailGui.find('**/top_panel').copyTo(topPanel) topPanel.setScale(0.080000000000000002) topPanel.reparentTo(self.helpFrame) middlePanel = panels.attachNewNode('middlePanel') detailGui.find('**/middle_panel').copyTo(middlePanel) middlePanel.setScale(0.080000000000000002) middlePanel.reparentTo(self.helpFrame) placement = 0 i = 0 heightMax = -0.080000000000000002 currentHeight = runningVertPosition while currentHeight < heightMax: middlePanel = panels.attachNewNode('middlePanel%s' % 1) detailGui.find('**/middle_panel').copyTo(middlePanel) middlePanel.setScale(0.080000000000000002) middlePanel.reparentTo(self.helpFrame) if currentHeight + 0.20000000000000001 >= heightMax: difference = heightMax - currentHeight placement += (0.16800000000000001 / 0.20000000000000001) * difference currentHeight += difference else: placement += 0.16800000000000001 currentHeight += 0.20000000000000001 middlePanel.setZ(-placement) i += 1 bottomPanel = panels.attachNewNode('bottomPanel') detailGui.find('**/bottom_panel').copyTo(bottomPanel) bottomPanel.setScale(0.080000000000000002) bottomPanel.setZ(-placement) bottomPanel.reparentTo(self.helpFrame) colorPanel = panels.attachNewNode('colorPanel') detailGui.find('**/color').copyTo(colorPanel) colorPanel.setScale(0.080000000000000002) colorPanel.setColor(titleColor) colorPanel.reparentTo(self.helpFrame) lineBreakTopPanel = panels.attachNewNode('lineBreakTopPanel') detailGui.find('**/line_break_top').copyTo(lineBreakTopPanel) lineBreakTopPanel.setScale(0.080000000000000002, 0.080000000000000002, 0.070000000000000007) lineBreakTopPanel.setZ(0.0080000000000000002) lineBreakTopPanel.reparentTo(self.helpFrame) if itemType != ItemGlobals.POTION: lineBreakBottomPanel = panels.attachNewNode('lineBreakBottomPanel') detailGui.find('**/line_break_bottom').copyTo(lineBreakBottomPanel) lineBreakBottomPanel.setScale(0.080000000000000002, 0.080000000000000002, 0.070000000000000007) lineBreakBottomPanel.setZ(-0.014999999999999999) lineBreakBottomPanel.reparentTo(self.helpFrame) panels.flattenStrong() self.helpFrame['frameSize'] = (-halfWidth, halfWidth, -(runningSize + vMargin), vMargin) totalHeight = self.helpFrame.getHeight() - 0.10000000000000001 for label in labels: label.reparentTo(self.helpFrame) self.helpFrame.setBin('gui-popup', 0) self.helpFrame.setPos(self, 0.55000000000000004, 0, -0.29999999999999999) zOffset = -0.5 - self.helpFrame.getPos(aspect2d)[2] if zOffset >= 0.0: self.helpFrame.setPos(self, 0.55000000000000004, 0, zOffset - 0.29999999999999999) else: weaponInfo = PLocalizer.WeaponDescriptions.get(self.data[0]) weaponDesc = weaponInfo self.helpText = DirectFrame(parent = self, relief = None, text = weaponDesc, state = DGG.DISABLED, text_align = TextNode.ALeft, text_scale = PiratesGuiGlobals.TextScaleSmall, text_fg = PiratesGuiGlobals.TextFG2, text_wordwrap = 13, textMayChange = 0, sortOrder = 91) height = -self.helpText.getHeight() self.helpFrame = BorderFrame(parent = aspect2d, state = DGG.DISABLED, frameSize = (-0.029999999999999999, 0.42999999999999999, height, 0.050000000000000003), sortOrder = 90, borderScale = 0.20000000000000001) self.helpText.reparentTo(self.helpFrame) self.helpFrame.setBin('gui-popup', 0) self.helpFrame.setPos(self, 0.25, 0, -0.035000000000000003)
def __init__(self, chatManager, whiteListEntry): optiondefs = (('relief', None, None), ('state', DGG.NORMAL, self.setState), ('frameSize', (0, 0.90000000000000002, 0, 0.59999999999999998), None), ('frameColor', (1, 0, 1, 0.20000000000000001), None)) self.defineoptions({ }, optiondefs) DirectFrame.__init__(self, parent = NodePath()) self.initialiseoptions(ChatPanel) FSM.__init__(self, 'ChatPanel') base.chatPanel = self self.chatManager = chatManager self.index = 0 self.runningLineCount = 0 self.runningLineCountLastId = -1 self.lineCountList = [ 0] self.wrappedText = [] self.chatFont = PiratesGlobals.getInterfaceFont() self.nameFont = PiratesGlobals.getInterfaceFont() self.shadowOffset = (0.089999999999999997, 0.089999999999999997) self.shadowColor = (0.0, 0.0, 0.0, 1.0) self.fontColorStyle = 1 if base.config.GetBool('want-random-chatStyle', 0): self.chatFont = random.choice([ PiratesGlobals.getInterfaceFont(), PiratesGlobals.getInterfaceOutlineFont()]) self.nameFont = random.choice([ PiratesGlobals.getInterfaceFont(), PiratesGlobals.getInterfaceOutlineFont()]) self.shadowOffset = random.choice([ (0.089999999999999997, 0.089999999999999997), (0.0, 0.0)]) self.fontColorStyle = random.choice([ 0, 1, 2]) self.lineDict = { } self.renderedLineDict = { } self.renderedLines = [] self.wordWrapper = TextNode('wrapper') self.wordWrapper.setFont(self.chatFont) self.wordWrapper.setWordwrap(self.WrapWidth) self.wordWrapper.setTabWidth(1.0) self.fadeIval = None self.fadeTextIval = None self.preferredMode = 'Short' self.linesShown = True self.holdLinesShown = None self.wantSmallFont = 0 self.currentFontSize = self.TextScale self.currentWordWrap = self.WrapWidth self.resizeDelayTaskName = 'ChatPanel_Resize' self.sCloseButton = None self.tCloseButton = None self.minButton = None self.maxButton = None self.setupGui() self.chatBar = ChatBar(parent = self, chatMgr = chatManager, whiteListEntry = whiteListEntry) self.setBoxWidth(base.options.chatbox_scale) self.checkEmotes() self.needSlider = 0 self.reparentTo(base.a2dBottomLeft) self.accept('NewOpenMessage', self._ChatPanel__handleOpenMessage) self.accept('SetChatBoxWidth', self.setBoxWidth) self.accept('SetChatBoxStyle', self.setChatStyle) self.accept('GUIHidden', self._ChatPanel__handleGlobalGuiHide) self.accept('GUIShown', self._ChatPanel__handleGlobalGuiShow)
def _createIface(self): self.descText = DirectLabel(parent = self, relief = None, text = self.item.get('Text'), text_align = TextNode.ALeft, text_scale = 0.050000000000000003, text_fg = PiratesGuiGlobals.TextFG2, text_shadow = PiratesGuiGlobals.TextShadow, textMayChange = 1, pos = (0.02, 0, self.height / 2), text_font = PiratesGlobals.getInterfaceOutlineFont()) self.valueText = DirectLabel(parent = self, relief = None, text = str(self.item.get('Value1')), text_align = TextNode.ALeft, text_scale = 0.050000000000000003, text_fg = PiratesGuiGlobals.TextFG2, text_shadow = PiratesGuiGlobals.TextShadow, textMayChange = 1, pos = (self.width * 0.65000000000000002, 0, self.height / 2), text_font = PiratesGlobals.getInterfaceOutlineFont()) if self.item.get('Type') == 'Title': self.descText['text_scale'] = 0.055 self.descText['text_fg'] = PiratesGuiGlobals.TextFG1 self.descText['text_font'] = PiratesGlobals.getInterfaceOutlineFont() self.valueText['text_scale'] = 0.044999999999999998 self.valueText['text_font'] = PiratesGlobals.getInterfaceOutlineFont() if self.item.has_key('Value2'): self.valueText2 = DirectLabel(parent = self, relief = None, text = str(self.item.get('Value2')), text_align = TextNode.ALeft, text_scale = 0.050000000000000003, text_fg = PiratesGuiGlobals.TextFG2, text_shadow = PiratesGuiGlobals.TextShadow, textMayChange = 1, pos = (self.width * 0.80000000000000004, 0, self.height / 2), text_font = PiratesGlobals.getInterfaceOutlineFont()) if self.valueText2: self.valueText2['text_scale'] = 0.044999999999999998 self.valueText2['text_font'] = PiratesGlobals.getInterfaceOutlineFont() elif self.item.get('Type') == 'Entry': self.descText['text_pos'] = (self.width * 0.059999999999999998, 0, 0) if self.item.has_key('Value2'): self.valueText2 = DirectLabel(parent = self, relief = None, text = str(self.item.get('Value2')), text_align = TextNode.ALeft, text_scale = 0.050000000000000003, text_fg = PiratesGuiGlobals.TextFG2, text_shadow = PiratesGuiGlobals.TextShadow, textMayChange = 1, pos = (self.width * 0.80000000000000004, 0, self.height / 2), text_font = PiratesGlobals.getInterfaceOutlineFont()) elif self.item.get('Type') == 'Space': self.descText['text_scale'] = 0.02 self.descText['text'] = ' ' self.valueText['text_scale'] = 0.02 self.valueText['text'] = ' ' elif self.item.get('Type') == 'Button': self.descText['text_pos'] = (self.width * 0.059999999999999998, 0, 0) self.valueText['text'] = ' ' self.button = DirectButton(parent = self, relief = DGG.RIDGE, text = self.item.get('Text'), text_align = TextNode.ALeft, text_scale = PiratesGuiGlobals.TextScaleLarge, text_fg = PiratesGuiGlobals.TextFG1, text_shadow = PiratesGuiGlobals.TextShadow, frameColor = PiratesGuiGlobals.ButtonColor1, command = self.item.get('Value2'), pos = (self.width * 0.65000000000000002, 0, self.height / 2), borderWidth = (0.01, 0.01), pad = (0.0050000000000000001, 0.0050000000000000001), textMayChange = 1) if self.item.get('State') == 'off': self.button['state'] = DGG.DISABLED self.button['text_fg'] = PiratesGuiGlobals.TextFG3 elif self.item.get('State') == 'oneShot': self.button.bind(DGG.B1RELEASE, self.disableButton) elif self.item.get('Type') == 'Cargo': itemId = self.item.get('Value1') iconId = EconomyGlobals.getCargoCategory(itemId) if not iconId: self.notify.error('Invalid Item in Cargo! item: %s' % (self.item,)) icon = self.icons.get(iconId) self.descText['geom'] = self.getCargoIcon(icon[0]) self.descText['geom_scale'] = 0.089999999999999997 * self.height * 10 self.descText['geom_pos'] = (0.050000000000000003, 0, 0.01) self.descText['text_pos'] = (0.23999999999999999, 0, 0) self.descText['text'] = icon[1] self.descText['text_fg'] = PiratesGuiGlobals.TextFG2 self.descText['text_font'] = PiratesGlobals.getInterfaceOutlineFont() self.descText['text_scale'] = 0.050000000000000003 * self.height * 10 self.descText.setTransparency(1) self.valueText['text'] = PLocalizer.UnknownGoldValue self.valueText['text_font'] = PiratesGlobals.getInterfaceOutlineFont() self.valueText['text_scale'] = 0.050000000000000003 * self.height * 10 icon = self.icons.get(ItemId.CARGO_CRATE) self.descText2 = DirectLabel(parent = self, relief = None, text = '?', text_align = TextNode.ACenter, text_scale = 0.050000000000000003 * self.height * 10, text_fg = PiratesGuiGlobals.TextFG2, text_shadow = PiratesGuiGlobals.TextShadow, textMayChange = 1, pos = (0.080000000000000002, 0, self.height / 2), geom = self.getCargoIcon(icon[0]), geom_scale = 0.089999999999999997 * self.height * 10, geom_pos = (0.10000000000000001, 0, 0.01), text_pos = (0.10000000000000001, 0, 0), geom_color = Vec4(0, 0, 0, 1), text_font = PiratesGlobals.getInterfaceOutlineFont()) elif self.item.get('Type') == 'Gold': amount = self.item.get('Value2') itemName = PLocalizer.LootGold % amount self.descText['geom'] = self.getGoldIcon() self.descText['geom_scale'] = 0.14999999999999999 * self.height * 10 self.descText['geom_pos'] = (0.050000000000000003, 0, 0.01) self.descText['text_pos'] = (0.23999999999999999, 0, 0) self.descText['text'] = itemName self.descText['text_fg'] = PiratesGuiGlobals.TextFG2 self.descText['text_font'] = PiratesGlobals.getInterfaceOutlineFont() self.descText['text_scale'] = 0.050000000000000003 * self.height * 10 self.descText.setTransparency(1) self.valueText['text'] = ' ' elif self.item.get('Type') == 'Weapon': itemId = self.item.get('Value1') itemName = PLocalizer.InventoryTypeNames.get(itemId) iconName = EconomyGlobals.getItemIcons(itemId) self.descText['geom'] = self.getWeaponIcon(iconName) self.descText['geom_scale'] = 0.089999999999999997 * self.height * 10 self.descText['geom_pos'] = (0.050000000000000003, 0, 0.01) self.descText['text_pos'] = (0.23999999999999999, 0, 0) self.descText['text'] = itemName self.descText['text_fg'] = PiratesGuiGlobals.TextFG2 self.descText['text_font'] = PiratesGlobals.getInterfaceOutlineFont() self.descText['text_scale'] = 0.050000000000000003 * self.height * 10 self.descText.setTransparency(1) self.valueText['text'] = ' ' elif self.item.get('Type') == 'Ammo': itemId = self.item.get('Value1') amount = self.item.get('Value2') itemName = '%s %s' % (amount, PLocalizer.InventoryTypeNames.get(itemId)) iconName = WeaponGlobals.getSkillIcon(itemId) self.descText['geom'] = self.getAmmoIcon(iconName) self.descText['geom_scale'] = 0.089999999999999997 * self.height * 10 self.descText['geom_pos'] = (0.050000000000000003, 0, 0.01) self.descText['text_pos'] = (0.23999999999999999, 0, 0) self.descText['text'] = itemName self.descText['text_fg'] = PiratesGuiGlobals.TextFG2 self.descText['text_font'] = PiratesGlobals.getInterfaceOutlineFont() self.descText['text_scale'] = 0.050000000000000003 * self.height * 10 self.descText.setTransparency(1) self.valueText['text'] = ' '
def __init__(self, background=1, extraArgs=[]): panelName = PLocalizer.LootPlundered StackMessage.__init__(self, text='', text_wordwrap=14, time=PiratesGuiGlobals.LootPopupTime, frameSize=(0, self.width, 0, -(self.height), 0)) self.initialiseoptions(LootPopupPanel) self.loot = [] self.titleLabel = DirectLabel( parent=self, relief=None, text=panelName, text_align=TextNode.ALeft, text_scale=PiratesGuiGlobals.TextScaleMed, text_fg=PiratesGuiGlobals.TextFG1, text_shadow=PiratesGuiGlobals.TextShadow, text_font=PiratesGlobals.getInterfaceOutlineFont(), textMayChange=1, text_wordwrap=14, sortOrder=21) if not LootPopupPanel.lootSfx: LootPopupPanel.lootSfx = loadSfx(SoundGlobals.SFX_GUI_LOOT) LootPopupPanel.lootSfx.setVolume(0.75) card = loader.loadModel('models/textureCards/icons') topgui = loader.loadModel('models/gui/toplevel_gui') inventoryGui = loader.loadModel('models/gui/gui_icons_inventory') LootPopupPanel.BountyTex = loader.loadModel( 'models/gui/avatar_chooser_rope').find('**/avatar_c_B_delete') LootPopupPanel.CoinTex = topgui.find('**/treasure_w_coin*') LootPopupPanel.CrateTex = topgui.find('**/icon_crate*') LootPopupPanel.ChestTex = card.find('**/icon_chest') LootPopupPanel.RoyalChestTex = card.find( '**/topgui_icon_ship_chest03*') LootPopupPanel.LootSacTex = inventoryGui.find( '**/pir_t_ico_trs_sack*') LootPopupPanel.LootChestTex = inventoryGui.find( '**/pir_t_ico_trs_chest_01*') LootPopupPanel.LootSkullChestTex = inventoryGui.find( '**/pir_t_ico_trs_chest_02*') LootPopupPanel.TreasureGui = loader.loadModel( 'models/gui/treasure_gui') LootPopupPanel.TailorGui = loader.loadModel( 'models/textureCards/tailorIcons') LootPopupPanel.JewelerIconsA = loader.loadModel( 'models/gui/char_gui') LootPopupPanel.JewelerIconsB = loader.loadModel( 'models/textureCards/shopIcons') LootPopupPanel.TattooIcons = loader.loadModel( 'models/textureCards/tattooIcons') LootPopupPanel.WeaponIcons = loader.loadModel( 'models/gui/gui_icons_weapon') if not background: self.frameParent.hide() self['relief'] = None self.titleLabel['relief'] = None self.icons = { ItemId.CARGO_CRATE: (LootPopupPanel.CrateTex, PLocalizer.Crate), ItemId.CARGO_CHEST: (LootPopupPanel.ChestTex, PLocalizer.Chest), ItemId.CARGO_SKCHEST: (LootPopupPanel.RoyalChestTex, PLocalizer.SkChest), ItemId.CARGO_LOOTSAC: (LootPopupPanel.LootSacTex, PLocalizer.Crate), ItemId.CARGO_LOOTCHEST: (LootPopupPanel.LootChestTex, PLocalizer.Chest), ItemId.CARGO_LOOTSKCHEST: (LootPopupPanel.LootSkullChestTex, PLocalizer.SkChest), ItemId.CARGO_SHIPUPGRADECHEST: (LootPopupPanel.LootChestTex, PLocalizer.Chest), ItemId.CARGO_SHIPUPGRADESKCHEST: (LootPopupPanel.LootSkullChestTex, PLocalizer.SkChest), ItemId.GOLD: (LootPopupPanel.CoinTex, PLocalizer.MoneyName), ItemId.BOUNTY: (LootPopupPanel.BountyTex, PLocalizer.PVPInfamySpendable) } self.titleLabel['text_scale'] = PiratesGuiGlobals.TextScaleLarge self.repackPanels()
def setup(self): self.buttonSize = self.manager.standardButtonSize self.grid = InventoryUIPlunderGridContainer.InventoryUIPlunderGridContainer(self.manager, self.buttonSize * 7, self.buttonSize * 3.0, 2, 3) self.grid.reparentTo(self) self.grid.setPos(self.sizeX * 0.5 - self.grid.sizeX * 0.40000000000000002, 0.0, 0.25) self.grid.setScale(0.80000000000000004) Gui = loader.loadModel('models/gui/char_gui') buttonImage = (Gui.find('**/chargui_text_block_large'), Gui.find('**/chargui_text_block_large_down'), Gui.find('**/chargui_text_block_large_over'), Gui.find('**/chargui_text_block_large')) self.takeAllButton = GuiButton.GuiButton(parent = self, relief = None, image = buttonImage, image_scale = 0.40000000000000002, text = PLocalizer.InventoryPlunderTakeAll, text_font = PiratesGlobals.getInterfaceOutlineFont(), text_align = TextNode.ACenter, text_pos = (0, -0.01), text_scale = PiratesGuiGlobals.TextScaleLarge, text_fg = PiratesGuiGlobals.TextFG2, text_shadow = PiratesGuiGlobals.TextShadow, pos = (self.sizeX * 0.80000000000000004, 0, 0.20000000000000001), helpText = PLocalizer.InventoryPlunderGiveNothingBack, helpPos = (0.10000000000000001, 0, -0.070000000000000007), helpOpaque = 1, helpDelay = 1.0, command = self.takeAllLoot) if self.takeAllButton.helpBox: self.takeAllButton.helpBox.setPos(0.29999999999999999, 0, -0.01) if self.itemsToTake: self.takeAllButton.hide() if self.timer: self.timerUI = DirectLabel(parent = self, relief = None, pos = (0.64000000000000001, 0, 0.20999999999999999), text = str(self.timer), text_align = TextNode.ACenter, text_font = PiratesGlobals.getInterfaceOutlineFont(), text_fg = PiratesGuiGlobals.TextFG1, text_shadow = PiratesGuiGlobals.TextShadow, text_scale = PiratesGuiGlobals.TextScaleTitleSmall, text_pos = (0.0, -0.02)) self.takeAllButton.setPos(Point3(0.82499999999999996, 0, 0.20000000000000001)) self.timerStart = globalClock.getRealTime() taskMgr.add(self._InventoryPlunderPanel__updateTimer, self.taskName('plunderPanelTimeUpdate')) maingui = loader.loadModel('models/gui/gui_main') box = (maingui.find('**/exit_button'), maingui.find('**/exit_button'), maingui.find('**/exit_button_over'), maingui.find('**/exit_button')) x = maingui.find('**/x2') titleText = PLocalizer.InventoryPlunderTitle % self.typeName text = PLocalizer.InventoryPlunderTitle % self.typeName if self.customName: titleText = self.customName self.titleLabel = DirectLabel(parent = self, relief = None, pos = (0.5, 0, 0.68000000000000005), text = titleText, text_align = TextNode.ACenter, text_font = PiratesGlobals.getInterfaceOutlineFont(), text_fg = PiratesGuiGlobals.TextFG1, text_shadow = PiratesGuiGlobals.TextShadow, text_scale = PiratesGuiGlobals.TextScaleTitleSmall, text_pos = (0.0, -0.02), image = maingui.find('**/gui_inv_treasure_loot_bg'), image_scale = (0.29999999999999999, 0.34999999999999998, 0.34999999999999998), image_pos = (0.040000000000000001, 0, 0)) self.closeButton = DirectButton(parent = self, relief = None, pos = (self.sizeX + 0.25, 0, self.sizeZ - 1.0800000000000001), image = box, image_scale = 0.5, geom = x, geom_scale = 0.25, geom_pos = (-0.32000000000000001, 0, 0.95799999999999996), command = self.manager.closePlunder) if self.autoShow: self.closeButton.hide() self.ratingLabel = DirectLabel(parent = self, relief = None, text = PLocalizer.InventoryPlunderRating, text_align = TextNode.ALeft, text_font = PiratesGlobals.getInterfaceFont(), text_fg = PiratesGuiGlobals.TextFG16, text_scale = PiratesGuiGlobals.TextScaleLarge, pos = (self.sizeX * 0.10000000000000001, 0, 0.20000000000000001)) if self.rating < 0: self.ratingLabel.hide() elif self.itemsToTake: if self.itemsToTake == 1: self.ratingLabel['text'] = PLocalizer.InventoryPlunderPickSingular else: self.ratingLabel['text'] = PLocalizer.InventoryPlunderPickPlural % self.itemsToTake else: toplevelgui = loader.loadModel('models/gui/toplevel_gui') rating = self.attachNewNode('rating') rating.setPos(self.sizeX * 0.34999999999999998, 0, 0.20999999999999999) for i in range(0, 5): skull = rating.attachNewNode('skull%s' % i) toplevelgui.find('**/pir_t_gui_gen_goldSkull').copyTo(skull) skull.setScale(0.20000000000000001) skull.setX(i * 0.050000000000000003) if i >= self.rating: skull.setColor(0, 0, 0, 0.25) continue rating.flattenStrong() self.setupPlunder(self.plunderList) self.accept('lootsystem-plunderContainer-Empty', self.checkAllContainers)
def showWeaponNotoriety(self): totalReputation = 0 inv = localAvatar.getInventory() level = localAvatar.getLevel() maxLevel = ReputationGlobals.GlobalLevelCap if level < maxLevel: textStr = PLocalizer.RewardNotorietyLessThanMax % (level, maxLevel) textScale = 0.05 labelY = 0.37 buttonY = 0.1 else: textStr = PLocalizer.RewardNotorietyAtMax % maxLevel textScale = 0.04 self.congratsText.show() labelY = 0.25 buttonY = 0.13 self.notorietyText = DirectLabel( parent=self, relief=None, state=DGG.DISABLED, textMayChange=1, text=textStr, text_font=PiratesGlobals.getInterfaceOutlineFont(), text_align=TextNode.ACenter, text_scale=textScale, text_fg=PiratesGuiGlobals.TextFG1, pos=(0, 0, labelY)) self.notorietyText.hide() if level < maxLevel: self.todoText = DirectLabel( parent=self, relief=None, state=DGG.DISABLED, textMayChange=1, text=PLocalizer.RewardTodo, text_font=PiratesGlobals.getInterfaceOutlineFont(), text_align=TextNode.ACenter, text_scale=0.035, text_fg=PiratesGuiGlobals.TextFG1, pos=(0, 0, 0.19)) self.todoText.hide() else: self.stayTunedText = DirectLabel( parent=self, relief=None, state=DGG.DISABLED, textMayChange=1, text=PLocalizer.RewardStayTuned, text_font=PiratesGlobals.getInterfaceOutlineFont(), text_align=TextNode.ACenter, text_scale=0.035, text_fg=PiratesGuiGlobals.TextFG1, pos=(0, 0, -0.41)) self.stayTunedText.hide() weapons = [[InventoryType.CutlassToken, InventoryType.CutlassRep], [InventoryType.PistolToken, InventoryType.PistolRep], [InventoryType.DaggerToken, InventoryType.DaggerRep], [InventoryType.GrenadeToken, InventoryType.GrenadeRep], [InventoryType.WandToken, InventoryType.WandRep], [InventoryType.DollToken, InventoryType.DollRep], [InventoryType.NewPlayerToken, InventoryType.CannonRep], [InventoryType.NewPlayerToken, InventoryType.SailingRep]] maxRep = ReputationGlobals.getTotalReputation( InventoryType.GeneralRep, ReputationGlobals.LevelCap) self.guiElements = [] i = 0 for weaponToken, weaponId in weapons: weaponUnlocked = False levelText = PLocalizer.RewardLevelLocked state = 0 if inv.getStackQuantity(weaponToken): weaponUnlocked = True if weaponUnlocked: rep = inv.getReputation(weaponId) wlevel, value = ReputationGlobals.getLevelFromTotalReputation( weaponId, rep) levelText = PLocalizer.RewardLevelOfMax % ( wlevel, ReputationGlobals.LevelCap) if rep >= maxRep: levelText = PLocalizer.RepCapText_Skill state = 1 cb = self.makeCheckbox((0, 0, buttonY - 0.065 * i), PLocalizer.InventoryTypeNames[weaponId], None, state, [3], levelText) cb['indicatorValue'] = state cb.hide() self.guiElements.append(cb) i += 1 self.showWeaponsTrack = Sequence() self.showWeaponsTrack.append( Sequence(Func(self.notorietyText.show), Wait(1))) if level < maxLevel: self.showWeaponsTrack.append( Sequence(Func(self.todoText.show), Wait(1))) for b in self.guiElements: self.showWeaponsTrack.append(Sequence(Func(b.show), Wait(0.5))) if level >= maxLevel: self.showWeaponsTrack.append( Sequence(Func(self.stayTunedText.show), Wait(1))) self.showWeaponsTrack.append(Func(self.nextButton.show)) self.showWeaponsTrack.start() return
def __init__(self, parent, **kw): optiondefs = (('relief', None, None),) self.defineoptions(kw, optiondefs) DirectFrame.__init__(self, parent) self.initialiseoptions(RedeemCodeGUI) gui_main = loader.loadModel('models/gui/gui_main') topImage = gui_main.find('**/game_options_panel/top') topImage.setPos(0.52000000000000002, 0, -0.14999999999999999) gui_main.removeNode() self.artFrame = DirectFrame(parent = aspect2dp, relief = None, image = topImage, image_scale = (0.23999999999999999, 0.23999999999999999, 0.23999999999999999), pos = (0.10000000000000001, 0.0, -0.20000000000000001)) self.artFrame.setBin('gui-fixed', 2) self.blackout = DirectFrame(parent = aspect2dp, state = DGG.NORMAL, frameSize = (-5, 5, -5, 5), frameColor = (0.0, 0.0, 0.0, 0.40000000000000002), pos = (0.0, 0.0, 0.0)) self.enterCode = GuiButton.GuiButton(parent = self.artFrame, text = PLocalizer.lConfirm, pos = (0.38500000000000001, 0.0, -0.025000000000000001), command = self.confirmCode) self.cancelCode = GuiButton.GuiButton(parent = self.artFrame, text = PLocalizer.lCancel, pos = (0.65000000000000002, 0.0, -0.025000000000000001), command = self.hideCode) DirectLabel(parent = self.artFrame, relief = None, text = PLocalizer.ShopEnterCode, text_align = TextNode.ACenter, text_scale = PiratesGuiGlobals.TextScaleTitleSmall * 0.90000000000000002, text_pos = (0.51000000000000001, 0.33500000000000002), text_fg = PiratesGuiGlobals.TextFG2, text_shadow = PiratesGuiGlobals.TextShadow, text_font = PiratesGlobals.getInterfaceOutlineFont(), textMayChange = 0) DirectLabel(parent = self.artFrame, relief = None, text = PLocalizer.ShopCodeInst, text_align = TextNode.ACenter, text_scale = PiratesGuiGlobals.TextScaleLarge * 1.1000000000000001, text_pos = (0.51000000000000001, 0.25), text_fg = PiratesGuiGlobals.TextFG2, text_shadow = PiratesGuiGlobals.TextShadow, text_font = PiratesGlobals.getInterfaceOutlineFont(), textMayChange = 0, text_wordwrap = 12) self.codeInput = DirectEntry(parent = self.artFrame, relief = DGG.GROOVE, scale = PiratesGuiGlobals.TextScaleExtraLarge, pos = (0.52000000000000002, 0, 0.059999999999999998), borderWidth = PiratesGuiGlobals.BorderWidth, frameColor = (0.0, 0.0, 0.0, 1.0), text_align = TextNode.ACenter, width = 15, numLines = 1, focus = 1, cursorKeys = 1, text_fg = (1, 1, 1, 1), suppressKeys = 1, suppressMouse = 1, autoCapitalize = 0, command = self.confirmCode) self.alertDialog = None self.accept('codeRedeemed', self._RedeemCodeGUI__handleCodeRedeem)
def __init__(self, parent, showSkills = 0, **kw): GuiTray.GuiTray.__init__(self, parent, 0.75, 0.14999999999999999, **kw) self.initialiseoptions(StatusTray) self.name = None self.sticky = False self.level = 0 self.doId = 0 self.prevDoId = 0 self.hideValues = 0 self.card = None self.prevChange = 0 self.prevRange = 0 self.prevValue = 0 self.fader = None self.skillEffects = { } self.durationTask = None self.nameLabel = DirectLabel(parent = self, state = DGG.DISABLED, relief = None, text = '', text_align = TextNode.ALeft, text_scale = PiratesGuiGlobals.TextScaleLarge, text_fg = Vec4(0.80000000000000004, 0.69999999999999996, 0.59999999999999998, 1), text_shadow = PiratesGuiGlobals.TextShadow, textMayChange = 1, pos = (0.040000000000000001, 0, 0.11), text_font = PiratesGlobals.getPirateBoldOutlineFont()) self.stickyLabel = DirectLabel(parent = self, state = DGG.DISABLED, relief = None, text = '', text_align = TextNode.ARight, text_scale = PiratesGuiGlobals.TextScaleLarge, text_fg = PiratesGuiGlobals.TextFG2, text_shadow = PiratesGuiGlobals.TextShadow, textMayChange = 1, pos = (0.56999999999999995, 0, 0.025000000000000001), text_font = PiratesGlobals.getInterfaceOutlineFont()) self.hpLabel = DirectLabel(parent = self, state = DGG.DISABLED, relief = None, frameColor = (0, 0, 0, 0.20000000000000001), frameSize = (-0.01, 0.40000000000000002, -0.014999999999999999, 0.040000000000000001), pos = (0.32000000000000001, 0, 0.0060000000000000001), text = PLocalizer.StatusTrayHp, text_align = TextNode.ALeft, text_scale = PiratesGuiGlobals.TextScaleLarge, text_fg = PiratesGuiGlobals.TextFG1, text_shadow = PiratesGuiGlobals.TextShadow, text_font = PiratesGlobals.getInterfaceFont(), textMayChange = 0) self.hpLabel.hide() self.voodooMeter = DirectWaitBar(parent = self, state = DGG.DISABLED, relief = DGG.RAISED, borderWidth = (0.0050000000000000001, 0.0050000000000000001), frameSize = (0.0, 0.53000000000000003, 0.0070000000000000001, 0.035000000000000003), frameColor = (0, 0, 0, 1), pos = (0.20000000000000001, 0, -0.055), range = 100, value = 100, barColor = (0.59999999999999998, 0.59999999999999998, 0.94999999999999996, 1), text = '', text_align = TextNode.ARight, text_scale = PiratesGuiGlobals.TextScaleMed, text_fg = PiratesGuiGlobals.TextFG1, text_shadow = PiratesGuiGlobals.TextShadow, text_pos = (0.5, -0.035000000000000003, 0), text_font = PiratesGlobals.getInterfaceFont(), textMayChange = 1, sortOrder = 0) self.voodooMeter.setTransparency(1) self.voodooMeter.component('text0').hide() self.hpMeter = DirectWaitBar(parent = self, state = DGG.DISABLED, relief = DGG.RAISED, borderWidth = (0.0050000000000000001, 0.0050000000000000001), frameSize = (0.0, 0.53000000000000003, 0.002, 0.029999999999999999), frameColor = (0, 0, 0, 1), pos = (0.20000000000000001, 0, 0.050000000000000003), range = 100, value = 100, barColor = (0.10000000000000001, 0.69999999999999996, 0.10000000000000001, 1), text = '', text_align = TextNode.ARight, text_scale = PiratesGuiGlobals.TextScaleMed, text_fg = PiratesGuiGlobals.TextFG1, text_shadow = PiratesGuiGlobals.TextShadow, text_pos = (0.5, -0.044999999999999998, 0), text_font = PiratesGlobals.getInterfaceFont(), textMayChange = 1, sortOrder = 0) self.hpMeter.setTransparency(1) self.hpMeter.component('text0').hide() self.hpMeterChange = DirectFrame(parent = self, state = DGG.DISABLED, frameSize = (0.0, 0.53000000000000003, 0.0, 0.025999999999999999), frameColor = (1.0, 0.0, 0.0, 1.0), pos = (0, 0, 0)) self.hpMeterChange.setBin('gui-fixed', 0) self.hpMeterChange.hide() self.hpMeterDownIval = Sequence(Func(self.hpMeterChange.show), Wait(0.10000000000000001), LerpColorInterval(self.hpMeterChange, 0.5, color = VBase4(0.69999999999999996, 0.10000000000000001, 0.10000000000000001, 1.0), blendType = 'easeOut'), LerpColorInterval(self.hpMeterChange, 0.25, color = VBase4(0.0, 0.0, 0.0, 1.0), blendType = 'easeOut'), Func(self.hpMeterChange.hide)) self.hpMeterUpGreenIval = Sequence(Func(self.hpMeterChange.show), Wait(0.10000000000000001), LerpColorInterval(self.hpMeterChange, 0.75, color = VBase4(0.10000000000000001, 0.69999999999999996, 0.10000000000000001, 1.0)), Func(self.hpMeterChange.hide)) self.hpMeterUpRedIval = Sequence(Func(self.hpMeterChange.show), Wait(0.10000000000000001), LerpColorInterval(self.hpMeterChange, 0.75, color = VBase4(1.0, 0.0, 0.0, 1.0)), Func(self.hpMeterChange.hide)) self.hpMeterUpYellowIval = Sequence(Func(self.hpMeterChange.show), Wait(0.10000000000000001), LerpColorInterval(self.hpMeterChange, 0.75, color = VBase4(1.0, 1.0, 0.10000000000000001, 1.0)), Func(self.hpMeterChange.hide)) self.meterChangeOffset = (0.0, 0.0, 0.050000000000000003) self.prevTargetName = '' self.voodooLabel = DirectLabel(parent = self, state = DGG.DISABLED, relief = None, frameColor = (0, 0, 0, 0.20000000000000001), frameSize = (-0.01, 0.40000000000000002, -0.014999999999999999, 0.040000000000000001), pos = (0.32000000000000001, 0, -0.091999999999999998), text = PLocalizer.StatusTrayVoodoo, text_align = TextNode.ALeft, text_scale = PiratesGuiGlobals.TextScaleLarge, text_fg = PiratesGuiGlobals.TextFG1, text_shadow = PiratesGuiGlobals.TextShadow, text_font = PiratesGlobals.getInterfaceFont(), textMayChange = 0) self.voodooLabel.hide() self.statusEffectsPanel = StatusEffectsPanel.StatusEffectsPanel(parent = self) flagModel = loader.loadModel('models/gui/flag_icons') flagModel2 = loader.loadModel('models/gui/gui_icons_weapon') flagModels = [ flagModel.find('**/flag_undead'), flagModel.find('**/flag_navy'), flagModel.find('**/flag_eitc'), flagModel2.find('**/pir_t_ico_dol_straw')] for icon in flagModels: if icon == flagModel2.find('**/pir_t_ico_dol_straw'): icon.setScale(0.10000000000000001) else: icon.setScale(0.44) icon.flattenStrong() self.icons = { PiratesGlobals.UNDEAD_TEAM: flagModels[0], PiratesGlobals.NAVY_TEAM: flagModels[1], PiratesGlobals.TRADING_CO_TEAM: flagModels[2], PiratesGlobals.FRENCH_UNDEAD_TEAM: flagModels[0], PiratesGlobals.SPANISH_UNDEAD_TEAM: flagModels[0], PiratesGlobals.PLAYER_TEAM: flagModels[3], PiratesGlobals.VOODOO_ZOMBIE_TEAM: flagModels[0], PiratesGlobals.BOUNTY_HUNTER_TEAM: flagModels[0] } self.pvpIcon = Beacon.getBeaconModel() self.pvpIcon.setScale(0.12) self.pvpIcon.flattenStrong() privateerLogos = loader.loadModel('models/textureCards/sailLogo') self.privateerLogos = { PVPGlobals.FrenchTeam: privateerLogos.find('**/logo_french_flag'), PVPGlobals.SpanishTeam: privateerLogos.find('**/logo_spanish_flag') } for logo in self.privateerLogos.itervalues(): logo.setScale(0.073999999999999996) logo.flattenStrong() self.currentIcon = None if showSkills: self.card = loader.loadModel('models/textureCards/skillIcons') icons = loader.loadModel('models/gui/gui_icons_weapon') icons.reparentTo(self.card) self.reloadFrame = DirectFrame(parent = self, state = DGG.DISABLED, relief = None) self.reloadFrame.hide() self.activeName = DirectLabel(parent = self.reloadFrame, state = DGG.DISABLED, relief = None, text = 'Using Skill', text_align = TextNode.ARight, text_scale = 0.059999999999999998, pos = (-0.050000000000000003, 0, 0.01), text_fg = PiratesGuiGlobals.TextFG11, text_shadow = PiratesGuiGlobals.TextShadow, text_font = PiratesGlobals.getPirateOutlineFont()) tex = self.card.find('**/base') self.reloadFrame['scale'] = 0.5 self.reloadFrame['image'] = tex self.reloadFrame['image_scale'] = 0.085000000000000006 self.reloadFrame['image_pos'] = (0, 0, 0.02) self.reloadFrame.setPos(0.12, 0, -0.019) self.reloadFrame.setScale(0.69999999999999996) tex = self.card.find('**/cutlass_sweep') self.skillFrame = DirectFrame(parent = self.reloadFrame, state = DGG.DISABLED, relief = None, sortOrder = 20, image_pos = (0, 0, 0)) self.skillFrame.setTransparency(1) self.skillFrame['image'] = tex self.skillFrame['image_scale'] = 0.10000000000000001 self.skillFrame['image_pos'] = (0, 0, 0.02) self.activeName['text_align'] = TextNode.ALeft self.activeName.setPos(0.089999999999999997, 0, 0.01)
def refreshList(self, setKey = 0): if setKey == 0 or setKey == None: return None if self.currentDisplay != 0: oldSize = CollectionMap.Collection_Set_Sizes.get(self.currentDisplay) for loopItr in range(oldSize): curNum = self.currentDisplay + loopItr + 1 if curNum in self.setPics: self.setPics[curNum].hide() self.setFrames[curNum].hide() self.currentDisplay = setKey self.setLabel['text'] = PLocalizer.Collections[setKey] inv = localAvatar.getInventory() if not inv: return None setCount = 0 heightOffset = 0 setSize = CollectionMap.Collection_Set_Sizes.get(setKey) gui = loader.loadModel('models/gui/toplevel_gui') for loopItr in range(setSize): setItem = setKey + 1 + loopItr rowSpot = loopItr % 4 colSpot = loopItr / 4 localHeight = PiratesGuiGlobals.InventoryPanelHeight - 0.20000000000000001 howMany = inv.getStackQuantity(setItem) if setItem in CollectionMap.Collection_Set_Locked: if not Freebooter.getPaidStatus(base.localAvatar.getDoId()): isLocked = True else: isLocked = False else: isLocked = False if isLocked or howMany > 0: if setItem in self.setPics: self.setPics[setItem].show() self.setFrames[setItem].show() else: frameImg = gui.find('**/treasure_w_b_slot_full') self.setFrames[setItem] = DirectFrame(parent = self, relief = None, image = frameImg, image_scale = 0.40000000000000002, image_pos = (0, 0, 0), pos = (0.28000000000000003 + 0.17999999999999999 * rowSpot, 0, localHeight - 0.35999999999999999 - 0.17999999999999999 * colSpot)) pic_name = CollectionMap.Assets[setItem] if isLocked: tex = gui.find('**/pir_t_gui_gen_key_subscriber') use_scale = 0.25 self.setPics[setItem] = DirectButton(parent = self, relief = None, image = tex, image_scale = use_scale, image_pos = (0, 0, 0), pos = (0.28000000000000003 + 0.17999999999999999 * rowSpot, 0, localHeight - 0.35999999999999999 - 0.17999999999999999 * colSpot), text = PLocalizer.Collections[setItem], text_fg = PiratesGuiGlobals.TextFG2, text_align = TextNode.ACenter, text_wordwrap = 6, text_scale = 0.025000000000000001, text_pos = (0, -0.085000000000000006, 0), command = base.localAvatar.guiMgr.showNonPayer, extraArgs = [ 'Restricted_Treasure_Selection', 7]) else: tex = self.card.find('**/%s*' % pic_name) use_scale = 0.39000000000000001 self.setPics[setItem] = DirectButton(parent = self, relief = None, image = tex, image_scale = use_scale, image_pos = (0, 0, 0), pos = (0.28000000000000003 + 0.17999999999999999 * rowSpot, 0, localHeight - 0.35999999999999999 - 0.17999999999999999 * colSpot), command = self.clickedTreasure, extraArgs = [ setItem], text = PLocalizer.Collections[setItem], text_fg = PiratesGuiGlobals.TextFG2, text_align = TextNode.ACenter, text_wordwrap = 6, text_scale = 0.025000000000000001, text_pos = (0, -0.085000000000000006, 0)) self.setPics[setItem].setTransparency(1) if setItem in CollectionMap.Collection_Needed: howManyINeed = CollectionMap.Collection_Needed[setItem] else: howManyINeed = 1 if setItem in CollectionMap.Collection_SingleNumeric: if howMany > 0: if howMany == 1: weightTxt = 'Lb' else: weightTxt = 'Lbs' if setItem in self.setHowMany: self.setHowMany[setItem]['text'] = '%d %s' % (howMany, weightTxt) else: self.setHowMany[setItem] = DirectLabel(parent = self.setPics[setItem], relief = None, text = '%d %s' % (howMany, weightTxt), text_align = TextNode.ARight, text_scale = 0.040000000000000001, text_fg = PiratesGuiGlobals.TextFG2, text_shadow = PiratesGuiGlobals.TextShadow, textMayChange = 1, pos = (0.080000000000000002, 0, -0.050000000000000003), text_font = PiratesGlobals.getInterfaceOutlineFont()) elif setItem in self.setHowMany: if howManyINeed < 2: self.setHowMany[setItem].hide() else: self.setHowMany[setItem]['text'] = '%d/%d' % (howMany, howManyINeed) self.setHowMany[setItem].show() elif howMany > 1: self.setHowMany[setItem] = DirectLabel(parent = self.setPics[setItem], relief = None, text = '%d/%d' % (howMany, howManyINeed), text_align = TextNode.ARight, text_scale = 0.040000000000000001, text_fg = PiratesGuiGlobals.TextFG2, text_shadow = PiratesGuiGlobals.TextShadow, textMayChange = 1, pos = (0.080000000000000002, 0, -0.050000000000000003), text_font = PiratesGlobals.getInterfaceOutlineFont()) if isLocked: if setItem in self.setHowMany: self.setHowMany[setItem].hide() if setItem in self.setFrames: self.setFrames[setItem].show() continue frameImg = gui.find('**/treasure_w_b_slot_empty') self.setFrames[setItem] = DirectFrame(parent = self, relief = None, image = frameImg, image_scale = 0.40000000000000002, image_pos = (0, 0, 0), pos = (0.28000000000000003 + 0.17999999999999999 * rowSpot, 0, localHeight - 0.35999999999999999 - 0.17999999999999999 * colSpot)) gui.removeNode()
def __init__(self, inventoryUIManager): self.inventoryUIManager = inventoryUIManager InventoryPage.InventoryPage.__init__(self) self.initialiseoptions(InventoryBagPage) self.containerList = [] self.containersToShowTrash = [] self.treasureTab = None self.isReady = 0 self.treasurePageReopen = 0 self.openedContainer = None self.redeemCodeGUI = None self.buttonSize = self.inventoryUIManager.standardButtonSize self.weaponBag = self.addContainer(InventoryUIWeaponContainer.InventoryUIWeaponContainer(self.inventoryUIManager, self.buttonSize * 6.0, self.buttonSize * 5.0, 6, 5, slotList=range(Locations.RANGE_WEAPONS[0], Locations.RANGE_WEAPONS[0] + 30))) self.clothingBag = self.addContainer(InventoryUIClothingContainer.InventoryUIClothingContainer(self.inventoryUIManager, self.buttonSize * 5.0, self.buttonSize * 7.0, 5, 7, slotList=range(Locations.RANGE_CLOTHES[0], Locations.RANGE_CLOTHES[0] + 35))) self.jewelryBag = self.addContainer(InventoryUIJewelryContainer.InventoryUIJewelryContainer(self.inventoryUIManager, self.buttonSize * 4.0, self.buttonSize * 7.0, 4, 7, slotList=range(Locations.RANGE_JEWELERY_AND_TATTOO[0], Locations.RANGE_JEWELERY_AND_TATTOO[0] + 28))) cardRange = range(UberDogGlobals.InventoryType.begin_Cards, UberDogGlobals.InventoryType.end_Cards) cardRange.reverse() self.potionBag = self.addContainer(InventoryUIConsumableContainerLocatable.InventoryUIConsumableContainerLocatable(self.inventoryUIManager, self.buttonSize * 6.0, self.buttonSize * 7.0, 6, 7, slotList=range(Locations.RANGE_CONSUMABLE[0], Locations.RANGE_CONSUMABLE[0] + 42))) self.ammoBag = self.addContainer(InventoryUIAmmoContainer.InventoryUIAmmoContainer(self.inventoryUIManager, self.buttonSize * 7.0, self.buttonSize * 6.0, maxCountX=7, itemList=WeaponGlobals.getAllAmmoSkills()), showTrash=0) self.materialBag = self.addContainer(InventoryUIMaterialContainer.InventoryUIMaterialContainer(self.inventoryUIManager, self.buttonSize * 7.0, self.buttonSize * 6.0, maxCountX=7, itemList=WeaponGlobals.getAllAmmoSkills()), showTrash=0) self.cardBag = self.addContainer(InventoryUICardContainer.InventoryUICardContainer(self.inventoryUIManager, self.buttonSize * 4.0, self.buttonSize * 13.0, 4, 13, minCountZ=13, maxCountX=4, itemList=cardRange), showTrash=0) hotkeySlotStart = Locations.RANGE_EQUIP_WEAPONS[0] weaponKeySlotList = [] for weaponIndex in range(Locations.RANGE_EQUIP_WEAPONS[0], Locations.RANGE_EQUIP_WEAPONS[1] + 1): weaponKeySlotList.append(('F%s' % weaponIndex, 'f%s' % weaponIndex, weaponIndex)) weaponKeySlotList.append((PLocalizer.InventoryPageItemSlot, '', Locations.RANGE_EQUIP_ITEMS[0])) self.inventoryPanelHotkey = InventoryUIBeltGrid.InventoryUIBeltGrid(self.inventoryUIManager, self.buttonSize * float(len(weaponKeySlotList)), self.buttonSize, len(weaponKeySlotList), 1, weaponKeySlotList) self.inventoryPanelHotkey.setPos(0.425 - 0.5 * self.inventoryPanelHotkey.sizeX, 0.0, 0.895) self.inventoryPanelHotkey.reparentTo(self.weaponBag) self.inventoryPanelTrash = InventoryUITrashContainer.InventoryUITrashContainer(self.inventoryUIManager, self.buttonSize, self.buttonSize) self.inventoryPanelTrash.setup() self.inventoryPanelTrash.setPos(0.07, 0.0, -0.03) self.inventoryPanelTrash.reparentTo(self) self.inventoryPanelDrinker = InventoryUIDrinker.InventoryUIDrinker(self.inventoryUIManager, self.buttonSize, self.buttonSize) self.inventoryPanelDrinker.setup() self.inventoryPanelDrinker.setPos(0.3, 0.0, -0.03) self.inventoryPanelDrinker.reparentTo(self) self.inventoryPanelDressing = InventoryUIDressingContainer.InventoryUIDressingContainer(self.inventoryUIManager, self.buttonSize, self.buttonSize * 7.0, slotList=range(Locations.RANGE_EQUIP_CLOTHES[0], Locations.RANGE_EQUIP_CLOTHES[1] + 1)) self.inventoryPanelDressing.setPos(-0.225, 0.0, -0.0) self.inventoryPanelDressing.reparentTo(self.clothingBag) self.inventoryPanelJewelryDressing = InventoryUIJewelryDressingContainer.InventoryUIJewelryDressingContainer(self.inventoryUIManager, self.buttonSize * 2.0, self.buttonSize * 4.0, slotList=range(Locations.RANGE_EQUIP_JEWELRY[0], Locations.RANGE_EQUIP_JEWELRY[1] + 1)) self.inventoryPanelJewelryDressing.setPos(-0.37, 0.0, 0.41) self.inventoryPanelJewelryDressing.reparentTo(self.jewelryBag) self.inventoryPanelTattooDressing = InventoryUITattooDressingContainer.InventoryUITattooDressingContainer(self.inventoryUIManager, self.buttonSize * 2.0, self.buttonSize * 2.0, slotList=range(Locations.RANGE_EQUIP_TATTOO[0], Locations.RANGE_EQUIP_TATTOO[1] + 1)) self.inventoryPanelTattooDressing.setPos(-0.37, 0.0, 0.0) self.inventoryPanelTattooDressing.reparentTo(self.jewelryBag) self.inventoryPanelGold = InventoryUIGoldContainer.InventoryUIGoldContainer(self.inventoryUIManager, self.buttonSize, self.buttonSize) self.inventoryPanelGold.setPos(0.85, 0.0, -0.03) self.inventoryPanelGold.reparentTo(self) self.backTabParent = self.attachNewNode('backTabs') self.frontTabParent = self.attachNewNode('frontTab', sort=2) self.tabBar = None self.tabCount = 0 for container in self.containerList: container.setPos(0.14, 0.0, 0.44) container.setX(0.54 - 0.5 * container.sizeX) container.setZ(1.2 - container.getTotalHeight()) container.reparentTo(self) self.weaponBag.setZ(0.2) self.clothingBag.setPos(self.buttonSize * 2.0 + 0.03, 0.0, 0.2) self.jewelryBag.setPos(self.buttonSize * 3.0 + 0.04, 0.0, 0.21) self.ammoBag.setPos(self.buttonSize * 0.5 - 0.03, 0.0, 0.248) self.cardBag.setPos(self.buttonSize * 1.5 - 0.02, 0.0, self.buttonSize * 2.0) Gui = loader.loadModel('models/gui/char_gui') buttonImage = (Gui.find('**/chargui_text_block_large'), Gui.find('**/chargui_text_block_large_down'), Gui.find('**/chargui_text_block_large_over'), Gui.find('**/chargui_text_block_large')) self.redeemCodeButton = DirectButton(parent=self, relief=None, image=buttonImage, image_scale=0.45, text=PLocalizer.InventoryRedeemCode, text_font=PiratesGlobals.getInterfaceOutlineFont(), text_align=TextNode.ACenter, text_pos=(0, -0.01), text_scale=PiratesGuiGlobals.TextScaleLarge, text_fg=PiratesGuiGlobals.TextFG2, text_shadow=PiratesGuiGlobals.TextShadow, pos=(0.68, 0, 0.04), command=self.showRedeemCodeGUI) self.redeemCodeButton.hide() self.faceCameraButton = DirectButton(parent=self, relief=None, image=buttonImage, image_scale=0.45, text=PLocalizer.InventoryFaceCamera, text_font=PiratesGlobals.getInterfaceOutlineFont(), text_align=TextNode.ACenter, text_pos=(0, -0.01), text_scale=PiratesGuiGlobals.TextScaleLarge, text_fg=PiratesGuiGlobals.TextFG2, text_shadow=PiratesGuiGlobals.TextShadow, pos=(0.37, 0, 0.04), command=self.faceCamera) self.faceCameraButton.hide() self.notLoadedWarning = DirectLabel(parent=self, relief=DGG.SUNKEN, borderWidth=(0, 0), frameColor=(0.5, 0.15, 0.05, 1), text=PLocalizer.InventoryNotLoaded, text_align=TextNode.ALeft, text_font=PiratesGlobals.getInterfaceOutlineFont(), text_scale=0.045, text_fg=(1, 1, 1, 1), text_wordwrap=20.0, state=DGG.DISABLED, pos=(0.1, 0, 0.75)) self.accept('openingContainer', self.onOpen) self.acceptOnce('localPirate-created', self.askInventory) self.accept('pickedUpItem', self.onLocatable) self.invRequestId = None return
def __init__(self, background = 1, extraArgs = []): panelName = PLocalizer.LootPlundered StackMessage.__init__(self, text = '', text_wordwrap = 14, time = PiratesGuiGlobals.LootPopupTime, frameSize = (0, self.width, 0, -(self.height), 0)) self.initialiseoptions(LootPopupPanel) self.loot = [] self.titleLabel = DirectLabel(parent = self, relief = None, text = panelName, text_align = TextNode.ALeft, text_scale = PiratesGuiGlobals.TextScaleMed, text_fg = PiratesGuiGlobals.TextFG1, text_shadow = PiratesGuiGlobals.TextShadow, text_font = PiratesGlobals.getInterfaceOutlineFont(), textMayChange = 1, text_wordwrap = 14, sortOrder = 21) if not LootPopupPanel.lootSfx: LootPopupPanel.lootSfx = loadSfx(SoundGlobals.SFX_GUI_LOOT) LootPopupPanel.lootSfx.setVolume(0.75) card = loader.loadModel('models/textureCards/icons') topgui = loader.loadModel('models/gui/toplevel_gui') inventoryGui = loader.loadModel('models/gui/gui_icons_inventory') LootPopupPanel.BountyTex = loader.loadModel('models/gui/avatar_chooser_rope').find('**/avatar_c_B_delete') LootPopupPanel.CoinTex = topgui.find('**/treasure_w_coin*') LootPopupPanel.CrateTex = topgui.find('**/icon_crate*') LootPopupPanel.ChestTex = card.find('**/icon_chest') LootPopupPanel.RoyalChestTex = card.find('**/topgui_icon_ship_chest03*') LootPopupPanel.LootSacTex = inventoryGui.find('**/pir_t_ico_trs_sack*') LootPopupPanel.LootChestTex = inventoryGui.find('**/pir_t_ico_trs_chest_01*') LootPopupPanel.LootSkullChestTex = inventoryGui.find('**/pir_t_ico_trs_chest_02*') LootPopupPanel.TreasureGui = loader.loadModel('models/gui/treasure_gui') LootPopupPanel.TailorGui = loader.loadModel('models/textureCards/tailorIcons') LootPopupPanel.JewelerIconsA = loader.loadModel('models/gui/char_gui') LootPopupPanel.JewelerIconsB = loader.loadModel('models/textureCards/shopIcons') LootPopupPanel.TattooIcons = loader.loadModel('models/textureCards/tattooIcons') LootPopupPanel.WeaponIcons = loader.loadModel('models/gui/gui_icons_weapon') if not background: self.frameParent.hide() self['relief'] = None self.titleLabel['relief'] = None self.icons = { ItemId.CARGO_CRATE: (LootPopupPanel.CrateTex, PLocalizer.Crate), ItemId.CARGO_CHEST: (LootPopupPanel.ChestTex, PLocalizer.Chest), ItemId.CARGO_SKCHEST: (LootPopupPanel.RoyalChestTex, PLocalizer.SkChest), ItemId.CARGO_LOOTSAC: (LootPopupPanel.LootSacTex, PLocalizer.Crate), ItemId.CARGO_LOOTCHEST: (LootPopupPanel.LootChestTex, PLocalizer.Chest), ItemId.CARGO_LOOTSKCHEST: (LootPopupPanel.LootSkullChestTex, PLocalizer.SkChest), ItemId.GOLD: (LootPopupPanel.CoinTex, PLocalizer.MoneyName), ItemId.BOUNTY: (LootPopupPanel.BountyTex, PLocalizer.PVPInfamySpendable) } self.titleLabel['text_scale'] = PiratesGuiGlobals.TextScaleLarge self.repackPanels()
def __init__(self, chatManager, whiteListEntry): optiondefs = (('relief', None, None), ('state', DGG.NORMAL, self.setState), ('frameSize', (0, 0.9, 0, 0.6), None), ('frameColor', (1, 0, 1, 0.2), None)) self.defineoptions({}, optiondefs) DirectFrame.__init__(self, parent=NodePath()) self.initialiseoptions(ChatPanel) FSM.__init__(self, 'ChatPanel') base.chatPanel = self self.chatManager = chatManager self.index = 0 self.runningLineCount = 0 self.runningLineCountLastId = -1 self.lineCountList = [0] self.wrappedText = [] self.chatFont = PiratesGlobals.getInterfaceFont() self.nameFont = PiratesGlobals.getInterfaceFont() self.shadowOffset = (0.09, 0.09) self.shadowColor = (0.0, 0.0, 0.0, 1.0) self.fontColorStyle = 1 if base.config.GetBool('want-random-chatStyle', 0): self.chatFont = random.choice([ PiratesGlobals.getInterfaceFont(), PiratesGlobals.getInterfaceOutlineFont() ]) self.nameFont = random.choice([ PiratesGlobals.getInterfaceFont(), PiratesGlobals.getInterfaceOutlineFont() ]) self.shadowOffset = random.choice([(0.09, 0.09), (0.0, 0.0)]) self.fontColorStyle = random.choice([0, 1, 2]) self.lineDict = {} self.renderedLineDict = {} self.renderedLines = [] self.wordWrapper = TextNode('wrapper') self.wordWrapper.setFont(self.chatFont) self.wordWrapper.setWordwrap(self.WrapWidth) self.wordWrapper.setTabWidth(1.0) self.fadeIval = None self.fadeTextIval = None self.preferredMode = 'Short' self.linesShown = True self.holdLinesShown = None self.wantSmallFont = 0 self.currentFontSize = self.TextScale self.currentWordWrap = self.WrapWidth self.resizeDelayTaskName = 'ChatPanel_Resize' self.sCloseButton = None self.tCloseButton = None self.minButton = None self.maxButton = None self.setupGui() self.chatBar = ChatBar(parent=self, chatMgr=chatManager, whiteListEntry=whiteListEntry) self.setBoxWidth(base.options.chatbox_scale) self.checkEmotes() self.needSlider = 0 self.reparentTo(base.a2dBottomLeft) self.accept('NewOpenMessage', self.__handleOpenMessage) self.accept('SetChatBoxWidth', self.setBoxWidth) self.accept('SetChatBoxStyle', self.setChatStyle) self.accept('GUIHidden', self.__handleGlobalGuiHide) self.accept('GUIShown', self.__handleGlobalGuiShow) return
def showDetails(self, cell, detailsPos, detailsHeight, event = None): self.notify.debug('Item showDetails') if self.manager.heldItem and self.manager.locked and cell.isEmpty() and self.isEmpty() or not (self.itemTuple): self.notify.debug(' early exit') return None inv = localAvatar.getInventory() if not inv: return None itemId = self.getId() self.helpFrame = DirectFrame(parent = self.manager, relief = None, state = DGG.DISABLED, sortOrder = 1) self.helpFrame.setBin('gui-popup', -5) detailGui = loader.loadModel('models/gui/gui_card_detail') topGui = loader.loadModel('models/gui/toplevel_gui') coinImage = topGui.find('**/treasure_w_coin*') self.SkillIcons = loader.loadModel('models/textureCards/skillIcons') self.BuffIcons = loader.loadModel('models/textureCards/buff_icons') border = self.SkillIcons.find('**/base') halfWidth = 0.29999999999999999 halfHeight = 0.20000000000000001 basePosX = cell.getX(aspect2d) basePosZ = cell.getZ(aspect2d) cellSizeX = 0.0 cellSizeZ = 0.0 if cell: cellSizeX = cell.cellSizeX cellSizeZ = cell.cellSizeZ textScale = PiratesGuiGlobals.TextScaleMed titleScale = PiratesGuiGlobals.TextScaleTitleSmall if len(self.getName()) >= 30: titleNameScale = PiratesGuiGlobals.TextScaleLarge else: titleNameScale = PiratesGuiGlobals.TextScaleExtraLarge subtitleScale = PiratesGuiGlobals.TextScaleMed iconScalar = 1.5 borderScaler = 0.25 splitHeight = 0.01 vMargin = 0.029999999999999999 runningVertPosition = 0.29999999999999999 runningSize = 0.0 labels = [] titleColor = PiratesGuiGlobals.TextFG6 rarity = ItemGlobals.getRarity(itemId) rarityText = PLocalizer.getItemRarityName(rarity) subtypeText = PLocalizer.getItemSubtypeName(ItemGlobals.getSubtype(itemId)) if rarity == ItemGlobals.CRUDE: titleColor = PiratesGuiGlobals.TextFG24 elif rarity == ItemGlobals.COMMON: titleColor = PiratesGuiGlobals.TextFG13 elif rarity == ItemGlobals.RARE: titleColor = PiratesGuiGlobals.TextFG4 elif rarity == ItemGlobals.FAMED: titleColor = PiratesGuiGlobals.TextFG5 titleLabel = DirectLabel(parent = self, relief = None, text = self.getName(), text_scale = titleNameScale, text_fg = titleColor, text_shadow = PiratesGuiGlobals.TextShadow, text_align = TextNode.ACenter, pos = (0.0, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) self.bg.setColor(titleColor) tHeight = 0.070000000000000007 titleLabel.setZ(runningVertPosition) runningVertPosition -= tHeight runningSize += tHeight labels.append(titleLabel) subtitleLabel = DirectLabel(parent = self, relief = None, text = 'slant%s %s' % (rarityText, subtypeText), text_scale = subtitleScale, text_fg = PiratesGuiGlobals.TextFG2, text_shadow = PiratesGuiGlobals.TextShadow, text_align = TextNode.ACenter, pos = (0.0, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) subtHeight = 0.050000000000000003 subtitleLabel.setZ(subtHeight * 0.5 + runningVertPosition) runningVertPosition -= subtHeight runningSize += subtHeight labels.append(subtitleLabel) itemType = ItemGlobals.getType(itemId) itemSubtype = ItemGlobals.getSubtype(itemId) model = ItemGlobals.getModel(itemId) if model: self.realItem = loader.loadModel('models/inventory/' + model) if self.realItem: posHpr = ItemGlobals.getModelPosHpr(model) if posHpr: self.realItem.setPos(posHpr[0], posHpr[1], posHpr[2]) self.realItem.setHpr(posHpr[3], posHpr[4], posHpr[5]) elif itemSubtype == ItemGlobals.RAM: self.realItem.setPos(-1.5, 1.5, -0.59999999999999998) self.realItem.setHpr(70, 160, -90) else: self.realItem.setPos(0.0, 1.5, -0.059999999999999998) self.realItem.setHpr(0, 90, 0) self.realItem.reparentTo(self.portraitSceneGraph) iHeight = 0.17999999999999999 self.createBuffer() self.itemCard.setZ(runningVertPosition - 0.059999999999999998) runningVertPosition -= iHeight runningSize += iHeight labels.append(self.itemCard) goldLabel = DirectLabel(parent = self, relief = None, image = coinImage, image_scale = 0.12, image_pos = Vec3(0.025000000000000001, 0, -0.02), text = str(int(ItemGlobals.getGoldCost(itemId) * ItemGlobals.GOLD_SALE_MULTIPLIER)), text_scale = subtitleScale, text_align = TextNode.ARight, text_fg = PiratesGuiGlobals.TextFG1, text_shadow = PiratesGuiGlobals.TextShadow, pos = (halfWidth - 0.050000000000000003, 0.0, runningVertPosition + 0.080000000000000002), text_pos = (0.0, -textScale)) labels.append(goldLabel) specialAttack = ItemGlobals.getSpecialAttack(itemId) if specialAttack: attackIcon = self.SkillIcons.find('**/%s' % WeaponGlobals.getSkillIcon(specialAttack)) specialAttackNameLabel = DirectLabel(parent = self, relief = None, image = border, image_scale = 0.10000000000000001, geom = attackIcon, geom_scale = 0.10000000000000001, image_pos = (-0.070000000000000007, 0.0, -0.050000000000000003), geom_pos = (-0.070000000000000007, 0.0, -0.050000000000000003), text = PLocalizer.getInventoryTypeName(specialAttack), text_scale = PiratesGuiGlobals.TextScaleLarge, text_wordwrap = halfWidth * 2.0 * (0.90000000000000002 / titleScale), text_align = TextNode.ALeft, text_fg = titleColor, text_font = PiratesGlobals.getInterfaceOutlineFont(), pos = (-halfWidth + 0.12 + textScale * 0.5, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) specialAttackRankLabel = DirectLabel(parent = self, relief = None, text = PLocalizer.ItemRank % ItemGlobals.getSpecialAttackRank(itemId), text_scale = textScale, text_wordwrap = halfWidth * 2.0 * (0.90000000000000002 / titleScale), text_align = TextNode.ARight, pos = (halfWidth - textScale * 0.5, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) specialAttackType = WeaponGlobals.getSkillTrack(specialAttack) if specialAttackType == WeaponGlobals.BREAK_ATTACK_SKILL_INDEX: specialAttackTypeText = PLocalizer.BreakAttackSkill elif specialAttackType == WeaponGlobals.DEFENSE_SKILL_INDEX: specialAttackTypeText = PLocalizer.DefenseSkill else: specialAttackTypeText = PLocalizer.WeaponSkill specialAttackTypeLabel = DirectLabel(parent = self, relief = None, text = specialAttackTypeText, text_scale = PiratesGuiGlobals.TextScaleLarge, text_wordwrap = halfWidth * 2.7999999999999998 * (0.90000000000000002 / titleScale), text_align = TextNode.ALeft, pos = (-halfWidth + 0.12 + textScale * 0.5, 0.0, runningVertPosition - PiratesGuiGlobals.TextScaleLarge), text_pos = (0.0, -textScale)) specialAttackInfo = PLocalizer.SkillDescriptions.get(specialAttack) specialAttackDescriptionText = specialAttackInfo[1] specialAttackDescriptionLabel = DirectLabel(parent = self, relief = None, text = specialAttackDescriptionText, text_scale = textScale, text_wordwrap = halfWidth * 2.7999999999999998 * (0.90000000000000002 / titleScale), text_align = TextNode.ALeft, pos = (-halfWidth + 0.12 + textScale * 0.5, 0.0, runningVertPosition - specialAttackNameLabel.getHeight() + specialAttackTypeLabel.getHeight() - 0.059999999999999998), text_pos = (0.0, -textScale)) saHeight = specialAttackNameLabel.getHeight() + specialAttackTypeLabel.getHeight() + specialAttackDescriptionLabel.getHeight() - 0.040000000000000001 runningVertPosition -= saHeight runningSize += saHeight labels.append(specialAttackNameLabel) labels.append(specialAttackRankLabel) labels.append(specialAttackTypeLabel) labels.append(specialAttackDescriptionLabel) attributes = ItemGlobals.getAttributes(itemId) for i in range(0, len(attributes)): attributeIcon = self.SkillIcons.find('**/%s' % ItemGlobals.getAttributeIcon(attributes[i][0])) if not attributeIcon: attributeIcon = self.BuffIcons.find('**/%s' % ItemGlobals.getAttributeIcon(attributes[i][0])) attributeNameLabel = DirectLabel(parent = self, relief = None, image = border, image_scale = 0.050000000000000003, geom = attributeIcon, geom_scale = 0.050000000000000003, image_pos = (-0.070000000000000007, 0.0, -0.029999999999999999), geom_pos = (-0.070000000000000007, 0.0, -0.029999999999999999), text = PLocalizer.getItemAttributeName(attributes[i][0]), text_scale = textScale, text_wordwrap = halfWidth * 2.0 * (0.90000000000000002 / titleScale), text_align = TextNode.ALeft, text_fg = titleColor, text_font = PiratesGlobals.getInterfaceOutlineFont(), pos = (-halfWidth + 0.12 + textScale * 0.5, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) attributeRankLabel = DirectLabel(parent = self, relief = None, text = PLocalizer.ItemRank % attributes[i][1], text_scale = textScale, text_wordwrap = halfWidth * 2.0 * (0.90000000000000002 / titleScale), text_align = TextNode.ARight, pos = (halfWidth - textScale * 0.5, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) if attributeNameLabel.getHeight() > 0.074999999999999997: attributeNameSpace = 0.080000000000000002 else: attributeNameSpace = PiratesGuiGlobals.TextScaleLarge attributeDescriptionLabel = DirectLabel(parent = self, relief = None, text = PLocalizer.getItemAttributeDescription(attributes[i][0]), text_scale = textScale, text_wordwrap = halfWidth * 2.7999999999999998 * (0.90000000000000002 / titleScale), text_align = TextNode.ALeft, pos = (-halfWidth + 0.12 + textScale * 0.5, 0.0, runningVertPosition - attributeNameSpace), text_pos = (0.0, -textScale)) aHeight = attributeNameLabel.getHeight() + attributeDescriptionLabel.getHeight() runningVertPosition -= aHeight + splitHeight runningSize += aHeight + splitHeight labels.append(attributeNameLabel) labels.append(attributeRankLabel) labels.append(attributeDescriptionLabel) skillBoosts = ItemGlobals.getSkillBoosts(itemId) for i in range(0, len(skillBoosts)): boostIcon = self.SkillIcons.find('**/%s' % WeaponGlobals.getSkillIcon(skillBoosts[i][0])) boostNameLabel = DirectLabel(parent = self, relief = None, image = border, image_scale = 0.050000000000000003, geom = boostIcon, geom_scale = 0.050000000000000003, image_pos = (-0.070000000000000007, 0.0, -0.029999999999999999), geom_pos = (-0.070000000000000007, 0.0, -0.029999999999999999), text = PLocalizer.ItemBoost % PLocalizer.getInventoryTypeName(skillBoosts[i][0]), text_scale = textScale, text_wordwrap = halfWidth * 2.0 * (0.90000000000000002 / titleScale), text_align = TextNode.ALeft, pos = (-halfWidth + 0.12 + textScale * 0.5, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) boostRankLabel = DirectLabel(parent = self, relief = None, text = '+%s' % str(skillBoosts[i][1]), text_scale = textScale, text_wordwrap = halfWidth * 2.0 * (0.90000000000000002 / titleScale), text_align = TextNode.ARight, pos = (halfWidth - textScale * 0.5, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) bHeight = boostNameLabel.getHeight() runningVertPosition -= bHeight + splitHeight runningSize += bHeight + splitHeight labels.append(boostNameLabel) labels.append(boostRankLabel) description = PLocalizer.getItemFlavorText(itemId) if description != '': descriptionLabel = DirectLabel(parent = self, relief = None, text = description, text_scale = textScale, text_wordwrap = halfWidth * 2.0 * (0.94999999999999996 / textScale), text_align = TextNode.ALeft, pos = (-halfWidth + textScale * 0.5, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) dHeight = descriptionLabel.getHeight() + 0.02 runningVertPosition -= dHeight runningSize += dHeight labels.append(descriptionLabel) weaponLevel = 0 weaponRepId = WeaponGlobals.getRepId(itemId) weaponRep = inv.getReputation(weaponRepId) weaponReq = ItemGlobals.getWeaponRequirement(itemId) weaponText = None if weaponReq: weaponLevel = ReputationGlobals.getLevelFromTotalReputation(weaponRepId, weaponRep)[0] if weaponLevel < weaponReq: weaponColor = PiratesGuiGlobals.TextFG6 else: weaponColor = (0.40000000000000002, 0.40000000000000002, 0.40000000000000002, 1.0) weaponText = PLocalizer.ItemLevelRequirement % (weaponReq, PLocalizer.getItemTypeName(itemType)) else: trainingToken = EconomyGlobals.getItemTrainingReq(itemId) trainingAmt = inv.getItemQuantity(trainingToken) if trainingAmt == 0: weaponColor = PiratesGuiGlobals.TextFG6 weaponText = PLocalizer.ItemTrainingRequirement % PLocalizer.getItemTypeName(itemType) if weaponText: weaponReqLabel = DirectLabel(parent = self, relief = None, text = weaponText, text_scale = textScale, text_wordwrap = halfWidth * 2.0 * (1.5 / titleScale), text_fg = weaponColor, text_shadow = PiratesGuiGlobals.TextShadow, text_align = TextNode.ACenter, pos = (0.0, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) wHeight = weaponReqLabel.getHeight() runningVertPosition -= wHeight runningSize += wHeight labels.append(weaponReqLabel) if not Freebooter.getPaidStatus(localAvatar.getDoId()): if rarity != ItemGlobals.CRUDE: unlimitedLabel = DirectLabel(parent = self, relief = None, text = PLocalizer.UnlimitedAccessRequirement, text_scale = textScale, text_wordwrap = halfWidth * 2.0 * (1.5 / titleScale), text_fg = PiratesGuiGlobals.TextFG6, text_shadow = PiratesGuiGlobals.TextShadow, text_align = TextNode.ACenter, pos = (0.0, 0.0, runningVertPosition), text_pos = (0.0, -textScale)) uHeight = unlimitedLabel.getHeight() runningVertPosition -= uHeight runningSize += uHeight labels.append(unlimitedLabel) runningVertPosition -= 0.02 runningSize += 0.02 panels = self.helpFrame.attachNewNode('panels') topPanel = panels.attachNewNode('middlePanel') detailGui.find('**/top_panel').copyTo(topPanel) topPanel.setScale(0.080000000000000002) topPanel.reparentTo(self.helpFrame) middlePanel = panels.attachNewNode('middlePanel') detailGui.find('**/middle_panel').copyTo(middlePanel) middlePanel.setScale(0.080000000000000002) middlePanel.reparentTo(self.helpFrame) placement = 0 i = 0 heightMax = -0.080000000000000002 currentHeight = runningVertPosition while currentHeight < heightMax: middlePanel = panels.attachNewNode('middlePanel%s' % 1) detailGui.find('**/middle_panel').copyTo(middlePanel) middlePanel.setScale(0.080000000000000002) middlePanel.reparentTo(self.helpFrame) if currentHeight + 0.20000000000000001 >= heightMax: difference = heightMax - currentHeight placement += (0.16800000000000001 / 0.20000000000000001) * difference currentHeight += difference else: placement += 0.16800000000000001 currentHeight += 0.20000000000000001 middlePanel.setZ(-placement) i += 1 bottomPanel = panels.attachNewNode('bottomPanel') detailGui.find('**/bottom_panel').copyTo(bottomPanel) bottomPanel.setScale(0.080000000000000002) bottomPanel.setZ(-placement) bottomPanel.reparentTo(self.helpFrame) colorPanel = panels.attachNewNode('colorPanel') detailGui.find('**/color').copyTo(colorPanel) colorPanel.setScale(0.080000000000000002) colorPanel.setColor(titleColor) colorPanel.reparentTo(self.helpFrame) lineBreakTopPanel = panels.attachNewNode('lineBreakTopPanel') detailGui.find('**/line_break_top').copyTo(lineBreakTopPanel) lineBreakTopPanel.setScale(0.080000000000000002, 0.080000000000000002, 0.070000000000000007) lineBreakTopPanel.setZ(0.0080000000000000002) lineBreakTopPanel.reparentTo(self.helpFrame) panels.flattenStrong() self.helpFrame['frameSize'] = (-halfWidth, halfWidth, -(runningSize + vMargin), vMargin) totalHeight = self.helpFrame.getHeight() - 0.10000000000000001 for label in labels: label.reparentTo(self.helpFrame) if basePosX > 0.0: newPosX = basePosX - halfWidth + cellSizeX * 0.45000000000000001 else: newPosX = basePosX + halfWidth + cellSizeX * 0.45000000000000001 if basePosZ > 0.0: newPosZ = basePosZ + cellSizeZ * 0.45000000000000001 else: newPosZ = basePosZ + totalHeight - cellSizeZ * 0.75 if detailsPos: (newPosX, newPosZ) = detailsPos self.helpFrame.setPos(newPosX, 0, newPosZ)