43 lines
1.5 KiB
C#
43 lines
1.5 KiB
C#
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<string, AttackUnit> attackUnits = new Dictionary<string, AttackUnit>();
|
|
|
|
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);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |