diff --git a/bemani/frontend/iidx/endpoints.py b/bemani/frontend/iidx/endpoints.py index a20a4bd..10d116d 100644 --- a/bemani/frontend/iidx/endpoints.py +++ b/bemani/frontend/iidx/endpoints.py @@ -317,15 +317,20 @@ def viewsettings() -> Response: djinfo = frontend.get_all_player_info([userid])[userid] if not djinfo: abort(404) - + versions = sorted( + [version for (game, version, name) in frontend.all_games()], + reverse=True, + ) return render_react( 'IIDX Game Settings', 'iidx/settings.react.js', { 'player': djinfo, 'versions': {version: name for (game, version, name) in frontend.all_games()}, + 'qpros': frontend.get_all_items(versions), }, { + 'updateqpro': url_for('iidx_pages.updateqpro'), 'updateflags': url_for('iidx_pages.updateflags'), 'updatesettings': url_for('iidx_pages.updatesettings'), 'updatename': url_for('iidx_pages.updatename'), @@ -362,11 +367,15 @@ def updateflags() -> Dict[str, Any]: flagint += 0x040 if flags['rival_win_lose'] else 0 flagint += 0x080 if flags['rival_info'] else 0 flagint += 0x100 if flags['hide_play_count'] else 0 + flagint += 0x200 if flags['disable_graph_cutin'] else 0 + flagint += 0x400 if flags['classic_hispeed'] else 0 + flagint += 0x1000 if flags['hide_iidx_id'] else 0 settings_dict.replace_int('flags', flagint) # Update special case flags settings_dict.replace_int('disable_song_preview', 1 if flags['disable_song_preview'] else 0) settings_dict.replace_int('effector_lock', 1 if flags['effector_lock'] else 0) + settings_dict.replace_int('disable_hcn_color', 1 if flags['disable_hcn_color'] else 0) # Update the settings dict profile.replace_dict('settings', settings_dict) @@ -379,6 +388,37 @@ def updateflags() -> Dict[str, Any]: } +@iidx_pages.route('/options/qpro/update', methods=['POST']) +@jsonify +@loginrequired +def updateqpro() -> Dict[str, Any]: + frontend = IIDXFrontend(g.data, g.config, g.cache) + qpros = request.get_json()['qpro'] + version = int(request.get_json()['version']) + user = g.data.local.user.get_user(g.userID) + if user is None: + raise Exception('Unable to find user to update!') + + # Grab profile and qpro dict that needs updating + profile = g.data.local.user.get_profile(GameConstants.IIDX, version, user.id) + if profile is None: + raise Exception('Unable to find profile to update!') + qpro_dict = profile.get_dict('qpro') + + for qpro in qpros: + qpro_dict.replace_int(qpro, qpros[qpro]) + + # Update the qpro dict + profile.replace_dict('qpro', qpro_dict) + g.data.local.user.put_profile(GameConstants.IIDX, version, user.id, profile) + + # Return updated qpro + return { + 'qpro': frontend.format_qpro(qpro_dict), + 'version': version, + } + + @iidx_pages.route('/options/settings/update', methods=['POST']) @jsonify @loginrequired diff --git a/bemani/frontend/iidx/iidx.py b/bemani/frontend/iidx/iidx.py index a52bfd5..b5f1a52 100644 --- a/bemani/frontend/iidx/iidx.py +++ b/bemani/frontend/iidx/iidx.py @@ -1,5 +1,5 @@ # vim: set fileencoding=utf-8 -from typing import Any, Dict, Iterator, Optional, Tuple +from typing import Any, Dict, Iterator, Optional, Tuple, List from flask_caching import Cache # type: ignore @@ -60,6 +60,18 @@ class IIDXFrontend(FrontendBase): 21066: 16212, 23030: 22096, 23051: 22097, + 11101: 21214, + 14101: 21221, + 15104: 21225, + 15102: 21226, + 15101: 21231, + 15103: 21237, + 16105: 21240, + 16104: 21242, + 16103: 21253, + 16102: 21258, + 16101: 21262, + 14100: 21220, } # Some charts were changed, and others kept the same on these if chart in [0, 1, 2]: @@ -113,8 +125,12 @@ class IIDXFrontend(FrontendBase): 'rival_win_lose': (flags & 0x040) != 0, 'rival_info': (flags & 0x080) != 0, 'hide_play_count': (flags & 0x100) != 0, + 'disable_graph_cutin': (flags & 0x200) != 0, + 'classic_hispeed': (flags & 0x400) != 0, + 'hide_iidx_id': (flags & 0x1000) != 0, 'disable_song_preview': settings_dict.get_int('disable_song_preview') != 0, 'effector_lock': settings_dict.get_int('effector_lock') != 0, + 'disable_hcn_color': settings_dict.get_int('disable_hcn_color') != 0, } def format_settings(self, settings_dict: ValidatedDict) -> Dict[str, Any]: @@ -132,6 +148,41 @@ class IIDXFrontend(FrontendBase): 'judge': settings_dict.get_int('judge'), 'pacemaker': settings_dict.get_int('pacemaker'), 'effector_preset': settings_dict.get_int('effector_preset'), + 'explosion_size': settings_dict.get_int('explosion_size'), + 'note_preview': settings_dict.get_int('note_preview'), + } + + def format_qpro(self, qpro_dict: ValidatedDict) -> Dict[str, Any]: + return { + 'body': qpro_dict.get_int('body'), + 'face': qpro_dict.get_int('face'), + 'hair': qpro_dict.get_int('hair'), + 'hand': qpro_dict.get_int('hand'), + 'head': qpro_dict.get_int('head'), + } + + def get_all_items(self, versions: list) -> Dict[str, List[Dict[str, Any]]]: + result = {} + for version in versions: + qpro = self.__format_iidx_extras(version) + result[version] = qpro['qpros'] + return result + + def __format_iidx_extras(self, version) -> Dict[str, List[Dict[str, Any]]]: + # Gotta look up the unlock catalog + items = self.data.local.game.get_items(self.game, version) + + return { + "qpros": [ + { + "identifier": item.data.get_str("identifier"), + "id": str(item.id), + "name": item.data.get_str("name"), + "type": item.type[3:], + } + for item in items + if item.type in ['qp_body', 'qp_face', 'qp_hair', 'qp_hand', 'qp_head'] + ], } def format_profile(self, profile: ValidatedDict, playstats: ValidatedDict) -> Dict[str, Any]: @@ -149,6 +200,7 @@ class IIDXFrontend(FrontendBase): 'ddan': self.format_dan_rank(profile.get_int('dgrade', -1)), 'srank': profile.get_int('sgrade', -1), 'drank': profile.get_int('dgrade', -1), + 'qpro': self.format_qpro(profile.get_dict('qpro')), }) if 'shop_location' in profile: shop_id = profile.get_int('shop_location') diff --git a/bemani/frontend/static/controllers/iidx/settings.react.js b/bemani/frontend/static/controllers/iidx/settings.react.js index 4059ef0..27537a3 100644 --- a/bemani/frontend/static/controllers/iidx/settings.react.js +++ b/bemani/frontend/static/controllers/iidx/settings.react.js @@ -5,10 +5,14 @@ var pagenav = new History(valid_versions); var menu_option_names = { 'alphabet': 'alphabet folders', + 'classic_hispeed': 'classic hispeed', 'difficulty': 'difficulty folders', + 'disable_graph_cutin': 'disable graph cut-in', + 'disable_hcn_color': 'disable hcn color', 'disable_song_preview': 'disable song previews', 'effector_lock': 'lock effector', 'grade': 'grade folders', + 'hide_iidx_id': 'hide iidx id', 'hide_play_count': 'hide play count on profile', 'rival_info': 'rival info box', 'rival_played': 'rival played folders', @@ -24,8 +28,12 @@ var valid_menu_options = [ 'rival_win_lose', 'rival_info', 'hide_play_count', + 'disable_graph_cutin', + 'classic_hispeed', + 'hide_iidx_id', 'disable_song_preview', 'effector_lock', + 'disable_hcn_color', ]; var theme_option_names = { 'beam': 'Note Beam', @@ -40,7 +48,16 @@ var theme_option_names = { 'voice': 'Menu Announcer Voice', 'pacemaker': 'Pacemaker Skin', 'effector_preset': 'Effector Preset', + 'explosion_size': 'Explosion Size', + 'note_preview': 'Note Preview', }; +var valid_qpro_options = [ + 'body', + 'face', + 'hair', + 'hand', + 'head', +]; var settings_view = React.createClass({ @@ -53,10 +70,13 @@ var settings_view = React.createClass({ version: version, menu_changed: {}, theme_changed: {}, + qpro_changed: {}, menu_saving: {}, theme_saving: {}, + qpro_saving: {}, menu_saved: {}, theme_saved: {}, + qpro_saved: {}, new_name: window.player[version].name, editing_name: false, new_prefecture: window.player[version].prefecture, @@ -77,6 +97,21 @@ var settings_view = React.createClass({ } }, + setQproChanged: function(val) { + this.state.qpro_changed[this.state.version] = val; + return this.state.qpro_changed + }, + + setQproSaving: function(val) { + this.state.qpro_saving[this.state.version] = val; + return this.state.qpro_saving; + }, + + setQproSaved: function(val) { + this.state.qpro_saved[this.state.version] = val; + return this.state.qpro_saved; + }, + setMenuChanged: function(val) { this.state.menu_changed[this.state.version] = val; return this.state.menu_changed; @@ -107,6 +142,27 @@ var settings_view = React.createClass({ return this.state.theme_saved; }, + saveQproOptions: function(event) { + this.setState({qpro_saving: this.setQproSaving(true), qpro_saved: this.setQproSaved(false)}); + AJAX.post( + Link.get('updateqpro'), + { + version: this.state.version, + qpro: this.state.player[this.state.version].qpro, + }, + function(response) { + var player = this.state.player + player[response.version].qpro = response.qpro; + this.setState({ + player: player, + qpro_saving: this.setQproSaving(false), + qpro_saved: this.setQproSaved(true), + qpro_changed: this.setQproChanged(false), + }) + }.bind(this) + ) + }, + saveMenuOptions: function(event) { this.setState({menu_saving: this.setMenuSaving(true), menu_saved: this.setMenuSaved(false)}); AJAX.post( @@ -258,11 +314,12 @@ var settings_view = React.createClass({ }, renderPrefecture: function(player) { + regions = this.state.version >= 25 ? Regions2 : Regions; return ( { !this.state.editing_prefecture ? - {Regions[player.prefecture]} + {regions[player.prefecture]} +
+

QPro

+
+
+ { + valid_qpro_options.map(function(qpro_option) { + var player = this.state.player[this.state.version] + var items = window.qpros[this.state.version].filter(function (qpro) { + return qpro.type == qpro_option + }); + var results = {}; + items + .map(function(item) { return { 'id': item.id, 'name': `${item.name}` } }) + .forEach (value => results[value.id] = value.name); + return ( +
+ {qpro_option} +
+ +
+ ) + }.bind(this)) + } +
+ + { this.state.qpro_saving[this.state.version] ? + : + null + } + { this.state.qpro_saved[this.state.version] ? + : + null + } +
+
+
+

Theme

{Object.keys(IIDXOptions[this.state.version]).map(function(theme_option) { diff --git a/bemani/frontend/static/iidx-options.js b/bemani/frontend/static/iidx-options.js index bb7ce49..fb4bdde 100644 --- a/bemani/frontend/static/iidx-options.js +++ b/bemani/frontend/static/iidx-options.js @@ -1047,4 +1047,913 @@ var IIDXOptions = { "PITCH", ], }, + "25": { + "turntable": [ + "DEFAULT", + "TRAN", + "TAITYOU", + "DELTA", + "HAPPYSKY", + "DISTORTED", + "GOLD", + "TROOPERS", + "EMPRESS", + "SIRIUS", + "RESORT", + "LINCLE", + "TRICORO", + "SPADA", + "SHAKUNETSU", + "SUPER STAR", + "PENDUAL", + "COPULA", + "SINOBUZ", + "CANNON BALLERS", + ], + "burst": [ + "DEFAULT", + "1ST", + "9TH", + "RED", + "HAPPYSKY", + "DISTORTED", + "GOLD", + "TROOPERS", + "EMPRESS", + "SIRIUS", + "RESORT", + "LINCLE", + "TRICORO", + "SPADA", + "SUPER STAR", + "PENDUAL", + "COPULA", + "SINOBUZ", + "CANNON SPARK", + ], + "towel": [ + "DEFAULT", + "SIGSIG", + "NAIBU FRAME", + "SKY", + "KAMAITACHI", + "TAORU", + "COSMOS", + "DOKYO KYODAI", + "BLIND J", + "MEISAI", + "BLOOMIN", + "MARIE A", + "ELISHA", + "KUNG-FU", + "TUNE BEAT3", + "EMPRESS", + "PRO WORLD", + "3Y3S", + "UMEGIRI", + "KANZAKI", + "ROCK DA H", + "DOOR RAINBOW", + "AEGIS", + "VERMILLION", + "PHOENIX", + "LUCKY DAYS", + "ALMACE", + "DIAMOND CROSS", + "MAMONIS", + "ASHEMU", + "BULLUVEGOLA", + "BERIDZEBETH1", + "LEVASLATER", + "STN", + "RCHE1", + "NEULAKYUSSRA", + "CYBELE", + "CUVELIA", + "LIBERATION", + "PRALUDIUM", + "SHOJO ALICE", + "REGENERATION", + "20SYSTEM BG", + "DOGMA A", + "DOGMA B", + "ELEKTRICK U", + "MAGIC LOVE", + "SPADA", + "S!CK", + "CONCEPTUAL", + "ELPIS1", + "RUMRUM", + "SYNC-ANTHEM", + "THOR'S HAM", + "PLAN 8", + "KASOKUKAN", + "8BIT P", + "PLANARIAN", + "DYNAMITE", + "DECOHERENCE", + "TORIKAGO", + "PROOF", + "BRAVE GLOW1", + "BRAVE GLOW2", + "VEGA1", + "VEGA2", + "CASINO FIRE", + "NEW LIGHTS", + "SHAKUNETSU2", + "NOCHOKU", + "KYATORARE", + "ONLY ONE", + "JIZAL", + "JACKTILLO", + "JACKHANS", + "JENS", + "AMDUSIAN", + "MAXWELLION", + "LAPLASIA", + "RCHE2", + "SUMOMO", + "FAULA", + "BERIDZEBETH2", + "ELPIS2", + "FERIRA", + "ALL PATONA", + "MEISAI", + "NINGYO", + "URARA", + "SHELTER", + "ACID PUMPER", + "X", + "ON THE FM", + "NIGHTMARE", + "HIGHCHARGE", + "GODSPEED1", + "GODSPEED2", + "GENERATE", + "DYNAMITE", + "DEVIL'S GEAR", + "DPS", + "AZISAI", + "LA DOLCE", + "AO-1", + "HELL OR HELL", + "RYOUSHI", + "EKINEKO", + "FUYUTUBAKI", + "PAPAYAPA", + "KARASU", + "ASIAN DIS", + "TOGAKUSHI", + "MODULAR TEC", + "SHISHIKASUMU", + "MUSIC IS ANS", + "VIVA", + "SINOBUZ", + "CHASER XX", + "AMOR", + "EDIBLE FLWR", + "HI*BISCUS", + "MIDNIGHT LDY", + "FUTURE IS D", + "BREAK STASIS", + "SOGEN NO OJO", + "EXHAUST HYPE", + "25UI", + "ENGOKU OVRKL", + "BREAKIN CHAN", + "TSUGARU SETS", + "YELLOW SKTCH", + "STEEL EDGE", + "GO AHEAD!!", + "[[dummy-133]]", + "IZANAMI", + "GUNGNIR", + "[[dummy-136]]", + "BROGAMER", + "[[dummy-138]]", + "[[dummy-139]]", + "QUAKES", + "[[dummy-141]]", + "ECHIDNA", + "SNAKEY KUNGF", + "BUZRA", + "SHINOBI RNK", + "HOUGU BZR", + ], + "noteskin": [ + "DEFAULT", + "6DOT", + "4DOT", + "GORGEOUS", + "AQUA", + "GAL", + "FOTON", + "PASTEL", + "SIMPLE", + "LIGHT", + "TRICORO", + "BUBBLE", + ], + "full_combo": [ + "DEFAULT", + "RED", + "HAPPYSKY", + "DISTORTED", + "GOLD", + "TROOPERS", + "EMPRESS", + "SIRIUS", + "RESORT", + "LINCLE", + "TRICORO", + "SPADA", + "SUPER STAR", + "PENDUAL", + "COPULA", + "SINOBUZ", + "CANNON FINISH", + ], + "beam": [ + "DEFAULT", + "SHORT", + "LONG", + "ORANGE", + "PINK", + "MONOCHRO", + "VERY SHORT", + "LIGHTNING", + "SUPER STAR", + "COPULIGHT", + "CB BEAM", + ], + "judge": [ + "DEFAULT", + "DIGITAL", + "SMART", + "METALLIC", + "TECHNO", + "WIRE", + "ABYSS", + "SPADA", + "ANCIENT", + "SUPER STAR", + "ELECTRONIC", + "SINOBUZ", + "SEGMENT", + ], + "pacemaker": [ + "DEFAULT", + "SIGSIG", + "NAIBU FRAME", + "SKY", + "KAMAITACHI", + "TAORU", + "COSMOS", + "DOKYO KYODAI", + "BLIND J", + "MEISAI", + "BLOOMIN", + "MARIE A", + "ELISHA", + "KUNG-FU", + "TUNE BEAT3", + "EMPRESS", + "PRO WORLD", + "3Y3S", + "UMEGIRI", + "KANZAKI", + "ROCK DA H", + "DOOR RAINBOW", + "AEGIS", + "VERMILLION", + "PHOENIX", + "LUCKY DAYS", + "ALMACE", + "DIAMOND CROSS", + "MAMONIS", + "ASHEMU", + "BULLUVEGOLA", + "BERIDZEBETH1", + "LEVASLATER", + "STN", + "RCHE1", + "NEULAKYUSSRA", + "CYBELE", + "CUVELIA", + "LIBERATION", + "PRALUDIUM", + "SHOJO ALICE", + "REGENERATION", + "20SYSTEM BG", + "DOGMA A", + "DOGMA B", + "ELEKTRICK U", + "MAGIC LOVE", + "SPADA", + "S!CK", + "CONCEPTUAL", + "ELPIS1", + "RUMRUM", + "SYNC-ANTHEM", + "THOR'S HAM", + "PLAN 8", + "KASOKUKAN", + "8BIT P", + "PLANARIAN", + "DYNAMITE", + "DECOHERENCE", + "TORIKAGO", + "PROOF", + "BRAVE GLOW1", + "BRAVE GLOW2", + "VEGA1", + "VEGA2", + "CASINO FIRE", + "NEW LIGHTS", + "SHAKUNETSU2", + "NOCHOKU", + "KYATORARE", + "ONLY ONE", + "JIZAL", + "JACKTILLO", + "JACKHANS", + "JENS", + "AMDUSIAN", + "MAXWELLION", + "LAPLASIA", + "RCHE2", + "SUMOMO", + "FAULA", + "BERIDZEBETH2", + "ELPIS2", + "FERIRA", + "ALL PATONA", + "MEISAI", + "NINGYO", + "URARA", + "SHELTER", + "ACID PUMPER", + "X", + "ON THE FM", + "NIGHTMARE", + "HIGHCHARGE", + "GODSPEED1", + "GODSPEED2", + "GENERATE", + "DYNAMITE", + "DEVIL'S GEAR", + "DPS", + "AZISAI", + "LA DOLCE", + "AO-1", + "HELL OR HELL", + "RYOUSHI", + "EKINEKO", + "FUYUTUBAKI", + "PAPAYAPA", + "KARASU", + "ASIAN DIS", + "TOGAKUSHI", + "MODULAR TEC", + "SHISHIKASUMU", + "MUSIC IS ANS", + "VIVA", + "SINOBUZ", + "CHASER XX", + "AMOR", + "EDIBLE FLWR", + "HI*BISCUS", + "MIDNIGHT LDY", + "FUTURE IS D", + "BREAK STASIS", + "SOGEN NO OJO", + "EXHAUST HYPE", + "25UI", + "ENGOKU OVRKL", + "BREAKIN CHAN", + "TSUGARU SETS", + "YELLOW SKTCH", + "STEEL EDGE", + "GO AHEAD!!", + "[[dummy-133]]", + "IZANAMI", + "GUNGNIR", + "[[dummy-136]]", + "BROGAMER", + "[[dummy-138]]", + "[[dummy-139]]", + "QUAKES", + "[[dummy-141]]", + "ECHIDNA", + "SNAKEY KUNGF", + "BUZRA", + "SHINOBI RNK", + "HOUGU BZR", + ], + "effector_preset": [ + "OFF", + "ECHO", + "COMPRESSOR", + "CHORUS", + "GARGLE", + "EQ ONLY", + ], + "voice": [ + "DEFAULT", + "MORI ICCHOU", + ], + }, + "26": { + "frame": [ + "DEFAULT", + "8th style", + "14 GOLD", + "17 SIRIUS", + "19 Lincle", + "16 EMPRESS", + "21 SPADA", + "3rd style", + "12 HAPPY SKY", + ], + "bgm": [ + "DEFAULT", + "8th style", + "14 GOLD", + "17 SIRIUS", + "19 Lincle", + "16 EMPRESS", + "21 SPADA", + "3rd style", + "HAPPY SKY", + "GO OVER WITH GLARE" + ], + "turntable": [ + "DEFAULT", + "TRAN", + "TAITYOU", + "DELTA", + "HAPPYSKY", + "DISTORTED", + "GOLD", + "TROOPERS", + "EMPRESS", + "SIRIUS", + "RESORT", + "LINCLE", + "TRICORO", + "SPADA", + "SHAKUNETSU", + "SUPER STAR", + "PENDUAL", + "COPULA", + "SINOBUZ", + "CANNON BALLERS", + "ROOTAGE", + ], + "burst": [ + "DEFAULT", + "1ST", + "9TH", + "RED", + "HAPPYSKY", + "DISTORTED", + "GOLD", + "TROOPERS", + "EMPRESS", + "SIRIUS", + "RESORT", + "LINCLE", + "TRICORO", + "SPADA", + "SUPER STAR", + "PENDUAL", + "COPULA", + "SINOBUZ", + "CANNON SPARK", + "ROOTAGE", + ], + "towel": [ + "DEFAULT", + "SIGSIG", + "NAIBU FRAME", + "SKY", + "KAMAITACHI", + "TAORU", + "COSMOS", + "DOKYO KYODAI", + "BLIND J", + "MEISAI", + "BLOOMIN", + "MARIE A", + "ELISHA", + "KUNG-FU", + "TUNE BEAT3", + "EMPRESS", + "PRO WORLD", + "3Y3S", + "UMEGIRI", + "KANZAKI", + "ROCK DA H", + "DOOR RAINBOW", + "AEGIS", + "VERMILLION", + "PHOENIX", + "LUCKY DAYS", + "ALMACE", + "DIAMOND CROSS", + "MAMONIS", + "ASHEMU", + "BULLUVEGOLA", + "BERIDZEBETH1", + "LEVASLATER", + "STN", + "RCHE1", + "NEULAKYUSSRA", + "CYBELE", + "CUVELIA", + "LIBERATION", + "PRALUDIUM", + "SHOJO ALICE", + "REGENERATION", + "20SYSTEM BG", + "DOGMA A", + "DOGMA B", + "ELEKTRICK U", + "MAGIC LOVE", + "SPADA", + "S!CK", + "CONCEPTUAL", + "ELPIS1", + "RUMRUM", + "SYNC-ANTHEM", + "THOR'S HAM", + "PLAN 8", + "KASOKUKAN", + "8BIT P", + "PLANARIAN", + "DYNAMITE", + "DECOHERENCE", + "TORIKAGO", + "PROOF", + "BRAVE GLOW1", + "BRAVE GLOW2", + "VEGA1", + "VEGA2", + "CASINO FIRE", + "NEW LIGHTS", + "SHAKUNETSU2", + "NOCHOKU", + "KYATORARE", + "ONLY ONE", + "JIZAL", + "JACKTILLO", + "JACKHANS", + "JENS", + "AMDUSIAN", + "MAXWELLION", + "LAPLASIA", + "RCHE2", + "SUMOMO", + "FAULA", + "BERIDZEBETH2", + "ELPIS2", + "FERIRA", + "ALL PATONA", + "MEISAI", + "NINGYO", + "URARA", + "SHELTER", + "ACID PUMPER", + "X", + "ON THE FM", + "NIGHTMARE", + "HIGHCHARGE", + "GODSPEED1", + "GODSPEED2", + "GENERATE", + "DYNAMITE", + "DEVIL'S GEAR", + "DPS", + "AZISAI", + "LA DOLCE", + "AO-1", + "HELL OR HELL", + "RYOUSHI", + "EKINEKO", + "FUYUTUBAKI", + "PAPAYAPA", + "KARASU", + "ASIAN DIS", + "TOGAKUSHI", + "MODULAR TEC", + "SHISHIKASUMU", + "MUSIC IS ANS", + "VIVA", + "SINOBUZ", + "CHASER XX", + "AMOR", + "EDIBLE FLWR", + "HI*BISCUS", + "MIDNIGHT LDY", + "FUTURE IS D", + "BREAK STASIS", + "SOGEN NO OJO", + "EXHAUST HYPE", + "25UI", + "ENGOKU OVRKL", + "BREAKIN CHAN", + "TSUGARU SETS", + "YELLOW SKTCH", + "STEEL EDGE", + "GO AHEAD!!", + "[[dummy-133]]", + "IZANAMI", + "GUNGNIR", + "[[dummy-136]]", + "BROGAMER", + "[[dummy-138]]", + "[[dummy-139]]", + "QUAKES", + "[[dummy-141]]", + "ECHIDNA", + "SNAKEY KUNGF", + "BUZRA", + "SHINOBI RNK", + "HOUGU BZR", + "HADES", + "DEATHZIGOQ", + "TOKYO SHINWA", + "INITATION", + "EMERALDAS", + "CHEMICAL COO", + "NIGHT CITY", + "SHIMURUGU", + "N'PA PA BBQ", + "ANCHOR", + "IIDX AIR RAC", + "THE DAY OF J", + "HEISEI", + "IDC feat.", + "YUM YUM JELL", + "NATSU NO NI", + "HURRY HURRY", + "OVERTIME", + "MISUTORESU", + "EMBER LIGHTS", + ], + "noteskin": [ + "DEFAULT", + "6DOT", + "4DOT", + "GORGEOUS", + "AQUA", + "GAL", + "FOTON", + "PASTEL", + "SIMPLE", + "LIGHT", + "TRICORO", + "BUBBLE", + ], + "full_combo": [ + "DEFAULT", + "RED", + "HAPPYSKY", + "DISTORTED", + "GOLD", + "TROOPERS", + "EMPRESS", + "SIRIUS", + "RESORT", + "LINCLE", + "TRICORO", + "SPADA", + "SUPER STAR", + "PENDUAL", + "COPULA", + "SINOBUZ", + "CANNON FINISH", + "ROOTAGE", + ], + "beam": [ + "DEFAULT", + "SHORT", + "LONG", + "ORANGE", + "PINK", + "MONOCHRO", + "VERY SHORT", + "LIGHTNING", + "SUPER STAR", + "COPULIGHT", + "CB BEAM", + ], + "judge": [ + "DEFAULT", + "DIGITAL", + "SMART", + "METALLIC", + "TECHNO", + "WIRE", + "ABYSS", + "SPADA", + "ANCIENT", + "SUPER STAR", + "ELECTRONIC", + "SINOBUZ", + "SEGMENT", + "ROOTAGE", + ], + "pacemaker": [ + "DEFAULT", + "SIGSIG", + "NAIBU FRAME", + "SKY", + "KAMAITACHI", + "TAORU", + "COSMOS", + "DOKYO KYODAI", + "BLIND J", + "MEISAI", + "BLOOMIN", + "MARIE A", + "ELISHA", + "KUNG-FU", + "TUNE BEAT3", + "EMPRESS", + "PRO WORLD", + "3Y3S", + "UMEGIRI", + "KANZAKI", + "ROCK DA H", + "DOOR RAINBOW", + "AEGIS", + "VERMILLION", + "PHOENIX", + "LUCKY DAYS", + "ALMACE", + "DIAMOND CROSS", + "MAMONIS", + "ASHEMU", + "BULLUVEGOLA", + "BERIDZEBETH1", + "LEVASLATER", + "STN", + "RCHE1", + "NEULAKYUSSRA", + "CYBELE", + "CUVELIA", + "LIBERATION", + "PRALUDIUM", + "SHOJO ALICE", + "REGENERATION", + "20SYSTEM BG", + "DOGMA A", + "DOGMA B", + "ELEKTRICK U", + "MAGIC LOVE", + "SPADA", + "S!CK", + "CONCEPTUAL", + "ELPIS1", + "RUMRUM", + "SYNC-ANTHEM", + "THOR'S HAM", + "PLAN 8", + "KASOKUKAN", + "8BIT P", + "PLANARIAN", + "DYNAMITE", + "DECOHERENCE", + "TORIKAGO", + "PROOF", + "BRAVE GLOW1", + "BRAVE GLOW2", + "VEGA1", + "VEGA2", + "CASINO FIRE", + "NEW LIGHTS", + "SHAKUNETSU2", + "NOCHOKU", + "KYATORARE", + "ONLY ONE", + "JIZAL", + "JACKTILLO", + "JACKHANS", + "JENS", + "AMDUSIAN", + "MAXWELLION", + "LAPLASIA", + "RCHE2", + "SUMOMO", + "FAULA", + "BERIDZEBETH2", + "ELPIS2", + "FERIRA", + "ALL PATONA", + "MEISAI", + "NINGYO", + "URARA", + "SHELTER", + "ACID PUMPER", + "X", + "ON THE FM", + "NIGHTMARE", + "HIGHCHARGE", + "GODSPEED1", + "GODSPEED2", + "GENERATE", + "DYNAMITE", + "DEVIL'S GEAR", + "DPS", + "AZISAI", + "LA DOLCE", + "AO-1", + "HELL OR HELL", + "RYOUSHI", + "EKINEKO", + "FUYUTUBAKI", + "PAPAYAPA", + "KARASU", + "ASIAN DIS", + "TOGAKUSHI", + "MODULAR TEC", + "SHISHIKASUMU", + "MUSIC IS ANS", + "VIVA", + "SINOBUZ", + "CHASER XX", + "AMOR", + "EDIBLE FLWR", + "HI*BISCUS", + "MIDNIGHT LDY", + "FUTURE IS D", + "BREAK STASIS", + "SOGEN NO OJO", + "EXHAUST HYPE", + "25UI", + "ENGOKU OVRKL", + "BREAKIN CHAN", + "TSUGARU SETS", + "YELLOW SKTCH", + "STEEL EDGE", + "GO AHEAD!!", + "[[dummy-133]]", + "IZANAMI", + "GUNGNIR", + "[[dummy-136]]", + "BROGAMER", + "[[dummy-138]]", + "[[dummy-139]]", + "QUAKES", + "[[dummy-141]]", + "ECHIDNA", + "SNAKEY KUNGF", + "BUZRA", + "SHINOBI RNK", + "HOUGU BZR", + "HADES", + "DEATHZIGOQ", + "TOKYO SHINWA", + "INITATION", + "EMERALDAS", + "CHEMICAL COO", + "NIGHT CITY", + "SHIMURUGU", + "N'PA PA BBQ", + "ANCHOR", + "IIDX AIR RAC", + "THE DAY OF J", + "HEISEI", + "IDC feat.", + "YUM YUM JELL", + "NATSU NO NI", + "HURRY HURRY", + "OVERTIME", + "MISUTORESU", + "EMBER LIGHTS", + ], + "effector_preset": [ + "OFF", + "ECHO", + "COMPRESSOR", + "CHORUS", + "GARGLE", + "EQ ONLY", + ], + "explosion_size": [ + "100%", + "70%", + "80%", + "90%", + "110%", + "120%", + "130%", + ], + "note_preview": [ + "DEFAULT", + "ON", + "OFF", + ], + }, } diff --git a/bemani/frontend/static/regions.js b/bemani/frontend/static/regions.js index 8201d30..47d41df 100644 --- a/bemani/frontend/static/regions.js +++ b/bemani/frontend/static/regions.js @@ -54,3 +54,64 @@ var Regions = [ "欧州 (Europe)", "海外 (Other)", ]; + +Regions2 = [ + null, + "北海道", + "青森県", + "岩手県", + "宮城県", + "秋田県", + "山形県", + "福島県", + "茨城県", + "栃木県", + "群馬県", + "埼玉県", + "千葉県", + "東京都", + "神奈川県", + "新潟県", + "富山県", + "石川県", + "福井県", + "山梨県", + "長野県", + "岐阜県", + "静岡県", + "愛知県", + "三重県", + "滋賀県", + "京都府", + "大阪府", + "兵庫県", + "奈良県", + "和歌山県", + "鳥取県", + "島根県", + "岡山県", + "広島県", + "山口県", + "徳島県", + "香川県", + "愛媛県", + "高知県", + "福岡県", + "佐賀県", + "長崎県", + "熊本県", + "大分県", + "宮崎県", + "鹿児島県", + "沖縄県", + "香港", + "韓国", + "台湾", + "タイ", + "インドネシア", + "シンガポール", + "フィリピン", + "マカオ", + "アメリカ", + "海外 (Other)", +];