Add Shop system with ShopManager, ShopUI, and ShopSlotUI; implement item purchasing and shop UI functionality

This commit is contained in:
2025-07-12 02:07:43 +02:00
parent 8f3a913b7e
commit ad02e07a87
15 changed files with 753 additions and 3 deletions

View File

@@ -28,6 +28,7 @@ namespace Data
[OdinSerialize] public float armor = 0f;
[OdinSerialize] public int level = 1;
[OdinSerialize] public int experience = 0;
[OdinSerialize] public int baseExperienceToLevelUp = 100;
[OdinSerialize, PropertyTooltip("This is damage multiplier")]
public float damage = 1f;
@@ -54,6 +55,7 @@ namespace Data
public event Action<int> OnExperienceChanged;
public event Action<int> OnLevelChanged;
public event Action OnLevelUp;
public float Health
{
@@ -174,7 +176,15 @@ namespace Data
experience = value;
OnExperienceChanged?.Invoke(experience);
//TODO: Implement level up logic
if (experience >= ExperienceToNextLevel())
{
Level++;
experience -= ExperienceToNextLevel();
}
else if (experience < 0)
{
experience = 0;
}
}
}
@@ -186,6 +196,7 @@ namespace Data
if (level == value) return;
level = value;
OnLevelChanged?.Invoke(level);
OnLevelUp?.Invoke();
}
}
@@ -327,5 +338,10 @@ namespace Data
Level = 1;
Experience = 0;
}
private int ExperienceToNextLevel()
{
return (int)(baseExperienceToLevelUp * Math.Pow(Level, 2));
}
}
}