equipment switching & level up with avatar level up fix

This commit is contained in:
rafi1212122
2023-06-03 08:39:32 +07:00
parent 1a631babe2
commit 3eef557a14
8 changed files with 236 additions and 14 deletions

View File

@@ -6,12 +6,11 @@ namespace Common.Utils.ExcelReader
{
public override string FileName { get { return "AvatarLevelData.json"; } }
public PlayerLevelData.LevelData CalculateLevel(int exp)
public PlayerLevelData.LevelData CalculateLevel(int level, int exp)
{
int level = 1;
int expRemain = exp;
foreach (AvatarLevelDataExcel levelData in All)
foreach (AvatarLevelDataExcel levelData in All.Where(levelData => levelData.Level >= level))
{
if (expRemain < 1)
{

View File

@@ -0,0 +1,65 @@
using Newtonsoft.Json;
namespace Common.Utils.ExcelReader
{
public class EquipmentLevelData : BaseExcelReader<EquipmentLevelData, EquipmentLevelDataExcel>
{
public override string FileName { get { return "EquipmentLevelData.json"; } }
public EquipmentLevelDataExcel? FromLevel(int level)
{
return All.Where(levelData => levelData.Level == level).FirstOrDefault();
}
public PlayerLevelData.LevelData CalculateLevel(int level, int exp, int expType)
{
int expRemain = exp;
foreach (EquipmentLevelDataExcel levelData in All.Where(levelData => levelData.Level >= level))
{
if (expRemain < 1)
{
break;
}
else if (expRemain >= levelData.Type1[expType])
{
if (level == All.OrderByDescending(level => level.Level).First().Level)
{
expRemain = All.OrderByDescending(level => level.Level).First().Type1[expType];
break;
}
level++;
expRemain -= levelData.Type1[expType];
}
}
return new PlayerLevelData.LevelData(level, expRemain);
}
}
#pragma warning disable CS8618 // Non-nullable field must contain a non-null value when exiting constructor. Consider declaring as nullable.
public partial class EquipmentLevelDataExcel
{
[JsonProperty("Type1")]
public int[] Type1 { get; set; }
[JsonProperty("weaponUpgradeCost")]
public int WeaponUpgradeCost { get; set; }
[JsonProperty("weaponEvoCost")]
public int WeaponEvoCost { get; set; }
[JsonProperty("stigmataUpgradeCost")]
public int StigmataUpgradeCost { get; set; }
[JsonProperty("stigmataEvoCost")]
public int StigmataEvoCost { get; set; }
[JsonProperty("DataImpl")]
public object DataImpl { get; set; }
[JsonProperty("level")]
public int Level { get; set; }
}
}

View File

@@ -10,7 +10,7 @@ namespace Common.Utils.ExcelReader
return All.Where(levelData => levelData.Level == level).FirstOrDefault();
}
public readonly struct LevelData
public struct LevelData
{
public LevelData(int level, int exp)
{
@@ -18,8 +18,8 @@ namespace Common.Utils.ExcelReader
Exp = exp;
}
public int Level { get; init; }
public int Exp { get; init; }
public int Level { get; set; }
public int Exp { get; set; }
}
public LevelData CalculateLevel(int exp)