mirror of
https://github.com/rafi1212122/PemukulPaku
synced 2025-12-13 16:04:36 +01:00
equipment switching & level up with avatar level up fix
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
||||
65
Common/Utils/ExcelReader/EquipmentLevelData.cs
Normal file
65
Common/Utils/ExcelReader/EquipmentLevelData.cs
Normal 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; }
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user