itemObject.py (3614B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\tooltip\itemObject.py 2 import evetypes 3 import menucheckers 4 import inventorycommon.const as invconst 5 from omega.client.clone_grade_svc import get_clone_grade_svc 6 7 class ItemObject(object): 8 9 def __init__(self, itemTypeID, item = None): 10 self.itemTypeID = itemTypeID 11 self.item = item 12 self.skillSvc = sm.GetService('skills') 13 self.isMissingRarePrereq = None 14 15 def NeedsOmegaUpgrade(self): 16 isOmegaRestricted = get_clone_grade_svc().is_requirements_restricted(self.itemTypeID) 17 isUnlockedWithExpertSystem = self.skillSvc.IsUnlockedWithExpertSystem(self.itemTypeID) 18 if isOmegaRestricted and not isUnlockedWithExpertSystem: 19 return True 20 isSkill = evetypes.GetCategoryID(self.itemTypeID) == invconst.categorySkill 21 if not isSkill: 22 return False 23 level = self.skillSvc.MySkillLevelIncludingQueued(self.itemTypeID) 24 if get_clone_grade_svc().is_skill_level_restricted(self.itemTypeID, level): 25 return True 26 if level < 5 and get_clone_grade_svc().is_skill_level_restricted(self.itemTypeID, level + 1): 27 return True 28 return False 29 30 def CanInjectSkill(self): 31 if self.item is None: 32 return False 33 checker = menucheckers.ItemChecker(self.item) 34 return checker.OfferInjectSkill() 35 36 def CanActivateSkinLicense(self): 37 if self.item is None: 38 return False 39 checker = menucheckers.ItemChecker(self.item) 40 return checker.OfferActivateShipSkinLicense() 41 42 def CanApplySkin(self): 43 if self.item is None: 44 return False 45 checker = menucheckers.ItemChecker(self.item) 46 return checker.IsSkinForCurrentShip() 47 48 def CanConsumeSkinDesignComponent(self): 49 if self.item is None: 50 return False 51 checker = menucheckers.ItemChecker(self.item) 52 return checker.OfferConsumeShipSkinDesignComponent() 53 54 def GetMissingSkillBooks(self): 55 if self.skillSvc.IsSkillRequirementMet(self.itemTypeID): 56 return [] 57 missingSkills = self.skillSvc.GetSkillsMissingToUseItemRecursive(self.itemTypeID) 58 missing = [ typeID for typeID in missingSkills.iterkeys() if self.skillSvc.GetSkillIncludingLapsed(typeID) is None ] 59 if evetypes.GetCategoryID(self.itemTypeID) == invconst.categorySkill: 60 if self.skillSvc.GetSkillIncludingLapsed(self.itemTypeID) is None: 61 missing.append(self.itemTypeID) 62 return missing 63 64 def CanTrainNow(self): 65 if not evetypes.IsPublished(self.itemTypeID): 66 return False 67 isRequirementsMet = sm.GetService('skills').IsSkillRequirementMetIncludingSkillQueue(self.itemTypeID) 68 if not isRequirementsMet: 69 return True 70 return self.IsSkill() and sm.GetService('skillqueue').CheckCanAppendSkill(self.itemTypeID, check=True) 71 72 def IsRareSkill(self): 73 if not self.IsSkill(): 74 return False 75 return not evetypes.IsSkillAvailableForPurchase(self.itemTypeID) 76 77 def IsMissingRarePrereqs(self): 78 if self.isMissingRarePrereq is not None: 79 return self.isMissingRarePrereq 80 missingSkillbooks = self.GetMissingSkillBooks() 81 self.isMissingRarePrereq = any((not evetypes.IsSkillAvailableForPurchase(typeID) for typeID in missingSkillbooks)) 82 return self.isMissingRarePrereq 83 84 def IsSkill(self): 85 return evetypes.GetCategoryID(self.itemTypeID) == invconst.categorySkill