JisolGame/JEX_GAS/Assets/GAS/Runtime/Effects/GameplayEffectSpecifiedSnapshotConfig.cs

57 lines
1.6 KiB
C#
Raw Normal View History

using System;
using System.Linq;
using Sirenix.OdinInspector;
using UnityEngine;
namespace GAS.Runtime
{
[Serializable]
public struct GameplayEffectSpecifiedSnapshotConfig
{
public enum ESnapshotTarget
{
[LabelText("施法者", SdfIconType.Magic)]
Source,
[LabelText("持有者", SdfIconType.Person)]
Target
}
private const int LABEL_WIDTH = 70;
[LabelText("目标", SdfIconType.PersonBadge)]
[LabelWidth(LABEL_WIDTH)]
[EnumToggleButtons]
public ESnapshotTarget SnapshotTarget;
[LabelText("属性", SdfIconType.Fingerprint)]
[LabelWidth(LABEL_WIDTH)]
[OnValueChanged("OnAttributeChanged")]
[ValueDropdown("@ValueDropdownHelper.AttributeChoices", IsUniqueList = true)]
[ValidateInput("@AttributeValidator.IsValidAttributeName($value)", "属性名无效")]
public string AttributeName;
[HideInInspector]
public string AttributeSetName;
[HideInInspector]
public string AttributeShortName;
public GameplayEffectSpecifiedSnapshotConfig(ESnapshotTarget snapshotTarget, string attributeName)
{
SnapshotTarget = snapshotTarget;
AttributeName = attributeName;
AttributeSetName = string.Empty;
AttributeShortName = string.Empty;
OnAttributeChanged();
}
private void OnAttributeChanged()
{
var split = AttributeName.Split('.');
AttributeSetName = split[0];
AttributeShortName = split[1];
}
}
}