diff --git a/EpinelPS/GameData/GameData.cs b/EpinelPS/GameData/GameData.cs index bf32f27..29b127b 100644 --- a/EpinelPS/GameData/GameData.cs +++ b/EpinelPS/GameData/GameData.cs @@ -46,7 +46,7 @@ namespace EpinelPS.StaticInfo public Dictionary gachaTypes = new Dictionary(); // Fixed initialization public Dictionary eventManagers = new Dictionary(); public Dictionary lwptablemgrs = new Dictionary(); // Fixed initialization - private Dictionary albumResourceRecords = new Dictionary(); + public Dictionary albumResourceRecords = new Dictionary(); public Dictionary userFrameTable = new Dictionary(); public Dictionary archiveRecordManagerTable = new Dictionary(); public Dictionary archiveEventStoryRecords = new Dictionary(); diff --git a/EpinelPS/LobbyServer/Msgs/Event/GetClearedMission.cs b/EpinelPS/LobbyServer/Msgs/Event/GetClearedMission.cs index 27d2b9d..80dbe1f 100644 --- a/EpinelPS/LobbyServer/Msgs/Event/GetClearedMission.cs +++ b/EpinelPS/LobbyServer/Msgs/Event/GetClearedMission.cs @@ -7,9 +7,12 @@ namespace EpinelPS.LobbyServer.Msgs.Event { protected override async Task HandleAsync() { - var req = await ReadData(); - + var req = await ReadData(); //has EventIdList + + var response = new ResGetEventMissionClear(); + // response.ResGetEventMissionClear.Add(new NetEventMissionClearData(EventId = 0, EventMissionId = 0 , CreatedAt = 0)); + // TODO await WriteDataAsync(response); } diff --git a/EpinelPS/LobbyServer/Msgs/Event/GetEventScenario.cs b/EpinelPS/LobbyServer/Msgs/Event/GetEventScenario.cs index 43d3844..b0df2d4 100644 --- a/EpinelPS/LobbyServer/Msgs/Event/GetEventScenario.cs +++ b/EpinelPS/LobbyServer/Msgs/Event/GetEventScenario.cs @@ -1,5 +1,8 @@ using EpinelPS.Database; using EpinelPS.Utils; +using EpinelPS.StaticInfo; // For GameData access +using System.Linq; +using System.Threading.Tasks; namespace EpinelPS.LobbyServer.Msgs.Event { @@ -8,19 +11,16 @@ namespace EpinelPS.LobbyServer.Msgs.Event { protected override async Task HandleAsync() { - var req = await ReadData(); - var user = GetUser(); + var req = await ReadData(); + // Access GameData instance + var gameData = GameData.Instance; + + // Create a response object var response = new ResGetEventScenarioData(); - if (user.EventInfo.ContainsKey(req.EventId)) - { - var evt = user.EventInfo[req.EventId]; - response.ScenarioIdList.AddRange(evt.CompletedScenarios); - } - else - { - user.EventInfo.Add(req.EventId, new EventData()); - } + + // Get all scenario_group_id values from albumResourceRecords starting with "event_" + response.ScenarioIdList.Add(gameData.albumResourceRecords.Values.Where(record => record.scenario_group_id.StartsWith("event_")).Select(record => record.scenario_group_id).ToList()); await WriteDataAsync(response); } diff --git a/EpinelPS/LobbyServer/Msgs/Event/GetJoinedEvent.cs b/EpinelPS/LobbyServer/Msgs/Event/GetJoinedEvent.cs index 7dfd40b..7591555 100644 --- a/EpinelPS/LobbyServer/Msgs/Event/GetJoinedEvent.cs +++ b/EpinelPS/LobbyServer/Msgs/Event/GetJoinedEvent.cs @@ -62,6 +62,19 @@ namespace EpinelPS.LobbyServer.Msgs.Event EventSystemType = 1 }, JoinAt = 0 + }); + response.EventWithJoinData.Add(new NetEventWithJoinData() + { + EventData = new NetEventData() + { + Id = 70070, + EventSystemType = 6, + EventVisibleDate = DateTime.UtcNow.Subtract(TimeSpan.FromDays(7)).Ticks, + EventStartDate = DateTime.UtcNow.Subtract(TimeSpan.FromDays(1)).Ticks, + EventEndDate = DateTime.Now.AddDays(20).Ticks, + EventDisableDate = DateTime.Now.AddDays(20).Ticks + }, + JoinAt = 0 }); await WriteDataAsync(response); diff --git a/EpinelPS/LobbyServer/Msgs/Event/Mission/GetClearList.cs b/EpinelPS/LobbyServer/Msgs/Event/Mission/GetClearList.cs index 6dec8d0..dee20b5 100644 --- a/EpinelPS/LobbyServer/Msgs/Event/Mission/GetClearList.cs +++ b/EpinelPS/LobbyServer/Msgs/Event/Mission/GetClearList.cs @@ -9,7 +9,7 @@ namespace EpinelPS.LobbyServer.Msgs.Event.Mission { var req = await ReadData(); - var response = new ResGetEventMissionClearList(); + var response = new ResGetEventMissionClearList(); //field ResGetEventMissionClearMap data type NestEventMissionClear field NestEventMissionClear data type NetEventMissionClearData fields EventId EventMissionId CreatedAt // TOOD diff --git a/EpinelPS/LobbyServer/Msgs/Event/StoryEvent/GetStoryDungeon.cs b/EpinelPS/LobbyServer/Msgs/Event/StoryEvent/GetStoryDungeon.cs index 6123b5c..e532900 100644 --- a/EpinelPS/LobbyServer/Msgs/Event/StoryEvent/GetStoryDungeon.cs +++ b/EpinelPS/LobbyServer/Msgs/Event/StoryEvent/GetStoryDungeon.cs @@ -1,9 +1,5 @@ using EpinelPS.Utils; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using EpinelPS.Database; namespace EpinelPS.LobbyServer.Msgs.Event.StoryEvent { @@ -13,14 +9,22 @@ namespace EpinelPS.LobbyServer.Msgs.Event.StoryEvent protected override async Task HandleAsync() { var req = await ReadData(); - var user = GetUser(); + var evid = req.EventId; + var user = GetUser(); + var eventData = user.EventInfo[evid]; + var response = new ResStoryDungeonEventData(); + response.RemainTicket = 5; - var response = new ResStoryDungeonEventData() + response.TeamData = new NetUserTeamData() + { + LastContentsTeamNumber = 1, + Type = 20 + }; + response.LastClearedEventStageList.Add(new NetLastClearedEventStageData() { - TeamData = new NetUserTeamData(), - RemainTicket = 10, - }; - + DifficultyId = eventData.Diff, + StageId = eventData.LastStage + }); // TOOD await WriteDataAsync(response);