From 90c92646a998678fd228d29eb12f267637311bb0 Mon Sep 17 00:00:00 2001 From: raphaeIl Date: Fri, 15 Nov 2024 13:31:13 -0500 Subject: [PATCH] Attempt to fix Campaign, pulling raid leaderboard data from api (WIP) --- SCHALE.Common/Database/dbs.cs | 219 ++- SCHALE.Common/Parcel/parcel.cs | 20 +- .../Api/ProtocolHandlers/Account.cs | 1337 +++++++++++++++- .../Api/ProtocolHandlers/Campaign.cs | 1393 ++++++++++++++++- .../Api/ProtocolHandlers/EventContent.cs | 18 + .../Controllers/Api/ProtocolHandlers/Raid.cs | 162 +- .../Controllers/Api/ProtocolHandlers/Shop.cs | 12 + SCHALE.GameServer/GameServer.cs | 4 + SCHALE.GameServer/Managers/RaidManager.cs | 2 +- .../Services/DatabaseAPIService.cs | 43 + 10 files changed, 3170 insertions(+), 40 deletions(-) create mode 100644 SCHALE.GameServer/Services/DatabaseAPIService.cs diff --git a/SCHALE.Common/Database/dbs.cs b/SCHALE.Common/Database/dbs.cs index 532338a..b9074e6 100644 --- a/SCHALE.Common/Database/dbs.cs +++ b/SCHALE.Common/Database/dbs.cs @@ -5,6 +5,7 @@ using System.Collections.ObjectModel; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Runtime.CompilerServices; +using System.Text.Json; using System.Text.Json.Serialization; namespace SCHALE.Common.Database @@ -714,19 +715,223 @@ namespace SCHALE.Common.Database public int EnemyClearCount { get; set; } public int LastEnemyEntityId { get; set; } public int TacticRankSCount { get; set; } - //public Dictionary EnemyInfos { get; set; } - //public Dictionary EchelonInfos { get; set; } + public Dictionary EnemyInfos { get; set; } + public Dictionary EchelonInfos { get; set; } public Dictionary> WithdrawInfos { get; set; } - //public Dictionary StrategyObjects { get; set; } + public Dictionary StrategyObjects { get; set; } public Dictionary> StrategyObjectRewards { get; set; } public List StrategyObjectHistory { get; set; } public Dictionary> ActivatedHexaEventsAndConditions { get; set; } public Dictionary> HexaEventDelayedExecutions { get; set; } - //public Dictionary TileMapStates { get; set; } - //public List DisplayInfos { get; set; } - //public List DeployedEchelonInfos { get; set; } + public Dictionary TileMapStates { get; set; } + public List DisplayInfos { get; set; } + public List DeployedEchelonInfos { get; set; } } + public class HexaTileState + { + public int Id { get; set; } + public bool IsHide { get; set; } + public bool IsFog { get; set; } + public bool CanNotMove { get; set; } + } + + public enum HexaDisplayType + { + None, + EndBattle, + PlayScenario, + SpawnUnitFromUniqueId, + StatBuff, + DieUnit, + HideStrategy, + SpawnUnit, + SpawnStrategy, + SpawnTile, + HideTile, + ClearFogOfWar, + MoveUnit, + WarpUnit, + SetTileMovablity, + WarpUnitFromHideTile, + BossExile + } + + public class StrategyClearRewardInfo + { + public List FirstClearRewarde { get; set; } + public List ThreeStarRewarde { get; set; } + public Dictionary> StrategyObjectRewardse { get; set; } + public ParcelResultDB ParcelResultDBe { get; set; } + + [JsonIgnore] + public List ClearRewarde { get; set; } + + [JsonIgnore] + public List ExpRewarde { get; set; } + + [JsonIgnore] + public List TotalRewarde { get; set; } + + [JsonIgnore] + public List EventContentRewarde { get; set; } + + public List EventContentBonusRewarde { get; set; } + public CampaignStageHistoryDB CampaignStageHistoryDBe { get; set; } + } + + public class HexaDisplayInfo + { + public HexaDisplayType Type { get; set; } + public long EntityId { get; set; } + public long UniqueId { get; set; } + public HexLocation Location { get; set; } + public long Parameter { get; set; } + public StrategyClearRewardInfo StageRewardInfo { get; set; } + } + + public class HexaUnit + { + public List BuffGroupIds { get; set; } + public SkillCardHand SkillCardHand { get; set; } + public bool PlayAnimation { get; set; } + + [JsonIgnore] + public Dictionary> RewardItems { get; set; } + + public long EntityId { get; set; } + + public Dictionary HpInfos { get; set; } + + public Dictionary DyingInfos { get; set; } + + public Dictionary BuffInfos { get; set; } + + public int ActionCountMax { get; set; } + + public int ActionCount { get; set; } + + public int Mobility { get; set; } + + public int StrategySightRange { get; set; } + + public long Id { get; set; } + + public Vector3 Rotate { get; set; } + + public HexLocation Location { get; set; } + + public HexLocation AIDestination { get; set; } + + public bool IsActionComplete { get; set; } + + public bool IsPlayer { get; set; } + + public bool IsFixedEchelon { get; set; } + + public int MovementOrder { get; set; } + + public Dictionary> RewardParcelInfosWithDropTacticEntityType { get; set; } + + [JsonIgnore] + public CampaignUnitExcel CampaignUnitExcel { get; set; } + + [JsonIgnore] + public List MovableTiles { get; set; } + + [JsonIgnore] + public List> MovementMap { get; set; } + } + + public class HexaTile + { + public bool PlayAnimation { get; set; } + + [JsonIgnore] + public bool IsBattleReady { get; set; } + + + [JsonIgnore] + public bool StartTile { get; set; } + public string ResourcePath { get; set; } + public bool IsHide { get; set; } + public bool IsFog { get; set; } + public bool CanNotMove { get; set; } + public HexLocation Location { get; set; } + public Strategy Strategy { get; set; } + public HexaUnit Unit { get; set; } + + [JsonIgnore] + public HexaUnit ChallengeUnit { get; set; } + } + + public class Strategy + { + public bool PlayAnimation { get; set; } + public bool Activated { get; set; } + public List Values { get; set; } + public int Index { get; set; } + [JsonIgnore] + public bool Movable { get; set; } + + [JsonIgnore] + public bool NeedValueType { get; set; } + public long EntityId { get; set; } + public Vector3 Rotate { get; set; } + public long Id { get; set; } + public HexLocation Location { get; set; } + + [JsonIgnore] + public CampaignStrategyObjectExcel CampaignStrategyExcel { get; set; } + } + + public struct HexLocation + { + public int x { get; set; } + public int y { get; set; } + public int z { get; set; } + } + + public class ForceSerializeZeroFloatConverter : JsonConverter + { + public override float Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + return reader.GetSingle(); + } + + public override void Write(Utf8JsonWriter writer, float value, JsonSerializerOptions options) + { + writer.WriteNumberValue(value); + } + } + + public struct Vector3 + { + [JsonConverter(typeof(ForceSerializeZeroFloatConverter))] + public float x { get; set; } + + [JsonConverter(typeof(ForceSerializeZeroFloatConverter))] + public float y { get; set; } + + [JsonConverter(typeof(ForceSerializeZeroFloatConverter))] + public float z { get; set; } + } + + public class SkillCardHand + { + public float Cost { get; set; } + + public List SkillCardsInHand { get; set; } + + } + + public struct SkillCardInfo + { + public long CharacterId { get; set; } + public int HandIndex { get; set; } + public string SkillId { get; set; } + public int RemainCoolTime { get; set; } + } public class CampaignStageHistoryDB { @@ -2396,7 +2601,7 @@ namespace SCHALE.Common.Database } - public class SingleRaidUserDB + public class SingleRaidUserDB : RaidUserDB { public RaidTeamSettingDB RaidTeamSettingDB { get; set; } } diff --git a/SCHALE.Common/Parcel/parcel.cs b/SCHALE.Common/Parcel/parcel.cs index 43b587b..911cd5d 100644 --- a/SCHALE.Common/Parcel/parcel.cs +++ b/SCHALE.Common/Parcel/parcel.cs @@ -104,14 +104,14 @@ namespace SCHALE.Common.Parcel [Serializable] public struct BasisPoint : IEquatable, IComparable { - [JsonIgnore] - public long RawValue - { - get - { - return this.rawValue; - } - } + //[JsonIgnore] + //public long RawValue + //{ + // get + // { + // return this.rawValue; + // } + //} private static readonly long Multiplier; @@ -125,8 +125,7 @@ namespace SCHALE.Common.Parcel public static readonly double DoubleEpsilon; - [JsonProperty] - private long rawValue; + public long rawValue { get; set; } public BasisPoint(long rawValue) { @@ -167,6 +166,7 @@ namespace SCHALE.Common.Parcel public BasisPoint Multiplier { get; set; } + [JsonIgnore] public long MultipliedAmount { get diff --git a/SCHALE.GameServer/Controllers/Api/ProtocolHandlers/Account.cs b/SCHALE.GameServer/Controllers/Api/ProtocolHandlers/Account.cs index db0176e..f15d06d 100644 --- a/SCHALE.GameServer/Controllers/Api/ProtocolHandlers/Account.cs +++ b/SCHALE.GameServer/Controllers/Api/ProtocolHandlers/Account.cs @@ -136,18 +136,18 @@ namespace SCHALE.GameServer.Controllers.Api.ProtocolHandlers { OpenConditionContent.Tactic_Skip, OpenConditionLockReason.StageClear }, { OpenConditionContent.Mulligan, OpenConditionLockReason.StageClear }, { OpenConditionContent.EventPermanent, OpenConditionLockReason.StageClear }, - { - OpenConditionContent.Main_L_1_2, - OpenConditionLockReason.ScenarioModeClear - }, - { - OpenConditionContent.Main_L_1_3, - OpenConditionLockReason.ScenarioModeClear - }, - { - OpenConditionContent.Main_L_1_4, - OpenConditionLockReason.ScenarioModeClear - }, + //{ + // OpenConditionContent.Main_L_1_2, + // OpenConditionLockReason.ScenarioModeClear + //}, + //{ + // OpenConditionContent.Main_L_1_3, + // OpenConditionLockReason.ScenarioModeClear + //}, + //{ + // OpenConditionContent.Main_L_1_4, + // OpenConditionLockReason.ScenarioModeClear + //}, { OpenConditionContent.EliminateRaid, OpenConditionLockReason.StageClear }, { OpenConditionContent.Cafe_2, OpenConditionLockReason.StageClear }, { OpenConditionContent.MultiFloorRaid, OpenConditionLockReason.StageClear } @@ -303,7 +303,1313 @@ namespace SCHALE.GameServer.Controllers.Api.ProtocolHandlers return new AccountLoginSyncResponse() { - CafeGetInfoResponse = new CafeGetInfoResponse() + + CampaignListResponse = new CampaignListResponse() + { + CampaignChapterClearRewardHistoryDBs = [ + new() { + + AccountServerId = req.AccountId, + ChapterUniqueId = 101, + RewardType = StageDifficulty.Normal + + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 101, + RewardType = StageDifficulty.Hard + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 102, + RewardType = StageDifficulty.Normal + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 102, + RewardType = StageDifficulty.Hard + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 103, + RewardType = StageDifficulty.Normal + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 103, + RewardType = StageDifficulty.Hard + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 104, + RewardType = StageDifficulty.Normal + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 104, + RewardType = StageDifficulty.Hard + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 105, + RewardType = StageDifficulty.Normal + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 105, + RewardType = StageDifficulty.Hard + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 106, + RewardType = StageDifficulty.Normal + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 106, + RewardType = StageDifficulty.Hard + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 107, + RewardType = StageDifficulty.Normal + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 107, + RewardType = StageDifficulty.Hard + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 108, + RewardType = StageDifficulty.Normal + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 108, + RewardType = StageDifficulty.Hard + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 109, + RewardType = StageDifficulty.Normal + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 109, + RewardType = StageDifficulty.Hard + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 110, + RewardType = StageDifficulty.Hard + } + ], + + StageHistoryDBs = [ + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 101, + StageUniqueId = 1011101, + TacticClearCountWithRankSRecord = 2, + ClearTurnRecord = 2, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-02-04T05:15:16"), + TodayPlayCount = 50, + FirstClearRewardReceive = DateTime.Parse("2023-02-01T05:39:08"), + StarRewardReceive = DateTime.Parse("2023-02-01T05:39:08") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 101, + StageUniqueId = 1011102, + TacticClearCountWithRankSRecord = 2, + ClearTurnRecord = 2, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-19T23:53:04"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-19T23:53:04"), + StarRewardReceive = DateTime.Parse("2024-04-19T23:53:04") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 101, + StageUniqueId = 1011103, + TacticClearCountWithRankSRecord = 2, + ClearTurnRecord = 2, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-19T23:59:05"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-19T23:59:05"), + StarRewardReceive = DateTime.Parse("2024-04-19T23:59:05") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 101, + StageUniqueId = 1011104, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 2, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T00:04:38"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T00:04:38"), + StarRewardReceive = DateTime.Parse("2024-04-20T00:04:38") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 101, + StageUniqueId = 1011105, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 2, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T00:08:16"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T00:08:16"), + StarRewardReceive = DateTime.Parse("2024-04-20T00:08:16") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 101, + StageUniqueId = 1011301, + ClearTurnRecord = 1, + LastPlay = DateTime.Parse("2024-04-19T23:48:56"), + FirstClearRewardReceive = DateTime.Parse("2024-04-19T23:48:56") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 101, + StageUniqueId = 1011302, + ClearTurnRecord = 1, + LastPlay = DateTime.Parse("2024-04-19T23:56:38"), + FirstClearRewardReceive = DateTime.Parse("2024-04-19T23:56:38") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 101, + StageUniqueId = 1011303, + ClearTurnRecord = 1, + LastPlay = DateTime.Parse("2024-04-20T00:01:14"), + FirstClearRewardReceive = DateTime.Parse("2024-04-20T00:01:14") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 101, + StageUniqueId = 1012101, + TacticClearCountWithRankSRecord = 2, + ClearTurnRecord = 2, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-25T11:10:18"), + TodayPlayCount = 3, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T00:10:45"), + StarRewardReceive = DateTime.Parse("2024-04-20T00:10:45") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 101, + StageUniqueId = 1012102, + TacticClearCountWithRankSRecord = 2, + ClearTurnRecord = 2, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-21T23:21:32"), + TodayPlayCount = 3, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T00:13:12"), + StarRewardReceive = DateTime.Parse("2024-04-20T00:13:12") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 101, + StageUniqueId = 1012103, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 2, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-25T11:10:12"), + TodayPlayCount = 3, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T00:16:26"), + StarRewardReceive = DateTime.Parse("2024-04-20T00:16:26") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 102, + StageUniqueId = 1021101, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 2, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-03T14:04:23"), + TodayPlayCount = 2, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T00:18:54"), + StarRewardReceive = DateTime.Parse("2024-04-20T00:23:08") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 102, + StageUniqueId = 1021102, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 3, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T00:27:50"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T00:27:50"), + StarRewardReceive = DateTime.Parse("2024-04-20T00:27:50") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 102, + StageUniqueId = 1021103, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 2, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T17:43:42"), + TodayPlayCount = 6, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T00:31:18"), + StarRewardReceive = DateTime.Parse("2024-04-20T00:31:18") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 102, + StageUniqueId = 1021104, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 2, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T00:38:21"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T00:38:21"), + StarRewardReceive = DateTime.Parse("2024-04-20T00:38:21") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 102, + StageUniqueId = 1021105, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 3, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T00:44:22"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T00:44:22"), + StarRewardReceive = DateTime.Parse("2024-04-20T00:44:22") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 102, + StageUniqueId = 1021304, + ClearTurnRecord = 1, + LastPlay = DateTime.Parse("2024-04-20T00:24:41"), + FirstClearRewardReceive = DateTime.Parse("2024-04-20T00:24:41") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 102, + StageUniqueId = 1022101, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 3, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-22T20:38:27"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-22T20:38:27"), + StarRewardReceive = DateTime.Parse("2024-04-22T20:38:27") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 102, + StageUniqueId = 1022102, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 3, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-22T20:41:18"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-22T20:41:18"), + StarRewardReceive = DateTime.Parse("2024-04-22T20:41:18") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 102, + StageUniqueId = 1022103, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 3, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-22T20:43:58"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-22T20:43:58"), + StarRewardReceive = DateTime.Parse("2024-04-22T20:43:58") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 103, + StageUniqueId = 1031101, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 4, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T00:50:21"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T00:50:21"), + StarRewardReceive = DateTime.Parse("2024-04-20T00:50:21") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 103, + StageUniqueId = 1031102, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 4, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T00:55:15"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T00:55:15"), + StarRewardReceive = DateTime.Parse("2024-04-20T00:55:15") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 103, + StageUniqueId = 1031103, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 4, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T01:06:15"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T01:06:15"), + StarRewardReceive = DateTime.Parse("2024-04-20T01:06:15") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 103, + StageUniqueId = 1031104, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 4, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T01:11:56"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T01:11:56"), + StarRewardReceive = DateTime.Parse("2024-04-20T01:11:56") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 103, + StageUniqueId = 1031105, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 3, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T01:36:54"), + TodayPlayCount = 2, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T01:17:29"), + StarRewardReceive = DateTime.Parse("2024-04-20T01:36:54") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 103, + StageUniqueId = 1031305, + ClearTurnRecord = 1, + LastPlay = DateTime.Parse("2024-04-20T00:45:52"), + FirstClearRewardReceive = DateTime.Parse("2024-04-20T00:45:52") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 103, + StageUniqueId = 1031306, + ClearTurnRecord = 1, + LastPlay = DateTime.Parse("2024-04-20T01:07:54"), + FirstClearRewardReceive = DateTime.Parse("2024-04-20T01:07:54") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 103, + StageUniqueId = 1032101, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 4, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-22T20:46:40"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-22T20:46:40"), + StarRewardReceive = DateTime.Parse("2024-04-22T20:46:40") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 103, + StageUniqueId = 1032102, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 4, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-25T11:10:05"), + TodayPlayCount = 3, + FirstClearRewardReceive = DateTime.Parse("2024-04-22T20:49:18"), + StarRewardReceive = DateTime.Parse("2024-04-22T20:49:18") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 103, + StageUniqueId = 1032103, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 5, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-25T11:09:59"), + TodayPlayCount = 3, + FirstClearRewardReceive = DateTime.Parse("2024-04-22T20:52:12"), + StarRewardReceive = DateTime.Parse("2024-04-22T20:52:12") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 104, + StageUniqueId = 1041101, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 3, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T14:32:33"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T14:32:33"), + StarRewardReceive = DateTime.Parse("2024-04-20T14:32:33") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 104, + StageUniqueId = 1041102, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 3, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T17:42:39"), + TodayPlayCount = 11, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T14:37:22"), + StarRewardReceive = DateTime.Parse("2024-04-20T14:37:22") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 104, + StageUniqueId = 1041103, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 2, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T14:44:32"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T14:44:32"), + StarRewardReceive = DateTime.Parse("2024-04-20T14:44:32") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 104, + StageUniqueId = 1041104, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 2, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T14:49:44"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T14:49:44"), + StarRewardReceive = DateTime.Parse("2024-04-20T14:49:44") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 104, + StageUniqueId = 1041105, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 3, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T15:14:30"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T15:14:30"), + StarRewardReceive = DateTime.Parse("2024-04-20T15:14:30") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 104, + StageUniqueId = 1042101, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-02T16:15:06"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-02T16:15:06"), + StarRewardReceive = DateTime.Parse("2024-05-02T16:15:06") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 104, + StageUniqueId = 1042102, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-02T16:16:35"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-02T16:16:35"), + StarRewardReceive = DateTime.Parse("2024-05-02T16:16:35") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 104, + StageUniqueId = 1042103, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-02T16:18:48"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-02T16:18:48"), + StarRewardReceive = DateTime.Parse("2024-05-02T16:18:48") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 105, + StageUniqueId = 1051101, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 2, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T15:42:11"), + TodayPlayCount = 4, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T15:20:30"), + StarRewardReceive = DateTime.Parse("2024-04-20T15:20:30") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 105, + StageUniqueId = 1051102, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 2, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T15:27:10"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T15:27:10"), + StarRewardReceive = DateTime.Parse("2024-04-20T15:27:10") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 105, + StageUniqueId = 1051103, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 3, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T15:31:25"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T15:31:25"), + StarRewardReceive = DateTime.Parse("2024-04-20T15:31:25") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 105, + StageUniqueId = 1051104, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 3, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T15:35:54"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T15:35:54"), + StarRewardReceive = DateTime.Parse("2024-04-20T15:35:54") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 105, + StageUniqueId = 1051105, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 4, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T15:41:16"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T15:41:16"), + StarRewardReceive = DateTime.Parse("2024-04-20T15:41:16") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 105, + StageUniqueId = 1052101, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-02T16:20:22"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-02T16:20:22"), + StarRewardReceive = DateTime.Parse("2024-05-02T16:20:22") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 105, + StageUniqueId = 1052102, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-02T16:21:59"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-02T16:21:59"), + StarRewardReceive = DateTime.Parse("2024-05-02T16:21:59") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 105, + StageUniqueId = 1052103, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-02T16:23:42"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-02T16:23:42"), + StarRewardReceive = DateTime.Parse("2024-05-02T16:23:42") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 106, + StageUniqueId = 1061101, + TacticClearCountWithRankSRecord = 4, + ClearTurnRecord = 3, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T17:12:22"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T17:12:22"), + StarRewardReceive = DateTime.Parse("2024-04-20T17:12:22") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 106, + StageUniqueId = 1061102, + TacticClearCountWithRankSRecord = 4, + ClearTurnRecord = 3, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T17:20:59"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T17:20:59"), + StarRewardReceive = DateTime.Parse("2024-04-20T17:20:59") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 106, + StageUniqueId = 1061103, + TacticClearCountWithRankSRecord = 4, + ClearTurnRecord = 3, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T17:39:32"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T17:39:32"), + StarRewardReceive = DateTime.Parse("2024-04-20T17:39:32") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 106, + StageUniqueId = 1061104, + TacticClearCountWithRankSRecord = 4, + ClearTurnRecord = 3, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T17:53:49"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T17:53:49"), + StarRewardReceive = DateTime.Parse("2024-04-20T17:53:49") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 106, + StageUniqueId = 1061105, + TacticClearCountWithRankSRecord = 5, + ClearTurnRecord = 4, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T18:02:24"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T18:02:24"), + StarRewardReceive = DateTime.Parse("2024-04-20T18:02:24") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 106, + StageUniqueId = 1062101, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-02T16:25:11"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-02T16:25:11"), + StarRewardReceive = DateTime.Parse("2024-05-02T16:25:11") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 106, + StageUniqueId = 1062102, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-02T16:27:13"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-02T16:27:13"), + StarRewardReceive = DateTime.Parse("2024-05-02T16:27:13") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 106, + StageUniqueId = 1062103, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-02T16:28:49"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-02T16:28:49"), + StarRewardReceive = DateTime.Parse("2024-05-02T16:28:49") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 107, + StageUniqueId = 1071101, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 3, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-22T16:57:05"), + TodayPlayCount = 10, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T22:00:20"), + StarRewardReceive = DateTime.Parse("2024-04-20T22:00:20") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 107, + StageUniqueId = 1071102, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 2, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T22:07:18"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T22:07:18"), + StarRewardReceive = DateTime.Parse("2024-04-20T22:07:18") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 107, + StageUniqueId = 1071103, + TacticClearCountWithRankSRecord = 4, + ClearTurnRecord = 3, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-21T13:29:22"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-21T13:29:22"), + StarRewardReceive = DateTime.Parse("2024-04-21T13:29:22") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 107, + StageUniqueId = 1071104, + TacticClearCountWithRankSRecord = 4, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-04T20:58:22"), + TodayPlayCount = 8, + FirstClearRewardReceive = DateTime.Parse("2024-04-22T20:36:19"), + StarRewardReceive = DateTime.Parse("2024-04-25T11:27:54") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 107, + StageUniqueId = 1071105, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-29T20:17:08"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-25T11:23:03"), + StarRewardReceive = DateTime.Parse("2024-04-29T20:17:08") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 107, + StageUniqueId = 1072101, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-02T16:30:35"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-02T16:30:35"), + StarRewardReceive = DateTime.Parse("2024-05-02T16:30:35") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 107, + StageUniqueId = 1072102, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-02T16:32:53"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-02T16:32:53"), + StarRewardReceive = DateTime.Parse("2024-05-02T16:32:53") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 107, + StageUniqueId = 1072103, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-02T16:44:59"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-02T16:44:59"), + StarRewardReceive = DateTime.Parse("2024-05-02T16:44:59") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 108, + StageUniqueId = 1081101, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-29T20:20:03"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-25T14:59:00"), + StarRewardReceive = DateTime.Parse("2024-04-29T20:20:03") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 108, + StageUniqueId = 1081102, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-29T20:21:36"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-25T15:02:41"), + StarRewardReceive = DateTime.Parse("2024-04-29T20:21:36") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 108, + StageUniqueId = 1081103, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-29T20:23:07"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-25T15:07:07"), + StarRewardReceive = DateTime.Parse("2024-04-29T20:23:07") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 108, + StageUniqueId = 1081104, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-29T20:35:53"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-29T20:35:53"), + StarRewardReceive = DateTime.Parse("2024-04-29T20:35:53") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 108, + StageUniqueId = 1081105, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-29T20:39:05"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-29T20:39:05"), + StarRewardReceive = DateTime.Parse("2024-04-29T20:39:05") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 108, + StageUniqueId = 1082101, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-02T16:47:26"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-02T16:47:26"), + StarRewardReceive = DateTime.Parse("2024-05-02T16:47:26") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 108, + StageUniqueId = 1082102, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-02T16:49:11"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-02T16:49:11"), + StarRewardReceive = DateTime.Parse("2024-05-02T16:49:11") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 108, + StageUniqueId = 1082103, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-04T20:42:57"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-04T20:42:57"), + StarRewardReceive = DateTime.Parse("2024-05-04T20:42:57") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 109, + StageUniqueId = 1091101, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-30T20:38:44"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-30T20:38:44"), + StarRewardReceive = DateTime.Parse("2024-04-30T20:38:44") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 109, + StageUniqueId = 1091102, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-30T20:40:23"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-30T20:40:23"), + StarRewardReceive = DateTime.Parse("2024-04-30T20:40:23") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 109, + StageUniqueId = 1091103, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-30T20:46:10"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-30T20:46:10"), + StarRewardReceive = DateTime.Parse("2024-04-30T20:46:10") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 109, + StageUniqueId = 1091104, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-30T20:47:49"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-30T20:47:49"), + StarRewardReceive = DateTime.Parse("2024-04-30T20:47:49") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 109, + StageUniqueId = 1091105, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-30T20:49:44"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-30T20:49:44"), + StarRewardReceive = DateTime.Parse("2024-04-30T20:49:44") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 109, + StageUniqueId = 1092101, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-04T20:45:36"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-04T20:45:36"), + StarRewardReceive = DateTime.Parse("2024-05-04T20:45:36") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 109, + StageUniqueId = 1092102, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-04T20:47:18"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-04T20:47:18"), + StarRewardReceive = DateTime.Parse("2024-05-04T20:47:18") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 109, + StageUniqueId = 1092103, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-04T20:48:50"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-04T20:48:50"), + StarRewardReceive = DateTime.Parse("2024-05-04T20:48:50") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 110, + StageUniqueId = 1101101, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-30T20:51:57"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-30T20:51:57"), + StarRewardReceive = DateTime.Parse("2024-04-30T20:51:57") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 110, + StageUniqueId = 1101102, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-30T20:53:41"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-30T20:53:41"), + StarRewardReceive = DateTime.Parse("2024-04-30T20:53:41") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 110, + StageUniqueId = 1101103, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-30T20:55:36"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-30T20:55:36"), + StarRewardReceive = DateTime.Parse("2024-04-30T20:55:36") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 110, + StageUniqueId = 1101104, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-30T20:57:18"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-30T20:57:18"), + StarRewardReceive = DateTime.Parse("2024-04-30T20:57:18") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 110, + StageUniqueId = 1101105, + ClearTurnRecord = 1, + Star1Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-30T21:00:57"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-30T21:00:57") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 110, + StageUniqueId = 1102101, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-04T20:50:39"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-04T20:50:39"), + StarRewardReceive = DateTime.Parse("2024-05-04T20:50:39") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 110, + StageUniqueId = 1102102, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-04T20:52:14"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-04T20:52:14"), + StarRewardReceive = DateTime.Parse("2024-05-04T20:52:14") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 110, + StageUniqueId = 1102103, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-04T20:55:25"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-04T20:55:25"), + StarRewardReceive = DateTime.Parse("2024-05-04T20:55:25") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 111, + StageUniqueId = 1111101, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-30T21:03:25"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-30T21:03:25"), + StarRewardReceive = DateTime.Parse("2024-04-30T21:03:25") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 111, + StageUniqueId = 1111102, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-05T20:38:30"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-30T21:05:23"), + StarRewardReceive = DateTime.Parse("2024-05-05T20:38:30") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 111, + StageUniqueId = 1111103, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-05T20:39:56"), + TodayPlayCount = 2, + FirstClearRewardReceive = DateTime.Parse("2024-05-05T20:36:49"), + StarRewardReceive = DateTime.Parse("2024-05-05T20:39:56") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 111, + StageUniqueId = 1111104, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-05T20:41:39"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-05T20:41:39"), + StarRewardReceive = DateTime.Parse("2024-05-05T20:41:39") + } + ], + }, + + CafeGetInfoResponse = new CafeGetInfoResponse() { CafeDBs = [.. account.Cafes], FurnitureDBs = [.. account.Furnitures] @@ -499,8 +1805,9 @@ namespace SCHALE.GameServer.Controllers.Api.ProtocolHandlers ?.TutorialIds; return new AccountGetTutorialResponse() { - //TutorialIds = tutorialIds ?? Enumerable.Range(1, 27).Select(i => (long)i).ToList() - TutorialIds = [1, 2, 3, 4, 5, 6, 7, 22, 8, 12, 13, 14, 15, 10, 23] + TutorialIds = tutorialIds ?? Enumerable.Range(1, 27).Select(i => (long)i).ToList() + //TutorialIds = [1, 2, 3, 4, 5, 6, 7, 22, 8, 12, 13, 14, 15, 10, 23] + //TutorialIds = [1, 2, 3, 4, 5, 6, 7] //TutorialIds = [] }; } diff --git a/SCHALE.GameServer/Controllers/Api/ProtocolHandlers/Campaign.cs b/SCHALE.GameServer/Controllers/Api/ProtocolHandlers/Campaign.cs index 31bd905..d7704a5 100644 --- a/SCHALE.GameServer/Controllers/Api/ProtocolHandlers/Campaign.cs +++ b/SCHALE.GameServer/Controllers/Api/ProtocolHandlers/Campaign.cs @@ -1,4 +1,5 @@ -using SCHALE.Common.Database; +using Microsoft.AspNetCore.Routing; +using SCHALE.Common.Database; using SCHALE.Common.FlatData; using SCHALE.Common.NetworkProtocol; using SCHALE.GameServer.Services; @@ -22,8 +23,1310 @@ namespace SCHALE.GameServer.Controllers.Api.ProtocolHandlers return new CampaignListResponse() { + CampaignChapterClearRewardHistoryDBs = [ + new() { + + AccountServerId = req.AccountId, + ChapterUniqueId = 101, + RewardType = StageDifficulty.Normal + + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 101, + RewardType = StageDifficulty.Hard + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 102, + RewardType = StageDifficulty.Normal + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 102, + RewardType = StageDifficulty.Hard + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 103, + RewardType = StageDifficulty.Normal + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 103, + RewardType = StageDifficulty.Hard + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 104, + RewardType = StageDifficulty.Normal + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 104, + RewardType = StageDifficulty.Hard + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 105, + RewardType = StageDifficulty.Normal + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 105, + RewardType = StageDifficulty.Hard + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 106, + RewardType = StageDifficulty.Normal + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 106, + RewardType = StageDifficulty.Hard + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 107, + RewardType = StageDifficulty.Normal + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 107, + RewardType = StageDifficulty.Hard + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 108, + RewardType = StageDifficulty.Normal + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 108, + RewardType = StageDifficulty.Hard + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 109, + RewardType = StageDifficulty.Normal + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 109, + RewardType = StageDifficulty.Hard + }, + new() + { + AccountServerId = req.AccountId, + ChapterUniqueId = 110, + RewardType = StageDifficulty.Hard + } + ], + + StageHistoryDBs = [ + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 101, + StageUniqueId = 1011101, + TacticClearCountWithRankSRecord = 2, + ClearTurnRecord = 2, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-02-04T05:15:16"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2023-02-01T05:39:08"), + StarRewardReceive = DateTime.Parse("2023-02-01T05:39:08") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 101, + StageUniqueId = 1011102, + TacticClearCountWithRankSRecord = 2, + ClearTurnRecord = 2, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-19T23:53:04"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-19T23:53:04"), + StarRewardReceive = DateTime.Parse("2024-04-19T23:53:04") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 101, + StageUniqueId = 1011103, + TacticClearCountWithRankSRecord = 2, + ClearTurnRecord = 2, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-19T23:59:05"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-19T23:59:05"), + StarRewardReceive = DateTime.Parse("2024-04-19T23:59:05") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 101, + StageUniqueId = 1011104, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 2, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T00:04:38"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T00:04:38"), + StarRewardReceive = DateTime.Parse("2024-04-20T00:04:38") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 101, + StageUniqueId = 1011105, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 2, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T00:08:16"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T00:08:16"), + StarRewardReceive = DateTime.Parse("2024-04-20T00:08:16") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 101, + StageUniqueId = 1011301, + ClearTurnRecord = 1, + LastPlay = DateTime.Parse("2024-04-19T23:48:56"), + FirstClearRewardReceive = DateTime.Parse("2024-04-19T23:48:56") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 101, + StageUniqueId = 1011302, + ClearTurnRecord = 1, + LastPlay = DateTime.Parse("2024-04-19T23:56:38"), + FirstClearRewardReceive = DateTime.Parse("2024-04-19T23:56:38") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 101, + StageUniqueId = 1011303, + ClearTurnRecord = 1, + LastPlay = DateTime.Parse("2024-04-20T00:01:14"), + FirstClearRewardReceive = DateTime.Parse("2024-04-20T00:01:14") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 101, + StageUniqueId = 1012101, + TacticClearCountWithRankSRecord = 2, + ClearTurnRecord = 2, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-25T11:10:18"), + TodayPlayCount = 3, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T00:10:45"), + StarRewardReceive = DateTime.Parse("2024-04-20T00:10:45") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 101, + StageUniqueId = 1012102, + TacticClearCountWithRankSRecord = 2, + ClearTurnRecord = 2, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-21T23:21:32"), + TodayPlayCount = 3, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T00:13:12"), + StarRewardReceive = DateTime.Parse("2024-04-20T00:13:12") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 101, + StageUniqueId = 1012103, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 2, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-25T11:10:12"), + TodayPlayCount = 3, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T00:16:26"), + StarRewardReceive = DateTime.Parse("2024-04-20T00:16:26") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 102, + StageUniqueId = 1021101, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 2, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-03T14:04:23"), + TodayPlayCount = 2, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T00:18:54"), + StarRewardReceive = DateTime.Parse("2024-04-20T00:23:08") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 102, + StageUniqueId = 1021102, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 3, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T00:27:50"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T00:27:50"), + StarRewardReceive = DateTime.Parse("2024-04-20T00:27:50") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 102, + StageUniqueId = 1021103, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 2, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T17:43:42"), + TodayPlayCount = 6, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T00:31:18"), + StarRewardReceive = DateTime.Parse("2024-04-20T00:31:18") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 102, + StageUniqueId = 1021104, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 2, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T00:38:21"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T00:38:21"), + StarRewardReceive = DateTime.Parse("2024-04-20T00:38:21") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 102, + StageUniqueId = 1021105, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 3, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T00:44:22"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T00:44:22"), + StarRewardReceive = DateTime.Parse("2024-04-20T00:44:22") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 102, + StageUniqueId = 1021304, + ClearTurnRecord = 1, + LastPlay = DateTime.Parse("2024-04-20T00:24:41"), + FirstClearRewardReceive = DateTime.Parse("2024-04-20T00:24:41") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 102, + StageUniqueId = 1022101, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 3, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-22T20:38:27"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-22T20:38:27"), + StarRewardReceive = DateTime.Parse("2024-04-22T20:38:27") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 102, + StageUniqueId = 1022102, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 3, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-22T20:41:18"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-22T20:41:18"), + StarRewardReceive = DateTime.Parse("2024-04-22T20:41:18") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 102, + StageUniqueId = 1022103, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 3, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-22T20:43:58"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-22T20:43:58"), + StarRewardReceive = DateTime.Parse("2024-04-22T20:43:58") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 103, + StageUniqueId = 1031101, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 4, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T00:50:21"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T00:50:21"), + StarRewardReceive = DateTime.Parse("2024-04-20T00:50:21") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 103, + StageUniqueId = 1031102, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 4, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T00:55:15"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T00:55:15"), + StarRewardReceive = DateTime.Parse("2024-04-20T00:55:15") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 103, + StageUniqueId = 1031103, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 4, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T01:06:15"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T01:06:15"), + StarRewardReceive = DateTime.Parse("2024-04-20T01:06:15") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 103, + StageUniqueId = 1031104, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 4, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T01:11:56"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T01:11:56"), + StarRewardReceive = DateTime.Parse("2024-04-20T01:11:56") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 103, + StageUniqueId = 1031105, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 3, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T01:36:54"), + TodayPlayCount = 2, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T01:17:29"), + StarRewardReceive = DateTime.Parse("2024-04-20T01:36:54") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 103, + StageUniqueId = 1031305, + ClearTurnRecord = 1, + LastPlay = DateTime.Parse("2024-04-20T00:45:52"), + FirstClearRewardReceive = DateTime.Parse("2024-04-20T00:45:52") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 103, + StageUniqueId = 1031306, + ClearTurnRecord = 1, + LastPlay = DateTime.Parse("2024-04-20T01:07:54"), + FirstClearRewardReceive = DateTime.Parse("2024-04-20T01:07:54") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 103, + StageUniqueId = 1032101, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 4, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-22T20:46:40"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-22T20:46:40"), + StarRewardReceive = DateTime.Parse("2024-04-22T20:46:40") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 103, + StageUniqueId = 1032102, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 4, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-25T11:10:05"), + TodayPlayCount = 3, + FirstClearRewardReceive = DateTime.Parse("2024-04-22T20:49:18"), + StarRewardReceive = DateTime.Parse("2024-04-22T20:49:18") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 103, + StageUniqueId = 1032103, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 5, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-25T11:09:59"), + TodayPlayCount = 3, + FirstClearRewardReceive = DateTime.Parse("2024-04-22T20:52:12"), + StarRewardReceive = DateTime.Parse("2024-04-22T20:52:12") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 104, + StageUniqueId = 1041101, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 3, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T14:32:33"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T14:32:33"), + StarRewardReceive = DateTime.Parse("2024-04-20T14:32:33") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 104, + StageUniqueId = 1041102, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 3, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T17:42:39"), + TodayPlayCount = 11, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T14:37:22"), + StarRewardReceive = DateTime.Parse("2024-04-20T14:37:22") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 104, + StageUniqueId = 1041103, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 2, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T14:44:32"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T14:44:32"), + StarRewardReceive = DateTime.Parse("2024-04-20T14:44:32") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 104, + StageUniqueId = 1041104, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 2, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T14:49:44"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T14:49:44"), + StarRewardReceive = DateTime.Parse("2024-04-20T14:49:44") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 104, + StageUniqueId = 1041105, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 3, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T15:14:30"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T15:14:30"), + StarRewardReceive = DateTime.Parse("2024-04-20T15:14:30") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 104, + StageUniqueId = 1042101, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-02T16:15:06"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-02T16:15:06"), + StarRewardReceive = DateTime.Parse("2024-05-02T16:15:06") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 104, + StageUniqueId = 1042102, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-02T16:16:35"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-02T16:16:35"), + StarRewardReceive = DateTime.Parse("2024-05-02T16:16:35") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 104, + StageUniqueId = 1042103, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-02T16:18:48"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-02T16:18:48"), + StarRewardReceive = DateTime.Parse("2024-05-02T16:18:48") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 105, + StageUniqueId = 1051101, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 2, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T15:42:11"), + TodayPlayCount = 4, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T15:20:30"), + StarRewardReceive = DateTime.Parse("2024-04-20T15:20:30") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 105, + StageUniqueId = 1051102, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 2, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T15:27:10"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T15:27:10"), + StarRewardReceive = DateTime.Parse("2024-04-20T15:27:10") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 105, + StageUniqueId = 1051103, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 3, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T15:31:25"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T15:31:25"), + StarRewardReceive = DateTime.Parse("2024-04-20T15:31:25") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 105, + StageUniqueId = 1051104, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 3, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T15:35:54"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T15:35:54"), + StarRewardReceive = DateTime.Parse("2024-04-20T15:35:54") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 105, + StageUniqueId = 1051105, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 4, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T15:41:16"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T15:41:16"), + StarRewardReceive = DateTime.Parse("2024-04-20T15:41:16") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 105, + StageUniqueId = 1052101, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-02T16:20:22"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-02T16:20:22"), + StarRewardReceive = DateTime.Parse("2024-05-02T16:20:22") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 105, + StageUniqueId = 1052102, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-02T16:21:59"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-02T16:21:59"), + StarRewardReceive = DateTime.Parse("2024-05-02T16:21:59") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 105, + StageUniqueId = 1052103, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-02T16:23:42"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-02T16:23:42"), + StarRewardReceive = DateTime.Parse("2024-05-02T16:23:42") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 106, + StageUniqueId = 1061101, + TacticClearCountWithRankSRecord = 4, + ClearTurnRecord = 3, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T17:12:22"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T17:12:22"), + StarRewardReceive = DateTime.Parse("2024-04-20T17:12:22") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 106, + StageUniqueId = 1061102, + TacticClearCountWithRankSRecord = 4, + ClearTurnRecord = 3, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T17:20:59"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T17:20:59"), + StarRewardReceive = DateTime.Parse("2024-04-20T17:20:59") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 106, + StageUniqueId = 1061103, + TacticClearCountWithRankSRecord = 4, + ClearTurnRecord = 3, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T17:39:32"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T17:39:32"), + StarRewardReceive = DateTime.Parse("2024-04-20T17:39:32") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 106, + StageUniqueId = 1061104, + TacticClearCountWithRankSRecord = 4, + ClearTurnRecord = 3, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T17:53:49"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T17:53:49"), + StarRewardReceive = DateTime.Parse("2024-04-20T17:53:49") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 106, + StageUniqueId = 1061105, + TacticClearCountWithRankSRecord = 5, + ClearTurnRecord = 4, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T18:02:24"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T18:02:24"), + StarRewardReceive = DateTime.Parse("2024-04-20T18:02:24") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 106, + StageUniqueId = 1062101, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-02T16:25:11"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-02T16:25:11"), + StarRewardReceive = DateTime.Parse("2024-05-02T16:25:11") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 106, + StageUniqueId = 1062102, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-02T16:27:13"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-02T16:27:13"), + StarRewardReceive = DateTime.Parse("2024-05-02T16:27:13") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 106, + StageUniqueId = 1062103, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-02T16:28:49"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-02T16:28:49"), + StarRewardReceive = DateTime.Parse("2024-05-02T16:28:49") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 107, + StageUniqueId = 1071101, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 3, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-22T16:57:05"), + TodayPlayCount = 10, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T22:00:20"), + StarRewardReceive = DateTime.Parse("2024-04-20T22:00:20") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 107, + StageUniqueId = 1071102, + TacticClearCountWithRankSRecord = 3, + ClearTurnRecord = 2, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-20T22:07:18"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-20T22:07:18"), + StarRewardReceive = DateTime.Parse("2024-04-20T22:07:18") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 107, + StageUniqueId = 1071103, + TacticClearCountWithRankSRecord = 4, + ClearTurnRecord = 3, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-21T13:29:22"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-21T13:29:22"), + StarRewardReceive = DateTime.Parse("2024-04-21T13:29:22") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 107, + StageUniqueId = 1071104, + TacticClearCountWithRankSRecord = 4, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-04T20:58:22"), + TodayPlayCount = 8, + FirstClearRewardReceive = DateTime.Parse("2024-04-22T20:36:19"), + StarRewardReceive = DateTime.Parse("2024-04-25T11:27:54") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 107, + StageUniqueId = 1071105, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-29T20:17:08"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-25T11:23:03"), + StarRewardReceive = DateTime.Parse("2024-04-29T20:17:08") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 107, + StageUniqueId = 1072101, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-02T16:30:35"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-02T16:30:35"), + StarRewardReceive = DateTime.Parse("2024-05-02T16:30:35") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 107, + StageUniqueId = 1072102, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-02T16:32:53"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-02T16:32:53"), + StarRewardReceive = DateTime.Parse("2024-05-02T16:32:53") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 107, + StageUniqueId = 1072103, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-02T16:44:59"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-02T16:44:59"), + StarRewardReceive = DateTime.Parse("2024-05-02T16:44:59") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 108, + StageUniqueId = 1081101, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-29T20:20:03"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-25T14:59:00"), + StarRewardReceive = DateTime.Parse("2024-04-29T20:20:03") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 108, + StageUniqueId = 1081102, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-29T20:21:36"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-25T15:02:41"), + StarRewardReceive = DateTime.Parse("2024-04-29T20:21:36") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 108, + StageUniqueId = 1081103, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-29T20:23:07"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-25T15:07:07"), + StarRewardReceive = DateTime.Parse("2024-04-29T20:23:07") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 108, + StageUniqueId = 1081104, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-29T20:35:53"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-29T20:35:53"), + StarRewardReceive = DateTime.Parse("2024-04-29T20:35:53") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 108, + StageUniqueId = 1081105, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-29T20:39:05"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-29T20:39:05"), + StarRewardReceive = DateTime.Parse("2024-04-29T20:39:05") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 108, + StageUniqueId = 1082101, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-02T16:47:26"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-02T16:47:26"), + StarRewardReceive = DateTime.Parse("2024-05-02T16:47:26") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 108, + StageUniqueId = 1082102, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-02T16:49:11"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-02T16:49:11"), + StarRewardReceive = DateTime.Parse("2024-05-02T16:49:11") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 108, + StageUniqueId = 1082103, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-04T20:42:57"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-04T20:42:57"), + StarRewardReceive = DateTime.Parse("2024-05-04T20:42:57") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 109, + StageUniqueId = 1091101, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-30T20:38:44"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-30T20:38:44"), + StarRewardReceive = DateTime.Parse("2024-04-30T20:38:44") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 109, + StageUniqueId = 1091102, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-30T20:40:23"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-30T20:40:23"), + StarRewardReceive = DateTime.Parse("2024-04-30T20:40:23") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 109, + StageUniqueId = 1091103, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-30T20:46:10"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-30T20:46:10"), + StarRewardReceive = DateTime.Parse("2024-04-30T20:46:10") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 109, + StageUniqueId = 1091104, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-30T20:47:49"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-30T20:47:49"), + StarRewardReceive = DateTime.Parse("2024-04-30T20:47:49") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 109, + StageUniqueId = 1091105, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-30T20:49:44"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-30T20:49:44"), + StarRewardReceive = DateTime.Parse("2024-04-30T20:49:44") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 109, + StageUniqueId = 1092101, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-04T20:45:36"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-04T20:45:36"), + StarRewardReceive = DateTime.Parse("2024-05-04T20:45:36") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 109, + StageUniqueId = 1092102, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-04T20:47:18"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-04T20:47:18"), + StarRewardReceive = DateTime.Parse("2024-05-04T20:47:18") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 109, + StageUniqueId = 1092103, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-04T20:48:50"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-04T20:48:50"), + StarRewardReceive = DateTime.Parse("2024-05-04T20:48:50") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 110, + StageUniqueId = 1101101, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-30T20:51:57"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-30T20:51:57"), + StarRewardReceive = DateTime.Parse("2024-04-30T20:51:57") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 110, + StageUniqueId = 1101102, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-30T20:53:41"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-30T20:53:41"), + StarRewardReceive = DateTime.Parse("2024-04-30T20:53:41") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 110, + StageUniqueId = 1101103, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-30T20:55:36"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-30T20:55:36"), + StarRewardReceive = DateTime.Parse("2024-04-30T20:55:36") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 110, + StageUniqueId = 1101104, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-30T20:57:18"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-30T20:57:18"), + StarRewardReceive = DateTime.Parse("2024-04-30T20:57:18") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 110, + StageUniqueId = 1101105, + ClearTurnRecord = 1, + Star1Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-30T21:00:57"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-30T21:00:57") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 110, + StageUniqueId = 1102101, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-04T20:50:39"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-04T20:50:39"), + StarRewardReceive = DateTime.Parse("2024-05-04T20:50:39") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 110, + StageUniqueId = 1102102, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-04T20:52:14"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-04T20:52:14"), + StarRewardReceive = DateTime.Parse("2024-05-04T20:52:14") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 110, + StageUniqueId = 1102103, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-04T20:55:25"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-04T20:55:25"), + StarRewardReceive = DateTime.Parse("2024-05-04T20:55:25") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 111, + StageUniqueId = 1111101, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-04-30T21:03:25"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-30T21:03:25"), + StarRewardReceive = DateTime.Parse("2024-04-30T21:03:25") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 111, + StageUniqueId = 1111102, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-05T20:38:30"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-04-30T21:05:23"), + StarRewardReceive = DateTime.Parse("2024-05-05T20:38:30") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 111, + StageUniqueId = 1111103, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-05T20:39:56"), + TodayPlayCount = 2, + FirstClearRewardReceive = DateTime.Parse("2024-05-05T20:36:49"), + StarRewardReceive = DateTime.Parse("2024-05-05T20:39:56") + }, + new() { + AccountServerId = req.AccountId, + ChapterUniqueId = 111, + StageUniqueId = 1111104, + ClearTurnRecord = 1, + Star1Flag = true, + Star2Flag = true, + Star3Flag = true, + LastPlay = DateTime.Parse("2024-05-05T20:41:39"), + TodayPlayCount = 1, + FirstClearRewardReceive = DateTime.Parse("2024-05-05T20:41:39"), + StarRewardReceive = DateTime.Parse("2024-05-05T20:41:39") + } + ], }; + } [ProtocolHandler(Protocol.Campaign_EnterMainStage)] @@ -33,17 +1336,97 @@ namespace SCHALE.GameServer.Controllers.Api.ProtocolHandlers { SaveDataDB = new CampaignMainStageSaveDB() { - ContentType = ContentType.CampaignMainStage, LastEnemyEntityId = 10010, + EnemyInfos = new() + { + { 10008, new() { EntityId = 10008, Id = 101110101, Rotate = new() { x = 0, y = 240, z = 0 }, Location = new() { x = -1, y = 1 } } }, + { 10009, new() { EntityId = 10009, Id = 101110102, Rotate = new() { x = 0, y = 240, z = 0 } } }, + }, + + StrategyObjects = new() + { + { 10010, new() { EntityId = 10010, Id = 101101, Location = new() { x = -2, y = 2 } } }, + }, + + TileMapStates = new() + { + { 0, new() { } }, + { 1, new() { Id = 1 } }, + { 2, new() { Id = 2 } }, + }, + + StageEntranceFee = [ + new() + { + Key = new() { Type = ParcelType.Currency, Id = 5 }, + Amount = 10, + Multiplier = new(10000), + Probability = new(10000), + } + ], + + + + AccountServerId = req.AccountId, + ContentType = ContentType.CampaignMainStage, ActivatedHexaEventsAndConditions = new() { { 0, [0] } }, HexaEventDelayedExecutions = [], - CreateTime = DateTime.Parse("2024-04-22T18:33:21"), - StageUniqueId = 1011101, - StageEntranceFee = [], + CreateTime = DateTime.UtcNow, + StageUniqueId = req.StageUniqueId, + EnemyKillCountByUniqueId = [] } }; } + + /* + * SaveDataDB = new CampaignMainStageSaveDB() + { + EnemyInfos = new() + { + { 10006, new() { EntityId = 10006, Id = 102110101, Rotate = new() { x = 0, y = 240, z = 0 }, Location = new() { x = -1, z = 1 } } }, + { 10007, new() { EntityId = 10007, Id = 102110102, Rotate = new() { x = 0, y = 240, z = 0 }, Location = new() { x = -1, y = 1 } } }, + { 10008, new() { EntityId = 10008, Id = 102110103, Rotate = new() { x = 0, y = 240, z = 0 }, Location = new() { x = 1, y = -1 } } }, + }, + + StrategyObjects = new() + { + { 10012, new() { EntityId = 10012, Id = 101101, Location = new() { x = -1, y = 2, z = -1 } } }, + { 10013, new() { EntityId = 10013, Id = 107101 } }, + }, + + TileMapStates = new() + { + { 0, new() { } }, + { 1, new() { Id = 1 } }, + { 2, new() { Id = 2 } }, + { 3, new() { Id = 3 } }, + { 4, new() { Id = 4 } }, + }, + + StageEntranceFee = [ + new() + { + Key = new() { Type = ParcelType.Currency, Id = 5 }, + Amount = 10, + Multiplier = new(10000), + Probability = new(10000), + } + ], + + LastEnemyEntityId = 10013, + AccountServerId = req.AccountId, + + + ContentType = ContentType.CampaignMainStage, + ActivatedHexaEventsAndConditions = new() { { 0, [0] } }, + HexaEventDelayedExecutions = [], + CreateTime = DateTime.UtcNow, + StageUniqueId = req.StageUniqueId, + + EnemyKillCountByUniqueId = [] + } + */ } } diff --git a/SCHALE.GameServer/Controllers/Api/ProtocolHandlers/EventContent.cs b/SCHALE.GameServer/Controllers/Api/ProtocolHandlers/EventContent.cs index bfb5a7d..b20751d 100644 --- a/SCHALE.GameServer/Controllers/Api/ProtocolHandlers/EventContent.cs +++ b/SCHALE.GameServer/Controllers/Api/ProtocolHandlers/EventContent.cs @@ -24,5 +24,23 @@ namespace SCHALE.GameServer.Controllers.Api.ProtocolHandlers }; } + + [ProtocolHandler(Protocol.EventContent_AdventureList)] + public ResponsePacket AdventureListHandler(EventContentAdventureListRequest req) + { + return new EventContentAdventureListResponse() + { + + }; + } + + [ProtocolHandler(Protocol.EventContent_ScenarioGroupHistoryUpdate)] + public ResponsePacket AdventureListHandler(EventContentScenarioGroupHistoryUpdateRequest req) + { + return new EventContentScenarioGroupHistoryUpdateResponse() + { + + }; + } } } diff --git a/SCHALE.GameServer/Controllers/Api/ProtocolHandlers/Raid.cs b/SCHALE.GameServer/Controllers/Api/ProtocolHandlers/Raid.cs index 6726269..de12e75 100644 --- a/SCHALE.GameServer/Controllers/Api/ProtocolHandlers/Raid.cs +++ b/SCHALE.GameServer/Controllers/Api/ProtocolHandlers/Raid.cs @@ -3,6 +3,7 @@ using SCHALE.Common.FlatData; using SCHALE.Common.NetworkProtocol; using SCHALE.GameServer.Managers; using SCHALE.GameServer.Services; +using Serilog; namespace SCHALE.GameServer.Controllers.Api.ProtocolHandlers { @@ -11,12 +12,14 @@ namespace SCHALE.GameServer.Controllers.Api.ProtocolHandlers private readonly ISessionKeyService sessionKeyService; private readonly SCHALEContext context; private readonly ExcelTableService excelTableService; + private readonly DatabaseAPIService databaseAPIService; - public Raid(IProtocolHandlerFactory protocolHandlerFactory, ISessionKeyService _sessionKeyService, SCHALEContext _context, ExcelTableService _excelTableService) : base(protocolHandlerFactory) + public Raid(IProtocolHandlerFactory protocolHandlerFactory, ISessionKeyService _sessionKeyService, SCHALEContext _context, ExcelTableService _excelTableService, DatabaseAPIService _databaseAPIService) : base(protocolHandlerFactory) { sessionKeyService = _sessionKeyService; context = _context; excelTableService = _excelTableService; + databaseAPIService = _databaseAPIService; } [ProtocolHandler(Protocol.Raid_Lobby)] @@ -111,9 +114,164 @@ namespace SCHALE.GameServer.Controllers.Api.ProtocolHandlers [ProtocolHandler(Protocol.Raid_OpponentList)] public ResponsePacket OpponentListHandler(RaidOpponentListRequest req) { + Log.Information("rank: " + req.Rank); + Log.Information("score: " + req.Score); + Log.Information("isUpper: " + req.IsUpper); + Log.Information("IsFirstRequest: " + req.IsFirstRequest); + Log.Information("RankingSearchType: " + req.SearchType); + + /* + RaidData data = databaseAPIService.GetApiData(); + + List opponentUserDBs = new List(); + + Log.Information("raiddata count:" + data.RaidMembers.Count); + Log.Information("raiddata name1:" + data.RaidMembers[0].Name); + + for (int i = 0; i < data.RaidMembers.Count; i++) + { + RaidMember currMember = data.RaidMembers[i]; + + SingleRaidUserDB raidMember = new SingleRaidUserDB() + { + AccountId = i + 2, + RepresentCharacterUniqueId = 19009113, + Level = 1, + Nickname = currMember.Name, + Tier = 0, + Rank = i + 1, + BestRankingPoint = currMember.Score, + BestRankingPointDetail = currMember.Score, + AccountAttachmentDB = new() + { + AccountId = 2, + EmblemUniqueId = 5100382 + }, + + RaidTeamSettingDB = new() + { + AccountId = i + 2, + EchelonType = EchelonType.Raid, + MainCharacterDBs = [ + new RaidCharacterDB() { + ServerId = 3, + UniqueId = 19090002, + StarGrade = 5, + Level = 1, + HasWeapon = true, + WeaponStarGrade = 3, + }, + ], + SupportCharacterDBs = [ + new RaidCharacterDB() { + ServerId = 1, + UniqueId = 19090001, + StarGrade = 5, + Level = 1, + HasWeapon = true, + WeaponStarGrade = 3, + SlotIndex = 1 + } + ], + SkillCardMulliganCharacterIds = [10033], + LeaderCharacterUniqueId = 10033 + } + }; + + opponentUserDBs.Add(raidMember); + } + return new RaidOpponentListResponse() { - OpponentUserDBs = [] + OpponentUserDBs = opponentUserDBs + }; + + */ + + return new RaidOpponentListResponse() + { + OpponentUserDBs = [ + new() + { + AccountId = 2, + RepresentCharacterUniqueId = 19009113, + Level = 1, + Nickname = "夏萝莉是小楠梁", + Tier = 0, + Rank = 1, + BestRankingPoint = int.MaxValue, + BestRankingPointDetail = int.MaxValue, + AccountAttachmentDB = new() { + AccountId = 2, + EmblemUniqueId = 5100382 + }, + + RaidTeamSettingDB = new() { + AccountId = 2, + EchelonType = EchelonType.Raid, + MainCharacterDBs = [ + new RaidCharacterDB() { + ServerId = 3, + UniqueId = 19090002, + StarGrade = 5, + Level = 1, + HasWeapon = true, + WeaponStarGrade = 3, + }, + new RaidCharacterDB() { + ServerId = 3, + UniqueId = 7403700, + StarGrade = 5, + Level = 1, + HasWeapon = true, + WeaponStarGrade = 3, + SlotIndex = 1 + }, + new RaidCharacterDB() { + ServerId = 3, + UniqueId = 610240702, + StarGrade = 5, + Level = 1, + HasWeapon = true, + WeaponStarGrade = 3, + SlotIndex = 2 + }, + new RaidCharacterDB() { + ServerId = 3, + UniqueId = 19090001, + StarGrade = 5, + Level = 1, + HasWeapon = true, + WeaponStarGrade = 3, + SlotIndex = 3 + }, + + ], + SupportCharacterDBs = [ + new RaidCharacterDB() { + ServerId = 2, + UniqueId = 19090002, + StarGrade = 5, + Level = 1, + HasWeapon = true, + WeaponStarGrade = 3, + }, + new RaidCharacterDB() { + ServerId = 1, + UniqueId = 19090001, + StarGrade = 5, + Level = 1, + HasWeapon = true, + WeaponStarGrade = 3, + SlotIndex = 1 + } + ], + SkillCardMulliganCharacterIds = [10033], + LeaderCharacterUniqueId = 10033 + } + + } + ] }; } } diff --git a/SCHALE.GameServer/Controllers/Api/ProtocolHandlers/Shop.cs b/SCHALE.GameServer/Controllers/Api/ProtocolHandlers/Shop.cs index ace1f2b..60936c5 100644 --- a/SCHALE.GameServer/Controllers/Api/ProtocolHandlers/Shop.cs +++ b/SCHALE.GameServer/Controllers/Api/ProtocolHandlers/Shop.cs @@ -125,6 +125,18 @@ namespace SCHALE.GameServer.Controllers.Api.ProtocolHandlers var itemDict = new AccDict(); bool shouldDoGuaranteedSR = true; // itemDict[gpStoneID] = 10; + //for (int i = 0; i < 10; ++i) + //{ + // gachaList.Add(new(7403700) + // { + // Character = new() + // { + // AccountServerId = account.ServerId, + // UniqueId = 7403700, + // StarGrade = 3, + // }, + // }); + //} for (int i = 0; i < 10; ++i) { diff --git a/SCHALE.GameServer/GameServer.cs b/SCHALE.GameServer/GameServer.cs index 070fa52..3ccebe7 100644 --- a/SCHALE.GameServer/GameServer.cs +++ b/SCHALE.GameServer/GameServer.cs @@ -7,6 +7,7 @@ using Microsoft.EntityFrameworkCore; using SCHALE.Common.Crypto; using SCHALE.Common.Database; using SCHALE.GameServer.Commands; +using SCHALE.GameServer.Controllers; using SCHALE.GameServer.Controllers.Api.ProtocolHandlers; using SCHALE.GameServer.Services; using SCHALE.GameServer.Services.Irc; @@ -89,6 +90,9 @@ namespace SCHALE.GameServer builder.Services.AddIrcService(); builder.Services.AddSharedDataCache(); + builder.Services.AddHttpClient(); + builder.Services.AddSingleton(); + // Add all Handler Groups var handlerGroups = Assembly .GetExecutingAssembly() diff --git a/SCHALE.GameServer/Managers/RaidManager.cs b/SCHALE.GameServer/Managers/RaidManager.cs index c3acc69..93711cf 100644 --- a/SCHALE.GameServer/Managers/RaidManager.cs +++ b/SCHALE.GameServer/Managers/RaidManager.cs @@ -21,7 +21,7 @@ namespace SCHALE.GameServer.Managers RaidLobbyInfoDB = new SingleRaidLobbyInfoDB() { Tier = 0, - Ranking = 1, + Ranking = 123, SeasonId = raidInfo.SeasonId, BestRankingPoint = 0, TotalRankingPoint = 0, diff --git a/SCHALE.GameServer/Services/DatabaseAPIService.cs b/SCHALE.GameServer/Services/DatabaseAPIService.cs new file mode 100644 index 0000000..0894a8d --- /dev/null +++ b/SCHALE.GameServer/Services/DatabaseAPIService.cs @@ -0,0 +1,43 @@ +using Newtonsoft.Json; + +namespace SCHALE.GameServer.Services +{ + public class DatabaseAPIService + { + private readonly HttpClient _httpClient; + public static readonly string API_URL = "[redacted]"; + + public DatabaseAPIService(HttpClient httpClient) + { + _httpClient = httpClient; + } + + public RaidData GetApiData() + { + var response = _httpClient.GetAsync(API_URL).GetAwaiter().GetResult(); + + if (response.IsSuccessStatusCode) + { + var jsonData = response.Content.ReadAsStringAsync().GetAwaiter().GetResult(); + return JsonConvert.DeserializeObject(jsonData); + } else + { + throw new Exception("Error retrieving data from API."); + } + } + } + + public class RaidData + { + public List RaidMembers { get; set; } + } + + public class RaidMember + { + [JsonProperty("name")] + public string Name { get; set; } + + [JsonProperty("score")] + public long Score { get; set; } + } +}