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

randomized.py (1130B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\behaviors\conditions\randomized.py
      2 import random
      3 from behaviors.tasks import Task
      4 from carbon.common.lib.const import SEC
      5 from ccpProfile import TimedFunction
      6 
      7 class RandomChanceCondition(Task):
      8 
      9     @TimedFunction('behaviors::conditions::randomized::RandomChanceCondition::OnEnter')
     10     def OnEnter(self):
     11         if self.attributes.chance >= random.random():
     12             self.SetStatusToSuccess()
     13         else:
     14             self.SetStatusToFailed()
     15 
     16 
     17 class CachedRandomChanceCondition(Task):
     18 
     19     @TimedFunction('behaviors::conditions::randomized::CachedRandomChanceCondition::OnEnter')
     20     def OnEnter(self):
     21         randomValue = self.GetLastBlackboardValue(self.attributes.randomValueAddress, maxAge=self.attributes.cacheTimeInSeconds * SEC)
     22         if randomValue is None:
     23             randomValue = random.random()
     24             self.SendBlackboardValue(self.attributes.randomValueAddress, randomValue)
     25         if self.attributes.chance >= randomValue:
     26             self.SetStatusToSuccess()
     27         else:
     28             self.SetStatusToFailed()