chat cmd & hopefully proper avatar level up

This commit is contained in:
rafi1212122
2023-06-02 10:25:29 +07:00
parent 86dc83d448
commit 1a631babe2
5 changed files with 176 additions and 3 deletions

View 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; }
}
}

View File

@@ -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.