Files
Cielonos/Assets/Scripts/MainGame/Items/Data/FunctionData.cs
SoulliesOfficial 649b7a5ddc 更新
2026-05-23 08:27:50 -04:00

62 lines
1.8 KiB
C#

using System;
using System.Collections.Generic;
using Cielonos.MainGame.Characters;
using Sirenix.OdinInspector;
using SLSUtilities.General;
using UnityEngine;
namespace Cielonos.MainGame.Inventory
{
[CreateAssetMenu(fileName = "FunctionData", menuName = "Cielonos/Items/FunctionData")]
public partial class FunctionData : SerializedScriptableObject
{
[DictionaryDrawerSettings(KeyLabel = "Function Unit", DisplayMode = DictionaryDisplayOptions.ExpandedFoldout)]
[Searchable]
public Dictionary<string, FunctionUnit> functionUnits = new Dictionary<string, FunctionUnit>();
[OnInspectorGUI("UpdateUnits")]
public void UpdateUnits()
{
foreach (var unit in functionUnits.Values)
{
unit.parentData = this;
}
}
}
public partial class FunctionData
{
public enum IntervalReductionType
{
None = 0,
Cooldown = 1,
AttackSpeed = 10
}
[Serializable]
public class FunctionUnit
{
[ReadOnly]
public FunctionData parentData;
[TitleGroup("Information")]
public bool shownInUI;
[TitleGroup("Information")]
public Sprite icon;
[TitleGroup("Information")]
public List<string> operation;
[TitleGroup("Costs")]
public float energyCost;
[TitleGroup("Costs")]
public int ammoCost;
[TitleGroup("Interval")]
public float interval;
[TitleGroup("Interval")]
public float intervalLowerLimit;
[TitleGroup("Interval")]
public IntervalReductionType intervalReductionType;
}
}
}