예제 #1
0
 def addTab(self, itemGroup, item):
     newTab = self.tabBar.addTab(itemGroup,
                                 command=self.setPage,
                                 extraArgs=[itemGroup])
     repId = WeaponGlobals.getRepId(item)
     if repId:
         iconName = ReputationGlobals.RepIcons.get(repId)
         if repId == InventoryType.FishingRep:
             icon = StoreGUI.FishingIcons.find('**/%s' % iconName)
         else:
             icon = StoreGUI.WeaponIcons.find('**/%s' % iconName)
     elif InventoryType.begin_Consumables <= item < InventoryType.end_Consumables or ItemGlobals.getClass(
             item) == InventoryType.ItemTypeConsumable:
         iconName = EconomyGlobals.getItemIcons(item)
         icon = StoreGUI.SkillIcons.find('**/%s' % iconName)
     elif InventoryType.begin_WeaponCannonAmmo <= item < InventoryType.end_WeaponCannonAmmo:
         iconName = EconomyGlobals.getItemIcons(InventoryType.CannonL1)
         icon = StoreGUI.WeaponIcons.find('**/%s' % iconName)
     elif InventoryType.begin_WeaponGrenadeAmmo <= item < InventoryType.end_WeaponGrenadeAmmo:
         itemId = InventoryType.GrenadeWeaponL1
         iconName = EconomyGlobals.getItemIcons(itemId)
         icon = StoreGUI.WeaponIcons.find('**/%s' % iconName)
     elif InventoryType.begin_FishingLures <= item < InventoryType.end_FishingLures:
         icon = StoreGUI.FishingIcons.find('**/pir_t_gui_gen_fish_lure')
     else:
         icon = None
     newTab.nameTag = DirectLabel(parent=newTab,
                                  relief=None,
                                  state=DGG.DISABLED,
                                  image=icon,
                                  image_scale=0.4,
                                  image_pos=(0, 0, 0.04),
                                  pos=(0.06, 0, -0.035))
     self.pageNames.append(itemGroup)
     return
 def addTab(self, itemGroup, item):
     newTab = self.tabBar.addTab(itemGroup, command = self.setPage, extraArgs = [
         itemGroup])
     repId = WeaponGlobals.getRepId(item)
     if repId:
         iconName = ReputationGlobals.RepIcons.get(repId)
         if repId == InventoryType.FishingRep:
             icon = StoreGUI.FishingIcons.find('**/%s' % iconName)
         else:
             icon = StoreGUI.WeaponIcons.find('**/%s' % iconName)
     elif InventoryType.begin_Consumables <= item:
         pass
     elif repId or ItemGlobals.getClass(item) == InventoryType.ItemTypeConsumable:
         iconName = EconomyGlobals.getItemIcons(item)
         icon = StoreGUI.SkillIcons.find('**/%s' % iconName)
     elif InventoryType.begin_WeaponCannonAmmo <= item:
         pass
     elif ItemGlobals.getClass(item) == InventoryType.ItemTypeConsumable:
         iconName = EconomyGlobals.getItemIcons(InventoryType.CannonL1)
         icon = StoreGUI.WeaponIcons.find('**/%s' % iconName)
     elif InventoryType.begin_WeaponGrenadeAmmo <= item:
         pass
     elif ItemGlobals.getClass(item) == InventoryType.ItemTypeConsumable:
         itemId = InventoryType.GrenadeWeaponL1
         iconName = EconomyGlobals.getItemIcons(itemId)
         icon = StoreGUI.WeaponIcons.find('**/%s' % iconName)
     elif InventoryType.begin_FishingLures <= item:
         pass
     elif ItemGlobals.getClass(item) == InventoryType.ItemTypeConsumable:
         icon = StoreGUI.FishingIcons.find('**/pir_t_gui_gen_fish_lure')
     else:
         icon = None
     newTab.nameTag = DirectLabel(parent = newTab, relief = None, state = DGG.DISABLED, image = icon, image_scale = 0.40000000000000002, image_pos = (0, 0, 0.040000000000000001), pos = (0.059999999999999998, 0, -0.035000000000000003))
     self.pageNames.append(itemGroup)
예제 #3
0
 def createGui(self):
     itemId = self.data[0]
     self.itemCount += 1
     self.itemQuantity = self.quantity
     self.itemCost = self.price
     self.picture = DirectFrame(parent=self, relief=None, state=DGG.DISABLED, pos=(0.035,
                                                                                   0,
                                                                                   0.025))
     self.quantityLabel = DirectLabel(parent=self, relief=None, state=DGG.DISABLED, text=str(self.quantity), text_fg=PiratesGuiGlobals.TextFG2, text_scale=PiratesGuiGlobals.TextScaleSmall * PLocalizer.getHeadingScale(2), text_align=TextNode.ARight, text_wordwrap=11, pos=(0.1225,
                                                                                                                                                                                                                                                                                0,
                                                                                                                                                                                                                                                                                0.015))
     if len(self.name) >= 39:
         textScale = PiratesGuiGlobals.TextScaleMicro * PLocalizer.getHeadingScale(2)
     else:
         if len(self.name) >= 35:
             textScale = PiratesGuiGlobals.TextScaleTiny * PLocalizer.getHeadingScale(2)
         else:
             textScale = PiratesGuiGlobals.TextScaleSmall * PLocalizer.getHeadingScale(2)
         self.nameTag = DirectLabel(parent=self, relief=None, state=DGG.DISABLED, text=self.name, text_fg=PiratesGuiGlobals.TextFG2, text_scale=textScale, text_align=TextNode.ALeft, pos=(0.13,
                                                                                                                                                                                           0,
                                                                                                                                                                                           0.015))
         self.costText = DirectLabel(parent=self, relief=None, state=DGG.DISABLED, image=InventoryListItem.coinImage, image_scale=0.12, image_pos=Vec3(-0.005, 0, 0.0125), text=str(self.price), text_fg=PiratesGuiGlobals.TextFG2, text_scale=PiratesGuiGlobals.TextScaleSmall, text_align=TextNode.ARight, text_wordwrap=11, text_pos=(-0.03, 0, 0), pos=(self.width - 0.035, 0, 0.015), text_font=PiratesGlobals.getInterfaceFont())
         itemClass = EconomyGlobals.getItemCategory(itemId)
         itemType = EconomyGlobals.getItemType(itemId)
         if itemType == ItemType.FISHING_ROD or itemType == ItemType.FISHING_LURE:
             asset = EconomyGlobals.getItemIcons(itemId)
             if asset:
                 self.picture['geom'] = PurchaseListItem.fishingIcons.find('**/%s*' % asset)
                 self.picture['geom_scale'] = 0.04
                 self.picture['geom_pos'] = (0, 0, 0)
         elif itemClass == ItemType.WEAPON or itemClass == ItemType.POUCH:
             asset = EconomyGlobals.getItemIcons(itemId)
             if asset:
                 self.picture['geom'] = InventoryListItem.weaponIcons.find('**/%s*' % asset)
                 self.picture['geom_scale'] = 0.04
                 self.picture['geom_pos'] = (0, 0, 0)
         elif itemClass == ItemType.CONSUMABLE:
             asset = EconomyGlobals.getItemIcons(itemId)
             if asset:
                 self.picture['geom'] = InventoryListItem.skillIcons.find('**/%s*' % asset)
                 self.picture['geom_scale'] = 0.04
                 self.picture['geom_pos'] = (0, 0, 0)
         if InventoryType.begin_WeaponCannonAmmo <= itemId and itemId <= InventoryType.end_WeaponCannonAmmo or InventoryType.begin_WeaponPistolAmmo <= itemId and itemId <= InventoryType.end_WeaponGrenadeAmmo or InventoryType.begin_WeaponDaggerAmmo <= itemId and itemId <= InventoryType.end_WeaponDaggerAmmo:
             skillId = WeaponGlobals.getSkillIdForAmmoSkillId(itemId)
             if skillId:
                 asset = WeaponGlobals.getSkillIcon(skillId)
                 if asset:
                     self.picture['geom'] = InventoryListItem.skillIcons.find('**/%s' % asset)
                     self.picture['geom_scale'] = 0.06
                     self.picture['geom_pos'] = (0, 0, 0)
         if InventoryType.SmallBottle <= itemId and itemId <= InventoryType.LargeBottle:
             self.picture['geom'] = self.topGui.find('**/main_gui_ship_bottle')
             self.picture['geom_scale'] = 0.1
             self.picture['geom_pos'] = (0, 0, 0)
     self.flattenStrong()
     return
예제 #4
0
 def createGui(self):
     itemId = self.data[0]
     self.itemCount += 1
     self.itemQuantity = self.quantity
     self.itemCost = self.price
     self.picture = DirectFrame(parent = self, relief = None, state = DGG.DISABLED, pos = (0.035000000000000003, 0, 0.025000000000000001))
     self.quantityLabel = DirectLabel(parent = self, relief = None, state = DGG.DISABLED, text = str(self.quantity), text_fg = PiratesGuiGlobals.TextFG2, text_scale = PiratesGuiGlobals.TextScaleSmall * PLocalizer.getHeadingScale(2), text_align = TextNode.ARight, text_wordwrap = 11, pos = (0.1225, 0, 0.014999999999999999))
     if len(self.name) >= 39:
         textScale = PiratesGuiGlobals.TextScaleMicro * PLocalizer.getHeadingScale(2)
     elif len(self.name) >= 35:
         textScale = PiratesGuiGlobals.TextScaleTiny * PLocalizer.getHeadingScale(2)
     else:
         textScale = PiratesGuiGlobals.TextScaleSmall * PLocalizer.getHeadingScale(2)
     self.nameTag = DirectLabel(parent = self, relief = None, state = DGG.DISABLED, text = self.name, text_fg = PiratesGuiGlobals.TextFG2, text_scale = textScale, text_align = TextNode.ALeft, pos = (0.13, 0, 0.014999999999999999))
     self.costText = DirectLabel(parent = self, relief = None, state = DGG.DISABLED, image = InventoryListItem.coinImage, image_scale = 0.12, image_pos = Vec3(-0.0050000000000000001, 0, 0.012500000000000001), text = str(self.price), text_fg = PiratesGuiGlobals.TextFG2, text_scale = PiratesGuiGlobals.TextScaleSmall, text_align = TextNode.ARight, text_wordwrap = 11, text_pos = (-0.029999999999999999, 0, 0), pos = (self.width - 0.035000000000000003, 0, 0.014999999999999999), text_font = PiratesGlobals.getInterfaceFont())
     itemClass = EconomyGlobals.getItemCategory(itemId)
     itemType = EconomyGlobals.getItemType(itemId)
     if itemType == ItemType.FISHING_ROD or itemType == ItemType.FISHING_LURE:
         asset = EconomyGlobals.getItemIcons(itemId)
         if asset:
             self.picture['geom'] = PurchaseListItem.fishingIcons.find('**/%s*' % asset)
             self.picture['geom_scale'] = 0.040000000000000001
             self.picture['geom_pos'] = (0, 0, 0)
         
     elif itemClass == ItemType.WEAPON or itemClass == ItemType.POUCH:
         asset = EconomyGlobals.getItemIcons(itemId)
         if asset:
             self.picture['geom'] = InventoryListItem.weaponIcons.find('**/%s*' % asset)
             self.picture['geom_scale'] = 0.040000000000000001
             self.picture['geom_pos'] = (0, 0, 0)
         
     elif itemClass == ItemType.CONSUMABLE:
         asset = EconomyGlobals.getItemIcons(itemId)
         if asset:
             self.picture['geom'] = InventoryListItem.skillIcons.find('**/%s*' % asset)
             self.picture['geom_scale'] = 0.040000000000000001
             self.picture['geom_pos'] = (0, 0, 0)
         
     
     if not InventoryType.begin_WeaponCannonAmmo <= itemId or itemId <= InventoryType.end_WeaponCannonAmmo:
         if (InventoryType.begin_WeaponPistolAmmo <= itemId or itemId <= InventoryType.end_WeaponGrenadeAmmo or InventoryType.begin_WeaponDaggerAmmo <= itemId) and itemId <= InventoryType.end_WeaponDaggerAmmo:
             skillId = WeaponGlobals.getSkillIdForAmmoSkillId(itemId)
             if skillId:
                 asset = WeaponGlobals.getSkillIcon(skillId)
                 if asset:
                     self.picture['geom'] = InventoryListItem.skillIcons.find('**/%s' % asset)
                     self.picture['geom_scale'] = 0.059999999999999998
                     self.picture['geom_pos'] = (0, 0, 0)
                 
             
         elif InventoryType.SmallBottle <= itemId and itemId <= InventoryType.LargeBottle:
             self.picture['geom'] = self.topGui.find('**/main_gui_ship_bottle')
             self.picture['geom_scale'] = 0.10000000000000001
             self.picture['geom_pos'] = (0, 0, 0)
         
     self.flattenStrong()
예제 #5
0
 def getGeomParams(itemId):
     geomParams = { }
     itemType = EconomyGlobals.getItemType(itemId)
     if itemType <= ItemType.WAND or itemType == ItemType.POTION:
         if itemType == ItemType.POTION:
             geomParams['geom'] = InventoryItemGui.skillIcons.find('**/%s' % ItemGlobals.getIcon(itemId))
         else:
             itemType = ItemGlobals.getType(itemId)
             if ItemGlobals.getIcon(itemId):
                 geomParams['geom'] = InventoryItemGui.weaponIcons.find('**/%s' % ItemGlobals.getIcon(itemId))
             
         geomParams['geom_scale'] = 0.11
         geomParams['geom_pos'] = (0.080000000000000002, 0, 0.068000000000000005)
     else:
         itemClass = EconomyGlobals.getItemCategory(itemId)
         itemType = EconomyGlobals.getItemType(itemId)
         if itemType == ItemType.FISHING_ROD or itemType == ItemType.FISHING_LURE:
             asset = EconomyGlobals.getItemIcons(itemId)
             if asset:
                 geomParams['geom'] = InventoryItemGui.fishingIcons.find('**/%s*' % asset)
                 geomParams['geom_scale'] = 0.11
                 geomParams['geom_pos'] = (0.080000000000000002, 0, 0.068000000000000005)
             
         elif itemClass == ItemType.WEAPON and itemClass == ItemType.POUCH or itemClass == ItemType.AMMO:
             asset = EconomyGlobals.getItemIcons(itemId)
             if asset:
                 geomParams['geom'] = InventoryItemGui.weaponIcons.find('**/%s*' % asset)
                 geomParams['geom_scale'] = 0.11
                 geomParams['geom_pos'] = (0.080000000000000002, 0, 0.068000000000000005)
             
         elif itemClass == ItemType.CONSUMABLE:
             asset = EconomyGlobals.getItemIcons(itemId)
             if asset:
                 geomParams['geom'] = InventoryItemGui.skillIcons.find('**/%s*' % asset)
                 geomParams['geom_scale'] = 0.11
                 geomParams['geom_pos'] = (0.080000000000000002, 0, 0.068000000000000005)
             
         
     if not InventoryType.begin_WeaponCannonAmmo <= itemId or itemId <= InventoryType.end_WeaponCannonAmmo:
         if (InventoryType.begin_WeaponPistolAmmo <= itemId or itemId <= InventoryType.end_WeaponGrenadeAmmo or InventoryType.begin_WeaponDaggerAmmo <= itemId) and itemId <= InventoryType.end_WeaponDaggerAmmo:
             skillId = WeaponGlobals.getSkillIdForAmmoSkillId(itemId)
             if skillId:
                 asset = WeaponGlobals.getSkillIcon(skillId)
                 if asset:
                     geomParams['geom'] = InventoryListItem.skillIcons.find('**/%s' % asset)
                     geomParams['geom_scale'] = 0.14999999999999999
                     geomParams['geom_pos'] = (0.069000000000000006, 0, 0.069000000000000006)
                 
             
         elif InventoryType.SmallBottle <= itemId and itemId <= InventoryType.LargeBottle:
             geomParams['geom'] = InventoryListItem.topGui.find('**/main_gui_ship_bottle')
             geomParams['geom_scale'] = 0.10000000000000001
             geomParams['geom_pos'] = (0.069000000000000006, 0, 0.069000000000000006)
         
     return geomParams
예제 #6
0
 def __init__(self, manager, itemTuple, imageScaleFactor=1.0):
     InventoryUIStackItem.InventoryUIStackItem.__init__(self, manager, itemTuple, imageScaleFactor=imageScaleFactor)
     self.initialiseoptions(InventoryUIPouchItem)
     Icons = loader.loadModel("models/gui/gui_icons_weapon")
     self["image"] = Icons.find("**/%s" % EconomyGlobals.getItemIcons(self.getId()))
     self.helpFrame = None
     self.cm = CardMaker("itemCard")
     self.cm.setFrame(-0.29999999999999999, 0.29999999999999999, -0.089999999999999997, 0.089999999999999997)
     self.buffer = None
     self.lens = PerspectiveLens()
     self.lens.setNear(0.10000000000000001)
     self.lens.setAspectRatio(0.59999999999999998 / 0.17999999999999999)
     self.realItem = None
     self.iconLabel = None
     self.itemCard = None
     self.portraitSceneGraph = NodePath("PortraitSceneGraph")
     detailGui = loader.loadModel("models/gui/gui_card_detail")
     self.bg = detailGui.find("**/color")
     self.bg.setScale(4)
     self.bg.setPos(0, 17, -6.2999999999999998)
     self.glow = detailGui.find("**/glow")
     self.glow.setScale(3)
     self.glow.setPos(0, 17, -6.2999999999999998)
     self.glow.setColor(1, 1, 1, 0.80000000000000004)
     self.setBin("gui-fixed", 1)
     self.accept("open_main_window", self.createBuffer)
     self.accept("aspectRatioChanged", self.createBuffer)
     self.accept("close_main_window", self.destroyBuffer)
     self["image_scale"] = 0.10000000000000001 * imageScaleFactor
예제 #7
0
 def __init__(self, manager, itemId, itemTuple, imageScaleFactor = 1.0, showMax = 1, update = False):
     self.itemId = itemId
     InventoryUIStackItem.InventoryUIStackItem.__init__(self, manager, itemTuple, imageScaleFactor = imageScaleFactor, showMax = showMax, update = update)
     self.initialiseoptions(InventoryUIMaterialItem)
     SkillIcons = loader.loadModel('models/textureCards/skillIcons')
     MaterialIcons = loader.loadModel('models/textureCards/shipMaterialIcons')
     self['image'] = MaterialIcons.find('**/%s' % EconomyGlobals.getItemIcons(itemId))
     self.helpFrame = None
     self.cm = CardMaker('itemCard')
     self.cm.setFrame(-0.29999999999999999, 0.29999999999999999, -0.089999999999999997, 0.089999999999999997)
     self.buffer = None
     self.lens = PerspectiveLens()
     self.lens.setNear(0.10000000000000001)
     self.lens.setAspectRatio(0.59999999999999998 / 0.17999999999999999)
     self.realItem = None
     self.iconLabel = None
     self.itemCard = None
     self.portraitSceneGraph = NodePath('PortraitSceneGraph')
     detailGui = loader.loadModel('models/gui/gui_card_detail')
     self.bg = detailGui.find('**/color')
     self.bg.setScale(4)
     self.bg.setPos(0, 17, -6.2999999999999998)
     self.glow = detailGui.find('**/glow')
     self.glow.setScale(3)
     self.glow.setPos(0, 17, -6.2999999999999998)
     self.glow.setColor(1, 1, 1, 0.80000000000000004)
     self.setBin('gui-fixed', 1)
     self.accept('open_main_window', self.createBuffer)
     self.accept('aspectRatioChanged', self.createBuffer)
     self.accept('close_main_window', self.destroyBuffer)
     self['image_scale'] = 0.10000000000000001 * imageScaleFactor
예제 #8
0
 def __init__(self, manager, itemId, itemTuple, imageScaleFactor=1.0, showMax=1, update=False):
     self.itemId = itemId
     InventoryUIStackItem.InventoryUIStackItem.__init__(self, manager, itemTuple, imageScaleFactor=imageScaleFactor, showMax=showMax, update=update)
     self.initialiseoptions(InventoryUIMaterialItem)
     SkillIcons = loader.loadModel('models/textureCards/skillIcons')
     MaterialIcons = loader.loadModel('models/textureCards/shipMaterialIcons')
     self['image'] = MaterialIcons.find('**/%s' % EconomyGlobals.getItemIcons(itemId))
     self.helpFrame = None
     self.cm = CardMaker('itemCard')
     self.cm.setFrame(-0.3, 0.3, -0.09, 0.09)
     self.buffer = None
     self.lens = PerspectiveLens()
     self.lens.setNear(0.1)
     self.lens.setAspectRatio(0.6 / 0.18)
     self.realItem = None
     self.iconLabel = None
     self.itemCard = None
     self.portraitSceneGraph = NodePath('PortraitSceneGraph')
     detailGui = loader.loadModel('models/gui/gui_card_detail')
     self.bg = detailGui.find('**/color')
     self.bg.setScale(4)
     self.bg.setPos(0, 17, -6.3)
     self.glow = detailGui.find('**/glow')
     self.glow.setScale(3)
     self.glow.setPos(0, 17, -6.3)
     self.glow.setColor(1, 1, 1, 0.8)
     self.setBin('gui-fixed', 1)
     self.accept('open_main_window', self.createBuffer)
     self.accept('aspectRatioChanged', self.createBuffer)
     self.accept('close_main_window', self.destroyBuffer)
     self['image_scale'] = 0.1 * imageScaleFactor
     return
예제 #9
0
 def __init__(self, uid):
     SimpleEconomyItem.__init__(self, uid)
     self.icon = self.Icons.find('**/%s' % EconomyGlobals.getItemIcons(uid))
     if uid in range(InventoryType.begin_PistolPouches,
                     InventoryType.end_PistolPouches):
         self.shortDesc = PLocalizer.makeHeadingString(
             PLocalizer.InventoryItemClassNames.get(ItemType.PISTOL), 1)
     else:
         if uid in range(InventoryType.begin_DaggerPouches,
                         InventoryType.end_DaggerPouches):
             self.shortDesc = PLocalizer.makeHeadingString(
                 PLocalizer.InventoryItemClassNames.get(ItemType.DAGGER), 1)
         else:
             if uid in range(InventoryType.begin_GrenadePouches,
                             InventoryType.end_GrenadePouches):
                 self.shortDesc = PLocalizer.makeHeadingString(
                     PLocalizer.GrenadeShort, 1)
             else:
                 if uid in range(InventoryType.begin_CannonPouches,
                                 InventoryType.end_CannonPouches):
                     self.shortDesc = PLocalizer.makeHeadingString(
                         PLocalizer.ShipCannonShort, 1)
                 else:
                     self.shortDesc = PLocalizer.makeHeadingString(
                         self.itemType, 1)
     self.itemName = self.shortDesc
     self.longDesc = self.shortDesc
예제 #10
0
 def __init__(self, manager, itemTuple, imageScaleFactor=1.0):
     InventoryUIStackItem.InventoryUIStackItem.__init__(
         self, manager, itemTuple, imageScaleFactor=imageScaleFactor)
     self.initialiseoptions(InventoryUIPouchItem)
     Icons = loader.loadModel('models/gui/gui_icons_weapon')
     self['image'] = Icons.find('**/%s' %
                                EconomyGlobals.getItemIcons(self.getId()))
     self.helpFrame = None
     self.cm = CardMaker('itemCard')
     self.cm.setFrame(-0.29999999999999999, 0.29999999999999999,
                      -0.089999999999999997, 0.089999999999999997)
     self.buffer = None
     self.lens = PerspectiveLens()
     self.lens.setNear(0.10000000000000001)
     self.lens.setAspectRatio(0.59999999999999998 / 0.17999999999999999)
     self.realItem = None
     self.iconLabel = None
     self.itemCard = None
     self.portraitSceneGraph = NodePath('PortraitSceneGraph')
     detailGui = loader.loadModel('models/gui/gui_card_detail')
     self.bg = detailGui.find('**/color')
     self.bg.setScale(4)
     self.bg.setPos(0, 17, -6.2999999999999998)
     self.glow = detailGui.find('**/glow')
     self.glow.setScale(3)
     self.glow.setPos(0, 17, -6.2999999999999998)
     self.glow.setColor(1, 1, 1, 0.80000000000000004)
     self.setBin('gui-fixed', 1)
     self.accept('open_main_window', self.createBuffer)
     self.accept('aspectRatioChanged', self.createBuffer)
     self.accept('close_main_window', self.destroyBuffer)
     self['image_scale'] = 0.10000000000000001 * imageScaleFactor
예제 #11
0
 def __init__(self, manager, materialType, itemTuple, imageScaleFactor=1.0):
     InventoryUIItem.InventoryUIItem.__init__(
         self, manager, itemTuple, imageScaleFactor=imageScaleFactor)
     self.initialiseoptions(InventoryUIMaterialBagItem)
     materialIcons = loader.loadModel('models/gui/gui_icons_weapon')
     self['image'] = materialIcons.find(
         '**/%s' % EconomyGlobals.getItemIcons(materialType))
     self.materialType = materialType
예제 #12
0
 def __init__(self, manager, skillId, itemTuple, imageScaleFactor = 1.0):
     InventoryUIItem.InventoryUIItem.__init__(self, manager, itemTuple, imageScaleFactor = imageScaleFactor)
     self.initialiseoptions(InventoryUIAmmoBagItem)
     weaponIcons = loader.loadModel('models/gui/gui_icons_weapon')
     fishingIcons = loader.loadModel('models/textureCards/fishing_icons')
     if self.itemTuple[1]:
         self['image'] = weaponIcons.find('**/%s' % EconomyGlobals.getItemIcons(self.itemTuple[1]))
     elif skillId == EconomyGlobals.ItemType.FISHING_POUCH:
         self['image'] = fishingIcons.find('**/%s' % EconomyGlobals.getItemTypeIcon(skillId))
     else:
         self['image'] = weaponIcons.find('**/%s' % EconomyGlobals.getItemTypeIcon(skillId))
     self.skillId = skillId
예제 #13
0
 def __init__(self, uid):
     SimpleEconomyItem.__init__(self, uid)
     self.icon = self.Icons.find('**/%s' % EconomyGlobals.getItemIcons(uid))
     if uid in range(InventoryType.begin_PistolPouches, InventoryType.end_PistolPouches):
         self.shortDesc = PLocalizer.makeHeadingString(PLocalizer.InventoryItemClassNames.get(ItemType.PISTOL), 1)
     elif uid in range(InventoryType.begin_DaggerPouches, InventoryType.end_DaggerPouches):
         self.shortDesc = PLocalizer.makeHeadingString(PLocalizer.InventoryItemClassNames.get(ItemType.DAGGER), 1)
     elif uid in range(InventoryType.begin_GrenadePouches, InventoryType.end_GrenadePouches):
         self.shortDesc = PLocalizer.makeHeadingString(PLocalizer.GrenadeShort, 1)
     elif uid in range(InventoryType.begin_CannonPouches, InventoryType.end_CannonPouches):
         self.shortDesc = PLocalizer.makeHeadingString(PLocalizer.ShipCannonShort, 1)
     else:
         self.shortDesc = PLocalizer.makeHeadingString(self.itemType, 1)
     self.itemName = self.shortDesc
     self.longDesc = self.shortDesc
예제 #14
0
 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
     
     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*')
     SkillIcons = loader.loadModel('models/textureCards/skillIcons')
     border = 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.TextFG24
     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 = PLocalizer.InventoryItemClassNames.get(EconomyGlobals.getItemType(self.getId()), ''), 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)
     MaterialIcons = loader.loadModel('models/textureCards/shipMaterialIcons')
     self.iconLabel = DirectLabel(parent = self.portraitSceneGraph, relief = None, image = MaterialIcons.find('**/%s' % EconomyGlobals.getItemIcons(self.getItemId())), pos = (0.0, 2.5, 0.0))
     iHeight = 0.17999999999999999
     self.createBuffer()
     self.itemCard.setZ(runningVertPosition - 0.059999999999999998)
     runningVertPosition -= iHeight
     runningSize += iHeight
     labels.append(self.itemCard)
     description = PLocalizer.WeaponDescriptions.get(self.getId())
     if not description:
         description = PLocalizer.WeaponDescriptions.get(self.getItemId())
     
     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)
     
     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
     if detailsHeight:
         currentHeight = -detailsHeight
     
     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)
예제 #15
0
 def createGui(self):
     itemId = self.data[0]
     self.picture = DirectFrame(parent = self, relief = None, state = DGG.DISABLED, pos = (0.01, 0, 0.01))
     self.nameTag = DirectLabel(parent = self, relief = None, state = DGG.DISABLED, text = self.name, text_scale = PiratesGuiGlobals.TextScaleSmall * PLocalizer.getHeadingScale(2), text_align = TextNode.ALeft, text_fg = PiratesGuiGlobals.TextFG1, text_shadow = PiratesGuiGlobals.TextShadow, pos = (0.050000000000000003, 0, 0.105), text_font = PiratesGlobals.getInterfaceFont())
     itemTypeFormatted = ''
     self.itemTypeName = DirectLabel(parent = self, relief = None, state = DGG.DISABLED, text = itemTypeFormatted, text_scale = PiratesGuiGlobals.TextScaleSmall, text_align = TextNode.ALeft, text_fg = PiratesGuiGlobals.TextFG2, text_shadow = PiratesGuiGlobals.TextShadow, text_font = PiratesGlobals.getInterfaceFont(), pos = (0.050000000000000003, 0, 0.065000000000000002))
     self.miscText = DirectLabel(parent = self, relief = None, state = DGG.DISABLED, text = '', text_scale = PiratesGuiGlobals.TextScaleSmall, text_align = TextNode.ALeft, text_fg = PiratesGuiGlobals.TextFG2, text_shadow = PiratesGuiGlobals.TextShadow, text_wordwrap = 11, pos = (0.050000000000000003, 0, 0.025000000000000001))
     if self.minLvl > 0:
         repId = WeaponGlobals.getRepId(itemId)
         if repId:
             self.checkLevel(repId, self.minLvl)
         
     
     trainingReq = EconomyGlobals.getItemTrainingReq(itemId)
     if trainingReq:
         self.checkTrainingReq(trainingReq)
     
     if EconomyGlobals.getItemCategory(itemId) == ItemType.AMMO:
         skillId = WeaponGlobals.getSkillIdForAmmoSkillId(itemId)
         self.checkSkillReq(skillId)
     
     if self.buy:
         self.checkPlayerInventory(itemId)
     
     self.costText = DirectLabel(parent = self, relief = None, state = DGG.DISABLED, image = SongListItem.coinImage, image_scale = 0.12, image_pos = Vec3(-0.01, 0, 0.01), text = str(self.price), text_scale = PiratesGuiGlobals.TextScaleSmall, text_align = TextNode.ARight, text_fg = PiratesGuiGlobals.TextFG2, text_shadow = PiratesGuiGlobals.TextShadow, text_wordwrap = 11, text_pos = (-0.029999999999999999, 0, 0), pos = (self.width - 0.035000000000000003, 0, 0.105), text_font = PiratesGlobals.getInterfaceFont())
     if self.quantity and self.quantity > 1:
         self.quantityLabel = DirectLabel(parent = self, relief = None, state = DGG.DISABLED, text = str(self.quantity), frameColor = (0, 0, 0, 1), frameSize = (-0.01, 0.02, -0.01, 0.025000000000000001), text_scale = 0.0275, text_align = TextNode.ACenter, text_fg = PiratesGuiGlobals.TextFG2, text_shadow = PiratesGuiGlobals.TextShadow, text_wordwrap = 11, pos = (0.02, 0, 0.025000000000000001), text_font = PiratesGlobals.getPirateBoldOutlineFont())
     
     itemClass = EconomyGlobals.getItemCategory(itemId)
     if itemClass == ItemType.WEAPON or itemClass == ItemType.POUCH:
         asset = EconomyGlobals.getItemIcons(itemId)
         if asset:
             self.picture['geom'] = SongItemGui.weaponIcons.find('**/%s*' % asset)
             self.picture['geom_scale'] = 0.11
             self.picture['geom_pos'] = (0.080000000000000002, 0, 0.068000000000000005)
         
     elif itemClass == ItemType.CONSUMABLE:
         asset = EconomyGlobals.getItemIcons(itemId)
         if asset:
             self.picture['geom'] = SongItemGui.skillIcons.find('**/%s*' % asset)
             self.picture['geom_scale'] = 0.11
             self.picture['geom_pos'] = (0.080000000000000002, 0, 0.068000000000000005)
         
     
     if not InventoryType.begin_WeaponCannonAmmo <= itemId or itemId <= InventoryType.end_WeaponCannonAmmo:
         if (InventoryType.begin_WeaponPistolAmmo <= itemId or itemId <= InventoryType.end_WeaponGrenadeAmmo or InventoryType.begin_WeaponDaggerAmmo <= itemId) and itemId <= InventoryType.end_WeaponDaggerAmmo:
             skillId = WeaponGlobals.getSkillIdForAmmoSkillId(itemId)
             if skillId:
                 asset = WeaponGlobals.getSkillIcon(skillId)
                 if asset:
                     self.picture['geom'] = SongListItem.skillIcons.find('**/%s' % asset)
                     self.picture['geom_scale'] = 0.14999999999999999
                     self.picture['geom_pos'] = (0.069000000000000006, 0, 0.069000000000000006)
                 
             
         elif InventoryType.SmallBottle <= itemId and itemId <= InventoryType.LargeBottle:
             self.picture['geom'] = SongListItem.topGui.find('**/main_gui_ship_bottle')
             self.picture['geom_scale'] = 0.10000000000000001
             self.picture['geom_pos'] = (0.069000000000000006, 0, 0.069000000000000006)
         
     self.flattenStrong()
 def __init__(self, manager, materialType, itemTuple, imageScaleFactor = 1.0):
     InventoryUIItem.InventoryUIItem.__init__(self, manager, itemTuple, imageScaleFactor = imageScaleFactor)
     self.initialiseoptions(InventoryUIMaterialBagItem)
     materialIcons = loader.loadModel('models/gui/gui_icons_weapon')
     self['image'] = materialIcons.find('**/%s' % EconomyGlobals.getItemIcons(materialType))
     self.materialType = materialType
 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'] = ' '
예제 #18
0
    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'] = ' '
예제 #19
0
 def getMaterialIcon(self, itemId):
     card = loader.loadModel('models/textureCards/shipMaterialIcons')
     icon = card.find('**/%s' % EconomyGlobals.getItemIcons(itemId))
     card.removeNode()
     del card
     return icon
예제 #20
0
    def createGui(self):
        itemId = self.data[0]
        self.picture = DirectFrame(parent=self,
                                   relief=None,
                                   state=DGG.DISABLED,
                                   pos=(0.01, 0, 0.01))
        self.nameTag = DirectLabel(
            parent=self,
            relief=None,
            state=DGG.DISABLED,
            text=self.name,
            text_scale=PiratesGuiGlobals.TextScaleSmall *
            PLocalizer.getHeadingScale(2),
            text_align=TextNode.ALeft,
            text_fg=PiratesGuiGlobals.TextFG1,
            text_shadow=PiratesGuiGlobals.TextShadow,
            pos=(0.050000000000000003, 0, 0.105),
            text_font=PiratesGlobals.getInterfaceFont())
        itemTypeFormatted = ''
        self.itemTypeName = DirectLabel(
            parent=self,
            relief=None,
            state=DGG.DISABLED,
            text=itemTypeFormatted,
            text_scale=PiratesGuiGlobals.TextScaleSmall,
            text_align=TextNode.ALeft,
            text_fg=PiratesGuiGlobals.TextFG2,
            text_shadow=PiratesGuiGlobals.TextShadow,
            text_font=PiratesGlobals.getInterfaceFont(),
            pos=(0.050000000000000003, 0, 0.065000000000000002))
        self.miscText = DirectLabel(
            parent=self,
            relief=None,
            state=DGG.DISABLED,
            text='',
            text_scale=PiratesGuiGlobals.TextScaleSmall,
            text_align=TextNode.ALeft,
            text_fg=PiratesGuiGlobals.TextFG2,
            text_shadow=PiratesGuiGlobals.TextShadow,
            text_wordwrap=11,
            pos=(0.050000000000000003, 0, 0.025000000000000001))
        if self.minLvl > 0:
            repId = WeaponGlobals.getRepId(itemId)
            if repId:
                self.checkLevel(repId, self.minLvl)

        trainingReq = EconomyGlobals.getItemTrainingReq(itemId)
        if trainingReq:
            self.checkTrainingReq(trainingReq)

        if EconomyGlobals.getItemCategory(itemId) == ItemType.AMMO:
            skillId = WeaponGlobals.getSkillIdForAmmoSkillId(itemId)
            self.checkSkillReq(skillId)

        if self.buy:
            self.checkPlayerInventory(itemId)

        self.costText = DirectLabel(
            parent=self,
            relief=None,
            state=DGG.DISABLED,
            image=SongListItem.coinImage,
            image_scale=0.12,
            image_pos=Vec3(-0.01, 0, 0.01),
            text=str(self.price),
            text_scale=PiratesGuiGlobals.TextScaleSmall,
            text_align=TextNode.ARight,
            text_fg=PiratesGuiGlobals.TextFG2,
            text_shadow=PiratesGuiGlobals.TextShadow,
            text_wordwrap=11,
            text_pos=(-0.029999999999999999, 0, 0),
            pos=(self.width - 0.035000000000000003, 0, 0.105),
            text_font=PiratesGlobals.getInterfaceFont())
        if self.quantity and self.quantity > 1:
            self.quantityLabel = DirectLabel(
                parent=self,
                relief=None,
                state=DGG.DISABLED,
                text=str(self.quantity),
                frameColor=(0, 0, 0, 1),
                frameSize=(-0.01, 0.02, -0.01, 0.025000000000000001),
                text_scale=0.0275,
                text_align=TextNode.ACenter,
                text_fg=PiratesGuiGlobals.TextFG2,
                text_shadow=PiratesGuiGlobals.TextShadow,
                text_wordwrap=11,
                pos=(0.02, 0, 0.025000000000000001),
                text_font=PiratesGlobals.getPirateBoldOutlineFont())

        itemClass = EconomyGlobals.getItemCategory(itemId)
        if itemClass == ItemType.WEAPON or itemClass == ItemType.POUCH:
            asset = EconomyGlobals.getItemIcons(itemId)
            if asset:
                self.picture['geom'] = SongItemGui.weaponIcons.find('**/%s*' %
                                                                    asset)
                self.picture['geom_scale'] = 0.11
                self.picture['geom_pos'] = (0.080000000000000002, 0,
                                            0.068000000000000005)

        elif itemClass == ItemType.CONSUMABLE:
            asset = EconomyGlobals.getItemIcons(itemId)
            if asset:
                self.picture['geom'] = SongItemGui.skillIcons.find('**/%s*' %
                                                                   asset)
                self.picture['geom_scale'] = 0.11
                self.picture['geom_pos'] = (0.080000000000000002, 0,
                                            0.068000000000000005)

        if not InventoryType.begin_WeaponCannonAmmo <= itemId or itemId <= InventoryType.end_WeaponCannonAmmo:
            if (InventoryType.begin_WeaponPistolAmmo <= itemId
                    or itemId <= InventoryType.end_WeaponGrenadeAmmo
                    or InventoryType.begin_WeaponDaggerAmmo <= itemId
                ) and itemId <= InventoryType.end_WeaponDaggerAmmo:
                skillId = WeaponGlobals.getSkillIdForAmmoSkillId(itemId)
                if skillId:
                    asset = WeaponGlobals.getSkillIcon(skillId)
                    if asset:
                        self.picture['geom'] = SongListItem.skillIcons.find(
                            '**/%s' % asset)
                        self.picture['geom_scale'] = 0.14999999999999999
                        self.picture['geom_pos'] = (0.069000000000000006, 0,
                                                    0.069000000000000006)

            elif InventoryType.SmallBottle <= itemId and itemId <= InventoryType.LargeBottle:
                self.picture['geom'] = SongListItem.topGui.find(
                    '**/main_gui_ship_bottle')
                self.picture['geom_scale'] = 0.10000000000000001
                self.picture['geom_pos'] = (0.069000000000000006, 0,
                                            0.069000000000000006)

        self.flattenStrong()
예제 #21
0
    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
        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*')
        SkillIcons = loader.loadModel('models/textureCards/skillIcons')
        border = 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.TextFG24
        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=PLocalizer.InventoryItemClassNames.get(
                EconomyGlobals.getItemType(self.getId()), ''),
            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)
        MaterialIcons = loader.loadModel(
            'models/textureCards/shipMaterialIcons')
        self.iconLabel = DirectLabel(
            parent=self.portraitSceneGraph,
            relief=None,
            image=MaterialIcons.find(
                '**/%s' % EconomyGlobals.getItemIcons(self.getItemId())),
            pos=(0.0, 2.5, 0.0))
        iHeight = 0.18
        self.createBuffer()
        self.itemCard.setZ(runningVertPosition - 0.06)
        runningVertPosition -= iHeight
        runningSize += iHeight
        labels.append(self.itemCard)
        description = PLocalizer.WeaponDescriptions.get(self.getId())
        if not description:
            description = PLocalizer.WeaponDescriptions.get(self.getItemId())
        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)
        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)
        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)
        if basePosZ > 0.0:
            newPosZ = basePosZ + cellSizeZ * 0.45
        else:
            newPosZ = basePosZ + totalHeight - cellSizeZ * 0.75
        if detailsPos:
            newPosX, newPosZ = detailsPos
        self.helpFrame.setPos(newPosX, 0, newPosZ)
        return
예제 #22
0
 def getMaterialIcon(self, itemId):
     card = loader.loadModel('models/textureCards/shipMaterialIcons')
     icon = card.find('**/%s' % EconomyGlobals.getItemIcons(itemId))
     card.removeNode()
     del card
     return icon