using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// GAME 1303 Tier 3 — One playable character's look, stats, and abilities.
/// Create -> GAME1303 -> Character. Make one per insect (Roach Invasion) or party
/// member (Spark of Corruption), then list them in CharacterSwapper.
///
/// Abilities: list the exact component type names to ENABLE for this character
/// ("DoubleJump", "Glide", "Dash", "WallSlideJump", "MeleeAttack", "ProjectileShooter").
/// The swapper enables the ones listed and disables any other Tier 3/attack components
/// it manages. Put ALL possible ability components on the player once, and let each
/// character definition pick which are live.
/// </summary>
[CreateAssetMenu(menuName = "GAME1303/Character", fileName = "NewCharacter")]
public class CharacterDefinition : ScriptableObject
{
[Header("Identity")]
public string displayName = "Character";
public Sprite portrait;
[Header("Look")]
public RuntimeAnimatorController animatorController;
[Tooltip("Fallback if there's no animator controller.")]
public Sprite idleSprite;
public Color tint = Color.white;
[Header("Stats")]
public int maxHealth = 3;
public float moveSpeed = 8f;
public float jumpForce = 14f;
[Tooltip("Rigidbody gravity scale (lighter characters float a bit).")]
public float gravityScale = 3f;
[Header("Abilities (component type names to enable)")]
public List<string> enabledAbilities = new List<string>();
[Header("Audio")]
public AudioClip swapInSound;
}