mirror of
https://github.com/rafi1212122/PemukulPaku
synced 2025-12-13 12:24:35 +01:00
exp implementation
This commit is contained in:
75
Common/Utils/ExcelReader/PlayerLevelData.cs
Normal file
75
Common/Utils/ExcelReader/PlayerLevelData.cs
Normal file
@@ -0,0 +1,75 @@
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Common.Utils.ExcelReader
|
||||
{
|
||||
public class PlayerLevelData : BaseExcelReader<PlayerLevelData, PlayerLevelDataExcel>
|
||||
{
|
||||
public override string FileName { get { return "PlayerLevelData.json"; } }
|
||||
public PlayerLevelDataExcel? FromLevel(int level)
|
||||
{
|
||||
return All.Where(levelData => levelData.Level == level).FirstOrDefault();
|
||||
}
|
||||
|
||||
public readonly struct LevelData
|
||||
{
|
||||
public LevelData(int level, int exp)
|
||||
{
|
||||
Level = level;
|
||||
Exp = exp;
|
||||
}
|
||||
|
||||
public int Level { get; init; }
|
||||
public int Exp { get; init; }
|
||||
}
|
||||
|
||||
public LevelData CalculateLevel(int exp)
|
||||
{
|
||||
int level = 1;
|
||||
int expRemain = exp;
|
||||
|
||||
foreach (var levelData in All)
|
||||
{
|
||||
if(expRemain < 1)
|
||||
{
|
||||
break;
|
||||
}
|
||||
else if(expRemain > levelData.Exp)
|
||||
{
|
||||
level++;
|
||||
expRemain -= levelData.Exp;
|
||||
}
|
||||
}
|
||||
|
||||
return new 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 PlayerLevelDataExcel
|
||||
{
|
||||
[JsonProperty("exp")]
|
||||
public int Exp { get; set; }
|
||||
|
||||
[JsonProperty("stamina")]
|
||||
public int Stamina { get; set; }
|
||||
|
||||
[JsonProperty("numFriends")]
|
||||
public int NumFriends { get; set; }
|
||||
|
||||
[JsonProperty("avatarLevelLimit")]
|
||||
public int AvatarLevelLimit { get; set; }
|
||||
|
||||
[JsonProperty("staminaBonus")]
|
||||
public int StaminaBonus { get; set; }
|
||||
|
||||
[JsonProperty("sweepStaminaLimit")]
|
||||
public int SweepStaminaLimit { get; set; }
|
||||
|
||||
[JsonProperty("DataImpl")]
|
||||
public object DataImpl { get; set; }
|
||||
|
||||
[JsonProperty("level")]
|
||||
public int Level { 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