using System; using System.Collections.Generic; using System.Linq; using UnityEngine; using UnityEngine.Events; using UnityEngine.Serialization; using VOID.Generic.Dict; using VOID.Generic.Objects.Abstract.Events; using VOID.Generic.Objects.Container.Events; using VOID.Generic.Objects.Item.Events; using VOID.Generic.Objects.Unit.Events; using VOID.Generic.Objects.Usable.Events; using VOID.Generic.Objects.Wearable.Events; namespace VOID.Generic.Objects.Unit { [Serializable] public class UnitObjectEvents : ObjectComponent { // ANIMATION RELATED EVENTS [Header("Animations")] public Dictionary onAnimation = Enum.GetValues(typeof(AnimationType)).Cast() .ToDictionary(o => o, _ => new AnimationGenericEventSet()); // ACTION RELATED EVENTS [Header("Action - PREVENTED BY CHECK")] public UnityEvent onActionError; [Header("Action - Move")] public UnityEvent onMoveStart; public UnityEvent onMoveEnd; [Header("Action - Damage")] public UnityEvent onDamageBefore; public UnityEvent onDamageAfter; [Header("Action - Casting")] public UnityEvent onStartCasting; public UnityEvent onEndCasting; [Header("Action - Ability Cast")] public UnityEvent onStartAbilityBefore; public UnityEvent onStartAbilityAfter; public UnityEvent onEndAbility; [Header("Action - Ability Projectile")] public UnityEvent onAbilityProjectileStart; public UnityEvent onAbilityProjectileEnd; [Header("Action - Ability Hit")] public UnityEvent onAbilityHitBefore; public UnityEvent onAbilityHitAfter; [Header("Action - Take")] public UnityEvent onTakeBefore; public UnityEvent onTakeAfter; [Header("Action - Drop")] public UnityEvent onDropBefore; public UnityEvent onDropAfter; [Header("Action - Equip")] public UnityEvent onEquipBefore; public UnityEvent onEquipAfter; [Header("Action - UnEquip")] public UnityEvent onUnEquipBefore; public UnityEvent onUnEquipAfter; [Header("Action - Use")] public UnityEvent onUseBefore; public UnityEvent onUseAfter; [Header("Action - Container")] public UnityEvent onContainerOpen; public UnityEvent onContainerClose; [Header("Action - Other Unit")] public UnityEvent onOpenOtherUnit; public UnityEvent onCloseOtherUnit; public UnityEvent onOpenedByOtherUnit; public UnityEvent onClosedByOtherUnit; [Header("Action - Move Item")] public UnityEvent onMoveItemBefore; public UnityEvent onMoveItemAfter; // COMPONENT RELATED EVENTS [Header("Backpack")] public UnityEvent onBackpackPick; public UnityEvent onBackpackDrop; public UnityEvent onBackpackSwap; public UnityEvent onBackpackSort; public UnityEvent onBackpackResize; [Header("Equipment")] public UnityEvent onEquipmentEquip; public UnityEvent onEquipmentUnEquip; [Header("Data")] public UnityEvent onMainAttributeChange; public UnityEvent onSubAttributeChange; public UnityEvent onMaxResourceChange; public UnityEvent onCurrentResourceChange; [Header("ActionBar")] public UnityEvent onActionBarSet; public UnityEvent onActionBarUnSet; [Header("AbilityBook")] public UnityEvent onAbilityAdded; public UnityEvent onAbilityRemoved; public UnityEvent onAttackAbilityChange; [Header("Senses")] public UnityEvent onSightEnter; public UnityEvent onSightExit; public UnityEvent onHearEnter; public UnityEvent onHearExit; [Header("Level")] public UnityEvent onLevelGain; public UnityEvent onExpGain; } }