2026-02-08 14:20:23 +00:00
|
|
|
|
using UnityEngine;
|
2026-01-29 06:58:38 +00:00
|
|
|
|
|
|
|
|
|
|
public class RandomStatCardInstance
|
|
|
|
|
|
{
|
|
|
|
|
|
private RandomStatCardData data;
|
|
|
|
|
|
private StatType statType;
|
|
|
|
|
|
private int value;
|
|
|
|
|
|
private bool isConfirmed = false;
|
2026-02-08 14:20:23 +00:00
|
|
|
|
private Stats stats;
|
2026-01-29 06:58:38 +00:00
|
|
|
|
|
|
|
|
|
|
public RandomStatCardInstance(RandomStatCardData data, Stats stats)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.data = data;
|
|
|
|
|
|
this.stats = stats;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void RollPreview()
|
|
|
|
|
|
{
|
|
|
|
|
|
statType = data.possibleStats[Random.Range(0, data.possibleStats.Length)];
|
|
|
|
|
|
value = Random.Range(data.minValue, data.maxValue + 1);
|
|
|
|
|
|
isConfirmed = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public string GetText()
|
|
|
|
|
|
{
|
|
|
|
|
|
string sign = value >= 0 ? "+" : "";
|
|
|
|
|
|
return $"{statType} {sign}{value}";
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void Confirm()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (isConfirmed) return;
|
|
|
|
|
|
ApplyStat();
|
|
|
|
|
|
isConfirmed = true;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void ApplyStat()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (stats == null) return;
|
|
|
|
|
|
|
|
|
|
|
|
switch (statType)
|
|
|
|
|
|
{
|
2026-01-30 02:46:55 +00:00
|
|
|
|
case StatType.Health:
|
2026-01-29 06:58:38 +00:00
|
|
|
|
stats.AddMaxHealth(value);
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
2026-01-30 02:46:55 +00:00
|
|
|
|
case StatType.Speed:
|
2026-01-29 06:58:38 +00:00
|
|
|
|
stats.AddMoveSpeed(value);
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
2026-02-08 14:20:23 +00:00
|
|
|
|
// ✨ [제거] case StatType.Strength 삭제됨
|
2026-01-29 06:58:38 +00:00
|
|
|
|
|
2026-01-30 02:46:55 +00:00
|
|
|
|
case StatType.Damage:
|
2026-01-29 06:58:38 +00:00
|
|
|
|
stats.AddAttackDamage(value);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2026-02-08 14:20:23 +00:00
|
|
|
|
}
|