1
0
mirror of synced 2024-12-25 04:04:51 +01:00
bemaniutils/bemani/backend/popn/peace.py

296 lines
13 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# vim: set fileencoding=utf-8
from typing import Any, Dict, Tuple
from bemani.backend.popn.base import PopnMusicBase
from bemani.backend.popn.common import PopnMusicModernBase
from bemani.backend.popn.usaneko import PopnMusicUsaNeko
from bemani.common import VersionConstants
class PopnMusicPeace(PopnMusicModernBase):
name: str = "Pop'n Music peace"
version: int = VersionConstants.POPN_MUSIC_PEACE
# Biggest ID in the music DB
GAME_MAX_MUSIC_ID: int = 1877
# Biggest deco part ID in the game
GAME_MAX_DECO_ID: int = 133
# Item limits are as follows:
# 0: 1877 - ID is the music ID that the player purchased/unlocked.
# 1: 2284
# 2: 3
# 3: 133 - ID points at a character part that can be purchased on the character screen.
# 4: 1
# 5: 1
# 6: 60
def previous_version(self) -> PopnMusicBase:
return PopnMusicUsaNeko(self.data, self.config, self.model)
@classmethod
def get_settings(cls) -> Dict[str, Any]:
"""
Return all of our front-end modifiably settings.
"""
return {
"ints": [
{
"name": "Music Open Phase",
"tip": "Default music phase for all players.",
"category": "game_config",
"setting": "music_phase",
"values": {
# The value goes to 23 now, but it starts where usaneko left off at 11
# Unlocks a total of 53 songs
12: "No music unlocks",
13: "Phase 1",
14: "Phase 2",
15: "Phase 3",
16: "Phase 4",
17: "Phase 5",
18: "Phase 6",
19: "Phase 7",
20: "Phase 8",
21: "Phase 9",
22: "Phase 10",
23: "Phase MAX",
},
},
{
"name": "NAVI-Kun Event Phase",
"tip": "NAVI-Kun event phase for all players.",
"category": "game_config",
"setting": "navikun_phase",
"values": {
# The value goes to 30 now, but it starts where usaneko left off at 15
# Unlocks a total of 89 songs
15: "Phase 1",
16: "Phase 2",
17: "Phase 3",
18: "Phase 4",
19: "Phase 5",
20: "Phase 6",
21: "Phase 7",
22: "Phase 8",
23: "Phase 9",
24: "Phase 10",
25: "Phase 11",
26: "Phase 12",
27: "Phase 13",
28: "Phase 14",
29: "Phase 15",
30: "Phase MAX",
},
},
{
# For festive times, it's possible to change the welcome greeting. I'm not sure why you would want to change this, but now you can.
"name": "Holiday Greeting",
"tip": "Changes the payment selection confirmation sound.",
"category": "game_config",
"setting": "holiday_greeting",
"values": {
0: "Okay!",
1: "Merry Christmas!",
2: "Happy New Year!",
},
},
{
# The following values control the pop'n music event archive. Setting the flag to the following values has the
# corresponding effect. Each value will include the events above it, for example setting it to 5 gives you the
# pop'n 15 event, as well as SP, 12, and 11 events. Setting it to 0 disabled the event and skips the entire screen,
# setting it to 20 makes all of the events available for selection. Completing the minigame unlocks the associated content.
"name": "Event Archive Phase",
"tip": "Event Archive mini-game phase for all players.",
"category": "game_config",
"setting": "event_archive_phase",
"values": {
0: "Event Archive disabled",
1: "pop'n music 11 - The Latest Space Station",
2: "pop'n music 11 & 12 Iroha - The Southernmost Point of the Universe / Ninja Otasuke Cheat Sheet in Trouble",
3: "pop'n music Sunny Park - I Love Walking in Happiness Park",
4: "pop'n music 12 Iroha - Ninja Code: April 1st Volume",
5: "pop'n music 15 ADVENTURE - Route to Awaken the Soul",
6: "pop'n music 20 fantasia - A Braided Fantasy Song",
7: "EXTRA",
8: "pop'n music 15 ADVENTURE - A Route with a Faint Bell Sound",
9: "pop'n music 13 Carnival - Bunny Magician Attraction",
10: "pop'n music 14 FEVER! - That Burning Special Attack, again!",
11: "pop'n music Sunny Park - Festival Nightfall Park",
12: "pop'n music 20 fantasia - A Fantasy Song by the Bladed Warrior",
13: "pop'n music 19 TUNE STREET - A Town Where the Sound of the Brass Band Rings After School",
14: "pop'n music éclale - Fun Rag Hour",
15: "pop'n music 13 Carnival - Ghost Piano Attraction",
16: "pop'n music 14 FEVER! - That Warrior Defending Peace, again!",
17: "pop'n music 18 Sengoku Retsuden - A Territory with a Glamorous Cultural Flavor",
18: "pop'n music éclale - Runaway Guitarist in the Starry Sky",
19: "pop'n music 17 THE MOVIE - A Blockbuster Uncovering a Conspiracy in the Peaceful City",
20: "pop'n music lapistoria - God's Forgotten Things",
},
},
],
"bools": [
# We don't currently support lobbies or anything, so this is commented out until
# somebody gets around to implementing it.
# {
# 'name': 'Net Taisen',
# 'tip': 'Enable Net Taisen, including win/loss display on song select',
# 'category': 'game_config',
# 'setting': 'enable_net_taisen',
# },
{
"name": "Force Song Unlock",
"tip": "Force unlock all songs.",
"category": "game_config",
"setting": "force_unlock_songs",
},
],
}
def get_common_config(self) -> Tuple[Dict[int, int], bool]:
game_config = self.get_game_config()
music_phase = game_config.get_int("music_phase")
event_archive_phase = game_config.get_int("event_archive_phase")
holiday_greeting = game_config.get_int("holiday_greeting")
enable_net_taisen = False # game_config.get_bool('enable_net_taisen')
navikun_phase = game_config.get_int("navikun_phase")
# Event phases
return (
{
# Default song phase availability (0-23)
# The following songs are unlocked when the phase is at or above the number specified:
# 1 - 1589, 1590, 1591
# 2 - 1594, 1595
# 3 - 1596, 1597
# 4 - 1593
# 5 - 1602
# 6 - 1604
# 7 - 1629, 1630, 1631, 1633, 1641, 1642, 1643, 1644, 1645, 1646, 1647
# 8 - 1632
# 9 - 1651
# 10 - 1679, 1680, 1681
# 11 - 1669, 1670, 1669, 1670
# 12 - Nothing gets unlocked here, the above values are identical to UsaNeko so presumably
# this is the new phase 0 for Peace.
# 13 - 1728, 1730, 1731
# 14 - 1729, 1732
# 15 - 1763, 1764, 1765
# 16 - 1785, 1786, 1787, 1788
# 17 - 1820, 1822, 1826, 1827
# 18 - 1817
# 19 - 1821
# 20 - 1819
# 21 - 1818
# 22 - 1825
# 23 - 1858, 1857
0: music_phase,
# Unknown event (0-4)
1: 4,
# Holiday Greeting (0-2)
2: holiday_greeting,
# Unknown event (0-4)
3: 4,
# Unknown event (0-1)
4: 1,
# Enable Net Taisen, including win/loss display on song select (0-1)
5: 1 if enable_net_taisen else 0,
# Enable NAVI-kun shunkyoku toujou, allows song 1608 to be unlocked (0-1)
6: 1,
# Unknown event (0-1)
7: 1,
# Unknown event (0-2)
8: 2,
# Daily Mission (0-2)
9: 2,
# NAVI-kun Song phase availability (0-30)
# The following songs are unlocked when the phase is at or above the number specified:
# 1 - 1553
# 2 - 1577, 1576, 1569
# 3 - 1575, 1557
# 4 - 1567
# 5 - 1587, 1588, 1585
# 6 - 1586
# 7 - 1601, 1600, 1599
# 8 - 1603
# 9 - 1606, 1607, 1605
# 10 - 1610, 1611, 1612
# 11 - 1616, 1613, 1614, 1615
# 12 - 1619, 1618, 1620, 1617
# 13 - 1624, 1621, 1623, 1622
# 14 - 1627, 1626, 1625
# 15 - 1628
# 16 - 1634, 1635, 1636, 1637, 1638
# 17 - 1639, 1640
# 18 - 1649, 1648, 1650
# 19 - 1654, 1653, 1652
# 20 - 1657, 1655, 1656
# 21 - 1658, 1659, 1687, 1686
# 22 - 1665, 1663, 1664
# 23 - 1660, 1661, 1662, 1690, 1691
# 24 - 1672, 1671
# 25 - 1673, 1674, 1675
# 26 - 1676, 1677, 1678
# 27 - 1685, 1688, 1689
# 28 - 1692, 1693, 1694
# 29 - 1696, 1697, 1698, 1699, 1700, 1701, 1702
# 30 - 1682, 1683, 1684
10: navikun_phase,
# Unknown event (0-1)
11: 1,
# Unknown event (0-2)
12: 2,
# Enable Pop'n Peace preview song (0-1)
13: 1,
# Stamp Card Rally (0-39)
14: 39,
# Unknown event (0-2)
15: 2,
# Unknown event (0-3)
16: 3,
# Unknown event (0-8)
17: 8,
# FLOOR INFECTION event (0-1)
# The following songs are linked to this event:
# 1 - 1223, 1224, 1225, 1239, 1240, 1241, 1245, 1247, 1340, 1342, 1394, 1523, 1524, 1525, 1598, 1667, 1668, 1666
18: 1,
# pop'n music × NOSTALGIA kyouenkai (0-1)
# Setting this to 1 is linked to the song 1695
19: 1,
# Event archive event (0-13)
# The following songs are unlocked when the phase is at or above the number specified:
# 1 - 1745, 1744, 1743, 1746, 203, 214, 225, 226, 1749, 215, 591, 320, 1775, 449, 1768
# 2 - 1759, 1760, 1761, 1762, 1748, 1754, 1755, 1756, 1757, 1758
# 3 - 1737, 1776, 1777, 1780, 1783
# 4 - 1725, 1726, 1751, 1750, 1753, 1752
# 5 - 1703, 1724, 1747, 1738, 1733, 1739
# 6 - 1722, 1723, 1740, 1735, 1734
# 7 - 1766, 1769, 1771, 1770, 1736, 1741, 356, 1778, 1779, 284, 1742
# 8 - 165, 171, 169, 1774, 1773, 118, 135, 1781, 105, 107, 1782
# 9 - 113, 548, 436, 1792, 1791, 148, 125, 1832
# 10 - 66, 74, 147, 79, 89, 1767, 49, 1772, 40, 1784, 16, 25, 1790, 1793
# 11 - 1807, 1814, 1806, 1815, 1813
# 12 - 1803, 1804, 1805
# 13 - 1833, 1824
20: 13,
# Pop'n event archive song phase availability (0-20)
21: event_archive_phase,
# バンめし♪ ふるさとグランプリunlocks (split into two rounds) (0-2)
# The following songs are linked to this event:
# 1 - 1851, 1852, 1853, 1854
# 2 - 1863, 1864, 1865, 1866
22: 2,
# いちかのBEMANI投票選抜戦2019 unlocks (0-1)
# The following songs are linked to this event:
# 1 - 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802
23: 1,
# ダンキラ!!! × pop'n music unlocks (0-1)
# The following songs are linked to this event:
# 1 - 1845, 1846, 1847
24: 1,
},
False,
)