3
2
forked from Dniel97/artemis
artemis/titles/wacca/const.py

226 lines
6.4 KiB
Python

from enum import Enum
from typing import Optional
from core.const import AllnetJapanRegionId
class WaccaConstants:
CONFIG_NAME = "wacca.yaml"
GAME_CODE = "SDFE"
VER_WACCA = 0
VER_WACCA_S = 1
VER_WACCA_LILY = 2
VER_WACCA_LILY_R = 3
VER_WACCA_REVERSE = 4
VERSION_NAMES = ("WACCA", "WACCA S", "WACCA Lily", "WACCA Lily R", "WACCA Reverse")
class GRADES(Enum):
D = 1
C = 2
B = 3
A = 4
AA = 5
AAA = 6
S = 7
SS = 8
SSS = 9
MASTER = 10
S_PLUS = 11
SS_PLUS = 12
SSS_PLUS = 13
ITEM_TYPES = {
"xp": 1,
"wp": 2,
"music_unlock": 3,
"music_difficulty_unlock": 4,
"title": 5,
"icon": 6,
"trophy": 7,
"skill": 8,
"ticket": 9,
"note_color": 10,
"note_sound": 11,
"baht_do_not_send": 12,
"boost_badge": 13,
"gate_point": 14,
"navigator": 15,
"user_plate": 16,
"touch_effect": 17,
}
OPTIONS = {
"note_speed": 1, # 1.0 - 6.0
"field_mask": 2, # 0-4
"note_sound": 3, # ID
"note_color": 4, # ID
"bgm_volume": 5, # 0-100 incremements of 10
"bg_video": 7, # ask, on, or off
"mirror": 101, # none or left+right swap
"judge_display_pos": 102, # center, under, over, top or off
"judge_detail_display": 103, # on or off
"measure_guidelines": 105, # on or off
"guideline_mask": 106, # 0 - 5
"judge_line_timing_adjust": 108, # -10 - 10
"note_design": 110, # 1 - 5
"bonus_effect": 114, # on or off
"chara_voice": 115, # "usually" or none
"score_display_method": 116, # add or subtract
"give_up": 117, # off, no touch, can't achieve s, ss, sss, pb
"guideline_spacing": 118, # none, or a-g type
"center_display": 119, # none, combo, score add, score sub, s ss sss pb boarder
"ranking_display": 120, # on or off
"stage_up_icon_display": 121, # on or off
"rating_display": 122, # on or off
"player_level_display": 123, # on or off
"touch_effect": 124, # on or off
"guide_sound_vol": 125, # 0-100 incremements of 10
"touch_note_vol": 126, # 0-100 incremements of 10
"hold_note_vol": 127, # 0-100 incremements of 10
"slide_note_vol": 128, # 0-100 incremements of 10
"snap_note_vol": 129, # 0-100 incremements of 10
"chain_note_vol": 130, # 0-100 incremements of 10
"bonus_note_vol": 131, # 0-100 incremements of 10
"gate_skip": 132, # on or off
"key_beam_display": 133, # on or off
"left_slide_note_color": 201, # red blue green or orange
"right_slide_note_color": 202, # red blue green or orange
"forward_slide_note_color": 203, # red blue green or orange
"back_slide_note_color": 204, # red blue green or orange
"master_vol": 1001, # 0-100 incremements of 10
"set_title_id": 1002, # ID
"set_icon_id": 1003, # ID
"set_nav_id": 1004, # ID
"set_plate_id": 1005, # ID
}
class Difficulty(Enum):
NORMAL = 1
HARD = 2
EXPERT = 3
INFERNO = 4
class Region(Enum):
NONE = 0
HOKKAIDO = 1
AOMORI = 2
IWATE = 3
MIYAGI = 4
AKITA = 5
YAMAGATA = 6
FUKUSHIMA = 7
IBARAKI = 8
TOCHIGI = 9
GUNMA = 10
SAITAMA = 11
CHIBA = 12
TOKYO = 13
KANAGAWA = 14
NIIGATA = 15
TOYAMA = 16
ISHIKAWA = 17
FUKUI = 18
YAMANASHI = 19
NAGANO = 20
GIFU = 21
SHIZUOKA = 22
AICHI = 23
MIE = 24
SHIGA = 25
KYOTO = 26
OSAKA = 27
HYOGO = 28
NARA = 29
WAKAYAMA = 30
TOTTORI = 31
SHIMANE = 32
OKAYAMA = 33
HIROSHIMA = 34
YAMAGUCHI = 35
TOKUSHIMA = 36
KAGAWA = 37
EHIME = 38
KOCHI = 39
FUKUOKA = 40
SAGA = 41
NAGASAKI = 42
KUMAMOTO = 43
OITA = 44
MIYAZAKI = 45
KAGOSHIMA = 46
OKINAWA = 47
UNITED_STATES = 48
USA = 48
TAIWAN = 49
TWN = 49
HONG_KONG = 50
HKG = 50
SINGAPORE = 51
SGP = 51
KOREA = 52
KOR = 52
VALID_COUNTRIES = set(["JPN", "USA", "KOR", "HKG", "SGP"])
@classmethod
def game_ver_to_string(cls, ver: int):
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 Exception:
return None