mmorpg2d/Assets/Script/XPTest.cs
2025-08-19 14:19:44 +05:30

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})");
}
}
}