chuni: fix map area/unlock challenge conditions (#237)

- Document all map area/unlock challenge condition IDs
- Add conditions for missing secret maps in LUMINOUS PLUS/VERSE

Reviewed-on: https://gitea.tendokyu.moe/Hay1tsme/artemis/pulls/237
Reviewed-by: Dniel97 <dniel97@noreply.gitea.tendokyu.moe>
Co-authored-by: beerpsi <beerpsi@duck.com>
Co-committed-by: beerpsi <beerpsi@duck.com>
This commit is contained in:
beerpsi
2025-12-31 14:37:46 +00:00
committed by Dniel97
parent 5ba0c8b04c
commit 29a52d2712
4 changed files with 393 additions and 137 deletions

View File

@@ -4,7 +4,7 @@ from typing import Dict
from core.config import CoreConfig
from titles.chuni.config import ChuniConfig
from titles.chuni.const import ChuniConstants, MapAreaConditionLogicalOperator, MapAreaConditionType
from titles.chuni.luminous import ChuniLuminous
from titles.chuni.luminous import ChuniLuminous, MysticAreaConditions
class ChuniLuminousPlus(ChuniLuminous):
@@ -66,6 +66,158 @@ class ChuniLuminousPlus(ChuniLuminous):
events = await self.data.static.get_enabled_events(self.version)
event_by_id = {evt["eventId"]: evt for evt in events}
conditions = []
mystic_conditions = MysticAreaConditions(
event_by_id,
3229601,
self.date_time_format,
)
# Mystic Rainbow of LUMINOUS PLUS - LUMINOUS ep. IV
mystic_conditions.add_condition(15005, 3020704, 3229602)
# Mystic Rainbow of LUMINOUS PLUS - LUMINOUS ep. V
mystic_conditions.add_condition(15306, 3020705, 3229603)
# Mystic Rainbow of LUMINOUS PLUS - LUMINOUS ep. VI
mystic_conditions.add_condition(15451, 3020706, 3229604)
# Mystic Rainbow of LUMINOUS PLUS - LUMINOUS ep. VII
mystic_conditions.add_condition(15506, 3020707, 3229605)
conditions += mystic_conditions.conditions
# 1UM1N0U5 ep. 111 continues. The map is automatically unlocked after finishing
# LUMINOUS ep. III in LUMINOUS PLUS.
if ep_111 := event_by_id.get(15009):
start_date = ep_111["startDate"].strftime(self.date_time_format)
conditions.append({
"mapAreaId": 3229207,
"length": 1,
"mapAreaConditionList": [
{
"type": MapAreaConditionType.MAP_CLEARED.value,
"conditionId": 3020703,
"logicalOpe": MapAreaConditionLogicalOperator.AND.value,
"startDate": start_date,
"endDate": "2099-12-31 00:00:00",
},
],
})
# ■・■■■■■■・■
# Finish LUMINOUS ep. IV and obtain the title 「ここは…何処なんだ…?」.
if re_fiction_o := event_by_id.get(15032):
start_date = re_fiction_o["startDate"].strftime(self.date_time_format)
conditions.append({
"mapAreaId": 3229501,
"length": 2,
"mapAreaConditionList": [
{
"type": MapAreaConditionType.MAP_CLEARED.value,
"conditionId": 3020704,
"logicalOpe": MapAreaConditionLogicalOperator.AND.value,
"startDate": start_date,
"endDate": "2099-12-31 00:00:00",
},
{
"type": MapAreaConditionType.TROPHY_OBTAINED.value,
"conditionId": 7105,
"logicalOpe": MapAreaConditionLogicalOperator.AND.value,
"startDate": start_date,
"endDate": "2099-12-31 00:00:00",
}
]
})
# The Conductor's Path
# ALL JUSTICE CRITICAL 其のエメラルドを見よ MASTER.
if the_conductors_path := event_by_id.get(15033):
start_date = the_conductors_path["startDate"].strftime(self.date_time_format)
conditions.append({
"mapAreaId": 3229701,
"length": 1,
"mapAreaConditionList": [
{
"type": MapAreaConditionType.ALL_JUSTICE_CRITICAL.value,
"conditionId": 260003,
"logicalOpe": MapAreaConditionLogicalOperator.AND.value,
"startDate": start_date,
"endDate": "2099-12-31 00:00:00",
}
]
})
# Cave of RVESE
if episode__x__ := event_by_id.get(15254):
start_date = episode__x__["startDate"].strftime(self.date_time_format)
conditions.extend([
# Episode. _ _ X _ _ map area 1
# Finish the HARDCORE TANO*C collaboration map.
{
"mapAreaId": 2208801,
"length": 1,
"mapAreaConditionList": [
{
"type": MapAreaConditionType.MAP_CLEARED.value,
"conditionId": 2006533,
"logicalOpe": MapAreaConditionLogicalOperator.AND.value,
"startDate": start_date,
"endDate": "2099-12-31 00:00:00",
},
],
},
# Episode. _ _ X _ _ map area 2
# Equip the title 「第壱の石版【V】」 to access the map area.
{
"mapAreaId": 2208802,
"length": 1,
"mapAreaConditionList": [
{
"type": MapAreaConditionType.TROPHY_EQUIPPED.value,
"conditionId": 7107,
"logicalOpe": MapAreaConditionLogicalOperator.AND.value,
"startDate": start_date,
"endDate": "2099-12-31 00:00:00",
},
],
},
# Episode. _ _ X _ _ map area 3
# Equip the title 「第弐の石版【Λ】」 to access the map area.
{
"mapAreaId": 2208803,
"length": 1,
"mapAreaConditionList": [
{
"type": MapAreaConditionType.TROPHY_EQUIPPED.value,
"conditionId": 7104,
"logicalOpe": MapAreaConditionLogicalOperator.AND.value,
"startDate": start_date,
"endDate": "2099-12-31 00:00:00",
},
],
},
# Episode. _ _ X _ _ map area 4
# Complete the 3 other map areas.
{
"mapAreaId": 2208804,
"length": 3,
"mapAreaConditionList": [
{
"type": MapAreaConditionType.MAP_AREA_CLEARED.value,
"conditionId": area_id,
"logicalOpe": MapAreaConditionLogicalOperator.AND.value,
"startDate": start_date,
"endDate": "2099-12-31 00:00:00",
}
for area_id in range(2208801, 2208804)
],
},
])
# LUMINOUS ep. Ascension
if ep_ascension := event_by_id.get(15512):