Skip to content

Commit ed77526

Browse files
committed
Added better actual_race handling, should support RU, KR and possible CH now
1 parent 5c2ff21 commit ed77526

File tree

3 files changed

+146
-4
lines changed

3 files changed

+146
-4
lines changed

sc2reader/data.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@
310310
0x022b01: 'Rich Mineral Field',
311311
}
312312

313-
# These are found in fileset.{locale}#Mods#Core.SC2Mod#{locale}.SC2Data/LocalizedData/Editor/EditorCategoryStrings.txt
313+
# These are found in Repack-MPQ/fileset.{locale}#Mods#Core.SC2Mod#{locale}.SC2Data/LocalizedData/Editor/EditorCategoryStrings.txt
314314
# EDSTR_CATEGORY_Race
315315
# EDSTR_PLAYERPROPS_RACE
316316
# question mark means not confirmed data
@@ -323,12 +323,21 @@
323323
# itIT
324324

325325
# koKR
326-
'프로토스': 'Protoss', #?
327-
'테란': 'Terran' #?
326+
'프로토스': 'Protoss',
327+
'테란': 'Terran',
328+
'저그': 'Zerg',
328329

329330
# plPL
330331
# ptBR
331332
# ruRU
333+
'Протосс': 'Protoss',
334+
'Терран': 'Terran',
335+
'Зерг': 'Zerg',
332336
# zhCN
333337
# zhTW
338+
339+
# Uncategorized
340+
'神族': 'Protoss',
341+
'蟲族': 'Zerg',
342+
'人類': 'Terran'
334343
}

sc2reader/objects.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,16 @@ def __init__(self, pid, data, realm="us"):
187187
self.actual_race = data[2].decode("hex")
188188

189189
# Actual race seems to be localized, so try to convert to english if possible
190+
191+
# Some European language, like DE will have races written slightly differently (ie. Terraner).
192+
# To avoid these differences, only examine the first letter, which seem to be consistent across languages.
193+
if self.actual_race[0] == 'T':
194+
self.actual_race = "Terran"
195+
if self.actual_race[0] == 'P':
196+
self.actual_race = "Protoss"
197+
if self.actual_race[0] == 'Z':
198+
self.actual_race = "Zerg"
199+
190200
if self.actual_race in races:
191201
self.actual_race = races[self.actual_race]
192202

test_replays/test_all.py

Lines changed: 124 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,4 +192,127 @@ def test_datetimes():
192192

193193
# Played at 25 Feb 2011 16:36:28 UTC+2
194194
replay = Replay("test_replays/build17811/3.SC2Replay")
195-
assert replay.utc_date == datetime.datetime(2011, 2, 25, 14, 36, 26)
195+
assert replay.utc_date == datetime.datetime(2011, 2, 25, 14, 36, 26)
196+
197+
def test_15():
198+
replay = Replay("test_replays/build17811/15.SC2Replay")
199+
200+
print replay.realm
201+
print len(replay.players)
202+
print replay.players[0].actual_race
203+
print replay.players[1].actual_race
204+
assert 1==0
205+
206+
def test_16():
207+
replay = Replay("test_replays/build17811/16.SC2Replay")
208+
print replay.realm
209+
print len(replay.players)
210+
print replay.players[0].actual_race
211+
print replay.players[1].actual_race
212+
assert 1==0
213+
214+
def test_17():
215+
replay = Replay("test_replays/build17811/17.SC2Replay")
216+
print replay.realm
217+
print len(replay.players)
218+
print replay.players[0].actual_race
219+
print replay.players[1].actual_race
220+
print replay.players[0].name
221+
print replay.players[1].name
222+
assert 1==0
223+
224+
def test_18():
225+
replay = Replay("test_replays/build17811/18.SC2Replay")
226+
print replay.realm
227+
print len(replay.players)
228+
print replay.players[0].actual_race
229+
print replay.players[1].actual_race
230+
print replay.players[0].choosen_race
231+
print replay.players[1].choosen_race
232+
print replay.players[0].name
233+
print replay.players[1].name
234+
assert 1==0
235+
236+
def test_19():
237+
replay = Replay("test_replays/build17811/19.SC2Replay")
238+
print replay.realm
239+
print len(replay.players)
240+
print replay.players[0].actual_race
241+
print replay.players[1].actual_race
242+
print replay.players[0].choosen_race
243+
print replay.players[1].choosen_race
244+
print replay.players[0].name
245+
print replay.players[1].name
246+
assert 1==0
247+
248+
def test_20():
249+
replay = Replay("test_replays/build17811/20.SC2Replay")
250+
print replay.realm
251+
print len(replay.players)
252+
print replay.players[0].actual_race
253+
print replay.players[1].actual_race
254+
print replay.players[0].choosen_race
255+
print replay.players[1].choosen_race
256+
print replay.players[0].name
257+
print replay.players[1].name
258+
assert 1==0
259+
260+
def test_21():
261+
replay = Replay("test_replays/build17811/21.SC2Replay")
262+
print replay.realm
263+
print len(replay.players)
264+
print replay.players[0].actual_race
265+
print replay.players[1].actual_race
266+
print replay.players[0].choosen_race
267+
print replay.players[1].choosen_race
268+
print replay.players[0].name
269+
print replay.players[1].name
270+
assert 1==0
271+
272+
def test_22():
273+
replay = Replay("test_replays/build17811/22.SC2Replay")
274+
print replay.realm
275+
print len(replay.players)
276+
print replay.players[0].actual_race
277+
print replay.players[1].actual_race
278+
print replay.players[0].choosen_race
279+
print replay.players[1].choosen_race
280+
print replay.players[0].name
281+
print replay.players[1].name
282+
assert 1==0
283+
284+
def test_23():
285+
replay = Replay("test_replays/build17811/23.SC2Replay")
286+
print replay.realm
287+
print len(replay.players)
288+
print replay.players[0].actual_race
289+
print replay.players[1].actual_race
290+
print replay.players[0].choosen_race
291+
print replay.players[1].choosen_race
292+
print replay.players[0].name
293+
print replay.players[1].name
294+
assert 1==0
295+
296+
def test_24():
297+
replay = Replay("test_replays/build17811/24.SC2Replay")
298+
print replay.realm
299+
print len(replay.players)
300+
print replay.players[0].actual_race
301+
print replay.players[1].actual_race
302+
print replay.players[0].choosen_race
303+
print replay.players[1].choosen_race
304+
print replay.players[0].name
305+
print replay.players[1].name
306+
assert 1==0
307+
308+
def test_25():
309+
replay = Replay("test_replays/build17811/25.SC2Replay")
310+
print replay.realm
311+
print len(replay.players)
312+
print replay.players[0].actual_race
313+
print replay.players[1].actual_race
314+
print replay.players[0].choosen_race
315+
print replay.players[1].choosen_race
316+
print replay.players[0].name
317+
print replay.players[1].name
318+
assert 1==0

0 commit comments

Comments
 (0)