forked from Hay1tsme/artemis
wacca: pull region_id from allnet if available
This commit is contained in:
parent
34e2c50fb5
commit
f24d554a44
@ -91,10 +91,27 @@ class WaccaBase():
|
|||||||
def handle_housing_start_request(self, data: Dict) -> Dict:
|
def handle_housing_start_request(self, data: Dict) -> Dict:
|
||||||
req = HousingStartRequestV1(data)
|
req = HousingStartRequestV1(data)
|
||||||
|
|
||||||
if req.appVersion.country != "JPN" and req.appVersion.country in [region.name for region in WaccaConstants.Region]:
|
machine = self.data.arcade.get_machine(req.chipId)
|
||||||
|
if machine is not None:
|
||||||
|
arcade = self.data.arcade.get_arcade(machine["arcade"])
|
||||||
|
|
||||||
|
allnet_region_id = arcade["region_id"]
|
||||||
|
|
||||||
|
if req.appVersion.country == "JPN":
|
||||||
|
if allnet_region_id is not None:
|
||||||
|
region = WaccaConstants.allnet_region_id_to_wacca_region(allnet_region_id)
|
||||||
|
|
||||||
|
if region is None:
|
||||||
|
region_id = self.region_id
|
||||||
|
|
||||||
|
else:
|
||||||
|
region_id = self.region_id
|
||||||
|
|
||||||
|
elif req.appVersion.country in WaccaConstants.VALID_COUNTRIES:
|
||||||
region_id = WaccaConstants.Region[req.appVersion.country]
|
region_id = WaccaConstants.Region[req.appVersion.country]
|
||||||
|
|
||||||
else:
|
else:
|
||||||
region_id = self.region_id
|
region_id = 0
|
||||||
|
|
||||||
resp = HousingStartResponseV1(region_id)
|
resp = HousingStartResponseV1(region_id)
|
||||||
return resp.make()
|
return resp.make()
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
from enum import Enum
|
from enum import Enum
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
|
from core.const import AllnetJapanRegionId
|
||||||
|
|
||||||
class WaccaConstants():
|
class WaccaConstants():
|
||||||
CONFIG_NAME = "wacca.yaml"
|
CONFIG_NAME = "wacca.yaml"
|
||||||
@ -166,3 +169,21 @@ class WaccaConstants():
|
|||||||
@classmethod
|
@classmethod
|
||||||
def game_ver_to_string(cls, ver: int):
|
def game_ver_to_string(cls, ver: int):
|
||||||
return cls.VERSION_NAMES[ver]
|
return cls.VERSION_NAMES[ver]
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def allnet_region_id_to_wacca_region(cls, region: int) -> Optional[Region]:
|
||||||
|
try:
|
||||||
|
return [
|
||||||
|
cls.Region.NONE, cls.Region.AICHI, cls.Region.AOMORI, cls.Region.AKITA, cls.Region.ISHIKAWA,
|
||||||
|
cls.Region.IBARAKI, cls.Region.IWATE, cls.Region.EHIME, cls.Region.OITA, cls.Region.OSAKA,
|
||||||
|
cls.Region.OKAYAMA, cls.Region.OKINAWA, cls.Region.KAGAWA, cls.Region.KAGOSHIMA, cls.Region.KANAGAWA,
|
||||||
|
cls.Region.GIFU, cls.Region.KYOTO, cls.Region.KUMAMOTO, cls.Region.GUNMA, cls.Region.KOCHI,
|
||||||
|
cls.Region.SAITAMA, cls.Region.SAGA, cls.Region.SHIGA, cls.Region.SHIZUOKA, cls.Region.SHIMANE,
|
||||||
|
cls.Region.CHIBA, cls.Region.TOKYO, cls.Region.TOKUSHIMA, cls.Region.TOCHIGI, cls.Region.TOTTORI,
|
||||||
|
cls.Region.TOYAMA, cls.Region.NAGASAKI, cls.Region.NAGANO, cls.Region.NARA, cls.Region.NIIGATA,
|
||||||
|
cls.Region.HYOGO, cls.Region.HIROSHIMA, cls.Region.FUKUI, cls.Region.FUKUOKA, cls.Region.FUKUSHIMA,
|
||||||
|
cls.Region.HOKKAIDO, cls.Region.MIE, cls.Region.MIYAGI, cls.Region.MIYAZAKI, cls.Region.YAMAGATA,
|
||||||
|
cls.Region.YAMAGUCHI, cls.Region.YAMANASHI, cls.Region.WAKAYAMA,
|
||||||
|
][region]
|
||||||
|
except: return None
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user