Merge branch 'master' into WatchAndyTW/master

This commit is contained in:
Somebody
2024-05-02 18:38:24 +08:00
committed by GitHub
585 changed files with 24184 additions and 9360 deletions

View File

@@ -15,8 +15,6 @@ namespace EggLink.DanhengServer.Configuration
public class HttpServerConfig
{
public string BindAddress { get; set; } = "127.0.0.1";
public int Port { get; set; } = 443;
public string PublicAddress { get; set; } = "127.0.0.1";
public int PublicPort { get; set; } = 443;
public bool UseSSL { get; set; } = true;
@@ -34,8 +32,6 @@ namespace EggLink.DanhengServer.Configuration
public class GameServerConfig
{
public string BindAddress { get; set; } = "127.0.0.1";
public int Port { get; set; } = 23301;
public string PublicAddress { get; set; } = "127.0.0.1";
public uint PublicPort { get; set; } = 23301;
public string GameServerId { get; set; } = "dan_heng";
@@ -62,6 +58,8 @@ namespace EggLink.DanhengServer.Configuration
{
public int StartTrailblazerLevel { get; set; } = 1;
public bool AutoUpgradeWorldLevel { get; set; } = true;
public bool EnableMission { get; set; } = true; // experimental
public bool AutoLightSection { get; set; } = true;
public string Language { get; set; } = "EN";
public List<string> DefaultPermissions { get; set; } = ["*"];
public ServerProfile ServerProfile { get; set; } = new ServerProfile();

View File

@@ -0,0 +1,52 @@
using EggLink.DanhengServer.Util;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Config
{
public class DialogueInfo
{
public List<DialogueTaskInfo> OnInitSequece { get; set; } = [];
public List<DialogueTaskInfo> OnStartSequece { get; set; } = [];
[JsonIgnore]
public List<int> DialogueIds { get; set; } = [];
public void Loaded()
{
foreach (var task in OnInitSequece)
{
foreach (var ta in task.TaskList)
{
foreach (var option in ta.OptionList)
{
DialogueIds.Add(option.DialogueEventID);
}
}
}
foreach (var task in OnStartSequece)
{
foreach (var ta in task.TaskList)
{
foreach (var option in ta.OptionList)
{
DialogueIds.Add(option.DialogueEventID);
}
}
}
}
}
public class DialogueTaskInfo
{
public List<DialogueTaskInfo> TaskList { get; set; } = [];
public List<DialogueTaskInfo> OptionList { get; set; } = [];
public int DialogueEventID { get; set; }
}
}

View File

@@ -1,4 +1,4 @@
using EggLink.DanhengServer.Enums;
using EggLink.DanhengServer.Enums.Scene;
using EggLink.DanhengServer.Util;
using Newtonsoft.Json;

View File

@@ -1,5 +1,7 @@
using EggLink.DanhengServer.Database.Mission;
using EggLink.DanhengServer.Enums;
using EggLink.DanhengServer.Enums.Scene;
using EggLink.DanhengServer.Util;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using static System.Formats.Asn1.AsnWriter;
@@ -56,6 +58,7 @@ namespace EggLink.DanhengServer.Data.Config
{
info = MissionPhaseEnum.None;
}
if (!ConfigManager.Config.ServerOption.EnableMission) info = MissionPhaseEnum.Finish;
if (info != condition.Phase)
{
if (Operation == OperationEnum.And)
@@ -79,6 +82,7 @@ namespace EggLink.DanhengServer.Data.Config
if (subMission == null) continue;
var mainMissionId = subMission.MainMissionID;
mission.MissionInfo.TryGetValue(mainMissionId, out var info);
if (!ConfigManager.Config.ServerOption.EnableMission) info = new(){ { condition.ID, new() { Status = MissionPhaseEnum.Finish } } };
if (info?.TryGetValue(condition.ID, out var missionInfo) == true)
{
if (missionInfo.Status != condition.Phase)

View File

@@ -1,4 +1,6 @@
using EggLink.DanhengServer.Enums;
using EggLink.DanhengServer.Data.Excel;
using EggLink.DanhengServer.Enums;
using EggLink.DanhengServer.Enums.Scene;
using EggLink.DanhengServer.Util;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
@@ -25,13 +27,19 @@ namespace EggLink.DanhengServer.Data.Config
public int ParamInt2 { get; set; }
public int ParamInt3 { get; set; }
public List<int> ParamIntList { get; set; } = [];
public List<MaterialItem> ParamItemList { get; set; } = [];
public List<FinishActionInfo> FinishActionList { get; set; } = [];
public int Progress { get; set; }
[JsonIgnore]
public OperationEnum Operation { get; set; } = OperationEnum.And;
[JsonIgnore]
public SubMissionTask<EnterFloorTaskInfo> Task { get; set; } = new();
[JsonIgnore]
public SubMissionTask<PropStateTaskInfo> PropTask { get; set; } = new();
[JsonIgnore]
public SubMissionTask<StageWinTaskInfo> StageWinTask { get; set; } = new();
[JsonIgnore]
public int MapEntranceID { get; set; }
@@ -41,11 +49,19 @@ namespace EggLink.DanhengServer.Data.Config
[JsonIgnore]
public int AnchorID { get; set; }
[JsonIgnore]
public List<int> StageList { get; set; } = [];
[JsonIgnore]
public PropStateEnum SourceState { get; set; } = PropStateEnum.Closed;
public void Loaded(int type) // 1 for EnterFloor, 2 for PropState
{
if (MainMissionID == 1000400)
{
Operation = OperationEnum.Or; // hacky way to get the Operation
}
if (type == 1)
{
try
@@ -64,12 +80,12 @@ namespace EggLink.DanhengServer.Data.Config
}
if (MapEntranceID == 0)
{
MapEntranceID = int.Parse(ParamInt2.ToString().Replace("00", "0")); // this is a hacky way to get the MapEntranceID
MapEntranceID = int.Parse(ParamInt2.ToString().Replace("00", "0")); // a hacky way to get the MapEntranceID
}
}
catch
{
MapEntranceID = int.Parse(ParamInt2.ToString().Replace("00", "0")); // this is a hacky way to get the MapEntranceID
MapEntranceID = int.Parse(ParamInt2.ToString().Replace("00", "0")); // a hacky way to get the MapEntranceID
}
} else if (type == 2)
{
@@ -94,6 +110,21 @@ namespace EggLink.DanhengServer.Data.Config
}
}
}
} else if (type == 3)
{
foreach (var task in StageWinTask.OnStartSequece)
{
foreach (var stageWinTask in task.TaskList)
{
if (stageWinTask.Type == "RPG.GameCore.TriggerBattle")
{
if (stageWinTask.EventID.GetValue() > 0)
{
StageList.Add(stageWinTask.EventID.GetValue());
}
}
}
}
}
}
}
@@ -131,4 +162,21 @@ namespace EggLink.DanhengServer.Data.Config
public List<PropStateTaskInfo>? ButtonCallBack { get; set; }
}
public class StageWinTaskInfo
{
public string Type { get; set; } = "";
public StageWinTaskEventInfo EventID { get; set; } = new();
}
public class StageWinTaskEventInfo
{
public bool IsDynamic { get; set; }
public FixedValueInfo<int> FixedValue { get; set; } = new();
public int GetValue()
{
return IsDynamic ? 0 : FixedValue.Value;
}
}
}

View File

@@ -1,4 +1,4 @@
using EggLink.DanhengServer.Enums;
using EggLink.DanhengServer.Enums.Scene;
using EggLink.DanhengServer.Util;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;

View File

@@ -1,4 +1,4 @@
using EggLink.DanhengServer.Enums;
using EggLink.DanhengServer.Enums.Avatar;
using EggLink.DanhengServer.Util;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
@@ -26,6 +26,8 @@ namespace EggLink.DanhengServer.Data.Config
public List<TaskInfo> OnProjectileHit { get; set; } = [];
public List<TaskInfo> OnProjectileLifetimeFinish { get; set; } = [];
public LifeTimeInfo LifeTime { get; set; } = new();
[JsonIgnore]
public TaskTypeEnum TaskType { get; set; } = TaskTypeEnum.None;
@@ -95,4 +97,28 @@ namespace EggLink.DanhengServer.Data.Config
return attackInfo;
}
}
public class LifeTimeInfo
{
public bool IsDynamic { get; set; } = false;
public FixedValueInfo<double> FixedValue { get; set; } = new();
public int GetLifeTime()
{
if (IsDynamic)
{
return 20; // find a better way to get the value
}
if (FixedValue.Value <= 0)
{
return -1; // infinite
}
return (int)(FixedValue.Value * 10);
}
}
public class FixedValueInfo<T>
{
public T Value { get; set; } = default!;
}
}

View File

@@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Custom
{
public class ActivityConfig
{
public List<ActivityScheduleData> ScheduleData { get; set; } = [];
}
public class ActivityScheduleData
{
public int ActivityId { get; set; }
public long BeginTime { get; set; }
public long EndTime { get; set; }
public int PanelId { get; set; }
}
}

View File

@@ -0,0 +1,23 @@
using EggLink.DanhengServer.Util;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Custom
{
public class ChessRogueCellConfig
{
public double PosX { get; set; }
public double PosY { get; set; }
public double PosZ { get; set; }
public double RotY { get; set; }
public List<int> Groups { get; set; } = [];
public Position ToPosition() => new((int) (PosX * 10000), (int) (PosY * 10000), (int) (PosZ * 10000));
public Position ToRotation() => new(0, (int) RotY * 10000, 0);
}
}

View File

@@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Custom
{
public class ChessRogueRoomConfig
{
public int EntranceId { get; set; }
public List<int> Groups { get; set; } = [];
public Dictionary<int, ChessRogueRoom> CellGroup { get; set; } = [];
}
public class ChessRogueRoom
{
public List<int> Groups { get; set; } = [];
public bool IsBoss { get; set; } = false;
public bool IsLastBoss { get; set; } = false;
}
}

View File

@@ -0,0 +1,30 @@
using EggLink.DanhengServer.Enums.Rogue;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
namespace EggLink.DanhengServer.Data.Custom
{
public class RogueMiracleEffectConfig
{
public Dictionary<int, RogueMiracleEffect> Miracles { get; set; } = [];
}
public class RogueMiracleEffect
{
public int MiracleId { get; set; }
public int MaxDurability { get; set; }
public Dictionary<int, RogueEffect> Effects { get; set; } = [];
}
public class RogueEffect
{
public int EffectId { get; set; }
[JsonConverter(typeof(StringEnumConverter))]
public RogueMiracleEffectTypeEnum Type { get; set; }
public string DynamicKey { get; set; } = ""; // for arguments
public List<int> Params { get; set; } = [];
}
}

View File

@@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Excel
{
[ResourceEntity("ActionPointOverdraw.json")]
public class ActionPointOverdrawExcel : ExcelResource
{
public int ActionPoint { get; set; }
public int MazeBuff { get; set; }
public override int GetId()
{
return ActionPoint;
}
public override void Loaded()
{
GameData.ActionPointOverdrawData.Add(ActionPoint, this);
}
}
}

View File

@@ -1,5 +1,6 @@
using EggLink.DanhengServer.Data.Config;
using EggLink.DanhengServer.Enums;
using EggLink.DanhengServer.Enums.Avatar;
using EggLink.DanhengServer.Enums.Item;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using System.Text.RegularExpressions;
@@ -24,6 +25,9 @@ namespace EggLink.DanhengServer.Data.Excel
[JsonIgnore()]
public List<AvatarSkillTreeConfigExcel> DefaultSkillTree = [];
[JsonIgnore]
public List<AvatarSkillTreeConfigExcel> SkillTree = [];
[JsonIgnore()]
public int RankUpItemId { get; set; }

View File

@@ -22,6 +22,10 @@
{
excel.DefaultSkillTree.Add(this);
}
if (excel != null)
{
excel.SkillTree.Add(this);
}
GameData.AvatarSkillTreeConfigData.Add(GetId(), this);
}
}

View File

@@ -0,0 +1,40 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Excel
{
[ResourceEntity("BattleEventData.json")]
public partial class BattleEventDataExcel : ExcelResource
{
public int BattleEventID { get; set; }
public string Config { get; set; } = "";
[GeneratedRegex(@"(?<=Avatar_RogueBattleevent)(.*?)(?=_Config.json)")]
private static partial Regex RegexConfig();
public override int GetId()
{
return BattleEventID;
}
public override void Loaded()
{
try
{
Match match = RegexConfig().Match(Config);
if (match.Success)
{
int rogueBuffType = int.Parse(match.Value);
GameData.RogueBattleEventData.Add(rogueBuffType, this);
}
} catch
{
}
}
}
}

View File

@@ -0,0 +1,39 @@
using EggLink.DanhengServer.Enums.Rogue;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Excel
{
[ResourceEntity("DialogueDynamicContent.json")]
public class DialogueDynamicContentExcel : ExcelResource
{
public int DynamicContentID { get; set; }
public int ArgID { get; set; }
[JsonConverter(typeof(StringEnumConverter))]
public DialogueDynamicParamTypeEnum DynamicParamType { get; set; }
public List<int> DynamicParamList { get; set; } = [];
public override int GetId()
{
return DynamicContentID;
}
public override void Loaded()
{
if (GameData.DialogueDynamicContentData.TryGetValue(DynamicContentID, out Dictionary<int, DialogueDynamicContentExcel>? value))
{
value.Add(ArgID, this);
}
else
{
GameData.DialogueDynamicContentData.Add(DynamicContentID, new() { { ArgID, this } });
}
}
}
}

View File

@@ -0,0 +1,33 @@
using EggLink.DanhengServer.Enums.Rogue;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
namespace EggLink.DanhengServer.Data.Excel
{
[ResourceEntity("DialogueEvent.json")]
public class DialogueEventExcel : ExcelResource
{
public int EventID { get; set; }
[JsonConverter(typeof(StringEnumConverter))]
public DialogueEventTypeEnum RogueEffectType { get; set; }
public List<int> RogueEffectParamList { get; set; } = [];
[JsonConverter(typeof(StringEnumConverter))]
public DialogueEventCostTypeEnum CostType { get; set; }
public List<int> CostParamList { get; set; } = [];
public int DynamicContentID { get; set; }
public int DescValue { get; set; }
public override int GetId()
{
return EventID;
}
public override void Loaded()
{
GameData.DialogueEventData.Add(EventID, this);
}
}
}

View File

@@ -1,4 +1,4 @@
using EggLink.DanhengServer.Enums;
using EggLink.DanhengServer.Enums.Item;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using System;

View File

@@ -1,4 +1,4 @@
using EggLink.DanhengServer.Enums;
using EggLink.DanhengServer.Enums.Scene;
using Newtonsoft.Json.Converters;
using System.Text.Json.Serialization;

View File

@@ -0,0 +1,33 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Excel
{
[ResourceEntity("ItemComposeConfig.json")]
public class ItemComposeConfigExcel : ExcelResource
{
public int ID { get; set; }
public int ItemID { get; set; }
public int CoinCost { get; set; }
public List<MaterialItem> MaterialCost { get; set; } = [];
public override int GetId()
{
return ID;
}
public override void Loaded()
{
GameData.ItemComposeConfigData[ID] = this;
}
}
public class MaterialItem
{
public int ItemID { get; set; }
public int ItemNum { get; set; }
}
}

View File

@@ -1,4 +1,4 @@
using EggLink.DanhengServer.Enums;
using EggLink.DanhengServer.Enums.Item;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;

View File

@@ -1,4 +1,4 @@
using EggLink.DanhengServer.Enums;
using EggLink.DanhengServer.Enums.Scene;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using System;

View File

@@ -1,4 +1,4 @@
using EggLink.DanhengServer.Enums;
using EggLink.DanhengServer.Enums.Scene;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using System;

View File

@@ -31,14 +31,15 @@ namespace EggLink.DanhengServer.Data.Excel
{
GameData.ItemConfigData.TryGetValue(item.ItemID, out var config);
if (config == null) continue;
double mod = config.Rarity switch
{
Enums.ItemRarityEnum.NotNormal => 0.8,
Enums.ItemRarityEnum.Rare => 0.3,
Enums.ItemRarityEnum.VeryRare => 0.125,
Enums.ItemRarityEnum.SuperRare => 0,
_ => 1,
};
//double mod = config.Rarity switch
//{
// Enums.ItemRarityEnum.NotNormal => 0.8,
// Enums.ItemRarityEnum.Rare => 0.3,
// Enums.ItemRarityEnum.VeryRare => 0.125,
// Enums.ItemRarityEnum.SuperRare => 0,
// _ => 1,
//};
double mod = 1; // TODO: Implement rarity
double count = WorldLevel + 3;
var maxCount = (int)(count * mod);
var minCount = (int)(count * mod * 0.5);

View File

@@ -12,6 +12,7 @@ namespace EggLink.DanhengServer.Data.Excel
public int EventID { get; set; }
public int WorldLevel { get; set; }
public int Reward { get; set; }
public int StageID { get; set; }
public override int GetId()
{

View File

@@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Excel
{
[ResourceEntity("RaidConfig.json")]
public class RaidConfigExcel : ExcelResource
{
public int RaidID { get; set; }
public int HardLevel { get; set; }
public int FinishEntranceID { get; set; }
public List<int> MainMissionIDList { get; set; } = [];
public override int GetId()
{
return RaidID * 100 + HardLevel;
}
public override void Loaded()
{
GameData.RaidConfigData.Add(GetId(), this);
}
}
}

View File

@@ -1,4 +1,4 @@
using EggLink.DanhengServer.Enums;
using EggLink.DanhengServer.Enums.Avatar;
namespace EggLink.DanhengServer.Data.Excel
{

View File

@@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Excel
{
[ResourceEntity("RogueAeon.json")]
public class RogueAeonExcel : ExcelResource
{
public int AeonID { get; set; }
public int RogueVersion { get; set; }
public int RogueBuffType { get; set; }
public int BattleEventBuffGroup { get; set; }
public int BattleEventEnhanceBuffGroup { get; set; }
public override int GetId()
{
return AeonID;
}
public override void Loaded()
{
GameData.RogueAeonData.Add(GetId(), this);
}
}
}

View File

@@ -0,0 +1,46 @@
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Excel
{
[ResourceEntity("RogueAreaConfig.json")]
public class RogueAreaConfigExcel : ExcelResource
{
public int RogueAreaID { get; set; }
public int AreaProgress { get; set; }
public int Difficulty { get; set; }
public int FirstReward { get; set; }
public Dictionary<int, int> ScoreMap { get; set; } = [];
[JsonIgnore]
public int MapId { get; set; }
[JsonIgnore]
public Dictionary<int, RogueMapExcel> RogueMaps { get; set; } = [];
public override int GetId()
{
return RogueAreaID;
}
public override void Loaded()
{
GameData.RogueAreaConfigData.Add(RogueAreaID, this);
MapId = AreaProgress * 100 + Difficulty;
}
public override void AfterAllDone()
{
GameData.RogueMapData.TryGetValue(MapId, out var map);
if (map != null)
{
RogueMaps = map;
}
}
}
}

View File

@@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Excel
{
[ResourceEntity("RogueBonus.json")]
public class RogueBonusExcel : ExcelResource
{
public int BonusID { get; set; }
public int BonusEvent { get; set; }
public override int GetId()
{
return BonusID;
}
public override void Loaded()
{
GameData.RogueBonusData.Add(GetId(), this);
}
}
}

View File

@@ -0,0 +1,57 @@
using EggLink.DanhengServer.Enums.Rogue;
using EggLink.DanhengServer.Proto;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
namespace EggLink.DanhengServer.Data.Excel
{
[ResourceEntity("RogueBuff.json")]
public class RogueBuffExcel : ExcelResource
{
public int MazeBuffID { get; set; }
public int MazeBuffLevel { get; set; }
public int RogueBuffType { get; set; }
public int RogueBuffRarity { get; set; }
public int RogueBuffTag { get; set; }
public int AeonID { get; set; }
[JsonConverter(typeof(StringEnumConverter))]
public RogueBuffAeonTypeEnum BattleEventBuffType { get; set; } = RogueBuffAeonTypeEnum.Normal;
public override int GetId()
{
return MazeBuffID * 100 + MazeBuffLevel;
}
public override void Loaded()
{
GameData.RogueBuffData.Add(GetId(), this);
if (BattleEventBuffType == RogueBuffAeonTypeEnum.BattleEventBuff)
{
GameData.RogueAeonBuffData.Add(AeonID, this);
} else if (BattleEventBuffType == RogueBuffAeonTypeEnum.BattleEventBuffEnhance)
{
if (GameData.RogueAeonEnhanceData.TryGetValue(AeonID, out var aeonBuff))
{
aeonBuff.Add(this);
}
else
{
GameData.RogueAeonEnhanceData.Add(AeonID, [this]);
}
}
}
public RogueCommonBuff ToProto()
{
return new()
{
BuffId = (uint)MazeBuffID,
BuffLevel = (uint)MazeBuffLevel,
};
}
public bool IsAeonBuff => BattleEventBuffType != RogueBuffAeonTypeEnum.Normal;
}
}

View File

@@ -0,0 +1,73 @@
using EggLink.DanhengServer.Util;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Excel
{
[ResourceEntity("RogueBuffGroup.json")]
public class RogueBuffGroupExcel : ExcelResource
{
[JsonProperty("EGDAIIJDDPA")]
public int GroupID { get; set; }
[JsonProperty("AMGHNOBDGLM")]
public List<int> BuffTagList { get; set; } = [];
[JsonIgnore]
public List<RogueBuffExcel> BuffList { get; set; } = [];
[JsonIgnore]
public bool IsLoaded { get; set; }
public override int GetId()
{
return GroupID;
}
public override void Loaded()
{
GameData.RogueBuffGroupData.Add(GetId(), this);
LoadBuff();
}
public override void AfterAllDone()
{
LoadBuff();
}
public void LoadBuff()
{
if (IsLoaded)
{
return;
}
var count = 0;
foreach (var buffID in BuffTagList)
{
if (GameData.RogueBuffData.FirstOrDefault(x => x.Value.RogueBuffTag == buffID).Value is RogueBuffExcel buff)
{
BuffList.SafeAdd(buff);
count++;
}
else
{
// might is group id
if (GameData.RogueBuffGroupData.TryGetValue(buffID, out var group))
{
group.LoadBuff();
BuffList.SafeAddRange(group.BuffList);
count++;
}
}
}
if (count == BuffTagList.Count)
{
IsLoaded = true;
}
}
}
}

View File

@@ -0,0 +1,55 @@
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Excel
{
[ResourceEntity("RogueDLCArea.json")]
public class RogueDLCAreaExcel : ExcelResource
{
public int AreaID { get; set; }
public string SubType { get; set; } = "";
public List<int> LayerIDList { get; set; } = [];
public List<int> DifficultyID { get; set; } = [];
public int FirstReward { get; set; }
public List<RogueDLCAreaScoreMap> AreaScoreMap { get; set; } = [];
[JsonIgnore]
public int RogueVersionId { get; set; }
public override int GetId()
{
return AreaID;
}
public override void Loaded()
{
GameData.RogueDLCAreaData[AreaID] = this;
if (SubType.Contains("Nous"))
{
RogueVersionId = 202;
}
else
{
RogueVersionId = 201;
}
}
}
public class RogueDLCAreaScoreMap
{
[JsonProperty("NALLPFKBHIO")]
public int Layer { get; set; }
[JsonProperty("GGOHPEDAKJE")]
public int ExploreScore { get; set; }
[JsonProperty("BELDLJADLKO")]
public int FinishScore { get; set; }
}
}

View File

@@ -0,0 +1,33 @@
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Excel
{
[ResourceEntity("RogueDLCBossBp.json")]
public class RogueDLCBossBpExcel : ExcelResource
{
public int BossBpID { get; set; }
public List<BossAndFloorInfo> MonsterAndFloorList { get; set; } = [];
public List<int> BossDecayList { get; set; } = [];
public override int GetId()
{
return BossBpID;
}
public override void Loaded()
{
GameData.RogueDLCBossBpData.Add(BossBpID, this);
}
}
public class BossAndFloorInfo
{
[JsonProperty("LKPOGAKCEMO")]
public int MonsterId { get; set; }
}
}

View File

@@ -0,0 +1,31 @@
using EggLink.DanhengServer.Enums.Rogue;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Excel
{
[ResourceEntity("RogueDLCBossDecay.json")]
public class RogueDLCBossDecayExcel : ExcelResource
{
public int BossDecayID { get; set; }
[JsonConverter(typeof(StringEnumConverter))]
public BossDecayEffectTypeEnum EffectType { get; set; }
public List<int> EffectParamList { get; set; } = [];
public override int GetId()
{
return BossDecayID;
}
public override void Loaded()
{
GameData.RogueDLCBossDecayData.Add(GetId(), this);
}
}
}

View File

@@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Excel
{
[ResourceEntity("RogueDLCDifficulty.json")]
public class RogueDLCDifficultyExcel : ExcelResource
{
public int DifficultyID { get; set; }
public List<int> DifficultyCutList { get; set; } = [];
public List<int> DifficultyLevelGroup { get; set; } = [];
public List<int> LevelList { get; set; } = [];
public override int GetId()
{
return DifficultyID;
}
public override void Loaded()
{
GameData.RogueDLCDifficultyData.Add(GetId(), this);
}
}
}

View File

@@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Excel
{
[ResourceEntity("RogueHandBookEvent.json")]
public class RogueHandBookEventExcel : ExcelResource
{
public int EventID { get; set; }
public HashName EventTitle { get; set; } = new();
public int EventReward { get; set; }
public List<int> EventTypeList { get; set; } = [];
public override int GetId()
{
return EventID;
}
public override void Loaded()
{
GameData.RogueHandBookEventData.Add(GetId(), this);
}
}
}

View File

@@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Excel
{
[ResourceEntity("RogueHandbookMiracle.json")]
public class RogueHandbookMiracleExcel : ExcelResource
{
public int MiracleHandbookID { get; set; }
public int MiracleReward { get; set; }
public List<int> MiracleTypeList { get; set; } = [];
public override int GetId()
{
return MiracleHandbookID;
}
public override void Loaded()
{
GameData.RogueHandbookMiracleData.Add(GetId(), this);
}
}
}

View File

@@ -0,0 +1,36 @@
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Excel
{
[ResourceEntity("RogueManager.json")]
public class RogueManagerExcel : ExcelResource
{
public int RogueSeason { get; set; }
public string BeginTime { get; set; } = "";
public string EndTime { get; set; } = "";
public List<int> RogueAreaIDList { get; set; } = [];
[JsonIgnore]
public DateTime BeginTimeDate { get; set; }
[JsonIgnore]
public DateTime EndTimeDate { get; set; }
public override int GetId()
{
return RogueSeason;
}
public override void Loaded()
{
GameData.RogueManagerData.Add(GetId(), this);
BeginTimeDate = DateTime.Parse(BeginTime);
EndTimeDate = DateTime.Parse(EndTime);
}
}
}

View File

@@ -0,0 +1,38 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Excel
{
[ResourceEntity("RogueMap.json")]
public class RogueMapExcel : ExcelResource
{
public int RogueMapID { get; set; }
public int SiteID { get; set; }
public bool IsStart { get; set; }
public int PosX { get; set; }
public int PosY { get; set; }
public List<int> NextSiteIDList { get; set; } = [];
public List<int> LevelList { get; set; } = [];
public override int GetId()
{
return RogueMapID * 1000 + SiteID;
}
public override void Loaded()
{
if (GameData.RogueMapData.TryGetValue(RogueMapID, out var map))
{
map.Add(SiteID, this);
}
else
{
GameData.RogueMapData.Add(RogueMapID, new() { { SiteID, this } });
}
}
}
}

View File

@@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Excel
{
[ResourceEntity("RogueMazeBuff.json")]
public class RogueMazeBuffExcel : ExcelResource
{
public int ID { get; set; }
public int Lv { get; set; }
public int LvMax { get; set; }
public HashName BuffName { get; set; } = new();
public override int GetId()
{
return ID * 100 + Lv;
}
public override void Loaded()
{
GameData.RogueMazeBuffData.Add(GetId(), this);
}
}
}

View File

@@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Excel
{
[ResourceEntity("RogueMiracleDisplay.json")]
public class RogueMiracleDisplayExcel : ExcelResource
{
public int MiracleDisplayID { get; set; }
public HashName MiracleName { get; set; } = new();
public override int GetId()
{
return MiracleDisplayID;
}
public override void Loaded()
{
GameData.RogueMiracleDisplayData.Add(GetId(), this);
}
}
}

View File

@@ -0,0 +1,31 @@
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Excel
{
[ResourceEntity("RogueMiracle.json")]
public class RogueMiracleExcel : ExcelResource
{
public int MiracleID { get; set; }
public int MiracleDisplayID { get; set; }
public int UnlockHandbookMiracleID { get; set; }
[JsonIgnore]
public HashName MiracleName { get; set; } = new();
public override int GetId()
{
return MiracleID;
}
public override void AfterAllDone()
{
MiracleName = GameData.RogueMiracleDisplayData[MiracleDisplayID].MiracleName;
GameData.RogueMiracleData[MiracleID] = this;
}
}
}

View File

@@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Excel
{
[ResourceEntity("RogueMonster.json")]
public class RogueMonsterExcel : ExcelResource
{
public int RogueMonsterID { get; set; }
public int NpcMonsterID { get; set; }
public int EventID { get; set; }
public override int GetId()
{
return RogueMonsterID;
}
public override void Loaded()
{
GameData.RogueMonsterData.Add(RogueMonsterID, this);
}
}
}

View File

@@ -0,0 +1,38 @@
using EggLink.DanhengServer.Data.Config;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Excel
{
[ResourceEntity("RogueNPCDialogue.json")]
public class RogueNPCDialogueExcel : ExcelResource
{
public int RogueNPCID { get; set; }
public int DialogueProgress { get; set; }
public int HandbookEventID { get; set; }
public string DialoguePath { get; set; } = "";
[JsonIgnore]
public DialogueInfo? DialogueInfo { get; set; }
public override int GetId()
{
return RogueNPCID * 100 + DialogueProgress;
}
public override void Loaded()
{
GameData.RogueNPCDialogueData.Add(GetId(), this);
}
public bool CanUseInCommon()
{
GameData.RogueHandBookEventData.TryGetValue(HandbookEventID, out var handbookEvent);
return DialogueInfo != null && handbookEvent != null && handbookEvent.EventTypeList.Contains(100);
}
}
}

View File

@@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Excel
{
[ResourceEntity("RogueNousAeon.json")]
public class RogueNousAeonExcel : ExcelResource
{
public int AeonID { get; set; }
public int RogueBuffType { get; set; }
public List<int> EffectParam1 { get; set; } = [];
public int BattleEventBuffGroup { get; set; }
public int BattleEventEnhanceBuffGroup { get; set; }
public override int GetId()
{
return AeonID;
}
public override void Loaded()
{
GameData.RogueNousAeonData[AeonID] = this;
}
}
}

View File

@@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Excel
{
[ResourceEntity("RogueNousDiceBranch.json")]
public class RogueNousDiceBranchExcel : ExcelResource
{
public int BranchID { get; set; }
public int DefaultUltraSurface { get; set; }
public List<int> DefaultCommonSurfaceList { get; set; } = [];
public override int GetId()
{
return BranchID;
}
public override void Loaded()
{
GameData.RogueNousDiceBranchData[BranchID] = this;
}
public List<int> GetDefaultSurfaceList()
{
var list = new List<int>
{
DefaultUltraSurface
};
list.AddRange(DefaultCommonSurfaceList);
return list;
}
}
}

View File

@@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Excel
{
[ResourceEntity("RogueNousDiceSurface.json")]
public class RogueNousDiceSurfaceExcel : ExcelResource
{
public int SurfaceID { get; set; }
public int ItemID { get; set; }
public int Sort { get; set; }
public int DiceActiveStage { get; set; }
public HashName SurfaceName { get; set; } = new();
public HashName SurfaceDesc { get; set; } = new();
public override int GetId()
{
return SurfaceID;
}
public override void Loaded()
{
GameData.RogueNousDiceSurfaceData[SurfaceID] = this;
}
}
}

View File

@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Excel
{
[ResourceEntity("RogueNousDifficultyLevel.json")]
public class RogueNousDifficultyLevelExcel : ExcelResource
{
public int DifficultyID { get; set; }
public override int GetId()
{
return DifficultyID;
}
public override void Loaded()
{
GameData.RogueNousDifficultyLevelData[DifficultyID] = this;
}
}
}

View File

@@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Excel
{
[ResourceEntity("RogueNousMainStory.json")]
public class RogueNousMainStoryExcel : ExcelResource
{
public int StoryID { get; set; }
public int Layer { get; set; }
public int RogueNPCID { get; set; }
public int QuestID { get; set; }
public int StoryGroup { get; set; }
public override int GetId()
{
return StoryID;
}
public override void Loaded()
{
GameData.RogueNousMainStoryData.Add(GetId(), this);
}
}
}

View File

@@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Excel
{
[ResourceEntity("RogueNousSubStory.json")]
public class RogueNousSubStoryExcel : ExcelResource
{
public int StoryID { get; set; }
public int Layer { get; set; }
public int MaxNousValue { get; set; }
public List<int> NextIDList { get; set; } = [];
public int RequireArea { get; set; }
public override int GetId()
{
return StoryID;
}
public override void Loaded()
{
GameData.RogueNousSubStoryData.Add(GetId(), this);
}
}
}

View File

@@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Excel
{
[ResourceEntity("RogueNousTalent.json")]
public class RogueNousTalentExcel : ExcelResource
{
public int TalentID { get; set; }
public override int GetId()
{
return TalentID;
}
public override void Loaded()
{
GameData.RogueNousTalentData[TalentID] = this;
}
}
}

View File

@@ -0,0 +1,28 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Excel
{
[ResourceEntity("RogueRoom.json")]
public class RogueRoomExcel : ExcelResource
{
public int RogueRoomID { get; set; }
public int RogueRoomType { get; set; }
public int MapEntrance { get; set; }
public int GroupID { get; set; }
public Dictionary<int, int> GroupWithContent { get; set; } = [];
public override int GetId()
{
return RogueRoomID;
}
public override void Loaded()
{
GameData.RogueRoomData.Add(RogueRoomID, this);
}
}
}

View File

@@ -0,0 +1,25 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Data.Excel
{
[ResourceEntity("RogueTalent.json")]
public class RogueTalentExcel : ExcelResource
{
public int TalentID { get; set; }
public bool IsImportant { get; set; }
public override int GetId()
{
return TalentID;
}
public override void Loaded()
{
GameData.RogueTalentData.Add(GetId(), this);
}
}
}

View File

@@ -1,7 +1,7 @@
using EggLink.DanhengServer.Database;
using EggLink.DanhengServer.Database.Avatar;
using EggLink.DanhengServer.Database.Player;
using EggLink.DanhengServer.Enums;
using EggLink.DanhengServer.Enums.Avatar;
using EggLink.DanhengServer.Proto;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;

View File

@@ -20,37 +20,47 @@ namespace EggLink.DanhengServer.Data.Excel
GameData.StageConfigData.Add(StageID, this);
}
public SceneMonsterWave ToProto()
public List<SceneMonsterWave> ToProto()
{
var proto = new SceneMonsterWave()
{
WaveId = 1,
StageId = (uint)StageID,
};
var result = new List<SceneMonsterWave>();
var waveId = 1;
foreach (var monsters in MonsterList)
{
var proto = new SceneMonsterWave()
{
WaveId = (uint)waveId++,
StageId = (uint)StageID,
};
proto.MonsterList.Add(new SceneMonster()
{
MonsterId = (uint)monsters.Monster0,
});
proto.MonsterList.Add(new SceneMonster()
{
MonsterId = (uint)monsters.Monster1,
});
proto.MonsterList.Add(new SceneMonster()
{
MonsterId = (uint)monsters.Monster2,
});
proto.MonsterList.Add(new SceneMonster()
{
MonsterId = (uint)monsters.Monster3,
});
proto.MonsterList.Add(new SceneMonster()
{
MonsterId = (uint)monsters.Monster4,
});
proto.MonsterParam = new();
result.Add(proto);
}
return proto;
return result;
}
}

View File

@@ -8,6 +8,8 @@ namespace EggLink.DanhengServer.Data.Excel
{
public int SubMissionID { get; set; }
public HashName TargetText { get; set; } = new();
[JsonIgnore()]
public int MainMissionID { get; set; }
[JsonIgnore()]

View File

@@ -7,29 +7,76 @@ namespace EggLink.DanhengServer.Data
{
public static class GameData
{
#region Activity
public static ActivityConfig ActivityConfig { get; set; } = new();
#endregion
#region Avatar
public static Dictionary<int, AvatarConfigExcel> AvatarConfigData { get; private set; } = [];
public static Dictionary<int, AvatarPromotionConfigExcel> AvatarPromotionConfigData { get; private set; } = [];
public static Dictionary<int, AvatarExpItemConfigExcel> AvatarExpItemConfigData { get; private set; } = [];
public static Dictionary<int, AvatarSkillTreeConfigExcel> AvatarSkillTreeConfigData { get; private set; } = [];
public static Dictionary<int, ExpTypeExcel> ExpTypeData { get; private set; } = [];
#endregion
#region Battle
public static Dictionary<int, CocoonConfigExcel> CocoonConfigData { get; private set; } = [];
public static Dictionary<int, StageConfigExcel> StageConfigData { get; private set; } = [];
public static Dictionary<int, RaidConfigExcel> RaidConfigData { get; private set; } = [];
public static Dictionary<int, MazeBuffExcel> MazeBuffData { get; private set; } = [];
public static Dictionary<int, InteractConfigExcel> InteractConfigData { get; private set; } = [];
public static Dictionary<int, NPCMonsterDataExcel> NpcMonsterDataData { get; private set; } = [];
public static Dictionary<int, MonsterConfigExcel> MonsterConfigData { get; private set; } = [];
public static Dictionary<int, MonsterDropExcel> MonsterDropData { get; private set; } = [];
public static Dictionary<int, NPCDataExcel> NpcDataData { get; private set; } = [];
#endregion
#region ChessRogue
public static Dictionary<int, ActionPointOverdrawExcel> ActionPointOverdrawData { get; private set; } = [];
public static Dictionary<int, List<int>> ChessRogueContentGenData { get; set; } = [];
public static Dictionary<int, ChessRogueCellConfig> ChessRogueCellGenData { get; set; } = [];
public static Dictionary<int, Dictionary<int, List<int>>> ChessRogueLayerGenData { get; set; } = [];
public static Dictionary<int, ChessRogueRoomConfig> ChessRogueRoomGenData { get; set; } = [];
public static Dictionary<int, RogueDLCAreaExcel> RogueDLCAreaData { get; private set; } = [];
public static Dictionary<int, RogueDLCBossDecayExcel> RogueDLCBossDecayData { get; private set; } = [];
public static Dictionary<int, RogueDLCBossBpExcel> RogueDLCBossBpData { get; private set; } = [];
public static Dictionary<int, RogueDLCDifficultyExcel> RogueDLCDifficultyData { get; private set; } = [];
public static Dictionary<int, RogueNousAeonExcel> RogueNousAeonData { get; private set; } = [];
public static Dictionary<int, RogueNousDiceBranchExcel> RogueNousDiceBranchData { get; private set; } = [];
public static Dictionary<int, RogueNousDiceSurfaceExcel> RogueNousDiceSurfaceData { get; private set; } = [];
public static Dictionary<int, RogueNousDifficultyLevelExcel> RogueNousDifficultyLevelData { get; private set; } = [];
public static Dictionary<int, RogueNousMainStoryExcel> RogueNousMainStoryData { get; private set; } = [];
public static Dictionary<int, RogueNousSubStoryExcel> RogueNousSubStoryData { get; private set; } = [];
public static Dictionary<int, RogueNousTalentExcel> RogueNousTalentData { get; private set; } = [];
#endregion
#region Player
public static Dictionary<int, QuestDataExcel> QuestDataData { get; private set; } = [];
public static Dictionary<int, PlayerLevelConfigExcel> PlayerLevelConfigData { get; private set; } = [];
#endregion
#region Maze
public static Dictionary<int, NPCDataExcel> NpcDataData { get; private set; } = [];
public static Dictionary<string, FloorInfo> FloorInfoData { get; private set; } = [];
public static Dictionary<int, MapEntranceExcel> MapEntranceData { get; private set; } = [];
public static Dictionary<int, MazePlaneExcel> MazePlaneData { get; private set; } = [];
public static Dictionary<int, MazePropExcel> MazePropData { get; private set; } = [];
public static Dictionary<int, PlaneEventExcel> PlaneEventData { get; private set; } = [];
#endregion
#region Items
public static Dictionary<int, ItemConfigExcel> ItemConfigData { get; private set; } = [];
public static Dictionary<int, EquipmentConfigExcel> EquipmentConfigData { get; private set; } = [];
public static Dictionary<int, EquipmentExpTypeExcel> EquipmentExpTypeData { get; private set; } = [];
@@ -39,9 +86,17 @@ namespace EggLink.DanhengServer.Data
public static Dictionary<int, Dictionary<int, RelicSubAffixConfigExcel>> RelicSubAffixData { get; private set; } = []; // groupId, affixId
public static Dictionary<int, RelicConfigExcel> RelicConfigData { get; private set; } = [];
#endregion
#region Special Avatar
public static Dictionary<int, SpecialAvatarExcel> SpecialAvatarData { get; private set; } = [];
public static Dictionary<int, SpecialAvatarRelicExcel> SpecialAvatarRelicData { get; private set; } = [];
#endregion
#region Mission
public static Dictionary<int, MainMissionExcel> MainMissionData { get; private set; } = [];
public static Dictionary<int, SubMissionExcel> SubMissionData { get; private set; } = [];
public static Dictionary<int, RewardDataExcel> RewardDataData { get; private set; } = [];
@@ -50,10 +105,52 @@ namespace EggLink.DanhengServer.Data
public static Dictionary<int, MessageContactsConfigExcel> MessageContactsConfigData { get; private set; } = [];
public static Dictionary<int, MessageItemConfigExcel> MessageItemConfigData { get; private set; } = [];
#endregion
#region Item Exchange
public static Dictionary<int, ShopConfigExcel> ShopConfigData { get; private set; } = [];
public static Dictionary<int, ItemComposeConfigExcel> ItemComposeConfigData { get; private set; } = [];
#endregion
#region Rogue
public static Dictionary<int, DialogueEventExcel> DialogueEventData { get; private set; } = [];
public static Dictionary<int, Dictionary<int, DialogueDynamicContentExcel>> DialogueDynamicContentData { get; private set; } = [];
public static Dictionary<int, RogueAeonExcel> RogueAeonData { get; private set; } = [];
public static Dictionary<int, RogueBuffExcel> RogueAeonBuffData { get; private set; } = [];
public static Dictionary<int, BattleEventDataExcel> RogueBattleEventData { get; private set; } = [];
public static Dictionary<int, List<RogueBuffExcel>> RogueAeonEnhanceData { get; private set; } = [];
public static Dictionary<int, RogueAreaConfigExcel> RogueAreaConfigData { get; private set; } = [];
public static Dictionary<int, RogueBonusExcel> RogueBonusData { get; private set; } = [];
public static Dictionary<int, RogueBuffExcel> RogueBuffData { get; private set; } = [];
public static Dictionary<int, RogueBuffGroupExcel> RogueBuffGroupData { get; private set; } = [];
public static Dictionary<int, RogueHandBookEventExcel> RogueHandBookEventData { get; private set; } = [];
public static Dictionary<int, RogueHandbookMiracleExcel> RogueHandbookMiracleData { get; private set; } = [];
public static Dictionary<int, RogueManagerExcel> RogueManagerData { get; private set; } = [];
public static Dictionary<int, Dictionary<int, RogueMapExcel>> RogueMapData { get; private set; } = [];
public static Dictionary<int, List<int>> RogueMapGenData { get; set; } = [];
public static Dictionary<int, RogueMazeBuffExcel> RogueMazeBuffData { get; private set; } = [];
public static Dictionary<int, RogueMiracleExcel> RogueMiracleData { get; private set; } = [];
public static RogueMiracleEffectConfig RogueMiracleEffectData { get; set; } = new();
public static Dictionary<int, List<int>> RogueMiracleGroupData { get; set; } = [];
public static Dictionary<int, RogueMiracleDisplayExcel> RogueMiracleDisplayData { get; private set; } = [];
public static Dictionary<int, RogueMonsterExcel> RogueMonsterData { get; private set; } = [];
public static Dictionary<int, RogueNPCDialogueExcel> RogueNPCDialogueData { get; private set; } = [];
public static Dictionary<int, RogueRoomExcel> RogueRoomData { get; private set; } = [];
public static Dictionary<int, RogueTalentExcel> RogueTalentData { get; private set; } = [];
#endregion
#region Banners
public static BannersConfig BannersConfig { get; set; } = new();
#endregion
#region Actions
public static void GetFloorInfo(int planeId, int floorId, out FloorInfo outer)
{
FloorInfoData.TryGetValue("P" + planeId + "_F" + floorId, out outer!);
@@ -111,5 +208,12 @@ namespace EggLink.DanhengServer.Data
EquipmentExpTypeData.TryGetValue((group * 100) + level, out var expType);
return expType?.Exp ?? 0;
}
public static int GetMinPromotionForLevel(int level)
{
return Math.Max(Math.Min((int)((level - 11) / 10D), 6), 0);
}
#endregion
}
}

View File

@@ -7,8 +7,11 @@ namespace EggLink.DanhengServer.Data
internal class ResourceEntity : Attribute
{
public List<string> FileName { get; private set; }
public bool IsCritical { get; private set; } // If the resource is critical, the server will not start if it is not found
[Obsolete("No effect")]
public bool IsCritical { get; private set; } // deprecated
[Obsolete("No effect")]
public ResourceEntity(string fileName, bool isCritical = false, bool isMultifile = false)
{
if (isMultifile)
@@ -19,5 +22,21 @@ namespace EggLink.DanhengServer.Data
FileName = [fileName];
IsCritical = isCritical;
}
public ResourceEntity(string fileName, bool isMultifile = false)
{
if (isMultifile)
{
FileName = new List<string>(fileName.Split(','));
}
else
FileName = [fileName];
}
public ResourceEntity(string fileName)
{
FileName = [fileName];
}
}
}

View File

@@ -7,7 +7,6 @@ using System.Xml.Linq;
using EggLink.DanhengServer.Util;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using static System.Runtime.InteropServices.JavaScript.JSType;
using EggLink.DanhengServer.Data.Custom;
namespace EggLink.DanhengServer.Data
@@ -21,7 +20,16 @@ namespace EggLink.DanhengServer.Data
LoadFloorInfo();
LoadMissionInfo();
LoadMazeSkill();
LoadBanner();
LoadDialogueInfo();
GameData.ActivityConfig = LoadCustomFile<ActivityConfig>("Activity", "ActivityConfig") ?? new();
GameData.BannersConfig = LoadCustomFile<BannersConfig>("Banner", "Banners") ?? new();
GameData.RogueMapGenData = LoadCustomFile<Dictionary<int, List<int>>>("Rogue Map", "RogueMapGen") ?? [];
GameData.RogueMiracleGroupData = LoadCustomFile<Dictionary<int, List<int>>>("Rogue Miracle Group", "RogueMiracleGroup") ?? [];
GameData.RogueMiracleEffectData = LoadCustomFile<RogueMiracleEffectConfig>("Rogue Miracle Effect", "RogueMiracleEffectGen") ?? new();
GameData.ChessRogueLayerGenData = LoadCustomFile<Dictionary<int, Dictionary<int, List<int>>>>("Chess Rogue Layer", "ChessRogueLayerGen") ?? [];
GameData.ChessRogueRoomGenData = LoadCustomFile<Dictionary<int, ChessRogueRoomConfig>>("Chess Rogue Map", "ChessRogueMapGen") ?? [];
GameData.ChessRogueContentGenData = LoadCustomFile<Dictionary<int, List<int>>>("Chess Rogue Content", "ChessRogueContentGen") ?? [];
GameData.ChessRogueCellGenData = LoadCustomFile<Dictionary<int, ChessRogueCellConfig>>("Chess Rogue Cell", "ChessRogueRoomGen") ?? [];
}
public static void LoadExcel()
@@ -168,7 +176,7 @@ namespace EggLink.DanhengServer.Data
}
} catch (Exception ex)
{
Logger.Error("Error in reading" + file.Name, ex);
Logger.Error("Error in reading " + file.Name, ex);
}
if (info.Groups.Count == 0)
{
@@ -232,10 +240,22 @@ namespace EggLink.DanhengServer.Data
subMission.PropTask = mission;
subMission.Loaded(2);
}
} else if (subMission.FinishType == Enums.MissionFinishTypeEnum.StageWin)
{
var mission = JsonConvert.DeserializeObject<SubMissionTask<StageWinTaskInfo>>(missionJson);
if (mission != null)
{
subMission.StageWinTask = mission;
subMission.Loaded(3);
}
}
else
{
subMission.Loaded(0);
}
} catch (Exception ex)
{
Logger.Error("Error in reading" + missionJsonPath, ex);
Logger.Error("Error in reading " + missionJsonPath, ex);
}
}
}
@@ -250,30 +270,50 @@ namespace EggLink.DanhengServer.Data
Logger.Info("Loaded " + count + " mission infos.");
}
public static void LoadBanner()
public static T? LoadCustomFile<T>(string filetype, string filename)
{
Logger.Info("Loading banner files...");
FileInfo file = new(ConfigManager.Config.Path.ConfigPath + "/Banners.json");
Logger.Info($"Loading {filetype} files...");
FileInfo file = new(ConfigManager.Config.Path.ConfigPath + $"/{filename}.json");
T? customFile = default;
if (!file.Exists)
{
Logger.Warn($"Banner infos are missing, please check your resources folder: {ConfigManager.Config.Path.ConfigPath}/Banner.json. Banners may not work!");
return;
Logger.Warn($"Banner infos are missing, please check your resources folder: {ConfigManager.Config.Path.ConfigPath}/{filename}.json. {filetype} may not work!");
return customFile;
}
try
{
using var reader = file.OpenRead();
using StreamReader reader2 = new(reader);
var text = reader2.ReadToEnd();
var banners = JsonConvert.DeserializeObject<BannersConfig>(text);
if (banners != null)
{
GameData.BannersConfig = banners;
}
var json = JsonConvert.DeserializeObject<T>(text);
customFile = json;
} catch (Exception ex)
{
Logger.Error("Error in reading" + file.Name, ex);
Logger.Error("Error in reading " + file.Name, ex);
}
Logger.Info("Loaded " + GameData.BannersConfig.Banners.Count + " banner infos.");
if (customFile is Dictionary<int, int> d)
{
Logger.Info("Loaded " + d.Count + $" {filetype}s.");
} else if (customFile is Dictionary<int, List<int>> di)
{
Logger.Info("Loaded " + di.Count + $" {filetype}s.");
} else if (customFile is BannersConfig c)
{
Logger.Info("Loaded " + c.Banners.Count + $" {filetype}s.");
} else if (customFile is RogueMiracleEffectConfig r)
{
Logger.Info("Loaded " + r.Miracles.Count + $" {filetype}s.");
} else if (customFile is ActivityConfig a)
{
Logger.Info("Loaded " + a.ScheduleData.Count + $" {filetype}s.");
}
else
{
Logger.Info("Loaded " + filetype + " file.");
}
return customFile;
}
public static void LoadMazeSkill()
@@ -294,7 +334,7 @@ namespace EggLink.DanhengServer.Data
count += skillAbilityInfo == null ? 0 : 1;
} catch (Exception ex)
{
Logger.Error("Error in reading" + file.Name, ex);
Logger.Error("Error in reading " + file.Name, ex);
}
}
if (count < GameData.AvatarConfigData.Count)
@@ -303,5 +343,45 @@ namespace EggLink.DanhengServer.Data
}
Logger.Info("Loaded " + count + " maze skill infos.");
}
public static void LoadDialogueInfo()
{
var count = 0;
foreach (var dialogue in GameData.RogueNPCDialogueData)
{
var path = ConfigManager.Config.Path.ResourcePath + "/" + dialogue.Value.DialoguePath;
var file = new FileInfo(path);
if (!file.Exists) continue;
try
{
using var reader = file.OpenRead();
using StreamReader reader2 = new(reader);
var text = reader2.ReadToEnd().Replace("$type", "Type");
var dialogueInfo = JsonConvert.DeserializeObject<DialogueInfo>(text);
if (dialogueInfo != null)
{
dialogue.Value.DialogueInfo = dialogueInfo;
dialogueInfo.Loaded();
if (dialogueInfo.DialogueIds.Count == 0)
{
// set to invalid
dialogue.Value.DialogueInfo = null;
}
count++;
}
} catch (Exception ex)
{
Logger.Error("Error in reading " + file.Name, ex);
}
}
if (count < GameData.RogueNPCDialogueData.Count)
{
Logger.Warn("Dialogue infos are missing, please check your resources folder: " + ConfigManager.Config.Path.ResourcePath + "/Config/Level/RogueDialogue/RogueDialogueEvent. Dialogues may not work!");
}
Logger.Info("Loaded " + count + " dialogue infos.");
}
}
}

View File

@@ -76,10 +76,33 @@ namespace EggLink.DanhengServer.Database.Avatar
{
Excel = excel;
SkillTree = [];
excel.DefaultSkillTree.ForEach(skill =>
if (AvatarId == 8001)
{
SkillTree.Add(skill.PointID, skill.Level);
});
//bool isMan = HeroId % 2 != 0;
//SkillTreeExtra.Add(isMan ? 8001: 8002, []);
//SkillTreeExtra.Add(isMan ? 8003 : 8004, []);
//var warriorExcel = GameData.AvatarConfigData[8001];
//var defenseExcel = GameData.AvatarConfigData[8003];
//warriorExcel.DefaultSkillTree.ForEach(skill =>
//{
// SkillTreeExtra[isMan ? 8001 : 8002].Add(skill.PointID, skill.Level);
//});
//defenseExcel.DefaultSkillTree.ForEach(skill =>
//{
// SkillTreeExtra[isMan ? 8003 : 8004].Add(skill.PointID, skill.Level);
//});
// create them in GetSkillTree
}
else
{
excel.DefaultSkillTree.ForEach(skill =>
{
SkillTree.Add(skill.PointID, skill.Level);
});
}
}
public bool HasTakenReward(int promotion)
@@ -87,6 +110,11 @@ namespace EggLink.DanhengServer.Database.Avatar
return (Rewards & (1 << promotion)) != 0;
}
public void TakeReward(int promotion)
{
Rewards |= 1 << promotion;
}
public int GetCurHp(bool isExtraLineup)
{
return isExtraLineup ? ExtraLineupHp : CurrentHp;
@@ -107,6 +135,26 @@ namespace EggLink.DanhengServer.Database.Avatar
return SpecialBaseAvatarId > 0 ? SpecialBaseAvatarId : GetAvatarId();
}
public Dictionary<int, int> GetSkillTree()
{
var value = SkillTree;
if (HeroId > 0)
{
if (!SkillTreeExtra.TryGetValue(HeroId, out value))
{
value = ([]);
// for old data
SkillTreeExtra[HeroId] = value;
var excel = GameData.AvatarConfigData[HeroId];
excel.DefaultSkillTree.ForEach(skill =>
{
SkillTreeExtra[HeroId].Add(skill.PointID, skill.Level);
});
}
}
return value;
}
public void SetCurHp(int value, bool isExtraLineup)
{
if (isExtraLineup)
@@ -233,7 +281,7 @@ namespace EggLink.DanhengServer.Database.Avatar
WorldLevel = (uint)(PlayerData?.WorldLevel ?? 0),
};
foreach (var skill in SkillTree)
foreach (var skill in GetSkillTree())
{
proto.SkilltreeList.Add(new AvatarSkillTree()
{
@@ -294,24 +342,33 @@ namespace EggLink.DanhengServer.Database.Avatar
return proto;
}
public PlayerHeroBasicTypeInfo ToHeroProto()
public List<PlayerHeroBasicTypeInfo> ToHeroProto()
{
var proto = new PlayerHeroBasicTypeInfo()
{
BasicType = (HeroBasicType)HeroId,
Rank = (uint)Rank,
};
var res = new List<PlayerHeroBasicTypeInfo>();
foreach (var skill in SkillTree)
GetSkillTree();
foreach (var hero in SkillTreeExtra)
{
proto.SkillTreeList.Add(new AvatarSkillTree()
var proto = new PlayerHeroBasicTypeInfo()
{
PointId = (uint)skill.Key,
Level = (uint)skill.Value
});
BasicType = (HeroBasicType)hero.Key,
Rank = (uint)Rank,
};
foreach (var skill in hero.Value)
{
proto.SkillTreeList.Add(new AvatarSkillTree()
{
PointId = (uint)skill.Key,
Level = (uint)skill.Value
});
}
res.Add(proto);
}
return proto;
return res;
}
}
}

View File

@@ -0,0 +1,36 @@
using EggLink.DanhengServer.Proto;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Database.ChessRogue
{
[SugarTable("ChessRogueNous")]
public class ChessRogueNousData : BaseDatabaseData
{
[SugarColumn(IsJson = true)]
public Dictionary<int, ChessRogueNousDiceData> RogueDiceData { get; set; } = [];
}
public class ChessRogueNousDiceData
{
public int BranchId { get; set; }
public Dictionary<int, int> Surfaces { get; set; } = [];
public int AreaId { get; set; }
public int DifficultyLevel { get; set; }
public ChessRogueDice ToProto()
{
return new ChessRogueDice()
{
BranchId = (uint)BranchId,
SurfaceList = { Surfaces.Select(x => new ChessRogueDiceSurfaceInfo() { Index = (uint)x.Key, SurfaceId = (uint)x.Value }) },
AreaId = (uint)AreaId,
DifficultyLevel = (uint)DifficultyLevel,
};
}
}
}

View File

@@ -169,7 +169,7 @@ namespace EggLink.DanhengServer.Database.Inventory
{
Id = excel.AffixID;
Count = count;
Step = Extensions.RandomInt(0, excel.StepNum * count);
Step = Extensions.RandomInt(0, excel.StepNum * count + 1);
}
public ItemSubAffix(int id, int count, int step)

View File

@@ -16,9 +16,14 @@ namespace EggLink.DanhengServer.Database.Lineup
public class LineupData : BaseDatabaseData
{
public int CurLineup { get; set; } // index of current lineup
public int CurExtraLineup { get; set; } = -1; // index of current extra lineup
[SugarColumn(IsJson = true)]
public Dictionary<int, LineupInfo> Lineups { get; set; } = []; // 9 * 4
public int Mp { get; set; } = 5;
public int GetCurLineupIndex()
{
return CurExtraLineup == -1 ? CurLineup : CurExtraLineup;
}
}
public class LineupInfo
@@ -27,6 +32,7 @@ namespace EggLink.DanhengServer.Database.Lineup
public int LineupType { get; set; }
public int LeaderAvatarId { get; set; }
public List<AvatarInfo>? BaseAvatars { get; set; }
public int Mp { get; set; } = 5;
[JsonIgnore()]
public LineupData? LineupData { get; set; }
@@ -49,15 +55,38 @@ namespace EggLink.DanhengServer.Database.Lineup
var avatarInfo = AvatarData?.Avatars?.Find(item => item.GetAvatarId() == avatar.BaseAvatarId);
if (avatarInfo != null)
{
if (avatarInfo.CurrentHp <= 0 && !allowRevive)
if (avatarInfo.GetCurHp(IsExtraLineup()) <= 0 && !allowRevive)
{
continue;
}
if (avatarInfo.CurrentHp >= 10000)
if (avatarInfo.GetCurHp(IsExtraLineup()) >= 10000)
{
continue;
}
avatarInfo.CurrentHp = Math.Min(avatarInfo.GetCurHp(LineupType != 0) + count, 10000);
avatarInfo.SetCurHp(Math.Min(avatarInfo.GetCurHp(IsExtraLineup()) + count, 10000), IsExtraLineup());
result = true;
}
}
DatabaseHelper.Instance?.UpdateInstance(AvatarData!);
}
return result;
}
public bool CostNowPercentHp(double count)
{
bool result = false;
if (BaseAvatars != null && AvatarData != null)
{
foreach (var avatar in BaseAvatars)
{
var avatarInfo = AvatarData?.Avatars?.Find(item => item.GetAvatarId() == avatar.BaseAvatarId);
if (avatarInfo != null)
{
if (avatarInfo.CurrentHp <= 0)
{
continue;
}
avatarInfo.SetCurHp((int)Math.Max(avatarInfo.GetCurHp(IsExtraLineup()) * (1 - count), 100), IsExtraLineup());
result = true;
}
}
@@ -77,31 +106,34 @@ namespace EggLink.DanhengServer.Database.Lineup
{
Name = Name,
MaxMp = 5,
Mp = (uint)(LineupData?.Mp ?? 0),
Mp = (uint)Mp,
ExtraLineupType = (ExtraLineupType)LineupType,
Index = (uint)(LineupData?.Lineups?.Values.ToList().IndexOf(this) ?? 0),
};
if (BaseAvatars?.Find(item => item.BaseAvatarId == LeaderAvatarId) != null)
if (LineupType != (int)ExtraLineupType.LineupNone)
{
info.Index = 0;
}
if (BaseAvatars?.Find(item => item.BaseAvatarId == LeaderAvatarId) != null) // find leader,if not exist,set to 0
{
info.LeaderSlot = (uint)BaseAvatars.IndexOf(BaseAvatars.Find(item => item.BaseAvatarId == LeaderAvatarId)!);
} else
{
info.LeaderSlot = 0;
}
var isVirtual = true;
if (BaseAvatars != null)
{
foreach (var avatar in BaseAvatars)
{
if (avatar.AssistUid != 0)
if (avatar.AssistUid != 0) // assist avatar
{
var assistPlayer = DatabaseHelper.Instance?.GetInstance<AvatarData>(avatar.AssistUid);
if (assistPlayer != null)
{
info.AvatarList.Add(assistPlayer?.Avatars?.Find(item => item.GetAvatarId() == avatar.BaseAvatarId)?.ToLineupInfo(BaseAvatars.IndexOf(avatar), this, AvatarType.AvatarAssistType));
isVirtual = false;
info.AvatarList.Add(assistPlayer?.Avatars?.Find(item => item.GetAvatarId() == avatar.BaseAvatarId)?.ToLineupInfo(BaseAvatars.IndexOf(avatar), this, AvatarType.AvatarAssistType)); // assist avatar may not work
}
} else if (avatar.SpecialAvatarId != 0)
} else if (avatar.SpecialAvatarId != 0) // special avatar
{
var specialAvatar = GameData.SpecialAvatarData[avatar.SpecialAvatarId];
if (specialAvatar != null)
@@ -109,20 +141,13 @@ namespace EggLink.DanhengServer.Database.Lineup
info.AvatarList.Add(specialAvatar.ToAvatarData(LineupData!.Uid).ToLineupInfo(BaseAvatars.IndexOf(avatar), this, AvatarType.AvatarTrialType));
info.TrialAvatarIdList.Add((uint)avatar.BaseAvatarId);
}
} else
} else // normal avatar
{
info.AvatarList.Add(AvatarData?.Avatars?.Find(item => item.AvatarId == avatar.BaseAvatarId)?.ToLineupInfo(BaseAvatars.IndexOf(avatar), this));
isVirtual = false;
}
}
}
if (isVirtual)
{
info.IsVirtual = true;
info.PlaneId = (uint)(DatabaseHelper.Instance?.GetInstance<PlayerData>(LineupData?.Uid ?? 0)?.PlaneId ?? 0);
}
return info;
}
}

View File

@@ -1,4 +1,4 @@
using EggLink.DanhengServer.Enums;
using EggLink.DanhengServer.Enums.Scene;
using SqlSugar;
namespace EggLink.DanhengServer.Database.Scene

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Enums
namespace EggLink.DanhengServer.Enums.Avatar
{
public enum DamageTypeEnum
{

View File

@@ -1,4 +1,4 @@
namespace EggLink.DanhengServer.Enums
namespace EggLink.DanhengServer.Enums.Avatar
{
public enum RelicTypeEnum
{

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Enums
namespace EggLink.DanhengServer.Enums.Avatar
{
public enum SpecialAvatarTypeEnum
{

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Enums
namespace EggLink.DanhengServer.Enums.Avatar
{
public enum TaskTypeEnum
{

View File

@@ -1,4 +1,4 @@
namespace EggLink.DanhengServer.Enums
namespace EggLink.DanhengServer.Enums.Item
{
public enum ItemMainTypeEnum
{

View File

@@ -1,4 +1,4 @@
namespace EggLink.DanhengServer.Enums
namespace EggLink.DanhengServer.Enums.Item
{
public enum ItemRarityEnum
{

View File

@@ -1,4 +1,4 @@
namespace EggLink.DanhengServer.Enums
namespace EggLink.DanhengServer.Enums.Item
{
public enum ItemSubTypeEnum
{

View File

@@ -1,4 +1,4 @@
namespace EggLink.DanhengServer.Enums
namespace EggLink.DanhengServer.Enums.Item
{
public enum ItemUseMethodEnum
{

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Enums
namespace EggLink.DanhengServer.Enums.Item
{
public enum RarityEnum
{

View File

@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Enums.Rogue
{
public enum BossDecayEffectTypeEnum
{
None = 0,
AddMazeBuffList = 1,
RemoveMazeBuffList = 2,
}
}

View File

@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Enums.Rogue
{
public enum DialogueDynamicParamTypeEnum
{
None = 0,
ReplaceAll = 1,
ReplaceOne = 2,
}
}

View File

@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Enums.Rogue
{
public enum DialogueEventCostTypeEnum
{
None = 0,
CostItemValue = 1,
CostHpCurrentPercent = 2,
CostItemPercent = 3,
CostHpSpToPercent = 4,
}
}

View File

@@ -0,0 +1,57 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Enums.Rogue
{
public enum DialogueEventTypeEnum
{
None = 0,
GetItem = 1,
TriggerRogueBuffSelect = 2,
TriggerRogueMiracleSelect = 3,
EnhanceRogueBuff = 4,
TriggerRandomEventList = 5,
ChangeLineupData = 6,
TriggerRogueBuffReforge = 8,
GetRogueMiracle = 9,
TriggerDialogueEventList = 10,
GetAllRogueBuffInGroup = 11,
GetAllRogueBuffInGroupAndGetItem = 12,
TriggerBattle = 13,
TriggerRogueMiracleTrade = 14,
RepeatableGamble = 15,
ReplaceRogueBuffKeepLevel = 16,
FinishChessRogue = 17,
GetRogueBuff = 21,
GetChessRogueCheatDice = 18,
SetChessRogueNextStartCellAdventureRoomType = 19,
ChangeChessRogueActionPoint = 20,
ReplaceRogueBuff = 23,
DestroyRogueMiracle = 22,
TriggerRogueBuffDrop = 26,
ChangeRogueMiracleToRogueCoin = 24,
RemoveRogueMiracle = 27,
GetItemByPercent = 25,
RemoveRogueBuff = 28,
TriggerRogueMiracleRepair = 29,
RepairRogueMiracle = 30,
ChangeRogueMiracleToRogueMiracle = 31,
ChangeRogueMiracleToRogueBuff = 32,
GetChessRogueRerollDice = 33,
GetRogueBuffByMiracleCount = 34,
ChangeNousValue = 35,
ReviveAvatar = 36,
TriggerDialogueEventListByCondition = 37,
TriggerRogueMiracleDropWithEvent = 38,
TriggerRogueBuffEnhance = 39,
GetCoinByLoseCoin = 40,
ChangeRogueNpcWeight = 41,
GetDestroyedRogueMiracle = 42,
ChangeDestroyedRogueMiracleToRogueMiracle = 43,
DestroyRogueMiracleThenGetRogueMiracle = 44,
TriggerDestroyedRogueMiracleSelect = 45
}
}

View File

@@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Enums.Rogue
{
public enum RogueBuffAeonTypeEnum
{
Normal = 0,
BattleEventBuff = 1,
BattleEventBuffEnhance = 2,
BattleEventBuffCross = 3
}
}

View File

@@ -0,0 +1,57 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Enums.Rogue
{
public enum RogueMiracleEffectTypeEnum
{
// effects
None = 0,
ExtraBuffSelect = 1,
ExtraFreeBuffRoll = 2,
SetSelectBuffLevel = 3,
ReviveLineupAvatar = 4,
GetMiracle = 5,
GetRogueBuff = 6,
SetSelectBuffGroup = 7,
AddMazeBuff = 8,
ChangeItemRatio = 9,
ChangeItemNum = 10,
ChangeCostRatio = 11,
ChangeLineupInfo = 12,
RepairRandomMiracle = 13,
EnhanceRandomBuff = 14,
ReplaceAllMiracles = 15,
DoAllEffects = 16,
DoRandomEffect = 17,
DestroyMiracle = 18,
CostDurability = 19,
GetRogueBuffByAeon = 20,
ChangeItemNumByArg = 21,
ChangeItemRatioAndSetVar = 22,
// events
OnGetMiracle = 100,
OnBattleStart = 101,
OnBattleEnd = 102,
OnEnterNextRoom = 103,
OnDestroy = 104,
OnGainMoney = 105,
OnDestroyProp = 106,
OnGenerateBuffMenu = 107,
// arguments
CurMoney = 200,
CurDestroyCount = 201,
CurBrokenMiracleCount = 202,
AvatarWithLeastHP = 203,
UseMoney = 204,
BuffTypeNum = 205,
}
}

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Enums
namespace EggLink.DanhengServer.Enums.Scene
{
public enum GroupLoadSideEnum
{

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EggLink.DanhengServer.Enums
namespace EggLink.DanhengServer.Enums.Scene
{
public enum PlaneTypeEnum
{

View File

@@ -1,4 +1,4 @@
namespace EggLink.DanhengServer.Enums
namespace EggLink.DanhengServer.Enums.Scene
{
public enum PropStateEnum
{

View File

@@ -1,4 +1,4 @@
namespace EggLink.DanhengServer.Enums
namespace EggLink.DanhengServer.Enums.Scene
{
public enum PropTypeEnum
{

View File

@@ -1,4 +1,4 @@
namespace EggLink.DanhengServer.Enums
namespace EggLink.DanhengServer.Enums.Scene
{
public enum SaveTypeEnum
{

View File

@@ -24,8 +24,8 @@ namespace EggLink.DanhengServer.Proto {
static ALJOAMMKOMOReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"ChFBTEpPQU1NS09NTy5wcm90bxoRQ2hhcmdlckluZm8ucHJvdG8aEU9ESUZQ",
"R0RES0hMLnByb3RvGhFOQ1BDT0tDSUJPRi5wcm90bxoRRE1BT01DQkVBTkku",
"ChFBTEpPQU1NS09NTy5wcm90bxoRRE1BT01DQkVBTkkucHJvdG8aEU9ESUZQ",
"R0RES0hMLnByb3RvGhFDaGFyZ2VySW5mby5wcm90bxoRTkNQQ09LQ0lCT0Yu",
"cHJvdG8i1QEKC0FMSk9BTU1LT01PEhMKC0xOTU1IUEtDRElBGAggASgIEh4K",
"CG1hcF9pbmZvGAogASgLMgwuTkNQQ09LQ0lCT0YSIQoLSkhGREJJTklQRkUY",
"AyABKAsyDC5PRElGUEdEREtITBITCgtLSElIRFBIT0dBTBgEIAEoDRIhCgtI",
@@ -33,7 +33,7 @@ namespace EggLink.DanhengServer.Proto {
"GAcgASgFEiEKC0xNRkJMSUVJSEpLGAwgAygLMgwuRE1BT01DQkVBTklCHqoC",
"G0VnZ0xpbmsuRGFuaGVuZ1NlcnZlci5Qcm90b2IGcHJvdG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::EggLink.DanhengServer.Proto.ChargerInfoReflection.Descriptor, global::EggLink.DanhengServer.Proto.ODIFPGDDKHLReflection.Descriptor, global::EggLink.DanhengServer.Proto.NCPCOKCIBOFReflection.Descriptor, global::EggLink.DanhengServer.Proto.DMAOMCBEANIReflection.Descriptor, },
new pbr::FileDescriptor[] { global::EggLink.DanhengServer.Proto.DMAOMCBEANIReflection.Descriptor, global::EggLink.DanhengServer.Proto.ODIFPGDDKHLReflection.Descriptor, global::EggLink.DanhengServer.Proto.ChargerInfoReflection.Descriptor, global::EggLink.DanhengServer.Proto.NCPCOKCIBOFReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.ALJOAMMKOMO), global::EggLink.DanhengServer.Proto.ALJOAMMKOMO.Parser, new[]{ "LNMMHPKCDIA", "MapInfo", "JHFDBINIPFE", "KHIHDPHOGAL", "HOKMEIIEGAP", "HPAAGLJAEDD", "LMFBLIEIHJK" }, null, null, null, null)
}));

View File

@@ -24,13 +24,13 @@ namespace EggLink.DanhengServer.Proto {
static ALMJPANKNEMReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"ChFBTE1KUEFOS05FTS5wcm90byIiCgtBTE1KUEFOS05FTRITCgtJT0VPUEpQ",
"REFMQRgHIAEoDUIeqgIbRWdnTGluay5EYW5oZW5nU2VydmVyLlByb3RvYgZw",
"cm90bzM="));
"ChFBTE1KUEFOS05FTS5wcm90byIhCgtBTE1KUEFOS05FTRISCgptaXJhY2xl",
"X2lkGAcgASgNQh6qAhtFZ2dMaW5rLkRhbmhlbmdTZXJ2ZXIuUHJvdG9iBnBy",
"b3RvMw=="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.ALMJPANKNEM), global::EggLink.DanhengServer.Proto.ALMJPANKNEM.Parser, new[]{ "IOEOPJPDALA" }, null, null, null, null)
new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.ALMJPANKNEM), global::EggLink.DanhengServer.Proto.ALMJPANKNEM.Parser, new[]{ "MiracleId" }, null, null, null, null)
}));
}
#endregion
@@ -72,7 +72,7 @@ namespace EggLink.DanhengServer.Proto {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public ALMJPANKNEM(ALMJPANKNEM other) : this() {
iOEOPJPDALA_ = other.iOEOPJPDALA_;
miracleId_ = other.miracleId_;
_unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
}
@@ -82,15 +82,15 @@ namespace EggLink.DanhengServer.Proto {
return new ALMJPANKNEM(this);
}
/// <summary>Field number for the "IOEOPJPDALA" field.</summary>
public const int IOEOPJPDALAFieldNumber = 7;
private uint iOEOPJPDALA_;
/// <summary>Field number for the "miracle_id" field.</summary>
public const int MiracleIdFieldNumber = 7;
private uint miracleId_;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public uint IOEOPJPDALA {
get { return iOEOPJPDALA_; }
public uint MiracleId {
get { return miracleId_; }
set {
iOEOPJPDALA_ = value;
miracleId_ = value;
}
}
@@ -109,7 +109,7 @@ namespace EggLink.DanhengServer.Proto {
if (ReferenceEquals(other, this)) {
return true;
}
if (IOEOPJPDALA != other.IOEOPJPDALA) return false;
if (MiracleId != other.MiracleId) return false;
return Equals(_unknownFields, other._unknownFields);
}
@@ -117,7 +117,7 @@ namespace EggLink.DanhengServer.Proto {
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public override int GetHashCode() {
int hash = 1;
if (IOEOPJPDALA != 0) hash ^= IOEOPJPDALA.GetHashCode();
if (MiracleId != 0) hash ^= MiracleId.GetHashCode();
if (_unknownFields != null) {
hash ^= _unknownFields.GetHashCode();
}
@@ -136,9 +136,9 @@ namespace EggLink.DanhengServer.Proto {
#if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
output.WriteRawMessage(this);
#else
if (IOEOPJPDALA != 0) {
if (MiracleId != 0) {
output.WriteRawTag(56);
output.WriteUInt32(IOEOPJPDALA);
output.WriteUInt32(MiracleId);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(output);
@@ -150,9 +150,9 @@ namespace EggLink.DanhengServer.Proto {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
if (IOEOPJPDALA != 0) {
if (MiracleId != 0) {
output.WriteRawTag(56);
output.WriteUInt32(IOEOPJPDALA);
output.WriteUInt32(MiracleId);
}
if (_unknownFields != null) {
_unknownFields.WriteTo(ref output);
@@ -164,8 +164,8 @@ namespace EggLink.DanhengServer.Proto {
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public int CalculateSize() {
int size = 0;
if (IOEOPJPDALA != 0) {
size += 1 + pb::CodedOutputStream.ComputeUInt32Size(IOEOPJPDALA);
if (MiracleId != 0) {
size += 1 + pb::CodedOutputStream.ComputeUInt32Size(MiracleId);
}
if (_unknownFields != null) {
size += _unknownFields.CalculateSize();
@@ -179,8 +179,8 @@ namespace EggLink.DanhengServer.Proto {
if (other == null) {
return;
}
if (other.IOEOPJPDALA != 0) {
IOEOPJPDALA = other.IOEOPJPDALA;
if (other.MiracleId != 0) {
MiracleId = other.MiracleId;
}
_unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
}
@@ -198,7 +198,7 @@ namespace EggLink.DanhengServer.Proto {
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
break;
case 56: {
IOEOPJPDALA = input.ReadUInt32();
MiracleId = input.ReadUInt32();
break;
}
}
@@ -217,7 +217,7 @@ namespace EggLink.DanhengServer.Proto {
_unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
break;
case 56: {
IOEOPJPDALA = input.ReadUInt32();
MiracleId = input.ReadUInt32();
break;
}
}

View File

@@ -24,8 +24,8 @@ namespace EggLink.DanhengServer.Proto {
static AetherBattleAvatarReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"ChhBZXRoZXJCYXR0bGVBdmF0YXIucHJvdG8aJEFldGhlcmRpdmlkZVNwaXJp",
"dExpbmV1cFN0YXR1cy5wcm90bxoPU3BCYXJJbmZvLnByb3RvIsUBChJBZXRo",
"ChhBZXRoZXJCYXR0bGVBdmF0YXIucHJvdG8aD1NwQmFySW5mby5wcm90bxok",
"QWV0aGVyZGl2aWRlU3Bpcml0TGluZXVwU3RhdHVzLnByb3RvIsUBChJBZXRo",
"ZXJCYXR0bGVBdmF0YXISCgoCaWQYASABKA0SDQoFaW5kZXgYAiABKA0SEQoJ",
"cHJvbW90aW9uGAMgASgNEh8KF3Bhc3NpdmVfc2tpbGxfaXRlbV9saXN0GAQg",
"AygNEkQKG2FldGhlcl9kaXZpZGVfbGluZXVwX3N0YXR1cxgFIAEoDjIfLkFl",
@@ -33,7 +33,7 @@ namespace EggLink.DanhengServer.Proto {
"Ci5TcEJhckluZm9CHqoCG0VnZ0xpbmsuRGFuaGVuZ1NlcnZlci5Qcm90b2IG",
"cHJvdG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::EggLink.DanhengServer.Proto.AetherdivideSpiritLineupStatusReflection.Descriptor, global::EggLink.DanhengServer.Proto.SpBarInfoReflection.Descriptor, },
new pbr::FileDescriptor[] { global::EggLink.DanhengServer.Proto.SpBarInfoReflection.Descriptor, global::EggLink.DanhengServer.Proto.AetherdivideSpiritLineupStatusReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.AetherBattleAvatar), global::EggLink.DanhengServer.Proto.AetherBattleAvatar.Parser, new[]{ "Id", "Index", "Promotion", "PassiveSkillItemList", "AetherDivideLineupStatus", "SpBar" }, null, null, null, null)
}));

View File

@@ -24,9 +24,9 @@ namespace EggLink.DanhengServer.Proto {
static AetherDivideBattleInfoReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"ChxBZXRoZXJEaXZpZGVCYXR0bGVJbmZvLnByb3RvGhZTY2VuZU1vbnN0ZXJX",
"YXZlLnByb3RvGhhBZXRoZXJCYXR0bGVBdmF0YXIucHJvdG8aEEJhdHRsZUJ1",
"ZmYucHJvdG8i7AEKFkFldGhlckRpdmlkZUJhdHRsZUluZm8SLwoSYmF0dGxl",
"ChxBZXRoZXJEaXZpZGVCYXR0bGVJbmZvLnByb3RvGhBCYXR0bGVCdWZmLnBy",
"b3RvGhhBZXRoZXJCYXR0bGVBdmF0YXIucHJvdG8aFlNjZW5lTW9uc3Rlcldh",
"dmUucHJvdG8i7AEKFkFldGhlckRpdmlkZUJhdHRsZUluZm8SLwoSYmF0dGxl",
"X2F2YXRhcl9saXN0GAcgAygLMhMuQWV0aGVyQmF0dGxlQXZhdGFyEhEKCWJh",
"dHRsZV9pZBgPIAEoDRIZChFsb2dpY19yYW5kb21fc2VlZBgOIAEoDRITCgtN",
"T0xORk5CTEtCTBgEIAEoCBIsChFtb25zdGVyX3dhdmVfbGlzdBgNIAMoCzIR",
@@ -34,7 +34,7 @@ namespace EggLink.DanhengServer.Proto {
"aXN0GAMgAygLMgsuQmF0dGxlQnVmZkIeqgIbRWdnTGluay5EYW5oZW5nU2Vy",
"dmVyLlByb3RvYgZwcm90bzM="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::EggLink.DanhengServer.Proto.SceneMonsterWaveReflection.Descriptor, global::EggLink.DanhengServer.Proto.AetherBattleAvatarReflection.Descriptor, global::EggLink.DanhengServer.Proto.BattleBuffReflection.Descriptor, },
new pbr::FileDescriptor[] { global::EggLink.DanhengServer.Proto.BattleBuffReflection.Descriptor, global::EggLink.DanhengServer.Proto.AetherBattleAvatarReflection.Descriptor, global::EggLink.DanhengServer.Proto.SceneMonsterWaveReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.AetherDivideBattleInfo), global::EggLink.DanhengServer.Proto.AetherDivideBattleInfo.Parser, new[]{ "BattleAvatarList", "BattleId", "LogicRandomSeed", "MOLNFNBLKBL", "MonsterWaveList", "StageId", "BuffList" }, null, null, null, null)
}));

View File

@@ -24,15 +24,15 @@ namespace EggLink.DanhengServer.Proto {
static AetherDivideSpiritInfoReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"ChxBZXRoZXJEaXZpZGVTcGlyaXRJbmZvLnByb3RvGhZQYXNzaXZlU2tpbGxJ",
"dGVtLnByb3RvGg9TcEJhckluZm8ucHJvdG8isgEKFkFldGhlckRpdmlkZVNw",
"ChxBZXRoZXJEaXZpZGVTcGlyaXRJbmZvLnByb3RvGg9TcEJhckluZm8ucHJv",
"dG8aFlBhc3NpdmVTa2lsbEl0ZW0ucHJvdG8isgEKFkFldGhlckRpdmlkZVNw",
"aXJpdEluZm8SCwoDZXhwGA8gASgNEhEKCXByb21vdGlvbhgEIAEoDRITCgtC",
"T0VBREJGQVBJQxgKIAEoDRIyChdwYXNzaXZlX3NraWxsX2l0ZW1fbGlzdBgL",
"IAMoCzIRLlBhc3NpdmVTa2lsbEl0ZW0SEwoLQk9ET0lPUEJDQkQYDSABKA0S",
"GgoGc3BfYmFyGAUgASgLMgouU3BCYXJJbmZvQh6qAhtFZ2dMaW5rLkRhbmhl",
"bmdTZXJ2ZXIuUHJvdG9iBnByb3RvMw=="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::EggLink.DanhengServer.Proto.PassiveSkillItemReflection.Descriptor, global::EggLink.DanhengServer.Proto.SpBarInfoReflection.Descriptor, },
new pbr::FileDescriptor[] { global::EggLink.DanhengServer.Proto.SpBarInfoReflection.Descriptor, global::EggLink.DanhengServer.Proto.PassiveSkillItemReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.AetherDivideSpiritInfo), global::EggLink.DanhengServer.Proto.AetherDivideSpiritInfo.Parser, new[]{ "Exp", "Promotion", "BOEADBFAPIC", "PassiveSkillItemList", "BODOIOPBCBD", "SpBar" }, null, null, null, null)
}));

View File

@@ -24,15 +24,15 @@ namespace EggLink.DanhengServer.Proto {
static ArchiveDataReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"ChFBcmNoaXZlRGF0YS5wcm90bxoPUmVsaWNMaXN0LnByb3RvGhZBcmNoaXZl",
"TW9uc3RlcklkLnByb3RvIs8BCgtBcmNoaXZlRGF0YRIeChZhcmNoaXZlX2F2",
"ChFBcmNoaXZlRGF0YS5wcm90bxoWQXJjaGl2ZU1vbnN0ZXJJZC5wcm90bxoP",
"UmVsaWNMaXN0LnByb3RvIs8BCgtBcmNoaXZlRGF0YRIeChZhcmNoaXZlX2F2",
"YXRhcl9pZF9saXN0GAcgAygNEikKIWFyY2hpdmVfbWlzc2luZ19lcXVpcG1l",
"bnRfaWRfbGlzdBgGIAMoDRIhChlhcmNoaXZlX2VxdWlwbWVudF9pZF9saXN0",
"GAMgAygNEh4KCnJlbGljX2xpc3QYASADKAsyCi5SZWxpY0xpc3QSMgoXYXJj",
"aGl2ZV9tb25zdGVyX2lkX2xpc3QYBSADKAsyES5BcmNoaXZlTW9uc3Rlcklk",
"Qh6qAhtFZ2dMaW5rLkRhbmhlbmdTZXJ2ZXIuUHJvdG9iBnByb3RvMw=="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::EggLink.DanhengServer.Proto.RelicListReflection.Descriptor, global::EggLink.DanhengServer.Proto.ArchiveMonsterIdReflection.Descriptor, },
new pbr::FileDescriptor[] { global::EggLink.DanhengServer.Proto.ArchiveMonsterIdReflection.Descriptor, global::EggLink.DanhengServer.Proto.RelicListReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.ArchiveData), global::EggLink.DanhengServer.Proto.ArchiveData.Parser, new[]{ "ArchiveAvatarIdList", "ArchiveMissingEquipmentIdList", "ArchiveEquipmentIdList", "RelicList", "ArchiveMonsterIdList" }, null, null, null, null)
}));

View File

@@ -24,8 +24,8 @@ namespace EggLink.DanhengServer.Proto {
static AvatarReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"CgxBdmF0YXIucHJvdG8aFUF2YXRhclNraWxsVHJlZS5wcm90bxoQRXF1aXBS",
"ZWxpYy5wcm90byKnAgoGQXZhdGFyEhEKCXByb21vdGlvbhgBIAEoDRITCgtC",
"CgxBdmF0YXIucHJvdG8aEEVxdWlwUmVsaWMucHJvdG8aFUF2YXRhclNraWxs",
"VHJlZS5wcm90byKnAgoGQXZhdGFyEhEKCXByb21vdGlvbhgBIAEoDRITCgtC",
"QUpDSEZQSUVFThgHIAEoDRIcChRmaXJzdF9tZXRfdGltZV9zdGFtcBgNIAEo",
"BBIoCg5za2lsbHRyZWVfbGlzdBgIIAMoCzIQLkF2YXRhclNraWxsVHJlZRIN",
"CgVsZXZlbBgDIAEoDRIMCgRyYW5rGAIgASgNEgsKA2V4cBgMIAEoDRIbChNl",
@@ -34,7 +34,7 @@ namespace EggLink.DanhengServer.Proto {
"H2hhc190YWtlbl9wcm9tb3Rpb25fcmV3YXJkX2xpc3QYBCADKA1CHqoCG0Vn",
"Z0xpbmsuRGFuaGVuZ1NlcnZlci5Qcm90b2IGcHJvdG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::EggLink.DanhengServer.Proto.AvatarSkillTreeReflection.Descriptor, global::EggLink.DanhengServer.Proto.EquipRelicReflection.Descriptor, },
new pbr::FileDescriptor[] { global::EggLink.DanhengServer.Proto.EquipRelicReflection.Descriptor, global::EggLink.DanhengServer.Proto.AvatarSkillTreeReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.Avatar), global::EggLink.DanhengServer.Proto.Avatar.Parser, new[]{ "Promotion", "BAJCHFPIEEN", "FirstMetTimeStamp", "SkilltreeList", "Level", "Rank", "Exp", "EquipmentUniqueId", "BaseAvatarId", "EquipRelicList", "HasTakenPromotionRewardList" }, null, null, null, null)
}));

View File

@@ -24,11 +24,11 @@ namespace EggLink.DanhengServer.Proto {
static AvatarBattleInfoReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"ChZBdmF0YXJCYXR0bGVJbmZvLnByb3RvGhdFcXVpcG1lbnRQcm9wZXJ0eS5w",
"cm90bxoUQXZhdGFyUHJvcGVydHkucHJvdG8aEVNwQWRkU291cmNlLnByb3Rv",
"GhFCYXR0bGVSZWxpYy5wcm90bxoaQXR0YWNrRGFtYWdlUHJvcGVydHkucHJv",
"dG8aFlNraWxsVXNlUHJvcGVydHkucHJvdG8aFUF2YXRhclNraWxsVHJlZS5w",
"cm90bxoQQXZhdGFyVHlwZS5wcm90bxoTQWJpbGl0eVVzZVN0dC5wcm90byLS",
"ChZBdmF0YXJCYXR0bGVJbmZvLnByb3RvGhFTcEFkZFNvdXJjZS5wcm90bxoT",
"QWJpbGl0eVVzZVN0dC5wcm90bxoWU2tpbGxVc2VQcm9wZXJ0eS5wcm90bxoU",
"QXZhdGFyUHJvcGVydHkucHJvdG8aEEF2YXRhclR5cGUucHJvdG8aEUJhdHRs",
"ZVJlbGljLnByb3RvGhVBdmF0YXJTa2lsbFRyZWUucHJvdG8aF0VxdWlwbWVu",
"dFByb3BlcnR5LnByb3RvGhpBdHRhY2tEYW1hZ2VQcm9wZXJ0eS5wcm90byLS",
"CQoQQXZhdGFyQmF0dGxlSW5mbxIgCgthdmF0YXJfdHlwZRgBIAEoDjILLkF2",
"YXRhclR5cGUSCgoCaWQYAiABKA0SFAoMYXZhdGFyX2xldmVsGAMgASgNEhMK",
"C2F2YXRhcl9yYW5rGAQgASgNEhgKEGF2YXRhcl9wcm9tb3Rpb24YBSABKA0S",
@@ -59,7 +59,7 @@ namespace EggLink.DanhengServer.Proto {
"EwoLRVBDQkVJR0FCT0YYKyABKA1CHqoCG0VnZ0xpbmsuRGFuaGVuZ1NlcnZl",
"ci5Qcm90b2IGcHJvdG8z"));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::EggLink.DanhengServer.Proto.EquipmentPropertyReflection.Descriptor, global::EggLink.DanhengServer.Proto.AvatarPropertyReflection.Descriptor, global::EggLink.DanhengServer.Proto.SpAddSourceReflection.Descriptor, global::EggLink.DanhengServer.Proto.BattleRelicReflection.Descriptor, global::EggLink.DanhengServer.Proto.AttackDamagePropertyReflection.Descriptor, global::EggLink.DanhengServer.Proto.SkillUsePropertyReflection.Descriptor, global::EggLink.DanhengServer.Proto.AvatarSkillTreeReflection.Descriptor, global::EggLink.DanhengServer.Proto.AvatarTypeReflection.Descriptor, global::EggLink.DanhengServer.Proto.AbilityUseSttReflection.Descriptor, },
new pbr::FileDescriptor[] { global::EggLink.DanhengServer.Proto.SpAddSourceReflection.Descriptor, global::EggLink.DanhengServer.Proto.AbilityUseSttReflection.Descriptor, global::EggLink.DanhengServer.Proto.SkillUsePropertyReflection.Descriptor, global::EggLink.DanhengServer.Proto.AvatarPropertyReflection.Descriptor, global::EggLink.DanhengServer.Proto.AvatarTypeReflection.Descriptor, global::EggLink.DanhengServer.Proto.BattleRelicReflection.Descriptor, global::EggLink.DanhengServer.Proto.AvatarSkillTreeReflection.Descriptor, global::EggLink.DanhengServer.Proto.EquipmentPropertyReflection.Descriptor, global::EggLink.DanhengServer.Proto.AttackDamagePropertyReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.AvatarBattleInfo), global::EggLink.DanhengServer.Proto.AvatarBattleInfo.Parser, new[]{ "AvatarType", "Id", "AvatarLevel", "AvatarRank", "AvatarPromotion", "AvatarStatus", "AvatarSkill", "AvatarEquipment", "TotalTurns", "TotalDamage", "TotalHeal", "TotalDamageTaken", "TotalHpRecover", "TotalSpCost", "StageId", "StageType", "TotalBreakDamage", "AttackTypeDamage", "AttackTypeBreakDamage", "AttackTypeMaxDamage", "SkillTimes", "DelayCumulate", "TotalSpAdd", "SpAddSource", "TotalBpCost", "DieTimes", "ReviveTimes", "BreakTimes", "ExtraTurns", "TotalShield", "TotalShieldTaken", "TotalShieldDamage", "InitialStatus", "Relics", "AssistUid", "ACJFANCIOBD", "FCOAKKCAGAD", "NOAMNPJHDBF", "FLBCBOHMGKK", "IABIBPCGLON", "IHNHNCEFFEK", "DDPCGFJFEBJ", "EPCBEIGABOF" }, null, null, null, null)
}));

View File

@@ -24,14 +24,14 @@ namespace EggLink.DanhengServer.Proto {
static BBOEPMAGOKPReflection() {
byte[] descriptorData = global::System.Convert.FromBase64String(
string.Concat(
"ChFCQk9FUE1BR09LUC5wcm90bxoRT0JBRUdFT0JNTkoucHJvdG8aEU5DRU1C",
"RUxHTkhFLnByb3RvGhFNSE5PRUdNT0dMSi5wcm90byJ2CgtCQk9FUE1BR09L",
"ChFCQk9FUE1BR09LUC5wcm90bxoRT0JBRUdFT0JNTkoucHJvdG8aEU1ITk9F",
"R01PR0xKLnByb3RvGhFOQ0VNQkVMR05IRS5wcm90byJ2CgtCQk9FUE1BR09L",
"UBIhCgtJR0xQSkdMUEhETBgJIAEoCzIMLk5DRU1CRUxHTkhFEiEKC0pNRUVI",
"S09ETkhFGA0gASgLMgwuT0JBRUdFT0JNTkoSIQoLRkFMSEhER0xGT0kYASAB",
"KAsyDC5NSE5PRUdNT0dMSkIeqgIbRWdnTGluay5EYW5oZW5nU2VydmVyLlBy",
"b3RvYgZwcm90bzM="));
descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
new pbr::FileDescriptor[] { global::EggLink.DanhengServer.Proto.OBAEGEOBMNJReflection.Descriptor, global::EggLink.DanhengServer.Proto.NCEMBELGNHEReflection.Descriptor, global::EggLink.DanhengServer.Proto.MHNOEGMOGLJReflection.Descriptor, },
new pbr::FileDescriptor[] { global::EggLink.DanhengServer.Proto.OBAEGEOBMNJReflection.Descriptor, global::EggLink.DanhengServer.Proto.MHNOEGMOGLJReflection.Descriptor, global::EggLink.DanhengServer.Proto.NCEMBELGNHEReflection.Descriptor, },
new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
new pbr::GeneratedClrTypeInfo(typeof(global::EggLink.DanhengServer.Proto.BBOEPMAGOKP), global::EggLink.DanhengServer.Proto.BBOEPMAGOKP.Parser, new[]{ "IGLPJGLPHDL", "JMEEHKODNHE", "FALHHDGLFOI" }, null, null, null, null)
}));

Some files were not shown because too many files have changed in this diff Show More