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()