using UnityEngine;
using Colosseum.Stats;
namespace Colosseum.Enemy
{
///
/// 적 캐릭터 데이터. 기본 스탯과 보상을 정의합니다.
///
[CreateAssetMenu(fileName = "NewEnemyData", menuName = "Colosseum/Enemy Data")]
public class EnemyData : ScriptableObject
{
[Header("기본 정보")]
[SerializeField] private string enemyName;
[TextArea(2, 4)]
[SerializeField] private string description;
[SerializeField] private Sprite icon;
[Header("기본 스탯")]
[Min(1f)] [SerializeField] private float baseStrength = 10f;
[Min(1f)] [SerializeField] private float baseDexterity = 10f;
[Min(1f)] [SerializeField] private float baseIntelligence = 10f;
[Min(1f)] [SerializeField] private float baseVitality = 10f;
[Min(1f)] [SerializeField] private float baseWisdom = 10f;
[Min(1f)] [SerializeField] private float baseSpirit = 10f;
[Header("이동")]
[Min(0f)] [SerializeField] private float moveSpeed = 3f;
[Min(0f)] [SerializeField] private float rotationSpeed = 10f;
[Header("전투")]
[Min(0f)] [SerializeField] private float aggroRange = 10f;
[Min(0f)] [SerializeField] private float attackRange = 2f;
[Min(0f)] [SerializeField] private float attackCooldown = 1f;
// Properties
public string EnemyName => enemyName;
public string Description => description;
public Sprite Icon => icon;
public float BaseStrength => baseStrength;
public float BaseDexterity => baseDexterity;
public float BaseIntelligence => baseIntelligence;
public float BaseVitality => baseVitality;
public float BaseWisdom => baseWisdom;
public float BaseSpirit => baseSpirit;
public float MoveSpeed => moveSpeed;
public float RotationSpeed => rotationSpeed;
public float AggroRange => aggroRange;
public float AttackRange => attackRange;
public float AttackCooldown => attackCooldown;
///
/// CharacterStats에 기본 스탯 적용
///
public void ApplyBaseStats(CharacterStats stats)
{
if (stats == null) return;
stats.Strength.BaseValue = baseStrength;
stats.Dexterity.BaseValue = baseDexterity;
stats.Intelligence.BaseValue = baseIntelligence;
stats.Vitality.BaseValue = baseVitality;
stats.Wisdom.BaseValue = baseWisdom;
stats.Spirit.BaseValue = baseSpirit;
}
}
}