OldBlueWater/BlueWater/Assets/02.Scripts/Skill/Data/ActiveSkillData.cs
NTG_Lenovo b0650b9eb3 #44 스킬 시스템 구현 중
+ Skill관련 image, material, shader 추가
+ ISkill 인터페이스 삭제
+ ActiveSkill 메커니즘 변경
+ RadiusActiveSkill 구현
2023-11-21 04:48:09 +09:00

50 lines
2.1 KiB
C#

using System;
using Sirenix.OdinInspector;
using UnityEngine;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
[Serializable]
[CreateAssetMenu(fileName = "ActiveSkillData", menuName = "ScriptableObjects/Skills/ActiveSkillData", order = 0)]
public class ActiveSkillData : ScriptableObject
{
[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 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; }
}
}