mirror of
https://gitea.tendokyu.moe/Hay1tsme/artemis.git
synced 2026-02-12 10:47:28 +08:00
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:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user