Files
Cielonos/Assets/Scripts/MainGame/Base/Data/AttackData/AttackData.cs

43 lines
1.5 KiB
C#
Raw Normal View History

2026-02-13 09:22:11 -05:00
using System.Collections.Generic;
using Cielonos.MainGame.Characters;
using Sirenix.OdinInspector;
using SLSUtilities.General;
using SLSUtilities.FunctionalAnimation;
using UnityEngine;
2026-05-23 08:27:50 -04:00
namespace Cielonos.MainGame
2026-02-13 09:22:11 -05:00
{
[CreateAssetMenu(fileName = "Attack", menuName = "Cielonos/Items/AttackData")]
public class AttackData : SerializedScriptableObject
{
2026-05-23 08:27:50 -04:00
public GameObject defaultHitVFX;
public AttackUnit DefaultAttackUnit => attackUnits.Count == 1 ? attackUnits.Values.GetEnumerator().Current : null;
2026-02-13 09:22:11 -05:00
[DictionaryDrawerSettings(KeyLabel = "Attack Unit", DisplayMode = DictionaryDisplayOptions.ExpandedFoldout)]
[Searchable]
2026-03-20 12:07:44 -04:00
public Dictionary<string, AttackUnit> attackUnits = new Dictionary<string, AttackUnit>();
2026-02-13 09:22:11 -05:00
public AttackUnit this[string unitName] => attackUnits[unitName];
[OnInspectorGUI("UpdateUnits")]
public void UpdateUnits()
{
foreach (KeyValuePair<string, AttackUnit> 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);
}
}
}
}
}
}