def update(self, repId = None, fromUser = 0): inv = localAvatar.getInventory() if not inv: self.notify.warning('SkillPage unable to find inventory') return None if self.tabBar == None: return None if self.demo: return None if fromUser: self.lastUserSelectedTab = repId if repId == None: if localAvatar.getGameState() == 'Fishing': if self.lastUserSelectedTab: repId = self.lastUserSelectedTab else: repId = InventoryType.CannonRep elif localAvatar.cannon: repId = InventoryType.CannonRep elif localAvatar.gameFSM.state == 'ShipPilot': repId = InventoryType.SailingRep elif localAvatar.currentWeaponId and localAvatar.isWeaponDrawn: repId = WeaponGlobals.getRepId(localAvatar.currentWeaponId) elif localAvatar.currentWeaponId and not (localAvatar.isWeaponDrawn) and self.lastUserSelectedTab: repId = self.lastUserSelectedTab else: repId = InventoryType.CannonRep self.setRep(repId) self.tabBar.selectTab(str(repId)) self.repMeter.setCategory(repId) self.repMeter.update(inv.getReputation(repId)) unSpentId = self.getUnspent() amt = inv.getStackQuantity(unSpentId) if unSpentId in self.localMods: amt = self.localMods[unSpentId] self.unspent['text'] = PLocalizer.SkillPageUnspentPoints % amt if amt > 0: self.unspent['text_fg'] = (0.80000000000000004, 1, 0.80000000000000004, 1) else: self.unspent['text_fg'] = (1, 1, 1, 1) comboSkills = RadialMenu.ComboSkills(repId, 1) totalComboSkills = RadialMenu.ComboSkills(repId, 0) activeSkills = RadialMenu.ActiveSkills(repId, 1) totalActiveSkills = RadialMenu.ActiveSkills(repId, 0) passiveSkills = RadialMenu.PassiveSkills(repId, 1) totalPassiveSkills = RadialMenu.PassiveSkills(repId, 0) self.linkedSkillIds = { } linkedSkills = ItemGlobals.getLinkedSkills(localAvatar.currentWeaponId) if linkedSkills: for skillId in linkedSkills: realSkillId = WeaponGlobals.getLinkedSkillId(skillId) self.linkedSkillIds[realSkillId] = skillId for excludedSkillId in self.EXCLUDED_SKILLS: for skillId in activeSkills: if excludedSkillId == skillId: activeSkills.remove(skillId) totalActiveSkills.remove(skillId) continue for spot in self.skillFrames.keys(): if spot not in totalComboSkills: self.skillFrames[spot].hide() continue count = 0 for skill in totalComboSkills: skillPts = inv.getStackQuantity(skill) if skill in self.localMods: skillPts = self.localMods[skill] if not skill in comboSkills: pass showIcon = skillPts > 0 freeLock = False if not Freebooter.getPaidStatus(base.localAvatar.getDoId()): if not WeaponGlobals.canFreeUse(skill): freeLock = True if self.linkedSkillIds.has_key(skill): if self.skillFrames.has_key(skill): self.skillFrames[skill].hide() skill = self.linkedSkillIds[skill] self.createFrame(skill, skillPts, amt, freeLock, showIcon) x = 0.20000000000000001 + 0.17499999999999999 * count y = 1.1100000000000001 self.skillFrames[skill].setPos(x, 0, y) if showIcon and skillPts > 1: self.makeBoostDisplay(skill, skillPts - 1) if not Freebooter.getPaidStatus(base.localAvatar.getDoId()): if not WeaponGlobals.canFreeUse(skill): self.skillFrames[skill].skillButton['command'] = base.localAvatar.guiMgr.showNonPayer self.skillFrames[skill].skillButton['extraArgs'] = [ 'Restricted_Skill_' + WeaponGlobals.getSkillName(skill), 5] count += 1 count = 0 for skill in totalActiveSkills: skillPts = inv.getStackQuantity(skill) if skill in self.localMods: skillPts = self.localMods[skill] (xMod, yMod) = self.ringOffset(count) xMod *= 0.90000000000000002 yMod *= 0.90000000000000002 if not skill in activeSkills: pass showIcon = skillPts > 0 freeLock = False if not Freebooter.getPaidStatus(base.localAvatar.getDoId()): if not WeaponGlobals.canFreeUse(skill): freeLock = True if self.linkedSkillIds.has_key(skill): if self.skillFrames.has_key(skill): self.skillFrames[skill].hide() skill = self.linkedSkillIds[skill] self.createFrame(skill, skillPts, amt, freeLock, showIcon) x = xMod + 0.53000000000000003 y = yMod + 0.61499999999999999 self.skillFrames[skill].setPos(x, 0, y) if showIcon and skillPts > 1: self.makeBoostDisplay(skill, skillPts - 1) if not Freebooter.getPaidStatus(base.localAvatar.getDoId()): if not WeaponGlobals.canFreeUse(skill): self.skillFrames[skill].skillButton['command'] = base.localAvatar.guiMgr.showNonPayer self.skillFrames[skill].skillButton['extraArgs'] = [ 'Restricted_Skill_' + WeaponGlobals.getSkillName(skill), 5] ammo = self.getAmmo(skill) if ammo != None and showIcon: self.skillFrames[skill].showQuantity = True self.skillFrames[skill].updateQuantity(ammo) count += 1 count = 0 for skill in totalPassiveSkills: skillPts = inv.getStackQuantity(skill) if skill in self.localMods: skillPts = self.localMods[skill] if not skill in passiveSkills: pass showIcon = skillPts > 0 freeLock = False if not Freebooter.getPaidStatus(base.localAvatar.getDoId()): if not WeaponGlobals.canFreeUse(skill): freeLock = True if self.linkedSkillIds.has_key(skill): if self.skillFrames.has_key(skill): self.skillFrames[skill].hide() skill = self.linkedSkillIds[skill] self.createFrame(skill, skillPts, amt, freeLock, showIcon) x = 0.20000000000000001 + 0.17499999999999999 * count y = 0.14999999999999999 self.skillFrames[skill].setPos(x, 0, y) if showIcon and skillPts > 1: self.makeBoostDisplay(skill, skillPts - 1) if not Freebooter.getPaidStatus(base.localAvatar.getDoId()): if not WeaponGlobals.canFreeUse(skill): self.skillFrames[skill].skillButton['command'] = base.localAvatar.guiMgr.showNonPayer self.skillFrames[skill].skillButton['extraArgs'] = [ 'Restricted_Skill_' + WeaponGlobals.getSkillName(skill), 5] count += 1 self.dataChanged = False
def pruneFreebooterSkills(skillTrack): if getPaidStatus(base.localAvatar.getDoId()): return skillTrack else: return filter(lambda skillId: WeaponGlobals.canFreeUse(skillId), skillTrack)
def update(self, repId=None, fromUser=0): inv = localAvatar.getInventory() if not inv: self.notify.warning('SkillPage unable to find inventory') return if self.tabBar == None: return if self.demo: return if fromUser: self.lastUserSelectedTab = repId if repId == None: if localAvatar.getGameState() == 'Fishing': if self.lastUserSelectedTab: repId = self.lastUserSelectedTab else: repId = InventoryType.CannonRep elif localAvatar.cannon: repId = InventoryType.CannonRep elif localAvatar.gameFSM.state == 'ShipPilot': repId = InventoryType.SailingRep elif localAvatar.currentWeaponId and localAvatar.isWeaponDrawn: repId = WeaponGlobals.getRepId(localAvatar.currentWeaponId) elif localAvatar.currentWeaponId and not localAvatar.isWeaponDrawn and self.lastUserSelectedTab: repId = self.lastUserSelectedTab else: repId = InventoryType.CannonRep self.setRep(repId) self.tabBar.selectTab(str(repId)) self.repMeter.setCategory(repId) self.repMeter.update(inv.getReputation(repId)) unSpentId = self.getUnspent() amt = inv.getStackQuantity(unSpentId) if unSpentId in self.localMods: amt = self.localMods[unSpentId] self.unspent['text'] = PLocalizer.SkillPageUnspentPoints % amt if amt > 0: self.unspent['text_fg'] = (0.8, 1, 0.8, 1) else: self.unspent['text_fg'] = (1, 1, 1, 1) comboSkills = RadialMenu.ComboSkills(repId, 1) totalComboSkills = RadialMenu.ComboSkills(repId, 0) activeSkills = RadialMenu.ActiveSkills(repId, 1) totalActiveSkills = RadialMenu.ActiveSkills(repId, 0) passiveSkills = RadialMenu.PassiveSkills(repId, 1) totalPassiveSkills = RadialMenu.PassiveSkills(repId, 0) self.linkedSkillIds = {} linkedSkills = ItemGlobals.getLinkedSkills(localAvatar.currentWeaponId) if linkedSkills: for skillId in linkedSkills: realSkillId = WeaponGlobals.getLinkedSkillId(skillId) self.linkedSkillIds[realSkillId] = skillId for excludedSkillId in self.EXCLUDED_SKILLS: for skillId in activeSkills: if excludedSkillId == skillId: activeSkills.remove(skillId) totalActiveSkills.remove(skillId) for spot in self.skillFrames.keys(): if spot not in totalComboSkills: self.skillFrames[spot].hide() count = 0 for skill in totalComboSkills: skillPts = inv.getStackQuantity(skill) if skill in self.localMods: skillPts = self.localMods[skill] showIcon = skill in comboSkills or skillPts > 0 freeLock = False if not Freebooter.getPaidStatus(base.localAvatar.getDoId()): if not WeaponGlobals.canFreeUse(skill): freeLock = True if self.linkedSkillIds.has_key(skill): if self.skillFrames.has_key(skill): self.skillFrames[skill].hide() skill = self.linkedSkillIds[skill] self.createFrame(skill, skillPts, amt, freeLock, showIcon) x = 0.2 + 0.175 * count y = 1.11 self.skillFrames[skill].setPos(x, 0, y) if showIcon and skillPts > 1: self.makeBoostDisplay(skill, skillPts - 1) if not Freebooter.getPaidStatus(base.localAvatar.getDoId()): if not WeaponGlobals.canFreeUse(skill): self.skillFrames[skill].skillButton[ 'command'] = base.localAvatar.guiMgr.showNonPayer self.skillFrames[skill].skillButton['extraArgs'] = [ 'Restricted_Skill_' + WeaponGlobals.getSkillName(skill), 5 ] count += 1 count = 0 for skill in totalActiveSkills: skillPts = inv.getStackQuantity(skill) if skill in self.localMods: skillPts = self.localMods[skill] xMod, yMod = self.ringOffset(count) xMod *= 0.9 yMod *= 0.9 showIcon = skill in activeSkills or skillPts > 0 freeLock = False if not Freebooter.getPaidStatus(base.localAvatar.getDoId()): if not WeaponGlobals.canFreeUse(skill): freeLock = True if self.linkedSkillIds.has_key(skill): if self.skillFrames.has_key(skill): self.skillFrames[skill].hide() skill = self.linkedSkillIds[skill] self.createFrame(skill, skillPts, amt, freeLock, showIcon) x = xMod + 0.53 y = yMod + 0.615 self.skillFrames[skill].setPos(x, 0, y) if showIcon and skillPts > 1: self.makeBoostDisplay(skill, skillPts - 1) if not Freebooter.getPaidStatus(base.localAvatar.getDoId()): if not WeaponGlobals.canFreeUse(skill): self.skillFrames[skill].skillButton[ 'command'] = base.localAvatar.guiMgr.showNonPayer self.skillFrames[skill].skillButton['extraArgs'] = [ 'Restricted_Skill_' + WeaponGlobals.getSkillName(skill), 5 ] ammo = self.getAmmo(skill) if ammo != None and showIcon: self.skillFrames[skill].showQuantity = True self.skillFrames[skill].updateQuantity(ammo) count += 1 count = 0 for skill in totalPassiveSkills: skillPts = inv.getStackQuantity(skill) if skill in self.localMods: skillPts = self.localMods[skill] showIcon = skill in passiveSkills or skillPts > 0 freeLock = False if not Freebooter.getPaidStatus(base.localAvatar.getDoId()): if not WeaponGlobals.canFreeUse(skill): freeLock = True if self.linkedSkillIds.has_key(skill): if self.skillFrames.has_key(skill): self.skillFrames[skill].hide() skill = self.linkedSkillIds[skill] self.createFrame(skill, skillPts, amt, freeLock, showIcon) x = 0.2 + 0.175 * count y = 0.15 self.skillFrames[skill].setPos(x, 0, y) if showIcon and skillPts > 1: self.makeBoostDisplay(skill, skillPts - 1) if not Freebooter.getPaidStatus(base.localAvatar.getDoId()): if not WeaponGlobals.canFreeUse(skill): self.skillFrames[skill].skillButton[ 'command'] = base.localAvatar.guiMgr.showNonPayer self.skillFrames[skill].skillButton['extraArgs'] = [ 'Restricted_Skill_' + WeaponGlobals.getSkillName(skill), 5 ] count += 1 self.dataChanged = False return
def getAllSkills(repId, skilltrack, wantWeaponSkill = 0): inv = base.localAvatar.getInventory() if inv == None: print 'WARNING - getAllSkills came up with no inventory for ', repId return [] minlvl = 2 choices = [] if repId == InventoryType.CutlassRep: skillId = InventoryType.begin_WeaponSkillCutlass while skillId < InventoryType.end_WeaponSkillCutlass: if WeaponGlobals.getSkillTrack(skillId) == skilltrack: locked = False if not Freebooter.getPaidStatus(base.localAvatar.getDoId()): locked = not WeaponGlobals.canFreeUse(skillId) if inv.getStackQuantity(skillId) >= minlvl: skill = (skillId, True, locked) else: skill = (skillId, False, locked) choices.append(skill) skillId += 1 elif repId == InventoryType.MeleeRep: skillId = InventoryType.begin_WeaponSkillMelee while skillId < InventoryType.end_WeaponSkillMelee: if WeaponGlobals.getSkillTrack(skillId) == skilltrack: locked = False if not Freebooter.getPaidStatus(base.localAvatar.getDoId()): locked = not WeaponGlobals.canFreeUse(skillId) if inv.getStackQuantity(skillId) >= minlvl: skill = (skillId, True, locked) else: skill = (skillId, False, locked) choices.append(skill) skillId += 1 elif repId == InventoryType.DaggerRep: skillId = InventoryType.begin_WeaponSkillDagger while skillId < InventoryType.end_WeaponSkillDagger: if WeaponGlobals.getSkillTrack(skillId) == skilltrack: locked = False if not Freebooter.getPaidStatus(base.localAvatar.getDoId()): locked = not WeaponGlobals.canFreeUse(skillId) if inv.getStackQuantity(skillId) >= minlvl: skill = (skillId, True, locked) else: skill = (skillId, False, locked) choices.append(skill) skillId += 1 elif repId == InventoryType.GrenadeRep: skillId = InventoryType.begin_WeaponSkillGrenade while skillId < InventoryType.end_WeaponSkillGrenade: if WeaponGlobals.getSkillTrack(skillId) == skilltrack: locked = False if not Freebooter.getPaidStatus(base.localAvatar.getDoId()): locked = not WeaponGlobals.canFreeUse(skillId) if inv.getStackQuantity(skillId) >= minlvl: skill = (skillId, True, locked) else: skill = (skillId, False, locked) choices.append(skill) skillId += 1 elif repId == InventoryType.DollRep: skillId = InventoryType.begin_WeaponSkillDoll while skillId < InventoryType.end_WeaponSkillDoll: if WeaponGlobals.getSkillTrack(skillId) == skilltrack: locked = False if not Freebooter.getPaidStatus(base.localAvatar.getDoId()): locked = not WeaponGlobals.canFreeUse(skillId) if inv.getStackQuantity(skillId) >= minlvl: skill = (skillId, True, locked) else: skill = (skillId, False, locked) choices.append(skill) skillId += 1 elif repId == InventoryType.WandRep: skillId = InventoryType.begin_WeaponSkillWand while skillId < InventoryType.end_WeaponSkillWand: if WeaponGlobals.getSkillTrack(skillId) == skilltrack: locked = False if not Freebooter.getPaidStatus(base.localAvatar.getDoId()): locked = not WeaponGlobals.canFreeUse(skillId) if inv.getStackQuantity(skillId) >= minlvl: skill = (skillId, True, locked) else: skill = (skillId, False, locked) choices.append(skill) skillId += 1 elif repId == InventoryType.KettleRep: skillId = InventoryType.begin_WeaponSkillKettle while skillId < InventoryType.end_WeaponSkillKettle: if WeaponGlobals.getSkillTrack(skillId) == skilltrack: locked = False if not Freebooter.getPaidStatus(base.localAvatar.getDoId()): locked = not WeaponGlobals.canFreeUse(skillId) if inv.getStackQuantity(skillId) >= minlvl: skill = (skillId, True, locked) else: skill = (skillId, False, locked) choices.append(skill) skillId += 1 elif repId == InventoryType.PistolRep: skillId = InventoryType.begin_WeaponSkillPistol while skillId < InventoryType.end_WeaponSkillPistol: if WeaponGlobals.getSkillTrack(skillId) == skilltrack: locked = False if not Freebooter.getPaidStatus(base.localAvatar.getDoId()): locked = not WeaponGlobals.canFreeUse(skillId) if inv.getStackQuantity(skillId) >= minlvl: skill = (skillId, True, locked) else: skill = (skillId, False, locked) choices.append(skill) skillId += 1 elif repId == InventoryType.CannonRep: wantWeaponSkill = 0 skillId = InventoryType.begin_WeaponSkillCannon while skillId < InventoryType.end_WeaponSkillCannon: if WeaponGlobals.getSkillTrack(skillId) == skilltrack: locked = False if not Freebooter.getPaidStatus(base.localAvatar.getDoId()): locked = not WeaponGlobals.canFreeUse(skillId) if inv.getStackQuantity(skillId) >= minlvl: skill = (skillId, True, locked) else: skill = (skillId, False, locked) choices.append(skill) skillId += 1 elif repId == InventoryType.SailingRep: skillId = InventoryType.begin_SkillSailing while skillId < InventoryType.end_SkillSailing: if WeaponGlobals.getSkillTrack(skillId) == skilltrack: locked = False if not Freebooter.getPaidStatus(base.localAvatar.getDoId()): locked = not WeaponGlobals.canFreeUse(skillId) shouldBeVisible = inv.getStackQuantity(skillId) >= minlvl skill = (skillId, shouldBeVisible, locked) choices.append(skill) skillId += 1 elif repId == InventoryType.DefenseCannonRep: wantWeaponSkill = 0 for skillId in PiratesGlobals.CANNON_DEFENSE_SKILLS: if WeaponGlobals.getSkillTrack(skillId) == skilltrack: skill = (skillId, True, False) choices.append(skill) skillId += 1 elif repId == InventoryType.FishingRep: wantWeaponSkill = 0 skillId = InventoryType.begin_WeaponSkillFishingRod skilltrack = 1 while skillId < InventoryType.end_WeaponSkillFishingRod: if WeaponGlobals.getSkillTrack(skillId) == skilltrack: locked = False if not Freebooter.getPaidStatus(base.localAvatar.getDoId()): locked = not WeaponGlobals.canFreeUse(skillId) if inv.getStackQuantity(skillId) >= minlvl: skill = (skillId, True, locked) else: skill = (skillId, False, locked) choices.append(skill) skillId += 1 if wantWeaponSkill: weaponSkill = getWeaponSkill(repId) if weaponSkill: choices.append((weaponSkill, True, 0)) return choices