using System; using Unity.BossRoom.Gameplay.GameplayObjects.Character; using Unity.BossRoom.Infrastructure; using UnityEngine; using Action = Unity.BossRoom.Gameplay.Actions.Action; namespace Unity.BossRoom.Gameplay.Configuration { /// /// Data representation of a Character, containing such things as its starting HP and Mana, and what attacks it can do. /// [CreateAssetMenu(menuName = "GameData/CharacterClass", order = 1)] public class CharacterClass : ScriptableObject { [Tooltip("which character this data represents")] public CharacterTypeEnum CharacterType; [Tooltip("skill1 is usually the character's default attack")] public Action Skill1; [Tooltip("skill2 is usually the character's secondary attack")] public Action Skill2; [Tooltip("skill3 is usually the character's unique or special attack")] public Action Skill3; [Tooltip("Starting HP of this character class")] public IntVariable BaseHP; [Tooltip("Starting Mana of this character class")] public int BaseMana; [Tooltip("Base movement speed of this character class (in meters/sec)")] public float Speed; [Tooltip("Set to true if this represents an NPC, as opposed to a player.")] public bool IsNpc; [Tooltip("For NPCs, this will be used as the aggro radius at which enemies wake up and attack the player")] public float DetectRange; [Tooltip("For players, this is the displayed \"class name\". (Not used for monsters)")] public string DisplayedName; [Tooltip("For players, this is the class banner (when active). (Not used for monsters)")] public Sprite ClassBannerLit; [Tooltip("For players, this is the class banner (when inactive). (Not used for monsters)")] public Sprite ClassBannerUnlit; } }