effects.py (2127B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\behaviors\conditions\effects.py 2 from behaviors.tasks import Task 3 from ccpProfile import TimedFunction 4 5 class IsEffectActive(Task): 6 7 @TimedFunction('behaviors::condition::effects::IsEffectActive::OnEnter') 8 def OnEnter(self): 9 if self.IsEffectActive(): 10 self.SetStatusToSuccess() 11 else: 12 self.SetStatusToFailed() 13 14 def IsEffectActive(self): 15 return self.context.dogmaLM.GetActiveEffectData(self.context.myItemId, self.attributes.effectId) is not None 16 17 18 class IsEffectByAddressActive(Task): 19 20 @TimedFunction('behaviors::condition::effects::IsEffectAddressActive::OnEnter') 21 def OnEnter(self): 22 if self.IsEffectActive(): 23 self.SetStatusToSuccess() 24 else: 25 self.SetStatusToFailed() 26 27 def IsEffectActive(self): 28 effectID = self.GetLastBlackboardValue(self.attributes.effectIDAddress) 29 return self.context.dogmaLM.GetActiveEffectData(self.context.myItemId, effectID) is not None 30 31 32 class IsAnyEffectActive(Task): 33 34 @TimedFunction('behaviors::condition::effects::IsAnyEffectActive::OnEnter') 35 def OnEnter(self): 36 for effectId in self.attributes.effectIds: 37 if self.IsEffectActive(effectId): 38 self.SetStatusToSuccess() 39 return 40 41 self.SetStatusToFailed() 42 43 def IsEffectActive(self, effectId): 44 return self.context.dogmaLM.GetActiveEffectData(self.context.myItemId, effectId) is not None 45 46 47 class HasAnyEffectCondition(Task): 48 49 @TimedFunction('behaviors::condition::effects::HasAnyEffectCondition::OnEnter') 50 def OnEnter(self): 51 if self.HasAnyEffects(): 52 self.SetStatusToSuccess() 53 else: 54 self.SetStatusToFailed() 55 56 def HasAnyEffects(self): 57 for effectId in self.attributes.effectIds: 58 if self.HasEffect(effectId): 59 return True 60 61 return False 62 63 def HasEffect(self, effectId): 64 return self.context.dogmaLM.dogmaStaticMgr.TypeHasEffect(self.context.mySlimItem.typeID, effectId)