-
Notifications
You must be signed in to change notification settings - Fork 0
/
__init__.py
257 lines (185 loc) · 6.92 KB
/
__init__.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
# 2015.11.10 21:25:47 Støední Evropa (bìžný èas)
# Embedded file name: scripts/client/gui/prb_control/__init__.py
import BigWorld
import datetime
import time
from constants import PREBATTLE_TYPE, ARENA_GUI_TYPE, DEFAULT_LANGUAGE
from constants import PREBATTLE_TYPE_NAMES, QUEUE_TYPE
from gui.prb_control.settings import makePrebattleSettings, VEHICLE_MAX_LEVEL
def getClientPrebattle():
return getattr(BigWorld.player(), 'prebattle', None)
def getPrebattleID():
clientPrb = getClientPrebattle()
prbID = 0
if clientPrb:
prbID = clientPrb.id
return prbID
def isPrebattleSettingsReceived(prebattle = None):
prb = prebattle or getClientPrebattle()
if prb is not None:
return prb.settings is not None
else:
return False
def isInRandomQueue():
return getattr(BigWorld.player(), 'isInRandomQueue', False)
def isInTutorialQueue():
return getattr(BigWorld.player(), 'isInTutorialQueue', False)
def isInHistoricalQueue():
return getattr(BigWorld.player(), 'isInHistoricalQueue', False)
def isInEventBattlesQueue():
return getattr(BigWorld.player(), 'isInEventBattles', False)
def getPrebattleSettings(prebattle = None):
prb = prebattle or getClientPrebattle()
if prb and prb.settings:
return makePrebattleSettings(prb.settings)
return makePrebattleSettings()
def getPrebattleProps(prebattle = None):
prb = prebattle or getClientPrebattle()
result = {}
if prb and prb.properties:
result = prb.properties
return result
def getPrebattleRosters(prebattle = None):
prb = prebattle or getClientPrebattle()
result = {}
if prb:
result = prb.rosters
return result
def getPrebattleTeamStates(prebattle = None):
prb = prebattle or getClientPrebattle()
result = [None, 0, 0]
if prb:
result = prb.teamStates
return result
def getPrebattleAutoInvites():
autoInvites = {}
player = BigWorld.player()
if hasattr(player, 'prebattleAutoInvites'):
autoInvites = player.prebattleAutoInvites
return autoInvites
def getPrebattleType(prebattle = None, settings = None):
try:
if settings is None:
settings = getPrebattleSettings(prebattle=prebattle)
return settings['type']
except KeyError:
return
return
def getPrebattleTypeName(prbType = None):
if prbType is None:
prbType = getPrebattleType()
if prbType in PREBATTLE_TYPE_NAMES:
prbTypeName = PREBATTLE_TYPE_NAMES[prbType]
else:
prbTypeName = 'PREBATTLE'
return prbTypeName
ARENA_GUI_TYPE_BY_PRB_TYPE = {PREBATTLE_TYPE.SQUAD: ARENA_GUI_TYPE.RANDOM,
PREBATTLE_TYPE.TRAINING: ARENA_GUI_TYPE.TRAINING,
PREBATTLE_TYPE.COMPANY: ARENA_GUI_TYPE.COMPANY}
ARENA_GUI_TYPE_BY_QUEUE_TYPE = {QUEUE_TYPE.RANDOMS: ARENA_GUI_TYPE.RANDOM,
QUEUE_TYPE.HISTORICAL: ARENA_GUI_TYPE.HISTORICAL}
def getArenaGUIType(prbType = None, queueType = None):
if prbType is None:
prbType = getPrebattleType()
arenaGuiType = ARENA_GUI_TYPE.RANDOM
if prbType is not None:
arenaGuiType = ARENA_GUI_TYPE.UNKNOWN
if prbType in ARENA_GUI_TYPE_BY_PRB_TYPE:
arenaGuiType = ARENA_GUI_TYPE_BY_PRB_TYPE[prbType]
elif queueType:
if queueType in ARENA_GUI_TYPE_BY_QUEUE_TYPE:
arenaGuiType = ARENA_GUI_TYPE_BY_QUEUE_TYPE[queueType]
return arenaGuiType
def getTotalLevelLimits(teamLimits):
return teamLimits['totalLevel']
def getLevelLimits(teamLimits):
limit = teamLimits['level']
return (limit[0], min(limit[1], VEHICLE_MAX_LEVEL))
def getNationsLimits(teamLimits):
return teamLimits['nations']
def getMaxSizeLimits(teamLimits):
return teamLimits['maxCount']
def getClassLevelLimits(teamLimits, classType):
classesLimits = teamLimits['classes']
if classesLimits is not None and classType not in classesLimits:
return (0, 0)
else:
classLevel = teamLimits['classLevel']
if classType in classLevel:
limit = teamLimits['classLevel'][classType]
else:
limit = getLevelLimits(teamLimits)
return (limit[0], min(limit[1], VEHICLE_MAX_LEVEL))
def getPrebattleLocalizedData(extraData = None):
led = {}
if extraData is None:
extraData = getPrebattleSettings()['extraData']
if extraData:
from helpers import getClientLanguage
lng = getClientLanguage()
ld = extraData.get('localized_data', {})
if ld:
if lng in ld:
led = ld[lng]
elif DEFAULT_LANGUAGE in ld:
led = ld[DEFAULT_LANGUAGE]
else:
sortedItems = ld.items()
sortedItems.sort()
led = sortedItems[0][1]
return led
def getCreatorFullName():
settings = getPrebattleSettings()
creatorName = settings['creator']
clanAbbrev = settings['creatorClanAbbrev']
from gui.LobbyContext import g_lobbyContext
creatorRegion = g_lobbyContext.getRegionCode(settings['creatorDBID'])
if clanAbbrev:
fullName = '{0:>s}[{1:>s}]'.format(creatorName, clanAbbrev)
else:
fullName = creatorName
if creatorRegion:
fullName = '{0:>s} {1:>s}'.format(fullName, creatorRegion)
return fullName
def areSpecBattlesHidden():
return not getattr(BigWorld.player(), 'prebattleAutoInvites', None)
def isSquad(settings = None):
return getPrebattleType(settings=settings) == PREBATTLE_TYPE.SQUAD
def isCompany(settings = None):
return getPrebattleType(settings=settings) == PREBATTLE_TYPE.COMPANY
def isTraining(settings = None):
return getPrebattleType(settings=settings) == PREBATTLE_TYPE.TRAINING
def isBattleSession(settings = None):
return getPrebattleType(settings=settings) in (PREBATTLE_TYPE.TOURNAMENT, PREBATTLE_TYPE.CLAN)
def isParentControlActivated():
from gui import game_control
return game_control.g_instance.gameSession.isParentControlActive and not isTraining()
def getClientUnitMgr():
return getattr(BigWorld.player(), 'unitMgr', None)
def getUnitMgrID():
return getattr(getClientUnitMgr(), 'id', None)
def getUnitIdx():
return getattr(getClientUnitMgr(), 'unitIdx', 0)
def getBattleID():
return getattr(getClientUnitMgr(), 'battleID', 0)
def getClientUnitBrowser():
return getattr(BigWorld.player(), 'unitBrowser', None)
def getUnit(unitIdx, safe = False):
unitMgr = getClientUnitMgr()
if not unitMgr:
if not safe:
raise ValueError, 'Unit manager not found'
return
else:
unit = None
try:
unit = unitMgr.units[unitIdx]
except KeyError:
if not safe:
raise ValueError, 'Unit not found'
return unit
def hasModalEntity():
return getClientPrebattle() or getUnitIdx()
# okay decompyling c:\Users\PC\wotsources\files\originals\res\scripts\client\gui\prb_control\__init__.pyc
# decompiled 1 files: 1 okay, 0 failed, 0 verify failed
# 2015.11.10 21:25:47 Støední Evropa (bìžný èas)