Figured out the math for EXP per level
This commit is contained in:
@@ -8,8 +8,11 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Remove="Game\state\states\**" />
|
<Compile Remove="Game\state\states\**" />
|
||||||
|
<Compile Remove="Map\**" />
|
||||||
<EmbeddedResource Remove="Game\state\states\**" />
|
<EmbeddedResource Remove="Game\state\states\**" />
|
||||||
|
<EmbeddedResource Remove="Map\**" />
|
||||||
<None Remove="Game\state\states\**" />
|
<None Remove="Game\state\states\**" />
|
||||||
|
<None Remove="Map\**" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -28,8 +31,4 @@
|
|||||||
<ProjectReference Include="..\Zennysoft.Game.Godot.Implementation\Zennysoft.Game.Implementation.csproj" />
|
<ProjectReference Include="..\Zennysoft.Game.Godot.Implementation\Zennysoft.Game.Implementation.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Folder Include="Map\" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ using Chickensoft.GodotNodeInterfaces;
|
|||||||
using Chickensoft.Introspection;
|
using Chickensoft.Introspection;
|
||||||
using Chickensoft.SaveFileBuilder;
|
using Chickensoft.SaveFileBuilder;
|
||||||
using Godot;
|
using Godot;
|
||||||
using Godot.Collections;
|
|
||||||
using SimpleInjector;
|
using SimpleInjector;
|
||||||
using System;
|
using System;
|
||||||
using Zennysoft.Ma.Adapter;
|
using Zennysoft.Ma.Adapter;
|
||||||
@@ -89,8 +88,6 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<ISaveChunk<Play
|
|||||||
private float _knockbackStrength = 0.0f;
|
private float _knockbackStrength = 0.0f;
|
||||||
private Vector3 _knockbackDirection = Vector3.Zero;
|
private Vector3 _knockbackDirection = Vector3.Zero;
|
||||||
|
|
||||||
private Dictionary<int, int> _expToNextLevel;
|
|
||||||
|
|
||||||
private DamageCalculator _damageCalculator;
|
private DamageCalculator _damageCalculator;
|
||||||
|
|
||||||
#region Initialization
|
#region Initialization
|
||||||
@@ -122,16 +119,6 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<ISaveChunk<Play
|
|||||||
PlayerLogic.Set(Stats);
|
PlayerLogic.Set(Stats);
|
||||||
PlayerLogic.Set(_gameRepo);
|
PlayerLogic.Set(_gameRepo);
|
||||||
|
|
||||||
_expToNextLevel = new Dictionary<int, int>
|
|
||||||
{
|
|
||||||
{ 2, 12 },
|
|
||||||
{ 3, 39 },
|
|
||||||
{ 4, 87 },
|
|
||||||
{ 5, 162 },
|
|
||||||
{ 6, 270 },
|
|
||||||
{ 7, 417 },
|
|
||||||
{ 8, 609 }
|
|
||||||
};
|
|
||||||
_damageCalculator = new DamageCalculator();
|
_damageCalculator = new DamageCalculator();
|
||||||
|
|
||||||
Hitbox.AreaEntered += Hitbox_AreaEntered;
|
Hitbox.AreaEntered += Hitbox_AreaEntered;
|
||||||
@@ -331,7 +318,7 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide<ISaveChunk<Play
|
|||||||
var hpIncrease = rng.RandiRange(3, 6);
|
var hpIncrease = rng.RandiRange(3, 6);
|
||||||
Stats.SetMaximumHP(Stats.MaximumHP.Value + hpIncrease);
|
Stats.SetMaximumHP(Stats.MaximumHP.Value + hpIncrease);
|
||||||
var nextLevel = Stats.CurrentLevel.Value + 1;
|
var nextLevel = Stats.CurrentLevel.Value + 1;
|
||||||
var expToNextLevel = _expToNextLevel[nextLevel];
|
var expToNextLevel = (int)(6.5 * nextLevel + 4.5 * Mathf.Pow(nextLevel, 2) + Mathf.Pow(nextLevel, 3));
|
||||||
var newCurrentExp = Mathf.Max(Stats.CurrentExp.Value - Stats.ExpToNextLevel.Value, 0);
|
var newCurrentExp = Mathf.Max(Stats.CurrentExp.Value - Stats.ExpToNextLevel.Value, 0);
|
||||||
Stats.SetCurrentLevel(nextLevel);
|
Stats.SetCurrentLevel(nextLevel);
|
||||||
Stats.SetExpToNextLevel(expToNextLevel);
|
Stats.SetExpToNextLevel(expToNextLevel);
|
||||||
|
|||||||
Reference in New Issue
Block a user