chunk 1: core gameplay scripts scenes runtime assets
This commit is contained in:
69
Assets/Scripts/Character/CharacterStats.cs
Normal file
69
Assets/Scripts/Character/CharacterStats.cs
Normal file
@@ -0,0 +1,69 @@
|
||||
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;
|
||||
}
|
||||
Reference in New Issue
Block a user