66 lines
2.4 KiB
C#
66 lines
2.4 KiB
C#
using UnityEngine;
|
|
|
|
public class XPTest : MonoBehaviour
|
|
{
|
|
[Header("Test Settings")]
|
|
public int testPlayerLevel = 1;
|
|
public int maxEnemyLevel = 50;
|
|
|
|
[Header("Results")]
|
|
[SerializeField] private string xpComparison;
|
|
|
|
void Start()
|
|
{
|
|
TestXPComparison();
|
|
}
|
|
|
|
void TestXPComparison()
|
|
{
|
|
string comparison = "=== XP Comparison (Old vs New System) ===\n";
|
|
comparison += $"Player Level: {testPlayerLevel}\n\n";
|
|
comparison += "Enemy Level | Old XP | New XP | Difference\n";
|
|
comparison += "-----------|--------|--------|------------\n";
|
|
|
|
for (int enemyLevel = 1; enemyLevel <= maxEnemyLevel; enemyLevel += 5)
|
|
{
|
|
int oldXP = enemyScript.CalculateLegacyXP(enemyLevel);
|
|
int newXP = enemyScript.CalculateExponentialXP(enemyLevel, testPlayerLevel);
|
|
int difference = newXP - oldXP;
|
|
|
|
comparison += $"{enemyLevel,10} | {oldXP,6} | {newXP,6} | {difference:+0;-0}\n";
|
|
}
|
|
|
|
comparison += "\n=== Key Examples ===\n";
|
|
comparison += $"Level 10 Enemy: {enemyScript.CalculateExponentialXP(10, testPlayerLevel)} XP\n";
|
|
comparison += $"Level 20 Enemy: {enemyScript.CalculateExponentialXP(20, testPlayerLevel)} XP\n";
|
|
comparison += $"Level 30 Enemy: {enemyScript.CalculateExponentialXP(30, testPlayerLevel)} XP\n";
|
|
comparison += $"Level 40 Enemy: {enemyScript.CalculateExponentialXP(40, testPlayerLevel)} XP\n";
|
|
comparison += $"Level 50 Enemy: {enemyScript.CalculateExponentialXP(50, testPlayerLevel)} XP\n";
|
|
comparison += $"Level 60 Enemy: {enemyScript.CalculateExponentialXP(60, testPlayerLevel)} XP (Capped)\n";
|
|
|
|
xpComparison = comparison;
|
|
Debug.Log(comparison);
|
|
}
|
|
|
|
[ContextMenu("Run XP Test")]
|
|
void RunXPTest()
|
|
{
|
|
TestXPComparison();
|
|
}
|
|
|
|
[ContextMenu("Test Risk Reward")]
|
|
void TestRiskReward()
|
|
{
|
|
Debug.Log("=== Risk Reward Testing ===");
|
|
int enemyLevel = 40;
|
|
|
|
for (int playerLevel = 1; playerLevel <= 50; playerLevel += 10)
|
|
{
|
|
int xp = enemyScript.CalculateExponentialXP(enemyLevel, playerLevel);
|
|
int levelDiff = enemyLevel - playerLevel;
|
|
string risk = levelDiff > 0 ? $"Risk (+{levelDiff} levels)" : "Safe";
|
|
|
|
Debug.Log($"Player Level {playerLevel} vs Enemy Level {enemyLevel}: {xp} XP ({risk})");
|
|
}
|
|
}
|
|
} |