characterCreationSteps.py (4346B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\charactercreator\client\characterCreationSteps.py 2 import charactercreator.const as ccConst 3 STEPS_BY_MODE = {ccConst.MODE_FULL_BLOODLINECHANGE: [ccConst.EMPIRESTEP, 4 ccConst.TECHNOLOGYSTEP, 5 ccConst.BLOODLINESTEP, 6 ccConst.CUSTOMIZATIONSTEP, 7 ccConst.PORTRAITSTEP, 8 ccConst.NAMINGSTEP], 9 ccConst.MODE_FULL_RECUSTOMIZATION: [ccConst.CUSTOMIZATIONSTEP, ccConst.PORTRAITSTEP], 10 ccConst.MODE_LIMITED_RECUSTOMIZATION: [ccConst.CUSTOMIZATIONSTEP, ccConst.PORTRAITSTEP], 11 ccConst.MODE_FULLINITIAL_CUSTOMIZATION: [ccConst.EMPIRESTEP, 12 ccConst.TECHNOLOGYSTEP, 13 ccConst.BLOODLINESTEP, 14 ccConst.CUSTOMIZATIONSTEP, 15 ccConst.NAMINGSTEP]} 16 STEP_ORDER_LIST = [ccConst.EMPIRESTEP, 17 ccConst.TECHNOLOGYSTEP, 18 ccConst.BLOODLINESTEP, 19 ccConst.CUSTOMIZATIONSTEP, 20 ccConst.PORTRAITSTEP, 21 ccConst.NAMINGSTEP] 22 23 def GetStepOrder(step): 24 try: 25 return STEP_ORDER_LIST.index(step) 26 except ValueError: 27 return -1 28 29 30 def GetStepsUpToAndIncluding(lastStep): 31 s = set() 32 if lastStep not in STEP_ORDER_LIST: 33 return s 34 for step in STEP_ORDER_LIST: 35 s.add(step) 36 if step == lastStep: 37 return s 38 39 40 class Mode(object): 41 42 def __init__(self, modeID, canChangeBaseAppearance = False, canChangeName = False, canChangeGender = False, canChangeBloodline = False, willExitToStation = True, askPortraitInfo = False, isInitialCreation = False, limited = False, useOldPortraitData = False): 43 self.modeID = modeID 44 self.canChangeName = canChangeName 45 self.canChangeGender = canChangeGender 46 self.canChangeBaseAppearance = canChangeBaseAppearance 47 self.canChangeBloodline = canChangeBloodline 48 self.willExitToStation = willExitToStation 49 self.askForPortraitConfirmation = askPortraitInfo 50 self.isInitialCreation = isInitialCreation 51 self.limitedHelpText = limited 52 self.useOldPortraitData = useOldPortraitData 53 self.steps = {} 54 55 def GetValue(self): 56 return ccConst.MODE_FULL_BLOODLINECHANGE 57 58 def GetSteps(self): 59 return STEPS_BY_MODE[self.modeID] 60 61 def CanChangeBaseAppearance(self): 62 return self.canChangeBaseAppearance 63 64 def CanChangeGender(self): 65 return self.canChangeGender 66 67 def CanChangeName(self): 68 return self.canChangeName 69 70 def CanChangeBloodLine(self): 71 return self.canChangeBloodline 72 73 def AskForPortraitConfirmation(self): 74 return self.askForPortraitConfirmation 75 76 def ExitToStation(self): 77 return self.willExitToStation 78 79 def IsInitialCreation(self): 80 return self.isInitialCreation 81 82 def IsLimited(self): 83 return self.limitedHelpText 84 85 def GetOldPortraitData(self): 86 return self.useOldPortraitData 87 88 89 class ModeStorage(object): 90 91 def __init__(self): 92 self.modes = {} 93 fullInitialCustomization = Mode(modeID=ccConst.MODE_FULLINITIAL_CUSTOMIZATION, canChangeBaseAppearance=True, canChangeBloodline=True, canChangeName=True, canChangeGender=True, willExitToStation=False) 94 fullBloodlineChange = Mode(modeID=ccConst.MODE_FULL_BLOODLINECHANGE, canChangeBloodline=True, canChangeGender=False, canChangeBaseAppearance=False) 95 fullRecustomization = Mode(modeID=ccConst.MODE_FULL_RECUSTOMIZATION, canChangeGender=True, canChangeBaseAppearance=True, askPortraitInfo=True, useOldPortraitData=True) 96 limitedRecustomization = Mode(modeID=ccConst.MODE_LIMITED_RECUSTOMIZATION, canChangeBaseAppearance=False, askPortraitInfo=True, limited=1, useOldPortraitData=True, willExitToStation=True) 97 self.modes[ccConst.MODE_FULLINITIAL_CUSTOMIZATION] = fullInitialCustomization 98 self.modes[ccConst.MODE_FULL_BLOODLINECHANGE] = fullBloodlineChange 99 self.modes[ccConst.MODE_FULL_RECUSTOMIZATION] = fullRecustomization 100 self.modes[ccConst.MODE_LIMITED_RECUSTOMIZATION] = limitedRecustomization 101 102 def GetModeFor(self, modeID): 103 return self.modes[modeID]