chunk 1: core gameplay scripts scenes runtime assets

This commit is contained in:
2026-04-06 11:02:34 +03:00
parent fa0388bc79
commit 0d11a097d8
703 changed files with 2292651 additions and 0 deletions

View 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;
}