mirror of
https://github.com/EpinelPS/EpinelPS.git
synced 2025-12-13 07:24:52 +01:00
Add information about the third anniversary event (#62)
* Add information about the third anniversary event
This commit is contained in:
@@ -285,6 +285,12 @@ namespace EpinelPS.Data
|
|||||||
[LoadRecord("PassMissionTable.json", "Id")]
|
[LoadRecord("PassMissionTable.json", "Id")]
|
||||||
public readonly Dictionary<int, PassMissionRecord> PassMissionTable = [];
|
public readonly Dictionary<int, PassMissionRecord> PassMissionTable = [];
|
||||||
|
|
||||||
|
// Daily Mission Event Data Tables
|
||||||
|
[LoadRecord("DailyMissionEventSettingTable.json", "Id")]
|
||||||
|
public readonly Dictionary<int, DailyMissionEventSettingRecord_Raw> DailyMissionEventSettingTable = [];
|
||||||
|
[LoadRecord("DailyEventTable.json", "Id")]
|
||||||
|
public readonly Dictionary<int, DailyEventRecord> DailyEventTable = [];
|
||||||
|
|
||||||
static async Task<GameData> BuildAsync()
|
static async Task<GameData> BuildAsync()
|
||||||
{
|
{
|
||||||
await Load();
|
await Load();
|
||||||
|
|||||||
@@ -5,17 +5,13 @@ using Newtonsoft.Json;
|
|||||||
|
|
||||||
namespace EpinelPS.LobbyServer.Event
|
namespace EpinelPS.LobbyServer.Event
|
||||||
{
|
{
|
||||||
public static class EventHelper
|
public class EventHelper
|
||||||
{
|
{
|
||||||
private static readonly ILog log = LogManager.GetLogger(typeof(EventHelper));
|
private static readonly ILog log = LogManager.GetLogger(typeof(EventHelper));
|
||||||
|
|
||||||
public static void AddEvents(ref ResGetEventList response)
|
public static void AddEvents(ref ResGetEventList response)
|
||||||
{
|
{
|
||||||
// TODO
|
List<LobbyPrivateBannerRecord> lobbyPrivateBanners = GetLobbyPrivateBannerData();
|
||||||
List<LobbyPrivateBannerRecord> lobbyPrivateBanners = []; //[.. GameData.Instance.LobbyPrivateBannerTable.Values.Where(b => b.StartDate <= DateTime.UtcNow && b.EndDate >= DateTime.UtcNow)];
|
|
||||||
Logging.WriteLine($"Found {lobbyPrivateBanners.Count} active lobby private banners.", LogType.Debug);
|
|
||||||
log.Debug($"Active lobby private banners: {JsonConvert.SerializeObject(lobbyPrivateBanners)}");
|
|
||||||
|
|
||||||
if (lobbyPrivateBanners.Count == 0)
|
if (lobbyPrivateBanners.Count == 0)
|
||||||
{
|
{
|
||||||
// No active lobby private banners
|
// No active lobby private banners
|
||||||
@@ -24,60 +20,28 @@ namespace EpinelPS.LobbyServer.Event
|
|||||||
}
|
}
|
||||||
|
|
||||||
var eventManagers = GameData.Instance.eventManagers.Values.ToList();
|
var eventManagers = GameData.Instance.eventManagers.Values.ToList();
|
||||||
|
|
||||||
foreach (var banner in lobbyPrivateBanners)
|
foreach (var banner in lobbyPrivateBanners)
|
||||||
{
|
{
|
||||||
// Get all events (including child events) associated with this banner
|
// Get all events (including child events) associated with this banner
|
||||||
List<NetEventData> events = GetEventData(banner, eventManagers);
|
List<NetEventData> events = GetEventData(banner, eventManagers);
|
||||||
log.Debug($"Banner EventId: {banner.EventId} has {events.Count} associated events: {JsonConvert.SerializeObject(events)}");
|
log.Debug($"Banner EventId: {banner.EventId} has {events.Count} associated events: {JsonConvert.SerializeObject(events)}");
|
||||||
if (events.Count == 0)
|
AddEvents(ref response, events);
|
||||||
{
|
|
||||||
Logging.WriteLine($"No events found for Banner EventId: {banner.EventId}", LogType.Warning);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
foreach (var ev in events)
|
|
||||||
{
|
|
||||||
// Avoid adding duplicate events
|
|
||||||
if (!response.EventList.Any(e => e.Id == ev.Id))
|
|
||||||
{
|
|
||||||
response.EventList.Add(ev);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
log.Debug($"Skipping duplicate event Id: {ev.Id}");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Additionally, get any gacha events associated with this banner
|
// Additionally, get any gacha events associated with this banner
|
||||||
List<NetEventData> gachaEvents = GetGachaEventData(banner, eventManagers);
|
List<EventSystemType> systemTypes = [EventSystemType.PickupGachaEvent, EventSystemType.BoxGachaEvent, EventSystemType.LoginEvent];
|
||||||
|
List<NetEventData> gachaEvents = GetEventDataBySystemTypes(banner, eventManagers, systemTypes);
|
||||||
log.Debug($"Banner EventId: {banner.EventId} has {gachaEvents.Count} associated gacha events: {JsonConvert.SerializeObject(gachaEvents)}");
|
log.Debug($"Banner EventId: {banner.EventId} has {gachaEvents.Count} associated gacha events: {JsonConvert.SerializeObject(gachaEvents)}");
|
||||||
if (gachaEvents.Count == 0)
|
AddEvents(ref response, gachaEvents);
|
||||||
{
|
|
||||||
Logging.WriteLine($"No gacha events found for Banner EventId: {banner.EventId}", LogType.Warning);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
foreach (var gachaEvent in gachaEvents)
|
|
||||||
{
|
|
||||||
// Avoid adding duplicate events
|
|
||||||
if (!response.EventList.Any(e => e.Id == gachaEvent.Id))
|
|
||||||
{
|
|
||||||
response.EventList.Add(gachaEvent);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
log.Debug($"Skipping duplicate gacha event Id: {gachaEvent.Id}");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
// add daily mission events
|
||||||
|
List<NetEventData> dailyMissionEvents = GetDailyMissionEventData(eventManagers);
|
||||||
|
log.Debug($"Found {dailyMissionEvents.Count} associated daily mission events: {JsonConvert.SerializeObject(dailyMissionEvents)}");
|
||||||
|
AddEvents(ref response, dailyMissionEvents);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void AddJoinedGachaEvents(ref ResGetJoinedEvent response)
|
public static void AddJoinedEvents(ref ResGetJoinedEvent response)
|
||||||
{
|
{
|
||||||
List<LobbyPrivateBannerRecord> lobbyPrivateBanners = [];//[.. GameData.Instance.LobbyPrivateBannerTable.Values.Where(b => b.StartDate <= DateTime.UtcNow && b.EndDate >= DateTime.UtcNow)];
|
List<LobbyPrivateBannerRecord> lobbyPrivateBanners = GetLobbyPrivateBannerData();
|
||||||
Logging.WriteLine($"Found {lobbyPrivateBanners.Count} active lobby private banners.", LogType.Debug);
|
|
||||||
log.Debug($"Active lobby private banners: {JsonConvert.SerializeObject(lobbyPrivateBanners)}");
|
|
||||||
|
|
||||||
if (lobbyPrivateBanners.Count == 0)
|
if (lobbyPrivateBanners.Count == 0)
|
||||||
{
|
{
|
||||||
// No active lobby private banners
|
// No active lobby private banners
|
||||||
@@ -88,30 +52,21 @@ namespace EpinelPS.LobbyServer.Event
|
|||||||
var eventManagers = GameData.Instance.eventManagers.Values.ToList();
|
var eventManagers = GameData.Instance.eventManagers.Values.ToList();
|
||||||
foreach (var banner in lobbyPrivateBanners)
|
foreach (var banner in lobbyPrivateBanners)
|
||||||
{
|
{
|
||||||
List<NetEventData> gachaEvents = GetGachaEventData(banner, eventManagers);
|
// add gacha events
|
||||||
|
List<EventSystemType> systemTypes = [EventSystemType.PickupGachaEvent, EventSystemType.BoxGachaEvent, EventSystemType.LoginEvent];
|
||||||
|
List<NetEventData> gachaEvents = GetEventDataBySystemTypes(banner, eventManagers, systemTypes);
|
||||||
log.Debug($"Banner EventId: {banner.EventId} has {gachaEvents.Count} associated gacha events: {JsonConvert.SerializeObject(gachaEvents)}");
|
log.Debug($"Banner EventId: {banner.EventId} has {gachaEvents.Count} associated gacha events: {JsonConvert.SerializeObject(gachaEvents)}");
|
||||||
if (gachaEvents.Count == 0)
|
AddJoinedEvents(ref response, gachaEvents);
|
||||||
{
|
|
||||||
Logging.WriteLine($"No gacha events found for Banner EventId: {banner.EventId}", LogType.Warning);
|
// add challenge events
|
||||||
continue;
|
List<NetEventData> challengeEvents = GetChallengeEventData(banner, eventManagers);
|
||||||
}
|
log.Debug($"Banner EventId: {banner.EventId} has {challengeEvents.Count} associated challenge events: {JsonConvert.SerializeObject(challengeEvents)}");
|
||||||
foreach (var gachaEvent in gachaEvents)
|
AddJoinedEvents(ref response, challengeEvents);
|
||||||
{
|
|
||||||
// Avoid adding duplicate events
|
|
||||||
if (!response.EventWithJoinData.Any(e => e.EventData.Id == gachaEvent.Id))
|
|
||||||
{
|
|
||||||
response.EventWithJoinData.Add(new NetEventWithJoinData()
|
|
||||||
{
|
|
||||||
EventData = gachaEvent,
|
|
||||||
JoinAt = 0
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
log.Debug($"Skipping duplicate gacha event Id: {gachaEvent.Id}");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
// add daily mission events
|
||||||
|
List<NetEventData> dailyMissionEvents = GetDailyMissionEventData(eventManagers);
|
||||||
|
log.Debug($"Found {dailyMissionEvents.Count} associated daily mission events: {JsonConvert.SerializeObject(dailyMissionEvents)}");
|
||||||
|
AddJoinedEvents(ref response, dailyMissionEvents);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<NetEventData> GetEventData(LobbyPrivateBannerRecord banner, List<EventManagerRecord> eventManagers)
|
private static List<NetEventData> GetEventData(LobbyPrivateBannerRecord banner, List<EventManagerRecord> eventManagers)
|
||||||
@@ -125,33 +80,33 @@ namespace EpinelPS.LobbyServer.Event
|
|||||||
}
|
}
|
||||||
// Add the main event associated with the banner
|
// Add the main event associated with the banner
|
||||||
var mainEvent = eventManagers.First(em => em.Id == banner.EventId);
|
var mainEvent = eventManagers.First(em => em.Id == banner.EventId);
|
||||||
/* events.Add(new NetEventData()
|
events.Add(new NetEventData()
|
||||||
{
|
{
|
||||||
Id = mainEvent.Id,
|
Id = mainEvent.Id,
|
||||||
EventSystemType = (int)mainEvent.EventSystemType,
|
EventSystemType = (int)mainEvent.EventSystemType,
|
||||||
EventStartDate = banner.StartDate.Ticks,
|
// EventStartDate = banner.StartDate.Ticks,
|
||||||
EventVisibleDate = banner.StartDate.Ticks,
|
// EventVisibleDate = banner.StartDate.Ticks,
|
||||||
EventDisableDate = banner.EndDate.Ticks,
|
// EventDisableDate = banner.EndDate.Ticks,
|
||||||
EventEndDate = banner.EndDate.Ticks
|
// EventEndDate = banner.EndDate.Ticks
|
||||||
});*/
|
});
|
||||||
// Add child events associated with the main event
|
// Add child events associated with the main event
|
||||||
var childEvents = eventManagers.Where(em => em.ParentsEventId == banner.EventId || em.SetField == banner.EventId).ToList();
|
var childEvents = eventManagers.Where(em => em.ParentsEventId == banner.EventId || em.SetField == banner.EventId).ToList();
|
||||||
foreach (var childEvent in childEvents)
|
foreach (var childEvent in childEvents)
|
||||||
{
|
{
|
||||||
/* events.Add(new NetEventData()
|
events.Add(new NetEventData()
|
||||||
{
|
{
|
||||||
Id = childEvent.Id,
|
Id = childEvent.Id,
|
||||||
EventSystemType = (int)childEvent.EventSystemType,
|
EventSystemType = (int)childEvent.EventSystemType,
|
||||||
EventStartDate = banner.StartDate.Ticks,
|
// EventStartDate = banner.StartDate.Ticks,
|
||||||
EventVisibleDate = banner.StartDate.Ticks,
|
// EventVisibleDate = banner.StartDate.Ticks,
|
||||||
EventDisableDate = banner.EndDate.Ticks,
|
// EventDisableDate = banner.EndDate.Ticks,
|
||||||
EventEndDate = banner.EndDate.Ticks
|
// EventEndDate = banner.EndDate.Ticks
|
||||||
});*/
|
});
|
||||||
}
|
}
|
||||||
return events;
|
return events;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static List<NetEventData> GetGachaEventData(LobbyPrivateBannerRecord banner, List<EventManagerRecord> eventManagers)
|
private static List<NetEventData> GetEventDataBySystemTypes(LobbyPrivateBannerRecord banner, List<EventManagerRecord> eventManagers, List<EventSystemType> systemTypes)
|
||||||
{
|
{
|
||||||
List<NetEventData> events = [];
|
List<NetEventData> events = [];
|
||||||
// Find all event banner resource tables associated with this banner's EventId
|
// Find all event banner resource tables associated with this banner's EventId
|
||||||
@@ -166,10 +121,10 @@ namespace EpinelPS.LobbyServer.Event
|
|||||||
return events;
|
return events;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Find all gacha events (PickupGachaEvent or BoxGachaEvent) that use these banner resource tables
|
// Find all events matching the banner resource tables and specified system types
|
||||||
var gachaEvents = eventManagers.Where(em =>
|
var gachaEvents = eventManagers.Where(em =>
|
||||||
eventBannerResourceTables.Contains(em.EventBannerResourceTable)
|
eventBannerResourceTables.Contains(em.EventBannerResourceTable)
|
||||||
&& (em.EventSystemType == EventSystemType.PickupGachaEvent || em.EventSystemType == EventSystemType.BoxGachaEvent)).ToList();
|
&& systemTypes.Contains(em.EventSystemType)).ToList();
|
||||||
log.Debug($"Found {gachaEvents.Count} gacha events from banner resource tables: {JsonConvert.SerializeObject(gachaEvents)}");
|
log.Debug($"Found {gachaEvents.Count} gacha events from banner resource tables: {JsonConvert.SerializeObject(gachaEvents)}");
|
||||||
if (gachaEvents.Count == 0)
|
if (gachaEvents.Count == 0)
|
||||||
{
|
{
|
||||||
@@ -184,10 +139,131 @@ namespace EpinelPS.LobbyServer.Event
|
|||||||
{
|
{
|
||||||
Id = gachaEvent.Id,
|
Id = gachaEvent.Id,
|
||||||
EventSystemType = (int)gachaEvent.EventSystemType,
|
EventSystemType = (int)gachaEvent.EventSystemType,
|
||||||
//EventStartDate = banner.StartDate.Ticks,
|
// EventStartDate = banner.StartDate.Ticks,
|
||||||
//EventVisibleDate = banner.StartDate.Ticks,
|
// EventVisibleDate = banner.StartDate.Ticks,
|
||||||
////EventDisableDate = banner.EndDate.Ticks,
|
// EventDisableDate = banner.EndDate.Ticks,
|
||||||
//EventEndDate = banner.EndDate.Ticks
|
// EventEndDate = banner.EndDate.Ticks
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return events;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static List<NetEventData> GetChallengeEventData(LobbyPrivateBannerRecord banner, List<EventManagerRecord> eventManagers)
|
||||||
|
{
|
||||||
|
List<NetEventData> events = [];
|
||||||
|
|
||||||
|
// Find all challenge events (ChallengeModeEvent) associated with this banner's EventId
|
||||||
|
var challengeEvents = eventManagers.Where(em =>
|
||||||
|
em.ParentsEventId == banner.EventId && em.EventSystemType == EventSystemType.ChallengeModeEvent).ToList();
|
||||||
|
log.Debug($"Found {challengeEvents.Count} challenge events from banner resource tables: {JsonConvert.SerializeObject(challengeEvents)}");
|
||||||
|
if (challengeEvents.Count == 0)
|
||||||
|
{
|
||||||
|
Logging.WriteLine($"No challenge events found for Banner EventId: {banner.EventId}", LogType.Warning);
|
||||||
|
return events;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add each challenge event to the list
|
||||||
|
foreach (var challengeEvent in challengeEvents)
|
||||||
|
{
|
||||||
|
events.Add(new NetEventData()
|
||||||
|
{
|
||||||
|
Id = challengeEvent.Id,
|
||||||
|
EventSystemType = (int)challengeEvent.EventSystemType,
|
||||||
|
// EventStartDate = banner.StartDate.Ticks,
|
||||||
|
// EventVisibleDate = banner.StartDate.Ticks,
|
||||||
|
// EventDisableDate = banner.EndDate.Ticks,
|
||||||
|
// EventEndDate = banner.EndDate.Ticks
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return events;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get active lobby private banner data
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>List of active lobby private banners</returns>
|
||||||
|
public static List<LobbyPrivateBannerRecord> GetLobbyPrivateBannerData()
|
||||||
|
{
|
||||||
|
List<LobbyPrivateBannerRecord> lobbyPrivateBanners = [];
|
||||||
|
// lobbyPrivateBanners = [.. GameData.Instance.LobbyPrivateBannerTable.Values.Where(b => b.StartDate <= DateTime.UtcNow && b.EndDate >= DateTime.UtcNow)];
|
||||||
|
lobbyPrivateBanners.Add(new LobbyPrivateBannerRecord() { Id = 10093, PrivateBannerShowDuration = 8, EventId = 82700 });
|
||||||
|
Logging.WriteLine($"Found {lobbyPrivateBanners.Count} active lobby private banners.", LogType.Debug);
|
||||||
|
log.Debug($"Active lobby private banners: {JsonConvert.SerializeObject(lobbyPrivateBanners)}");
|
||||||
|
return lobbyPrivateBanners;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void AddEvents(ref ResGetEventList response, List<NetEventData> eventDatas)
|
||||||
|
{
|
||||||
|
foreach (var eventData in eventDatas)
|
||||||
|
{
|
||||||
|
// if (eventData.Id == 70115) continue;
|
||||||
|
// Avoid adding duplicate events
|
||||||
|
if (!response.EventList.Any(e => e.Id == eventData.Id))
|
||||||
|
{
|
||||||
|
if (eventData.EventStartDate == 0) eventData.EventStartDate = DateTime.UtcNow.AddDays(-1).Ticks;
|
||||||
|
if (eventData.EventVisibleDate == 0) eventData.EventVisibleDate = DateTime.UtcNow.AddDays(-1).Ticks;
|
||||||
|
if (eventData.EventDisableDate == 0) eventData.EventDisableDate = DateTime.UtcNow.AddDays(30).Ticks;
|
||||||
|
if (eventData.EventEndDate == 0) eventData.EventEndDate = DateTime.UtcNow.AddDays(30).Ticks;
|
||||||
|
response.EventList.Add(eventData);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
log.Debug($"Skipping duplicate event Id: {eventData.Id}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void AddJoinedEvents(ref ResGetJoinedEvent response, List<NetEventData> eventDatas)
|
||||||
|
{
|
||||||
|
foreach (var eventData in eventDatas)
|
||||||
|
{
|
||||||
|
if (eventData.Id == 70115) continue;
|
||||||
|
// Avoid adding duplicate events
|
||||||
|
if (!response.EventWithJoinData.Any(e => e.EventData.Id == eventData.Id))
|
||||||
|
{
|
||||||
|
if (eventData.EventStartDate == 0) eventData.EventStartDate = DateTime.UtcNow.AddDays(-1).Ticks;
|
||||||
|
if (eventData.EventVisibleDate == 0) eventData.EventVisibleDate = DateTime.UtcNow.AddDays(-1).Ticks;
|
||||||
|
if (eventData.EventDisableDate == 0) eventData.EventDisableDate = DateTime.UtcNow.AddDays(30).Ticks;
|
||||||
|
if (eventData.EventEndDate == 0) eventData.EventEndDate = DateTime.UtcNow.AddDays(30).Ticks;
|
||||||
|
response.EventWithJoinData.Add(new NetEventWithJoinData()
|
||||||
|
{
|
||||||
|
|
||||||
|
EventData = eventData,
|
||||||
|
JoinAt = 0
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
log.Debug($"Skipping duplicate event Id: {eventData.Id}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static List<NetEventData> GetDailyMissionEventData(List<EventManagerRecord> eventManagers)
|
||||||
|
{
|
||||||
|
List<NetEventData> events = [];
|
||||||
|
|
||||||
|
var dailyEventIds = GameData.Instance.DailyMissionEventSettingTable.Values.Select(de => de.EventId).ToList();
|
||||||
|
log.Debug($"Daily Mission Event IDs: {JsonConvert.SerializeObject(dailyEventIds)}");
|
||||||
|
var dailyEvents = eventManagers.Where(em => dailyEventIds.Contains(em.Id)).ToList();
|
||||||
|
log.Debug($"Found {dailyEvents.Count} daily events: {JsonConvert.SerializeObject(dailyEvents)}");
|
||||||
|
if (dailyEvents.Count == 0)
|
||||||
|
{
|
||||||
|
Logging.WriteLine("No daily events found.", LogType.Warning);
|
||||||
|
return events;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add each daily event to the list
|
||||||
|
foreach (var dailyEvent in dailyEvents)
|
||||||
|
{
|
||||||
|
events.Add(new NetEventData()
|
||||||
|
{
|
||||||
|
Id = dailyEvent.Id,
|
||||||
|
EventSystemType = (int)dailyEvent.EventSystemType,
|
||||||
|
EventStartDate = DateTime.UtcNow.Ticks,
|
||||||
|
EventVisibleDate = DateTime.UtcNow.Ticks,
|
||||||
|
EventDisableDate = DateTime.UtcNow.AddDays(30).Ticks,
|
||||||
|
EventEndDate = DateTime.UtcNow.AddDays(30).Ticks
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return events;
|
return events;
|
||||||
|
|||||||
@@ -7,26 +7,12 @@ namespace EpinelPS.LobbyServer.Event
|
|||||||
{
|
{
|
||||||
protected override async Task HandleAsync()
|
protected override async Task HandleAsync()
|
||||||
{
|
{
|
||||||
ReqGetJoinedEvent req = await ReadData<ReqGetJoinedEvent>();
|
await ReadData<ReqGetJoinedEvent>();
|
||||||
//types are defined in EventTypes.cs
|
//types are defined in EventTypes.cs
|
||||||
ResGetJoinedEvent response = new();
|
ResGetJoinedEvent response = new();
|
||||||
|
|
||||||
response.EventWithJoinData.Add(new NetEventWithJoinData()
|
|
||||||
{
|
|
||||||
EventData = new NetEventData()
|
|
||||||
{
|
|
||||||
Id = 20001,
|
|
||||||
EventSystemType = (int)EventSystemType.PickupGachaEvent,
|
|
||||||
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
|
|
||||||
});
|
|
||||||
|
|
||||||
// add gacha events from active lobby banners
|
// add gacha events from active lobby banners
|
||||||
EventHelper.AddJoinedGachaEvents(ref response);
|
EventHelper.AddJoinedEvents(ref response);
|
||||||
|
|
||||||
await WriteDataAsync(response);
|
await WriteDataAsync(response);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using EpinelPS.Data;
|
using EpinelPS.Data;
|
||||||
|
using EpinelPS.LobbyServer.Event;
|
||||||
using EpinelPS.Utils;
|
using EpinelPS.Utils;
|
||||||
using log4net;
|
using log4net;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
@@ -17,7 +18,7 @@ namespace EpinelPS.LobbyServer.Pass
|
|||||||
ResGetActiveEventPassData response = new(); // fields PassList = NetPassInfo
|
ResGetActiveEventPassData response = new(); // fields PassList = NetPassInfo
|
||||||
|
|
||||||
List<LobbyPrivateBannerRecord> lobbyPrivateBanners = [];//[.. GameData.Instance.LobbyPrivateBannerTable.Values.Where(b => b.PrivateBannerShowDuration <= DateTime.UtcNow && b.EndDate >= DateTime.UtcNow)];
|
List<LobbyPrivateBannerRecord> lobbyPrivateBanners = [];//[.. GameData.Instance.LobbyPrivateBannerTable.Values.Where(b => b.PrivateBannerShowDuration <= DateTime.UtcNow && b.EndDate >= DateTime.UtcNow)];
|
||||||
|
lobbyPrivateBanners = EventHelper.GetLobbyPrivateBannerData();
|
||||||
// TODO: PrivateBannerShowDuration
|
// TODO: PrivateBannerShowDuration
|
||||||
log.Debug($"Active lobby private banners: {JsonConvert.SerializeObject(lobbyPrivateBanners)}");
|
log.Debug($"Active lobby private banners: {JsonConvert.SerializeObject(lobbyPrivateBanners)}");
|
||||||
if (lobbyPrivateBanners.Count <= 0)
|
if (lobbyPrivateBanners.Count <= 0)
|
||||||
|
|||||||
Reference in New Issue
Block a user