NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

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)