def GetSubContent(self, data, *args): scrolllist = [] for typeID, quantity in data.groupItems.iteritems(): data = KeyVal() data.label = '%s<t>%s' % (evetypes.GetName(typeID), quantity) data.typeID = typeID data.GetMenu = self.OnGetEntryMenu data.itemID = None data.getIcon = 1 scrolllist.append(listentry.Get('Item', data=data)) return scrolllist
def GetSubContent(self, data, *args): scrolllist = [] for typeID, quantity in data.groupItems.iteritems(): data = KeyVal() data.label = '%s<t>%s' % (evetypes.GetName(typeID), quantity) data.typeID = typeID data.GetMenu = self.OnGetEntryMenu data.itemID = None data.getIcon = 1 scrolllist.append(listentry.Get('Item', data=data)) return scrolllist
def ShowDirectionalSearchResult(self, *args): self.listtype = 'location' scrolllist = [] if self.scanresult and len(self.scanresult): myball = None ballpark = sm.GetService('michelle').GetBallpark() if ballpark: myball = ballpark.GetBall(eve.session.shipid) prime = [] for result in self.scanresult: slimItem, ball, celestialRec = result if not slimItem and celestialRec: prime.append(celestialRec.id) if prime: cfg.evelocations.Prime(prime) for slimItem, ball, celestialRec in self.scanresult: if self is None or self.destroyed: return if slimItem: typeName = evetypes.GetName(slimItem.typeID) entryname = GetSlimItemName(slimItem) itemID = slimItem.itemID typeID = slimItem.typeID if not entryname: entryname = evetypes.GetGroupName(slimItem.typeID) elif celestialRec: typeName = evetypes.GetName(celestialRec.typeID) if evetypes.GetGroupID(celestialRec.typeID) == const.groupHarvestableCloud: entryname = GetByLabel('UI/Inventory/SlimItemNames/SlimHarvestableCloud', typeName) elif evetypes.GetCategoryID(celestialRec.typeID) == const.categoryAsteroid: entryname = GetByLabel('UI/Inventory/SlimItemNames/SlimAsteroid', typeName) else: entryname = cfg.evelocations.Get(celestialRec.id).name if not entryname: entryname = typeName itemID = celestialRec.id typeID = celestialRec.typeID else: continue if ball is not None: dist = ball.surfaceDist diststr = FmtDist(dist, maxdemicals=1) else: dist = 0 diststr = '-' groupID = evetypes.GetGroupID(typeID) if not eve.session.role & (service.ROLE_GML | service.ROLE_WORLDMOD): if groupID == const.groupCloud: continue data = KeyVal() data.label = '%s<t>%s<t>%s' % (entryname, typeName, diststr) data.entryName = entryname data.typeName = typeName data.Set('sort_%s' % GetByLabel('UI/Common/Distance'), dist) data.columnID = 'directionalResultGroupColumn' data.result = result data.itemID = itemID data.typeID = typeID data.GetMenu = self.DirectionalResultMenu scrolllist.append(listentry.Get('DirectionalScanResults', data=data)) blue.pyos.BeNice() if not len(scrolllist): data = KeyVal() data.label = GetByLabel('UI/Inflight/Scanner/DirectionalNoResult') data.hideLines = 1 scrolllist.append(listentry.Get('Generic', data=data)) headers = [] else: headers = [GetByLabel('UI/Common/Name'), GetByLabel('UI/Common/Type'), GetByLabel('UI/Common/Distance')] self.sr.dirscroll.Load(contentList=scrolllist, headers=headers)
def ShowDirectionalSearchResult(self, *args): self.listtype = 'location' scrolllist = [] if self.scanresult and len(self.scanresult): myball = None ballpark = sm.GetService('michelle').GetBallpark() if ballpark: myball = ballpark.GetBall(eve.session.shipid) prime = [] for result in self.scanresult: slimItem, ball, celestialRec = result if not slimItem and celestialRec: prime.append(celestialRec.id) if prime: cfg.evelocations.Prime(prime) for slimItem, ball, celestialRec in self.scanresult: if self is None or self.destroyed: return if slimItem: typeinfo = cfg.invtypes.Get(slimItem.typeID) entryname = GetSlimItemName(slimItem) itemID = slimItem.itemID typeID = slimItem.typeID if not entryname: entryname = typeinfo.Group().name elif celestialRec: typeinfo = cfg.invtypes.Get(celestialRec.typeID) if typeinfo.groupID == const.groupHarvestableCloud: entryname = GetByLabel('UI/Inventory/SlimItemNames/SlimHarvestableCloud', typeinfo.name) elif typeinfo.categoryID == const.categoryAsteroid: entryname = GetByLabel('UI/Inventory/SlimItemNames/SlimAsteroid', typeinfo.name) else: entryname = cfg.evelocations.Get(celestialRec.id).name if not entryname: entryname = typeinfo.name itemID = celestialRec.id typeID = celestialRec.typeID else: continue if ball is not None: dist = ball.surfaceDist diststr = FmtDist(dist, maxdemicals=1) else: dist = 0 diststr = '-' groupID = cfg.invtypes.Get(typeID).groupID if not eve.session.role & (service.ROLE_GML | service.ROLE_WORLDMOD): if groupID == const.groupCloud: continue data = KeyVal() data.label = '%s<t>%s<t>%s' % (entryname, typeinfo.name, diststr) data.entryName = entryname data.typeName = typeinfo.name data.Set('sort_%s' % GetByLabel('UI/Common/Distance'), dist) data.columnID = 'directionalResultGroupColumn' data.result = result data.itemID = itemID data.typeID = typeID data.GetMenu = self.DirectionalResultMenu scrolllist.append(listentry.Get('DirectionalScanResults', data=data)) blue.pyos.BeNice() if not len(scrolllist): data = KeyVal() data.label = GetByLabel('UI/Inflight/Scanner/DirectionalNoResult') data.hideLines = 1 scrolllist.append(listentry.Get('Generic', data=data)) headers = [] else: headers = [GetByLabel('UI/Common/Name'), GetByLabel('UI/Common/Type'), GetByLabel('UI/Common/Distance')] self.sr.dirscroll.Load(contentList=scrolllist, headers=headers)
def LoadComposition(self): fleetSvc = sm.GetService('fleet') if not fleetSvc.IsCommanderOrBoss(): raise UserError('FleetNotCommanderOrBoss') scrolllist = [] composition = fleetSvc.GetFleetComposition() fleetHierarchy = fleetSvc.GetFleetHierarchy() fleetPositionText = localization.GetByLabel( 'UI/Fleet/FleetWindow/FleetPosition') for kv in composition: blue.pyos.BeNice() member = fleetSvc.GetMemberInfo(kv.characterID, fleetHierarchy) if not fleetSvc.IsMySubordinate( kv.characterID) and not fleetSvc.IsBoss(): continue data = KeyVal() charName = localization.GetByLabel('UI/Common/CharacterNameLabel', charID=kv.characterID) locationName = localization.GetByLabel('UI/Common/LocationDynamic', location=kv.solarSystemID) if kv.stationID: locationName = '%s %s' % ( locationName, localization.GetByLabel('UI/Fleet/FleetComposition/Docked') ) if kv.shipTypeID is not None: shipTypeName = evetypes.GetName(kv.shipTypeID) shipGroupName = evetypes.GetGroupName(kv.shipTypeID) else: shipTypeName = '' shipGroupName = '' if kv.skills: skillLevels = localization.GetByLabel( 'UI/Fleet/FleetComposition/SkillLevels', skillLevelA=kv.skills[2], skillLevelB=kv.skills[1], skillLevelC=kv.skills[0]) data.hint = localization.GetByLabel( 'UI/Fleet/FleetComposition/SkillsHint', skillTypeA=kv.skillIDs[2], skillLevelA=kv.skills[2], skillTypeB=kv.skillIDs[1], skillLevelB=kv.skills[1], skillTypeC=kv.skillIDs[0], skillLevelC=kv.skills[0]) else: skillLevels = '' if not member.wingName: fleetPosition = '' positionSortValue = (None, None) elif not member.squadName: fleetPosition = member.wingName positionSortValue = (fleetPosition, None) else: fleetPosition = '%s / %s ' % (member.wingName, member.squadName) positionSortValue = (member.wingName, member.squadName) data.label = '<t>'.join([ charName, locationName, shipTypeName, shipGroupName, member.roleName, skillLevels, fleetPosition ]) data.GetMenu = self.OnCompositionEntryMenu data.cfgname = charName data.retval = None data.charID = kv.characterID data.shipTypeID = kv.shipTypeID data.solarSystemID = kv.solarSystemID data.info = cfg.eveowners.Get(kv.characterID) data.Set('sort_%s' % fleetPositionText, positionSortValue) scrolllist.append(listentry.Get('FleetCompositionEntry', data=data)) self.counterLabel.text = localization.GetByLabel( 'UI/Fleet/FleetComposition/PilotsSelected', numSelected=0, numTotalPilots=len(scrolllist)) self.sr.scrollBroadcasts.sr.id = 'scrollComposition' headers = [ localization.GetByLabel('UI/Common/Name'), localization.GetByLabel('UI/Common/Location'), localization.GetByLabel('UI/Fleet/FleetComposition/ShipType'), localization.GetByLabel('UI/Fleet/FleetComposition/ShipGroup'), localization.GetByLabel('UI/Fleet/FleetComposition/FleetRole'), localization.GetByLabel('UI/Fleet/FleetComposition/FleetSkills'), fleetPositionText ] self.sr.scrollBroadcasts.Load(headers=headers, contentList=scrolllist)
def GetCombatEntries(recent, filterText=''): showAsCondensed = settings.user.ui.Get('charsheet_condensedcombatlog', 0) if showAsCondensed: headers = [ GetByLabel('UI/Common/Date'), GetByLabel('UI/Common/Type'), GetByLabel('UI/Common/Name'), GetByLabel('UI/Common/Corporation'), GetByLabel('UI/Common/Alliance'), GetByLabel('UI/Common/Faction') ] else: headers = [] primeEveOwners = set() primeEveLocations = set() primeCorps = set() primeAlliances = set() ret = [] unknownShipLabel = GetByLabel( 'UI/CharacterSheet/CharacterSheetWindow/KillsTabs/UnknownShip') unknownNameLabel = GetByLabel( 'UI/CharacterSheet/CharacterSheetWindow/KillsTabs/UnknownName') unknownCorporationLabel = GetByLabel( 'UI/CharacterSheet/CharacterSheetWindow/KillsTabs/UnknownCorporation') unknownAllianceLabel = GetByLabel( 'UI/CharacterSheet/CharacterSheetWindow/KillsTabs/UnknownAlliance') unknownFactionLabel = GetByLabel( 'UI/CharacterSheet/CharacterSheetWindow/KillsTabs/UnknownFaction') for kill in recent: primeEveLocations.add(kill.solarSystemID) primeEveLocations.add(kill.moonID) primeEveOwners.add(kill.victimCharacterID) primeEveOwners.add(kill.victimCorporationID) primeCorps.add(kill.victimCorporationID) primeEveOwners.add(kill.victimAllianceID) primeAlliances.add(kill.victimAllianceID) primeEveOwners.add(kill.victimFactionID) primeEveOwners.add(kill.finalCharacterID) primeEveOwners.add(kill.finalCorporationID) primeCorps.add(kill.finalCorporationID) primeEveOwners.add(kill.finalAllianceID) primeAlliances.add(kill.finalAllianceID) primeEveOwners.add(kill.finalFactionID) cfg.eveowners.Prime(filter(None, primeEveOwners)) cfg.evelocations.Prime(filter(None, primeEveLocations)) cfg.corptickernames.Prime(filter(None, primeCorps)) cfg.allianceshortnames.Prime(filter(None, primeAlliances)) def GetOwnerName(ownerID): owner = cfg.eveowners.GetIfExists(ownerID) return getattr(owner, 'name', '') def GetTypeName(typeID): try: return evetypes.GetName(typeID) except evetypes.TypeNotFoundException: return '' def FilterOut(kill): if not filterText: return False if GetTypeName(kill.victimShipTypeID).lower().find(filterText) >= 0: return False for ownerID in [ kill.victimCharacterID, kill.victimCorporationID, kill.victimAllianceID ]: ownerName = GetOwnerName(ownerID) if ownerName.lower().find(filterText) >= 0: return False return True for kill in recent: if FilterOut(kill): continue if showAsCondensed: data = KeyVal() timeOfKill = FmtDate(kill.killTime) shipOfCharacterKilled = GetTypeName( kill.victimShipTypeID) or unknownShipLabel characterKilled = GetOwnerName( kill.victimCharacterID) or unknownNameLabel corporationOfCharacterKilled = GetOwnerName( kill.victimCorporationID) or unknownCorporationLabel allianceOfCharacterKilled = GetOwnerName( kill.victimAllianceID) or unknownAllianceLabel factionOfCharacterKilled = GetOwnerName( kill.victimFactionID) or unknownFactionLabel labelList = [ timeOfKill, shipOfCharacterKilled, characterKilled, corporationOfCharacterKilled, allianceOfCharacterKilled, factionOfCharacterKilled ] data.label = '<t>'.join(labelList) data.GetMenu = GetCombatMenu data.OnDblClick = (GetCombatDblClick, data) data.kill = kill data.mail = kill ret.append(entries.Get('KillMailCondensed', data=data)) else: ret.append(entries.Get('KillMail', {'mail': kill})) return (ret, headers)
def ShowMySkillHistory(self): def GetPts(lvl): return charskills.GetSPForLevelRaw(stc, lvl) self.topCont.Hide() self.scroll.sr.id = 'charsheet_skillhistory' rs = sm.GetService('skills').GetSkillHistory() scrolllist = [] actions = { const.skillEventClonePenalty: GetByLabel( 'UI/CharacterSheet/CharacterSheetWindow/SkillTabs/SkillClonePenalty' ), const.skillEventTrainingStarted: GetByLabel( 'UI/CharacterSheet/CharacterSheetWindow/SkillTabs/SkillTrainingStarted' ), const.skillEventTrainingComplete: GetByLabel( 'UI/CharacterSheet/CharacterSheetWindow/SkillTabs/SkillTrainingComplete' ), const.skillEventTrainingCancelled: GetByLabel( 'UI/CharacterSheet/CharacterSheetWindow/SkillTabs/SkillTrainingCanceled' ), const.skillEventGMGive: GetByLabel( 'UI/CharacterSheet/CharacterSheetWindow/SkillTabs/GMGiveSkill' ), const.skillEventQueueTrainingCompleted: GetByLabel( 'UI/CharacterSheet/CharacterSheetWindow/SkillTabs/SkillTrainingComplete' ), const.skillEventFreeSkillPointsUsed: GetByLabel( 'UI/CharacterSheet/CharacterSheetWindow/SkillTabs/SkillPointsApplied' ), const.skillEventSkillExtracted: GetByLabel( 'UI/CharacterSheet/CharacterSheetWindow/SkillTabs/SkillLevelExtracted' ) } for r in rs: skill = sm.GetService('skills').GetSkill(r.skillTypeID) if skill: stc = skill.skillRank levels = [ 0, GetPts(1), GetPts(2), GetPts(3), GetPts(4), GetPts(5) ] level = 5 for i in range(len(levels)): if levels[i] > r.absolutePoints: level = i - 1 break data = KeyVal() data.label = FmtDate(r.logDate, 'ls') + '<t>' data.label += evetypes.GetName(r.skillTypeID) + '<t>' data.label += actions.get( r.eventTypeID, GetByLabel('UI/Generic/Unknown')) + '<t>' data.label += FormatNumeric(level) data.Set('sort_%s' % GetByLabel('UI/Common/Date'), r.logDate) data.id = r.skillTypeID data.level = level data.GetMenu = self.GetItemMenu data.MenuFunction = self.GetItemMenu data.OnDblClick = (self.DblClickShowInfo, data) addItem = entries.Get('Generic', data=data) scrolllist.append(addItem) self.scroll.Load( contentList=scrolllist, headers=[ GetByLabel('UI/Common/Date'), GetByLabel( 'UI/CharacterSheet/CharacterSheetWindow/SkillTabs/Skill'), GetByLabel( 'UI/CharacterSheet/CharacterSheetWindow/SkillTabs/Action'), GetByLabel( 'UI/CharacterSheet/CharacterSheetWindow/SkillTabs/Level') ], noContentHint=GetByLabel( 'UI/CharacterSheet/CharacterSheetWindow/SkillTabs/NoRecordsFound' ), reversesort=True)