using System.Collections.Generic; using Cielonos.MainGame.Characters; using Sirenix.OdinInspector; using SLSUtilities.General; using SLSUtilities.FunctionalAnimation; using UnityEngine; namespace Cielonos.MainGame { [CreateAssetMenu(fileName = "Attack", menuName = "Cielonos/Items/AttackData")] public class AttackData : SerializedScriptableObject { public GameObject defaultHitVFX; public AttackUnit DefaultAttackUnit => attackUnits.Count == 1 ? attackUnits.Values.GetEnumerator().Current : null; [DictionaryDrawerSettings(KeyLabel = "Attack Unit", DisplayMode = DictionaryDisplayOptions.ExpandedFoldout)] [Searchable] public Dictionary attackUnits = new Dictionary(); public AttackUnit this[string unitName] => attackUnits[unitName]; [OnInspectorGUI("UpdateUnits")] public void UpdateUnits() { foreach (KeyValuePair pair in attackUnits) { string unitName = pair.Key; AttackUnit unit = pair.Value; unit.parentData = this; unit.unitName = unitName; if (unit.submodules != null) { foreach (AttackUnit.Submodule module in unit.submodules) { module.SetOwner(unit); } } } } } }