paperDollTestUtils.py (2189B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\common\script\paperDoll\paperDollTestUtils.py 2 from __future__ import print_function 3 import blue 4 import random 5 import eve.common.script.paperDoll.paperDollDefinitions as pdDef 6 import eve.common.script.paperDoll.paperDollCommonFunctions as pdCf 7 8 class RandomModifierManager(object): 9 10 def __init__(self, pdc): 11 self.pdc = pdc 12 self.modifiers = [ modifier for modifier in self.pdc.doll.buildDataManager.GetSortedModifiers() if modifier.categorie != pdDef.DOLL_PARTS.HEAD ] 13 14 def ActOnRandomModifier(self, fun, candidates): 15 limit = len(candidates) 16 if limit > 0: 17 ridx = random.randint(0, limit) - 1 18 modifier = candidates[ridx] 19 fun(modifier) 20 print('Modifier chosen is %s' % modifier.name) 21 self.pdc.doll.Update(self.pdc.factory, self.pdc.avatar) 22 while self.pdc.doll.busyUpdating: 23 pdCf.Yield() 24 25 else: 26 raise Exception('Candidates are empty!') 27 28 def RandomRemover(self): 29 currentModifiers = map(lambda x: x.name, self.pdc.doll.buildDataManager.GetSortedModifiers()) 30 candidates = [ modifier for modifier in self.modifiers if modifier.name in currentModifiers ] 31 self.ActOnRandomModifier(lambda x: self.pdc.doll.RemoveResource(x.GetResPath(), self.pdc.factory), candidates) 32 33 def RandomDresser(self): 34 currentModifiers = map(lambda x: x.name, self.pdc.doll.buildDataManager.GetSortedModifiers()) 35 candidates = [ modifier for modifier in self.modifiers if modifier.name not in currentModifiers ] 36 self.ActOnRandomModifier(lambda x: self.pdc.doll.AddResource(x.GetResPath(), 1.0, self.pdc.factory), candidates) 37 38 def UndressDress(self): 39 blue.synchro.SleepWallclock(1000) 40 removedCount = 0 41 while removedCount < len(self.modifiers): 42 print('Removing random modifier') 43 self.RandomRemover() 44 removedCount += 1 45 46 while removedCount > 0: 47 print('Adding random modifier') 48 self.RandomDresser() 49 removedCount -= 1 50 51 print('Done!')