mirror of
https://github.com/rafi1212122/PemukulPaku
synced 2026-02-04 09:25:21 +01:00
at least you can end the stage
This commit is contained in:
@@ -13,4 +13,10 @@
|
||||
<PackageReference Include="protobuf-net" Version="3.2.16" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Content Include="Resources\ExcelOutputAsset\**">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
75
Common/Database/Avatar.cs
Normal file
75
Common/Database/Avatar.cs
Normal file
@@ -0,0 +1,75 @@
|
||||
using Common.Resources.Proto;
|
||||
using Common.Utils.ExcelReader;
|
||||
using MongoDB.Bson;
|
||||
using MongoDB.Driver;
|
||||
|
||||
namespace Common.Database
|
||||
{
|
||||
public class Avatar
|
||||
{
|
||||
public static readonly IMongoCollection<AvatarScheme> collection = Global.db.GetCollection<AvatarScheme>("Avatars");
|
||||
|
||||
public static AvatarScheme[] AvatarsFromUid(uint uid)
|
||||
{
|
||||
return collection.AsQueryable().Where(collection=> collection.OwnerUid == uid).ToArray();
|
||||
}
|
||||
|
||||
public static AvatarScheme Create(int avatarId, uint uid, EquipmentScheme equipment)
|
||||
{
|
||||
AvatarScheme? tryAvatar = collection.AsQueryable().Where(collection => collection.AvatarId == avatarId && collection.OwnerUid == uid).FirstOrDefault();
|
||||
if (tryAvatar != null) { return tryAvatar; }
|
||||
|
||||
AvatarDataExcel? avatarData = AvatarData.GetInstance().FromId(avatarId);
|
||||
if(avatarData == null) { throw new ArgumentException("Invalid avatarId"); }
|
||||
|
||||
Weapon weapon = equipment.AddWeapon(avatarData.InitialWeapon);
|
||||
|
||||
AvatarScheme avatar = new()
|
||||
{
|
||||
OwnerUid = uid,
|
||||
AvatarId = (uint)avatarData.AvatarId,
|
||||
DressId = (uint)avatarData.DefaultDressId,
|
||||
DressLists = new[] { (uint)avatarData.DefaultDressId },
|
||||
Exp = 0,
|
||||
Fragment = 0,
|
||||
Level = 1,
|
||||
Star = (uint)avatarData.UnlockStar,
|
||||
StigmataUniqueId1 = 0,
|
||||
StigmataUniqueId2 = 0,
|
||||
StigmataUniqueId3 = 0,
|
||||
SubStar = 0,
|
||||
TouchGoodfeel = 0,
|
||||
TodayHasAddGoodfeel = 0,
|
||||
WeaponUniqueId = weapon.UniqueId
|
||||
};
|
||||
|
||||
if(avatarData.AvatarId == 101)
|
||||
{
|
||||
Stigmata defaultStigmata1 = equipment.AddStigmata(30007);
|
||||
Stigmata defaultStigmata2 = equipment.AddStigmata(30060);
|
||||
Stigmata defaultStigmata3 = equipment.AddStigmata(30113);
|
||||
|
||||
avatar.StigmataUniqueId1 = defaultStigmata1.UniqueId;
|
||||
avatar.StigmataUniqueId2 = defaultStigmata2.UniqueId;
|
||||
avatar.StigmataUniqueId3 = defaultStigmata3.UniqueId;
|
||||
}
|
||||
|
||||
avatar.SkillLists.AddRange(avatarData.SkillList.Select(skillId => new AvatarSkill { SkillId = (uint)skillId }));
|
||||
|
||||
collection.InsertOne(avatar);
|
||||
|
||||
return avatar;
|
||||
}
|
||||
|
||||
}
|
||||
public class AvatarScheme : Resources.Proto.Avatar
|
||||
{
|
||||
public ObjectId Id { get; set; }
|
||||
public uint OwnerUid { get; set; }
|
||||
|
||||
public void Save()
|
||||
{
|
||||
Avatar.collection.ReplaceOne(Builders<AvatarScheme>.Filter.Eq(avatar => avatar.Id, Id), this);
|
||||
}
|
||||
}
|
||||
}
|
||||
116
Common/Database/Equipment.cs
Normal file
116
Common/Database/Equipment.cs
Normal file
@@ -0,0 +1,116 @@
|
||||
using Common.Resources.Proto;
|
||||
using Common.Utils.ExcelReader;
|
||||
using MongoDB.Bson;
|
||||
using MongoDB.Driver;
|
||||
|
||||
namespace Common.Database
|
||||
{
|
||||
public class Equipment
|
||||
{
|
||||
public static readonly IMongoCollection<EquipmentScheme> collection = Global.db.GetCollection<EquipmentScheme>("Equipments");
|
||||
|
||||
public static EquipmentScheme FromUid(uint uid)
|
||||
{
|
||||
return collection.AsQueryable().Where(collection => collection.OwnerUid == uid).FirstOrDefault() ?? Create(uid);
|
||||
}
|
||||
|
||||
public static EquipmentScheme Create(uint uid)
|
||||
{
|
||||
EquipmentScheme? tryEquipment = collection.AsQueryable().Where(collection => collection.OwnerUid == uid).FirstOrDefault();
|
||||
if (tryEquipment != null) { return tryEquipment; }
|
||||
|
||||
EquipmentScheme Equipment = new()
|
||||
{
|
||||
OwnerUid = uid,
|
||||
MaterialList = Array.Empty<Resources.Proto.Material>(),
|
||||
WeaponList = Array.Empty<Weapon>(),
|
||||
StigmataList = Array.Empty<Stigmata>(),
|
||||
MechaList = Array.Empty<Mecha>(),
|
||||
};
|
||||
|
||||
collection.InsertOne(Equipment);
|
||||
|
||||
return Equipment;
|
||||
}
|
||||
}
|
||||
|
||||
#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable.
|
||||
public class EquipmentScheme
|
||||
{
|
||||
public ObjectId Id { get; set; }
|
||||
public uint OwnerUid { get; set; }
|
||||
public Resources.Proto.Material[] MaterialList { get; set; }
|
||||
public Mecha[] MechaList { get; set; }
|
||||
public Stigmata[] StigmataList { get; set; }
|
||||
public Weapon[] WeaponList { get; set; }
|
||||
|
||||
public Weapon AddWeapon(int weaponId)
|
||||
{
|
||||
WeaponDataExcel? weaponData = WeaponData.GetInstance().FromId(weaponId);
|
||||
if (weaponData == null) { throw new ArgumentException("Invalid weaponId"); }
|
||||
|
||||
Weapon weapon = new()
|
||||
{
|
||||
UniqueId = (uint)AutoIncrement.GetNextNumber("Weapon", 100),
|
||||
Id = (uint)weaponData.Id,
|
||||
Level = 1,
|
||||
Exp = 0,
|
||||
IsExtracted = false,
|
||||
IsProtected = false
|
||||
};
|
||||
|
||||
WeaponList = WeaponList.Append(weapon).ToArray();
|
||||
return weapon;
|
||||
}
|
||||
|
||||
public Stigmata AddStigmata(int stigmataId)
|
||||
{
|
||||
StigmataDataExcel? stigmataData = StigmataData.GetInstance().FromId(stigmataId);
|
||||
if (stigmataData == null) { throw new ArgumentException("Invalid stigmataId"); }
|
||||
|
||||
Stigmata stigmata = new()
|
||||
{
|
||||
UniqueId = (uint)AutoIncrement.GetNextNumber("Stigmata", 100),
|
||||
Id = (uint)stigmataData.Id,
|
||||
Level = 1,
|
||||
Exp = 0,
|
||||
IsProtected = false,
|
||||
SlotNum = 0,
|
||||
RefineValue = 0,
|
||||
PromoteTimes = 0
|
||||
};
|
||||
|
||||
StigmataList = StigmataList.Append(stigmata).ToArray();
|
||||
return stigmata;
|
||||
}
|
||||
|
||||
public Resources.Proto.Material AddMaterial(int materialId, int num = 1)
|
||||
{
|
||||
int MaterialIndex = Array.FindIndex(MaterialList, material => material.Id == materialId);
|
||||
|
||||
if(MaterialIndex == -1)
|
||||
{
|
||||
MaterialList = MaterialList.Append(new() { Id = (uint)materialId, Num = num < 0 ? 0 : (uint)num }).ToArray();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (num < 0)
|
||||
{
|
||||
MaterialList[MaterialIndex].Num -= (uint)Math.Abs(num);
|
||||
}
|
||||
else
|
||||
{
|
||||
MaterialList[MaterialIndex].Num += (uint)num;
|
||||
}
|
||||
}
|
||||
|
||||
return MaterialList.Where(material => material.Id == materialId).First();
|
||||
}
|
||||
|
||||
public void Save()
|
||||
{
|
||||
Equipment.collection.ReplaceOne(Builders<EquipmentScheme>.Filter.Eq(equipment => equipment.Id, Id), this);
|
||||
}
|
||||
}
|
||||
#pragma warning restore CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable.
|
||||
}
|
||||
@@ -8,8 +8,11 @@ namespace Common.Database
|
||||
{
|
||||
public static readonly IMongoCollection<UserScheme> collection = Global.db.GetCollection<UserScheme>("Users");
|
||||
|
||||
public static UserScheme CreateUser(string name)
|
||||
public static UserScheme Create(string name)
|
||||
{
|
||||
UserScheme? tryUser = collection.AsQueryable().Where(d => d.Name == name).FirstOrDefault();
|
||||
if (tryUser != null) { return tryUser; }
|
||||
|
||||
UserScheme user = new()
|
||||
{
|
||||
Name = name,
|
||||
@@ -41,7 +44,7 @@ namespace Common.Database
|
||||
public static UserScheme FromName(string name)
|
||||
{
|
||||
UserScheme? user = collection.AsQueryable().Where(d => d.Name == name).FirstOrDefault();
|
||||
return user ?? CreateUser(name);
|
||||
return user ?? Create(name);
|
||||
}
|
||||
|
||||
public static UserScheme? FromToken(string token)
|
||||
@@ -50,27 +53,33 @@ namespace Common.Database
|
||||
return user;
|
||||
}
|
||||
|
||||
#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable.
|
||||
public class UserScheme
|
||||
{
|
||||
public ObjectId Id { get; set; }
|
||||
public string Name { get; set; }
|
||||
public uint Uid { get; set; }
|
||||
public string Nick { get; set; }
|
||||
public int Exp { get; set; }
|
||||
public int Hcoin { get; set; }
|
||||
public int Stamina { get; set; }
|
||||
public string SelfDesc { get; set; }
|
||||
public bool IsFirstLogin { get; set; }
|
||||
public string Token { get; set; }
|
||||
public int WarshipId { get; set; }
|
||||
public WarshipAvatarData WarshipAvatar { get; set; }
|
||||
public int AssistantAvatarId { get; set; }
|
||||
public int BirthDate { get; set; }
|
||||
public List<AvatarTeam> AvatarTeamList { get; set; }
|
||||
public List<CustomAvatarTeam> CustomAvatarTeamList { get; set; }
|
||||
}
|
||||
#pragma warning restore CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable.
|
||||
}
|
||||
|
||||
#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable.
|
||||
public class UserScheme
|
||||
{
|
||||
public ObjectId Id { get; set; }
|
||||
public string Name { get; set; }
|
||||
public uint Uid { get; set; }
|
||||
public string Nick { get; set; }
|
||||
public int Exp { get; set; }
|
||||
public int Hcoin { get; set; }
|
||||
public int Stamina { get; set; }
|
||||
public string SelfDesc { get; set; }
|
||||
public bool IsFirstLogin { get; set; }
|
||||
public string Token { get; set; }
|
||||
public int WarshipId { get; set; }
|
||||
public WarshipAvatarData WarshipAvatar { get; set; }
|
||||
public int AssistantAvatarId { get; set; }
|
||||
public int BirthDate { get; set; }
|
||||
public List<AvatarTeam> AvatarTeamList { get; set; }
|
||||
public List<CustomAvatarTeam> CustomAvatarTeamList { get; set; }
|
||||
|
||||
public void Save()
|
||||
{
|
||||
User.collection.ReplaceOne(Builders<UserScheme>.Filter.Eq(user => user.Id, Id), this);
|
||||
}
|
||||
}
|
||||
#pragma warning restore CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable.
|
||||
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ namespace Common
|
||||
public interface IConfig
|
||||
{
|
||||
[Option(DefaultValue = VerboseLevel.Normal)]
|
||||
VerboseLevel VerboseLevel { get; }
|
||||
VerboseLevel VerboseLevel { get; set; }
|
||||
|
||||
[Option(DefaultValue = false)]
|
||||
bool UseLocalCache { get; }
|
||||
|
||||
187
Common/Utils/ExcelReader/AvatarData.cs
Normal file
187
Common/Utils/ExcelReader/AvatarData.cs
Normal file
@@ -0,0 +1,187 @@
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Common.Utils.ExcelReader
|
||||
{
|
||||
public class AvatarData : BaseExcelReader<AvatarData, AvatarDataExcel>
|
||||
{
|
||||
public override string FileName { get { return "AvatarData.json"; } }
|
||||
|
||||
public AvatarDataExcel? FromId(int id)
|
||||
{
|
||||
return All.Where(avatar => avatar.AvatarId == id).FirstOrDefault();
|
||||
}
|
||||
}
|
||||
|
||||
#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable.
|
||||
public partial class AvatarDataExcel
|
||||
{
|
||||
[JsonProperty("classID")]
|
||||
public int ClassId { get; set; }
|
||||
|
||||
[JsonProperty("roleID")]
|
||||
public int RoleId { get; set; }
|
||||
|
||||
[JsonProperty("avatarType")]
|
||||
public int AvatarType { get; set; }
|
||||
|
||||
[JsonProperty("fullName")]
|
||||
public HashName FullName { get; set; }
|
||||
|
||||
[JsonProperty("shortName")]
|
||||
public HashName ShortName { get; set; }
|
||||
|
||||
[JsonProperty("RomaName")]
|
||||
public HashName RomaName { get; set; }
|
||||
|
||||
[JsonProperty("desc")]
|
||||
public HashName Desc { get; set; }
|
||||
|
||||
[JsonProperty("avatarRegistryKey")]
|
||||
public string AvatarRegistryKey { get; set; }
|
||||
|
||||
[JsonProperty("weaponBaseTypeList")]
|
||||
public int[] WeaponBaseTypeList { get; set; }
|
||||
|
||||
[JsonProperty("unlockStar")]
|
||||
public int UnlockStar { get; set; }
|
||||
|
||||
[JsonProperty("skillList")]
|
||||
public int[] SkillList { get; set; }
|
||||
|
||||
[JsonProperty("attribute")]
|
||||
public int Attribute { get; set; }
|
||||
|
||||
[JsonProperty("initialWeapon")]
|
||||
public int InitialWeapon { get; set; }
|
||||
|
||||
[JsonProperty("avatarCardID")]
|
||||
public int AvatarCardId { get; set; }
|
||||
|
||||
[JsonProperty("avatarFragmentID")]
|
||||
public int AvatarFragmentId { get; set; }
|
||||
|
||||
[JsonProperty("artifactFragmentID")]
|
||||
public int ArtifactFragmentId { get; set; }
|
||||
|
||||
[JsonProperty("ultraSkillID")]
|
||||
public int UltraSkillId { get; set; }
|
||||
|
||||
[JsonProperty("captainSkillID")]
|
||||
public int CaptainSkillId { get; set; }
|
||||
|
||||
[JsonProperty("SKL01SP")]
|
||||
public double Skl01Sp { get; set; }
|
||||
|
||||
[JsonProperty("SKL01SPNeed")]
|
||||
public double Skl01SpNeed { get; set; }
|
||||
|
||||
[JsonProperty("SKL01Charges")]
|
||||
public double Skl01Charges { get; set; }
|
||||
|
||||
[JsonProperty("SKL01CD")]
|
||||
public double Skl01Cd { get; set; }
|
||||
|
||||
[JsonProperty("SKL02SP")]
|
||||
public double Skl02Sp { get; set; }
|
||||
|
||||
[JsonProperty("SKL02SPNeed")]
|
||||
public double Skl02SpNeed { get; set; }
|
||||
|
||||
[JsonProperty("SKL02Charges")]
|
||||
public double Skl02Charges { get; set; }
|
||||
|
||||
[JsonProperty("SKL02CD")]
|
||||
public double Skl02Cd { get; set; }
|
||||
|
||||
[JsonProperty("SKL03SP")]
|
||||
public double Skl03Sp { get; set; }
|
||||
|
||||
[JsonProperty("SKL03SPNeed")]
|
||||
public double Skl03SpNeed { get; set; }
|
||||
|
||||
[JsonProperty("SKL03Charges")]
|
||||
public double Skl03Charges { get; set; }
|
||||
|
||||
[JsonProperty("SKL03CD")]
|
||||
public double Skl03Cd { get; set; }
|
||||
|
||||
[JsonProperty("SKL02ArtifactCD")]
|
||||
public double Skl02ArtifactCd { get; set; }
|
||||
|
||||
[JsonProperty("SKL02ArtifactSP")]
|
||||
public double Skl02ArtifactSp { get; set; }
|
||||
|
||||
[JsonProperty("SKL02ArtifactSPNeed")]
|
||||
public double Skl02ArtifactSpNeed { get; set; }
|
||||
|
||||
[JsonProperty("baseAvatarID")]
|
||||
public int BaseAvatarId { get; set; }
|
||||
|
||||
[JsonProperty("firstName")]
|
||||
public HashName FirstName { get; set; }
|
||||
|
||||
[JsonProperty("lastName")]
|
||||
public HashName LastName { get; set; }
|
||||
|
||||
[JsonProperty("enFirstName")]
|
||||
public HashName EnFirstName { get; set; }
|
||||
|
||||
[JsonProperty("enLastName")]
|
||||
public HashName EnLastName { get; set; }
|
||||
|
||||
[JsonProperty("UISelectVoice")]
|
||||
public string UiSelectVoice { get; set; }
|
||||
|
||||
[JsonProperty("UILevelUpVoice")]
|
||||
public string UiLevelUpVoice { get; set; }
|
||||
|
||||
[JsonProperty("DA_Name")]
|
||||
public string DaName { get; set; }
|
||||
|
||||
[JsonProperty("DA_Type")]
|
||||
public string DaType { get; set; }
|
||||
|
||||
[JsonProperty("ArtifactID")]
|
||||
public int ArtifactId { get; set; }
|
||||
|
||||
[JsonProperty("isEasterner")]
|
||||
public bool IsEasterner { get; set; }
|
||||
|
||||
[JsonProperty("FaceAnimationGroupName")]
|
||||
public string FaceAnimationGroupName { get; set; }
|
||||
|
||||
[JsonProperty("AvatarEffects")]
|
||||
public object[] AvatarEffects { get; set; }
|
||||
|
||||
[JsonProperty("TagUnlockList")]
|
||||
public int[] TagUnlockList { get; set; }
|
||||
|
||||
[JsonProperty("DefaultDressId")]
|
||||
public int DefaultDressId { get; set; }
|
||||
|
||||
[JsonProperty("avatarStarUpType")]
|
||||
public int AvatarStarUpType { get; set; }
|
||||
|
||||
[JsonProperty("avatarStarSourceID")]
|
||||
public object[] AvatarStarSourceId { get; set; }
|
||||
|
||||
[JsonProperty("IsCollaboration")]
|
||||
public bool IsCollaboration { get; set; }
|
||||
|
||||
[JsonProperty("StarUpBG")]
|
||||
public string StarUpBg { get; set; }
|
||||
|
||||
[JsonProperty("DataImpl")]
|
||||
public object DataImpl { get; set; }
|
||||
|
||||
[JsonProperty("avatarID")]
|
||||
public int AvatarId { get; set; }
|
||||
}
|
||||
|
||||
public partial class HashName
|
||||
{
|
||||
[JsonProperty("hash")]
|
||||
public long Hash { get; set; }
|
||||
}
|
||||
#pragma warning restore CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable.
|
||||
}
|
||||
33
Common/Utils/ExcelReader/ExcelBase.cs
Normal file
33
Common/Utils/ExcelReader/ExcelBase.cs
Normal file
@@ -0,0 +1,33 @@
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Common.Utils.ExcelReader
|
||||
{
|
||||
#pragma warning disable CS8618, CS8602 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable.
|
||||
public abstract class BaseExcelReader<Self, Scheme>
|
||||
{
|
||||
public Scheme[] All { get; set; }
|
||||
private readonly Logger c = new("Factory", ConsoleColor.Yellow);
|
||||
public abstract string FileName { get; }
|
||||
private static Self Instance;
|
||||
|
||||
public static Self GetInstance()
|
||||
{
|
||||
Instance ??= Activator.CreateInstance<Self>();
|
||||
|
||||
if ((Instance as BaseExcelReader<Self, Scheme>).All == null)
|
||||
{
|
||||
(Instance as BaseExcelReader<Self, Scheme>).Load();
|
||||
if((int)Global.config.VerboseLevel > 1)
|
||||
(Instance as BaseExcelReader<Self, Scheme>).c.Log($"{typeof(Self).Name} Excel Loaded From {(Instance as BaseExcelReader<Self, Scheme>).FileName}");
|
||||
}
|
||||
|
||||
return Instance;
|
||||
}
|
||||
|
||||
public void Load()
|
||||
{
|
||||
All = JsonConvert.DeserializeObject<Scheme[]>(File.ReadAllText($"Resources\\ExcelOutputAsset\\{FileName}")) ?? Array.Empty<Scheme>();
|
||||
}
|
||||
#pragma warning restore CS8618, CS8602 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable.
|
||||
}
|
||||
}
|
||||
250
Common/Utils/ExcelReader/StageData.cs
Normal file
250
Common/Utils/ExcelReader/StageData.cs
Normal file
@@ -0,0 +1,250 @@
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Common.Utils.ExcelReader
|
||||
{
|
||||
public class StageData : BaseExcelReader<StageData, StageDataExcel>
|
||||
{
|
||||
public override string FileName { get { return "StageData_Main.json"; } }
|
||||
|
||||
public StageDataExcel? FromId(int id)
|
||||
{
|
||||
return All.Where(stage => stage.LevelId == id).FirstOrDefault();
|
||||
}
|
||||
}
|
||||
|
||||
#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable.
|
||||
public partial class StageDataExcel
|
||||
{
|
||||
[JsonProperty("name")]
|
||||
public HashName Name { get; set; }
|
||||
|
||||
[JsonProperty("chapterId")]
|
||||
public int ChapterId { get; set; }
|
||||
|
||||
[JsonProperty("actId")]
|
||||
public int ActId { get; set; }
|
||||
|
||||
[JsonProperty("sectionId")]
|
||||
public int SectionId { get; set; }
|
||||
|
||||
[JsonProperty("difficulty")]
|
||||
public int Difficulty { get; set; }
|
||||
|
||||
[JsonProperty("type")]
|
||||
public int Type { get; set; }
|
||||
|
||||
[JsonProperty("tag")]
|
||||
public int[] Tag { get; set; }
|
||||
|
||||
[JsonProperty("battleType")]
|
||||
public int BattleType { get; set; }
|
||||
|
||||
[JsonProperty("enterTimes")]
|
||||
public int EnterTimes { get; set; }
|
||||
|
||||
[JsonProperty("resetType")]
|
||||
public int ResetType { get; set; }
|
||||
|
||||
[JsonProperty("resetCoinID")]
|
||||
public int ResetCoinId { get; set; }
|
||||
|
||||
[JsonProperty("resetCostType")]
|
||||
public int ResetCostType { get; set; }
|
||||
|
||||
[JsonProperty("resetTimes")]
|
||||
public int ResetTimes { get; set; }
|
||||
|
||||
[JsonProperty("staminaCost")]
|
||||
public int StaminaCost { get; set; }
|
||||
|
||||
[JsonProperty("avatarExpReward")]
|
||||
public int AvatarExpReward { get; set; }
|
||||
|
||||
[JsonProperty("avatarExpInside")]
|
||||
public int AvatarExpInside { get; set; }
|
||||
|
||||
[JsonProperty("scoinReward")]
|
||||
public int ScoinReward { get; set; }
|
||||
|
||||
[JsonProperty("scoinInside")]
|
||||
public double ScoinInside { get; set; }
|
||||
|
||||
[JsonProperty("maxScoinReward")]
|
||||
public int MaxScoinReward { get; set; }
|
||||
|
||||
[JsonProperty("maxProgress")]
|
||||
public int MaxProgress { get; set; }
|
||||
|
||||
[JsonProperty("HighlightDisplayDropIdList")]
|
||||
public int[] HighlightDisplayDropIdList { get; set; }
|
||||
|
||||
[JsonProperty("dropList")]
|
||||
public int[] DropList { get; set; }
|
||||
|
||||
[JsonProperty("recommendPlayerLevel")]
|
||||
public int RecommendPlayerLevel { get; set; }
|
||||
|
||||
[JsonProperty("unlockPlayerLevel")]
|
||||
public int UnlockPlayerLevel { get; set; }
|
||||
|
||||
[JsonProperty("unlockStarNum")]
|
||||
public int UnlockStarNum { get; set; }
|
||||
|
||||
[JsonProperty("preLevelID")]
|
||||
public int[] PreLevelId { get; set; }
|
||||
|
||||
[JsonProperty("displayTitle")]
|
||||
public HashName DisplayTitle { get; set; }
|
||||
|
||||
[JsonProperty("displayDetail")]
|
||||
public HashName DisplayDetail { get; set; }
|
||||
|
||||
[JsonProperty("briefPicPath")]
|
||||
public string BriefPicPath { get; set; }
|
||||
|
||||
[JsonProperty("detailPicPath")]
|
||||
public string DetailPicPath { get; set; }
|
||||
|
||||
[JsonProperty("luaFile")]
|
||||
public string LuaFile { get; set; }
|
||||
|
||||
[JsonProperty("challengeList")]
|
||||
public ChallengeList[] ChallengeList { get; set; }
|
||||
|
||||
[JsonProperty("IsActChallenge")]
|
||||
public bool IsActChallenge { get; set; }
|
||||
|
||||
[JsonProperty("fastBonusTime")]
|
||||
public int FastBonusTime { get; set; }
|
||||
|
||||
[JsonProperty("sonicBonusTime")]
|
||||
public int SonicBonusTime { get; set; }
|
||||
|
||||
[JsonProperty("hardLevel")]
|
||||
public int HardLevel { get; set; }
|
||||
|
||||
[JsonProperty("hardLevelGroup")]
|
||||
public int HardLevelGroup { get; set; }
|
||||
|
||||
[JsonProperty("reviveTimes")]
|
||||
public int ReviveTimes { get; set; }
|
||||
|
||||
[JsonProperty("reviveCostType")]
|
||||
public int ReviveCostType { get; set; }
|
||||
|
||||
[JsonProperty("ReviveUseTypeList")]
|
||||
public int[] ReviveUseTypeList { get; set; }
|
||||
|
||||
[JsonProperty("teamNum")]
|
||||
public int TeamNum { get; set; }
|
||||
|
||||
[JsonProperty("maxNumList")]
|
||||
public int[] MaxNumList { get; set; }
|
||||
|
||||
[JsonProperty("restrictList")]
|
||||
public int[] RestrictList { get; set; }
|
||||
|
||||
[JsonProperty("loseDescList")]
|
||||
public HashName[] LoseDescList { get; set; }
|
||||
|
||||
[JsonProperty("RecordLevelType")]
|
||||
public int RecordLevelType { get; set; }
|
||||
|
||||
[JsonProperty("UseDynamicHardLv")]
|
||||
public int UseDynamicHardLv { get; set; }
|
||||
|
||||
[JsonProperty("isTrunk")]
|
||||
public bool IsTrunk { get; set; }
|
||||
|
||||
[JsonProperty("MonsterAttrShow")]
|
||||
public int[] MonsterAttrShow { get; set; }
|
||||
|
||||
[JsonProperty("playerGetAllDrops")]
|
||||
public bool PlayerGetAllDrops { get; set; }
|
||||
|
||||
[JsonProperty("HardCoeff")]
|
||||
public int HardCoeff { get; set; }
|
||||
|
||||
[JsonProperty("enterTimesType")]
|
||||
public int EnterTimesType { get; set; }
|
||||
|
||||
[JsonProperty("isEnterWithElf")]
|
||||
public int IsEnterWithElf { get; set; }
|
||||
|
||||
[JsonProperty("PreMissionList")]
|
||||
public int[] PreMissionList { get; set; }
|
||||
|
||||
[JsonProperty("LockedText")]
|
||||
public HashName LockedText { get; set; }
|
||||
|
||||
[JsonProperty("PreMissionLink")]
|
||||
public int PreMissionLink { get; set; }
|
||||
|
||||
[JsonProperty("PreMissionLinkParams")]
|
||||
public int[] PreMissionLinkParams { get; set; }
|
||||
|
||||
[JsonProperty("PreMissionLinkParamStr")]
|
||||
public string PreMissionLinkParamStr { get; set; }
|
||||
|
||||
[JsonProperty("UnlockedText")]
|
||||
public HashName UnlockedText { get; set; }
|
||||
|
||||
[JsonProperty("UnlockedLink")]
|
||||
public int UnlockedLink { get; set; }
|
||||
|
||||
[JsonProperty("UnlockedLinkParams")]
|
||||
public int[] UnlockedLinkParams { get; set; }
|
||||
|
||||
[JsonProperty("UnlockedLinkParamStr")]
|
||||
public string UnlockedLinkParamStr { get; set; }
|
||||
|
||||
[JsonProperty("costMaterialId")]
|
||||
public int CostMaterialId { get; set; }
|
||||
|
||||
[JsonProperty("costMaterialNum")]
|
||||
public int CostMaterialNum { get; set; }
|
||||
|
||||
[JsonProperty("firstCostMaterialNum")]
|
||||
public int FirstCostMaterialNum { get; set; }
|
||||
|
||||
[JsonProperty("BalanceModeType")]
|
||||
public int BalanceModeType { get; set; }
|
||||
|
||||
[JsonProperty("StageEntryNameList")]
|
||||
public string[] StageEntryNameList { get; set; }
|
||||
|
||||
[JsonProperty("FloatDrop")]
|
||||
public FloatDrop[] FloatDrop { get; set; }
|
||||
|
||||
[JsonProperty("IsBattleYLevel")]
|
||||
public bool IsBattleYLevel { get; set; }
|
||||
|
||||
[JsonProperty("DataImpl")]
|
||||
public object DataImpl { get; set; }
|
||||
|
||||
[JsonProperty("levelId")]
|
||||
public int LevelId { get; set; }
|
||||
}
|
||||
|
||||
public partial class ChallengeList
|
||||
{
|
||||
[JsonProperty("challengeId")]
|
||||
public int ChallengeId { get; set; }
|
||||
|
||||
[JsonProperty("rewardId")]
|
||||
public int RewardId { get; set; }
|
||||
}
|
||||
|
||||
public partial class FloatDrop
|
||||
{
|
||||
[JsonProperty("materialId")]
|
||||
public long MaterialId { get; set; }
|
||||
|
||||
[JsonProperty("maxNum")]
|
||||
public long MaxNum { get; set; }
|
||||
|
||||
[JsonProperty("minNum")]
|
||||
public long MinNum { get; set; }
|
||||
}
|
||||
#pragma warning restore CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable.
|
||||
}
|
||||
255
Common/Utils/ExcelReader/StigmataData.cs
Normal file
255
Common/Utils/ExcelReader/StigmataData.cs
Normal file
@@ -0,0 +1,255 @@
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Common.Utils.ExcelReader
|
||||
{
|
||||
public class StigmataData : BaseExcelReader<StigmataData, StigmataDataExcel>
|
||||
{
|
||||
public override string FileName { get { return "StigmataData.json"; } }
|
||||
public StigmataDataExcel? FromId(int id)
|
||||
{
|
||||
return All.Where(stigmata => stigmata.Id == id).FirstOrDefault();
|
||||
}
|
||||
}
|
||||
|
||||
#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable.
|
||||
public partial class StigmataDataExcel
|
||||
{
|
||||
[JsonProperty("rarity")]
|
||||
public int Rarity { get; set; }
|
||||
|
||||
[JsonProperty("maxRarity")]
|
||||
public int MaxRarity { get; set; }
|
||||
|
||||
[JsonProperty("subRarity")]
|
||||
public int SubRarity { get; set; }
|
||||
|
||||
[JsonProperty("subMaxRarity")]
|
||||
public int SubMaxRarity { get; set; }
|
||||
|
||||
[JsonProperty("cost")]
|
||||
public int Cost { get; set; }
|
||||
|
||||
[JsonProperty("powerType")]
|
||||
public int PowerType { get; set; }
|
||||
|
||||
[JsonProperty("maxLv")]
|
||||
public int MaxLv { get; set; }
|
||||
|
||||
[JsonProperty("expType")]
|
||||
public int ExpType { get; set; }
|
||||
|
||||
[JsonProperty("sellPriceBase")]
|
||||
public int SellPriceBase { get; set; }
|
||||
|
||||
[JsonProperty("sellPriceAdd")]
|
||||
public int SellPriceAdd { get; set; }
|
||||
|
||||
[JsonProperty("gearExpProvideBase")]
|
||||
public int GearExpProvideBase { get; set; }
|
||||
|
||||
[JsonProperty("gearExpPorvideAdd")]
|
||||
public int GearExpPorvideAdd { get; set; }
|
||||
|
||||
[JsonProperty("baseType")]
|
||||
public int BaseType { get; set; }
|
||||
|
||||
[JsonProperty("LabelPath")]
|
||||
public string LabelPath { get; set; }
|
||||
|
||||
[JsonProperty("displayTitle")]
|
||||
public HashName DisplayTitle { get; set; }
|
||||
|
||||
[JsonProperty("displayDescription")]
|
||||
public HashName DisplayDescription { get; set; }
|
||||
|
||||
[JsonProperty("displayNumber")]
|
||||
public int DisplayNumber { get; set; }
|
||||
|
||||
[JsonProperty("iconPath")]
|
||||
public string IconPath { get; set; }
|
||||
|
||||
[JsonProperty("imagePath")]
|
||||
public string ImagePath { get; set; }
|
||||
|
||||
[JsonProperty("HPBase")]
|
||||
public double HpBase { get; set; }
|
||||
|
||||
[JsonProperty("HPAdd")]
|
||||
public double HpAdd { get; set; }
|
||||
|
||||
[JsonProperty("SPBase")]
|
||||
public double SpBase { get; set; }
|
||||
|
||||
[JsonProperty("SPAdd")]
|
||||
public double SpAdd { get; set; }
|
||||
|
||||
[JsonProperty("attackBase")]
|
||||
public double AttackBase { get; set; }
|
||||
|
||||
[JsonProperty("attackAdd")]
|
||||
public double AttackAdd { get; set; }
|
||||
|
||||
[JsonProperty("defenceBase")]
|
||||
public double DefenceBase { get; set; }
|
||||
|
||||
[JsonProperty("defenceAdd")]
|
||||
public double DefenceAdd { get; set; }
|
||||
|
||||
[JsonProperty("criticalBase")]
|
||||
public double CriticalBase { get; set; }
|
||||
|
||||
[JsonProperty("criticalAdd")]
|
||||
public double CriticalAdd { get; set; }
|
||||
|
||||
[JsonProperty("durabilityMax")]
|
||||
public int DurabilityMax { get; set; }
|
||||
|
||||
[JsonProperty("evoMaterial")]
|
||||
public Material[] EvoMaterial { get; set; }
|
||||
|
||||
[JsonProperty("evoID")]
|
||||
public int EvoId { get; set; }
|
||||
|
||||
[JsonProperty("prop1ID")]
|
||||
public double Prop1Id { get; set; }
|
||||
|
||||
[JsonProperty("prop1Param1")]
|
||||
public double Prop1Param1 { get; set; }
|
||||
|
||||
[JsonProperty("prop1Param2")]
|
||||
public double Prop1Param2 { get; set; }
|
||||
|
||||
[JsonProperty("prop1Param3")]
|
||||
public double Prop1Param3 { get; set; }
|
||||
|
||||
[JsonProperty("prop1Param1Add")]
|
||||
public double Prop1Param1Add { get; set; }
|
||||
|
||||
[JsonProperty("prop1Param2Add")]
|
||||
public double Prop1Param2Add { get; set; }
|
||||
|
||||
[JsonProperty("prop1Param3Add")]
|
||||
public double Prop1Param3Add { get; set; }
|
||||
|
||||
[JsonProperty("prop2ID")]
|
||||
public double Prop2Id { get; set; }
|
||||
|
||||
[JsonProperty("prop2Param1")]
|
||||
public double Prop2Param1 { get; set; }
|
||||
|
||||
[JsonProperty("prop2Param2")]
|
||||
public double Prop2Param2 { get; set; }
|
||||
|
||||
[JsonProperty("prop2Param3")]
|
||||
public double Prop2Param3 { get; set; }
|
||||
|
||||
[JsonProperty("prop2Param1Add")]
|
||||
public double Prop2Param1Add { get; set; }
|
||||
|
||||
[JsonProperty("prop2Param2Add")]
|
||||
public double Prop2Param2Add { get; set; }
|
||||
|
||||
[JsonProperty("prop2Param3Add")]
|
||||
public double Prop2Param3Add { get; set; }
|
||||
|
||||
[JsonProperty("prop3ID")]
|
||||
public double Prop3Id { get; set; }
|
||||
|
||||
[JsonProperty("prop3Param1")]
|
||||
public double Prop3Param1 { get; set; }
|
||||
|
||||
[JsonProperty("prop3Param2")]
|
||||
public double Prop3Param2 { get; set; }
|
||||
|
||||
[JsonProperty("prop3Param3")]
|
||||
public double Prop3Param3 { get; set; }
|
||||
|
||||
[JsonProperty("prop3Param1Add")]
|
||||
public double Prop3Param1Add { get; set; }
|
||||
|
||||
[JsonProperty("prop3Param2Add")]
|
||||
public double Prop3Param2Add { get; set; }
|
||||
|
||||
[JsonProperty("prop3Param3Add")]
|
||||
public double Prop3Param3Add { get; set; }
|
||||
|
||||
[JsonProperty("protect")]
|
||||
public bool Protect { get; set; }
|
||||
|
||||
[JsonProperty("setID")]
|
||||
public int SetId { get; set; }
|
||||
|
||||
[JsonProperty("smallIcon")]
|
||||
public string SmallIcon { get; set; }
|
||||
|
||||
[JsonProperty("tattooPath")]
|
||||
public string TattooPath { get; set; }
|
||||
|
||||
[JsonProperty("offsetX")]
|
||||
public int OffsetX { get; set; }
|
||||
|
||||
[JsonProperty("offsetY")]
|
||||
public int OffsetY { get; set; }
|
||||
|
||||
[JsonProperty("scale")]
|
||||
public double Scale { get; set; }
|
||||
|
||||
[JsonProperty("affixTreeId")]
|
||||
public int AffixTreeId { get; set; }
|
||||
|
||||
[JsonProperty("canRefine")]
|
||||
public bool CanRefine { get; set; }
|
||||
|
||||
[JsonProperty("recycleID")]
|
||||
public int RecycleId { get; set; }
|
||||
|
||||
[JsonProperty("disjoinScoinCost")]
|
||||
public int DisjoinScoinCost { get; set; }
|
||||
|
||||
[JsonProperty("disjoinAddMaterial")]
|
||||
public Material[] DisjoinAddMaterial { get; set; }
|
||||
|
||||
[JsonProperty("LinkIDList")]
|
||||
public int[] LinkIdList { get; set; }
|
||||
|
||||
[JsonProperty("quality")]
|
||||
public int Quality { get; set; }
|
||||
|
||||
[JsonProperty("stigmataMainID")]
|
||||
public int StigmataMainId { get; set; }
|
||||
|
||||
[JsonProperty("ShortName")]
|
||||
public HashName ShortName { get; set; }
|
||||
|
||||
[JsonProperty("SellPriceID")]
|
||||
public int SellPriceId { get; set; }
|
||||
|
||||
[JsonProperty("Transcendent")]
|
||||
public bool Transcendent { get; set; }
|
||||
|
||||
[JsonProperty("Target")]
|
||||
public int Target { get; set; }
|
||||
|
||||
[JsonProperty("isSecurityProtect")]
|
||||
public bool IsSecurityProtect { get; set; }
|
||||
|
||||
[JsonProperty("GachaMainDropDisplayConfig")]
|
||||
public double[] GachaMainDropDisplayConfig { get; set; }
|
||||
|
||||
[JsonProperty("GachaGiftDropDisplayConfig")]
|
||||
public double[] GachaGiftDropDisplayConfig { get; set; }
|
||||
|
||||
[JsonProperty("StigmataFilterList")]
|
||||
public int[] StigmataFilterList { get; set; }
|
||||
|
||||
[JsonProperty("CollaborationSetID")]
|
||||
public int CollaborationSetId { get; set; }
|
||||
|
||||
[JsonProperty("DataImpl")]
|
||||
public object DataImpl { get; set; }
|
||||
|
||||
[JsonProperty("ID")]
|
||||
public int Id { get; set; }
|
||||
}
|
||||
#pragma warning restore CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable.
|
||||
}
|
||||
246
Common/Utils/ExcelReader/WeaponData.cs
Normal file
246
Common/Utils/ExcelReader/WeaponData.cs
Normal file
@@ -0,0 +1,246 @@
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Common.Utils.ExcelReader
|
||||
{
|
||||
public class WeaponData : BaseExcelReader<WeaponData, WeaponDataExcel>
|
||||
{
|
||||
public override string FileName { get { return "WeaponData.json"; } }
|
||||
public WeaponDataExcel? FromId(int id)
|
||||
{
|
||||
return All.Where(weapon => weapon.Id == id).FirstOrDefault();
|
||||
}
|
||||
}
|
||||
|
||||
#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable.
|
||||
public partial class WeaponDataExcel
|
||||
{
|
||||
[JsonProperty("rarity")]
|
||||
public int Rarity { get; set; }
|
||||
|
||||
[JsonProperty("maxRarity")]
|
||||
public int MaxRarity { get; set; }
|
||||
|
||||
[JsonProperty("subRarity")]
|
||||
public int SubRarity { get; set; }
|
||||
|
||||
[JsonProperty("subMaxRarity")]
|
||||
public int SubMaxRarity { get; set; }
|
||||
|
||||
[JsonProperty("cost")]
|
||||
public int Cost { get; set; }
|
||||
|
||||
[JsonProperty("powerType")]
|
||||
public int PowerType { get; set; }
|
||||
|
||||
[JsonProperty("maxLv")]
|
||||
public int MaxLv { get; set; }
|
||||
|
||||
[JsonProperty("expType")]
|
||||
public int ExpType { get; set; }
|
||||
|
||||
[JsonProperty("sellPriceBase")]
|
||||
public int SellPriceBase { get; set; }
|
||||
|
||||
[JsonProperty("sellPriceAdd")]
|
||||
public int SellPriceAdd { get; set; }
|
||||
|
||||
[JsonProperty("gearExpProvideBase")]
|
||||
public int GearExpProvideBase { get; set; }
|
||||
|
||||
[JsonProperty("gearExpPorvideAdd")]
|
||||
public int GearExpPorvideAdd { get; set; }
|
||||
|
||||
[JsonProperty("baseType")]
|
||||
public int BaseType { get; set; }
|
||||
|
||||
[JsonProperty("bodyMod")]
|
||||
public string BodyMod { get; set; }
|
||||
|
||||
[JsonProperty("displayTitle")]
|
||||
public HashName DisplayTitle { get; set; }
|
||||
|
||||
[JsonProperty("displayDescription")]
|
||||
public HashName DisplayDescription { get; set; }
|
||||
|
||||
[JsonProperty("iconPath")]
|
||||
public string IconPath { get; set; }
|
||||
|
||||
[JsonProperty("imagePath")]
|
||||
public string ImagePath { get; set; }
|
||||
|
||||
[JsonProperty("HPBase")]
|
||||
public double HpBase { get; set; }
|
||||
|
||||
[JsonProperty("HPAdd")]
|
||||
public double HpAdd { get; set; }
|
||||
|
||||
[JsonProperty("SPBase")]
|
||||
public double SpBase { get; set; }
|
||||
|
||||
[JsonProperty("SPAdd")]
|
||||
public double SpAdd { get; set; }
|
||||
|
||||
[JsonProperty("attackBase")]
|
||||
public double AttackBase { get; set; }
|
||||
|
||||
[JsonProperty("attackAdd")]
|
||||
public double AttackAdd { get; set; }
|
||||
|
||||
[JsonProperty("defenceBase")]
|
||||
public double DefenceBase { get; set; }
|
||||
|
||||
[JsonProperty("defenceAdd")]
|
||||
public double DefenceAdd { get; set; }
|
||||
|
||||
[JsonProperty("criticalBase")]
|
||||
public double CriticalBase { get; set; }
|
||||
|
||||
[JsonProperty("criticalAdd")]
|
||||
public double CriticalAdd { get; set; }
|
||||
|
||||
[JsonProperty("ResistanceBase")]
|
||||
public double ResistanceBase { get; set; }
|
||||
|
||||
[JsonProperty("ResistanceAdd")]
|
||||
public double ResistanceAdd { get; set; }
|
||||
|
||||
[JsonProperty("evoMaterial")]
|
||||
public Material[] EvoMaterial { get; set; }
|
||||
|
||||
[JsonProperty("evoPlayerLevel")]
|
||||
public int EvoPlayerLevel { get; set; }
|
||||
|
||||
[JsonProperty("evoID")]
|
||||
public int EvoId { get; set; }
|
||||
|
||||
[JsonProperty("prop1ID")]
|
||||
public double Prop1Id { get; set; }
|
||||
|
||||
[JsonProperty("prop1Param1")]
|
||||
public double Prop1Param1 { get; set; }
|
||||
|
||||
[JsonProperty("prop1Param2")]
|
||||
public double Prop1Param2 { get; set; }
|
||||
|
||||
[JsonProperty("prop1Param3")]
|
||||
public double Prop1Param3 { get; set; }
|
||||
|
||||
[JsonProperty("prop1Param1Add")]
|
||||
public double Prop1Param1Add { get; set; }
|
||||
|
||||
[JsonProperty("prop1Param2Add")]
|
||||
public double Prop1Param2Add { get; set; }
|
||||
|
||||
[JsonProperty("prop1Param3Add")]
|
||||
public double Prop1Param3Add { get; set; }
|
||||
|
||||
[JsonProperty("prop2ID")]
|
||||
public double Prop2Id { get; set; }
|
||||
|
||||
[JsonProperty("prop2Param1")]
|
||||
public double Prop2Param1 { get; set; }
|
||||
|
||||
[JsonProperty("prop2Param2")]
|
||||
public double Prop2Param2 { get; set; }
|
||||
|
||||
[JsonProperty("prop2Param3")]
|
||||
public double Prop2Param3 { get; set; }
|
||||
|
||||
[JsonProperty("prop2Param1Add")]
|
||||
public double Prop2Param1Add { get; set; }
|
||||
|
||||
[JsonProperty("prop2Param2Add")]
|
||||
public double Prop2Param2Add { get; set; }
|
||||
|
||||
[JsonProperty("prop2Param3Add")]
|
||||
public double Prop2Param3Add { get; set; }
|
||||
|
||||
[JsonProperty("prop3ID")]
|
||||
public double Prop3Id { get; set; }
|
||||
|
||||
[JsonProperty("prop3Param1")]
|
||||
public double Prop3Param1 { get; set; }
|
||||
|
||||
[JsonProperty("prop3Param2")]
|
||||
public double Prop3Param2 { get; set; }
|
||||
|
||||
[JsonProperty("prop3Param3")]
|
||||
public double Prop3Param3 { get; set; }
|
||||
|
||||
[JsonProperty("prop3Param1Add")]
|
||||
public double Prop3Param1Add { get; set; }
|
||||
|
||||
[JsonProperty("prop3Param2Add")]
|
||||
public double Prop3Param2Add { get; set; }
|
||||
|
||||
[JsonProperty("prop3Param3Add")]
|
||||
public double Prop3Param3Add { get; set; }
|
||||
|
||||
[JsonProperty("protect")]
|
||||
public bool Protect { get; set; }
|
||||
|
||||
[JsonProperty("ExDisjoinCurrencyCost")]
|
||||
public int ExDisjoinCurrencyCost { get; set; }
|
||||
|
||||
[JsonProperty("ExDisjoinAddMaterial")]
|
||||
public object[] ExDisjoinAddMaterial { get; set; }
|
||||
|
||||
[JsonProperty("disjoinScoinCost")]
|
||||
public int DisjoinScoinCost { get; set; }
|
||||
|
||||
[JsonProperty("disjoinAddMaterial")]
|
||||
public Material[] DisjoinAddMaterial { get; set; }
|
||||
|
||||
[JsonProperty("weaponMainID")]
|
||||
public int WeaponMainId { get; set; }
|
||||
|
||||
[JsonProperty("LinkIDList")]
|
||||
public int[] LinkIdList { get; set; }
|
||||
|
||||
[JsonProperty("weaponQuality")]
|
||||
public int WeaponQuality { get; set; }
|
||||
|
||||
[JsonProperty("SellPriceID")]
|
||||
public int SellPriceId { get; set; }
|
||||
|
||||
[JsonProperty("Transcendent")]
|
||||
public bool Transcendent { get; set; }
|
||||
|
||||
[JsonProperty("Target")]
|
||||
public int Target { get; set; }
|
||||
|
||||
[JsonProperty("GachaMainDropDisplayConfig")]
|
||||
public double[] GachaMainDropDisplayConfig { get; set; }
|
||||
|
||||
[JsonProperty("GachaGiftDropDisplayConfig")]
|
||||
public double[] GachaGiftDropDisplayConfig { get; set; }
|
||||
|
||||
[JsonProperty("PreloadEffectFolderPath")]
|
||||
public string PreloadEffectFolderPath { get; set; }
|
||||
|
||||
[JsonProperty("WeaponFilterList")]
|
||||
public int[] WeaponFilterList { get; set; }
|
||||
|
||||
[JsonProperty("CollaborationWeaponID")]
|
||||
public int CollaborationWeaponId { get; set; }
|
||||
|
||||
[JsonProperty("AvatarCustomDisplayID")]
|
||||
public int AvatarCustomDisplayId { get; set; }
|
||||
|
||||
[JsonProperty("DataImpl")]
|
||||
public object DataImpl { get; set; }
|
||||
|
||||
[JsonProperty("ID")]
|
||||
public int Id { get; set; }
|
||||
}
|
||||
|
||||
public partial class Material
|
||||
{
|
||||
[JsonProperty("ID")]
|
||||
public int Id { get; set; }
|
||||
|
||||
[JsonProperty("Num")]
|
||||
public int Num { get; set; }
|
||||
}
|
||||
#pragma warning restore CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable.
|
||||
}
|
||||
Reference in New Issue
Block a user