mirror of
https://github.com/rafi1212122/PemukulPaku
synced 2025-12-13 03:34:35 +01:00
chat cmd & hopefully proper avatar level up
This commit is contained in:
64
Common/Utils/ExcelReader/AvatarLevelData.cs
Normal file
64
Common/Utils/ExcelReader/AvatarLevelData.cs
Normal file
@@ -0,0 +1,64 @@
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Common.Utils.ExcelReader
|
||||
{
|
||||
public class AvatarLevelData : BaseExcelReader<AvatarLevelData, AvatarLevelDataExcel>
|
||||
{
|
||||
public override string FileName { get { return "AvatarLevelData.json"; } }
|
||||
|
||||
public PlayerLevelData.LevelData CalculateLevel(int exp)
|
||||
{
|
||||
int level = 1;
|
||||
int expRemain = exp;
|
||||
|
||||
foreach (AvatarLevelDataExcel levelData in All)
|
||||
{
|
||||
if (expRemain < 1)
|
||||
{
|
||||
break;
|
||||
}
|
||||
else if (expRemain >= levelData.Exp)
|
||||
{
|
||||
if (level == All.OrderByDescending(level => level.Level).First().Level)
|
||||
{
|
||||
expRemain = All.OrderByDescending(level => level.Level).First().Exp;
|
||||
break;
|
||||
}
|
||||
|
||||
level++;
|
||||
expRemain -= levelData.Exp;
|
||||
}
|
||||
}
|
||||
|
||||
return new PlayerLevelData.LevelData(level, expRemain);
|
||||
}
|
||||
|
||||
public int CalculateCost(int startLevel, int endLevel)
|
||||
{
|
||||
int[] costs = All.Where(level => level.Level > startLevel && level.Level < endLevel).Select(level => level.Cost).ToArray();
|
||||
return costs.Sum();
|
||||
}
|
||||
}
|
||||
|
||||
#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable.
|
||||
public partial class AvatarLevelDataExcel
|
||||
{
|
||||
[JsonProperty("exp")]
|
||||
public int Exp { get; set; }
|
||||
|
||||
[JsonProperty("cost")]
|
||||
public int Cost { get; set; }
|
||||
|
||||
[JsonProperty("avatarAssistConf")]
|
||||
public double AvatarAssistConf { get; set; }
|
||||
|
||||
[JsonProperty("subSkillScoin")]
|
||||
public int SubSkillScoin { get; set; }
|
||||
|
||||
[JsonProperty("DataImpl")]
|
||||
public object DataImpl { get; set; }
|
||||
|
||||
[JsonProperty("level")]
|
||||
public int Level { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,11 @@ namespace Common.Utils.ExcelReader
|
||||
public class MaterialData : BaseExcelReader<MaterialData, MaterialDataExcel>
|
||||
{
|
||||
public override string FileName { get { return "MaterialData.json"; } }
|
||||
|
||||
public MaterialDataExcel? FromId(uint id)
|
||||
{
|
||||
return All.Where(material => material.Id == id).FirstOrDefault();
|
||||
}
|
||||
}
|
||||
|
||||
#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable.
|
||||
|
||||
Reference in New Issue
Block a user