1
0
mirror of synced 2025-02-17 19:19:19 +01:00

Convert Sunny Park to modern routing method.

This commit is contained in:
Jennifer Taylor 2021-09-03 04:35:35 +00:00
parent cbbda0ef7f
commit 06d116007e

View File

@ -1,6 +1,6 @@
# vim: set fileencoding=utf-8
import copy
from typing import Dict, List, Optional
from typing import Dict, List
from bemani.backend.popn.base import PopnMusicBase
from bemani.backend.popn.fantasia import PopnMusicFantasia
@ -43,7 +43,7 @@ class PopnMusicSunnyPark(PopnMusicBase):
# Maximum music ID for this game
GAME_MAX_MUSIC_ID = 1350
def previous_version(self) -> Optional[PopnMusicBase]:
def previous_version(self) -> PopnMusicBase:
return PopnMusicFantasia(self.data, self.config, self.model)
def __format_medal_for_score(self, score: Score) -> int:
@ -219,7 +219,6 @@ class PopnMusicSunnyPark(PopnMusicBase):
netvs.add_child(Node.s8_array('set_recommend', [0, 0, 0]))
netvs.add_child(Node.u8('netvs_play_cnt', 0))
for dialog in [0, 1, 2, 3, 4, 5]:
# TODO: Configure this, maybe?
netvs.add_child(Node.string('dialog', f'dialog#{dialog}'))
sp_data = Node.void('sp_data')
@ -416,10 +415,7 @@ class PopnMusicSunnyPark(PopnMusicBase):
return newprofile
def handle_game_request(self, request: Node) -> Optional[Node]:
method = request.attribute('method')
if method == 'get':
def handle_game_get_request(self, request: Node) -> Node:
# TODO: Hook these up to config so we can change this
root = Node.void('game')
root.add_child(Node.s32('ir_phase', 0))
@ -439,27 +435,21 @@ class PopnMusicSunnyPark(PopnMusicBase):
root.add_child(Node.s16_array('up_ranking', [-1, -1, -1, -1, -1]))
return root
if method == 'active':
def handle_game_active_request(self, request: Node) -> Node:
# Update the name of this cab for admin purposes
self.update_machine_name(request.child_value('shop_name'))
return Node.void('game')
if method == 'taxphase':
def handle_game_taxphase_request(self, request: Node) -> Node:
return Node.void('game')
# Invalid method
return None
def handle_playerdata_request(self, request: Node) -> Optional[Node]:
method = request.attribute('method')
if method == 'expire':
def handle_playerdata_expire_request(self, request: Node) -> Node:
return Node.void('playerdata')
elif method == 'logout':
def handle_playerdata_logout_request(self, request: Node) -> Node:
return Node.void('playerdata')
elif method == 'get':
def handle_playerdata_get_request(self, request: Node) -> Node:
modelstring = request.attribute('model')
refid = request.child_value('ref_id')
root = self.get_profile_by_refid(
@ -471,7 +461,7 @@ class PopnMusicSunnyPark(PopnMusicBase):
root.set_attribute('status', str(Status.NO_PROFILE))
return root
elif method == 'conversion':
def handle_playerdata_conversion_request(self, request: Node) -> Node:
refid = request.child_value('ref_id')
name = request.child_value('name')
chara = request.child_value('chara')
@ -481,7 +471,7 @@ class PopnMusicSunnyPark(PopnMusicBase):
root.set_attribute('status', str(Status.NO_PROFILE))
return root
elif method == 'new':
def handle_playerdata_new_request(self, request: Node) -> Node:
refid = request.child_value('ref_id')
name = request.child_value('name')
root = self.new_profile_by_refid(refid, name)
@ -490,7 +480,7 @@ class PopnMusicSunnyPark(PopnMusicBase):
root.set_attribute('status', str(Status.NO_PROFILE))
return root
elif method == 'set':
def handle_playerdata_set_request(self, request: Node) -> Node:
refid = request.attribute('ref_id')
root = Node.void('playerdata')
@ -511,7 +501,7 @@ class PopnMusicSunnyPark(PopnMusicBase):
return root
elif method == 'friend':
def handle_playerdata_friend_request(self, request: Node) -> Node:
refid = request.attribute('ref_id')
root = Node.void('playerdata')
@ -598,9 +588,6 @@ class PopnMusicSunnyPark(PopnMusicBase):
return root
# Invalid method
return None
def handle_lobby_request(self, request: Node) -> Optional[Node]:
def handle_lobby_request(self, request: Node) -> Node:
# Stub out the entire lobby service
return Node.void('lobby')