52 lines
1.9 KiB
C#

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
{
/// <summary>
/// Data representation of a Character, containing such things as its starting HP and Mana, and what attacks it can do.
/// </summary>
[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;
}
}