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

repeaters.py (941B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\behaviors\decorators\repeaters.py
      2 from behaviors import status
      3 from behaviors.decorators import Decorator
      4 from ccpProfile import TimedFunction
      5 
      6 class RepeatWhileFailing(Decorator):
      7 
      8     @TimedFunction('behaviors::decorators::repeaters::RepeatWhileFailing::OnEnter')
      9     def OnEnter(self):
     10         super(RepeatWhileFailing, self).OnEnter()
     11         self.repetitions = self.attributes.maxRepetitions
     12 
     13     @TimedFunction('behaviors::decorators::repeaters::RepeatWhileFailing::DoSubTaskCompleted')
     14     def DoSubTaskCompleted(self, task):
     15         if task.status is status.TaskSuccessStatus:
     16             self.SetStatusToSuccess()
     17         else:
     18             self.repetitions -= 1
     19             if self.repetitions > 0:
     20                 task.CleanUp()
     21                 self.behaviorTree.StartTaskNextTick(task)
     22             else:
     23                 self.SetStatusToFailed()