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

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!')