XPTest.cs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using UnityEngine;
  2. public class XPTest : MonoBehaviour
  3. {
  4. [Header("Test Settings")]
  5. public int testPlayerLevel = 1;
  6. public int maxEnemyLevel = 50;
  7. [Header("Results")]
  8. [SerializeField] private string xpComparison;
  9. void Start()
  10. {
  11. TestXPComparison();
  12. }
  13. void TestXPComparison()
  14. {
  15. string comparison = "=== XP Comparison (Old vs New System) ===\n";
  16. comparison += $"Player Level: {testPlayerLevel}\n\n";
  17. comparison += "Enemy Level | Old XP | New XP | Difference\n";
  18. comparison += "-----------|--------|--------|------------\n";
  19. for (int enemyLevel = 1; enemyLevel <= maxEnemyLevel; enemyLevel += 5)
  20. {
  21. int oldXP = enemyScript.CalculateLegacyXP(enemyLevel);
  22. int newXP = enemyScript.CalculateExponentialXP(enemyLevel, testPlayerLevel);
  23. int difference = newXP - oldXP;
  24. comparison += $"{enemyLevel,10} | {oldXP,6} | {newXP,6} | {difference:+0;-0}\n";
  25. }
  26. comparison += "\n=== Key Examples ===\n";
  27. comparison += $"Level 10 Enemy: {enemyScript.CalculateExponentialXP(10, testPlayerLevel)} XP\n";
  28. comparison += $"Level 20 Enemy: {enemyScript.CalculateExponentialXP(20, testPlayerLevel)} XP\n";
  29. comparison += $"Level 30 Enemy: {enemyScript.CalculateExponentialXP(30, testPlayerLevel)} XP\n";
  30. comparison += $"Level 40 Enemy: {enemyScript.CalculateExponentialXP(40, testPlayerLevel)} XP\n";
  31. comparison += $"Level 50 Enemy: {enemyScript.CalculateExponentialXP(50, testPlayerLevel)} XP\n";
  32. comparison += $"Level 60 Enemy: {enemyScript.CalculateExponentialXP(60, testPlayerLevel)} XP (Capped)\n";
  33. xpComparison = comparison;
  34. Debug.Log(comparison);
  35. }
  36. [ContextMenu("Run XP Test")]
  37. void RunXPTest()
  38. {
  39. TestXPComparison();
  40. }
  41. [ContextMenu("Test Risk Reward")]
  42. void TestRiskReward()
  43. {
  44. Debug.Log("=== Risk Reward Testing ===");
  45. int enemyLevel = 40;
  46. for (int playerLevel = 1; playerLevel <= 50; playerLevel += 10)
  47. {
  48. int xp = enemyScript.CalculateExponentialXP(enemyLevel, playerLevel);
  49. int levelDiff = enemyLevel - playerLevel;
  50. string risk = levelDiff > 0 ? $"Risk (+{levelDiff} levels)" : "Safe";
  51. Debug.Log($"Player Level {playerLevel} vs Enemy Level {enemyLevel}: {xp} XP ({risk})");
  52. }
  53. }
  54. }