70 lines
2.0 KiB
C#
70 lines
2.0 KiB
C#
using UnityEngine;
|
|
|
|
/// <summary>
|
|
/// ScriptableObject that holds character-specific data.
|
|
/// This allows for data-driven character configuration without modifying prefabs.
|
|
/// </summary>
|
|
[CreateAssetMenu(fileName = "CharacterStats", menuName = "Deviant/Character Stats")]
|
|
public class CharacterStats : ScriptableObject
|
|
{
|
|
[Header("Identity")]
|
|
[Tooltip("Internal character name used for prefab loading")]
|
|
public string characterName;
|
|
|
|
[Tooltip("Display name shown in UI")]
|
|
public string displayName;
|
|
|
|
[Tooltip("Character description for selection screen")]
|
|
[TextArea(2, 4)]
|
|
public string description;
|
|
|
|
[Header("Combat Stats")]
|
|
[Tooltip("Base health points")]
|
|
public float baseHealth = 100f;
|
|
|
|
[Tooltip("Base movement speed")]
|
|
public float baseSpeed = 5f;
|
|
|
|
[Tooltip("Base attack damage multiplier")]
|
|
public float attackDamageMultiplier = 1f;
|
|
|
|
[Tooltip("Defense multiplier (reduces incoming damage)")]
|
|
public float defenseMultiplier = 1f;
|
|
|
|
[Header("Movement Stats")]
|
|
[Tooltip("Walk speed")]
|
|
public float walkSpeed = 2f;
|
|
|
|
[Tooltip("Run speed")]
|
|
public float runSpeed = 5f;
|
|
|
|
[Tooltip("Rotation speed")]
|
|
public float rotationSpeed = 120f;
|
|
|
|
[Tooltip("Speed reduction when carrying cash (0.0 - 1.0)")]
|
|
[Range(0f, 1f)]
|
|
public float cashCarrySpeedPenalty = 0.3f;
|
|
|
|
[Header("AI Settings")]
|
|
[Tooltip("Preferred combat range")]
|
|
public float preferredCombatRange = 2f;
|
|
|
|
[Tooltip("Attack frequency (attacks per second)")]
|
|
public float attackFrequency = 1f;
|
|
|
|
[Tooltip("Aggression level (0 = defensive, 1 = aggressive)")]
|
|
[Range(0f, 1f)]
|
|
public float aggressionLevel = 0.5f;
|
|
|
|
[Header("Animation")]
|
|
[Tooltip("Character-specific animator controller (optional override)")]
|
|
public RuntimeAnimatorController animatorController;
|
|
|
|
[Header("Visual")]
|
|
[Tooltip("Character icon for UI")]
|
|
public Sprite characterIcon;
|
|
|
|
[Tooltip("Character portrait for selection screen")]
|
|
public Sprite characterPortrait;
|
|
}
|