OldBlueWater/BlueWater/Assets/02.Scripts/Skill/Data/ActiveSkillData.cs

63 lines
2.3 KiB
C#

using System;
using Sirenix.OdinInspector;
using UnityEngine;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
public enum EIndicatorType
{
NONE,
RADIUS,
AREA,
CONE,
LINE
}
[Serializable]
public class ActiveSkillData
{
[field: Tooltip("이름")]
[field: SerializeField] public string Name { get; set; }
[field: Tooltip("표기할 이름")]
[field: SerializeField] public string DisplayName { get; set; }
[field: Tooltip("스킬 설명")]
[field: TextArea]
[field: SerializeField] public string Description { get; set; }
[field: Tooltip("고유의 Skill Material이 있는 경우에만 넣기")]
[field: SerializeField] public Material Indicator { get; set; }
[field: Tooltip("스킬의 형태")]
[field: SerializeField] public EIndicatorType IndicatorType { get; set; }
[field: Tooltip("재사용 대기 시간")]
[field: SerializeField] public float Cooldown { get; set; }
[field: Tooltip("시전 시간")]
[field: SerializeField] public float CastingTime { get; set; }
[field: Tooltip("CastingType == 0, 제자리 멈춰서 스킬 시전, 시전 중 이동불가\n" +
"CastingType == 1, 스킬을 사용한 위치에서 스킬 시전, 캐릭터 움직임 가능\n" +
"CastingType == 2, 스킬 시전 중 움직일 수 있으며, 스킬이 캐릭터를 따라옴")]
[field: ShowIf("@CastingTime > 0")]
[field: Range(0, 2)]
[field: SerializeField] public int CastingType { get; set; }
[field: Tooltip("지속 시간")]
[field: SerializeField] public float Duration { get; set; }
[field: Tooltip("공격력")]
[field: SerializeField] public float Damage { get; set; }
[field: Tooltip("공격 사거리")]
[field: SerializeField] public float Range { get; set; }
[field: Tooltip("공격 가능한 최대 개체 수")]
[field: SerializeField] public int MaxAttackTargets { get; set; }
[field: SerializeField] public ParticleSystem SkillEffect { get; set; }
}
}