Files
Cielonos/Assets/Scripts/MainGame/Characters/Base/Submodules/EventSubmodule.cs
SoulliesOfficial 33b1795c1f 更新
2026-01-03 18:19:39 -05:00

30 lines
2.2 KiB
C#

using System.Collections.Generic;
using SLSFramework.General;
using SoftCircuits.Collections;
using UnityEngine;
namespace Cielonos.MainGame.Characters
{
public class EventSubmodule : SubmoduleBase<CharacterBase>
{
public OrderedDictionary<string, PrioritizedAction> onCombatStart; //战斗开始时
public OrderedDictionary<string, PrioritizedAction> onCombatEnd; //战斗结束时
public OrderedDictionary<string, PrioritizedAction<AttackAreaBase>> onGetHit; //被击中时,参数为产生命中的攻击区域
public OrderedDictionary<string, PrioritizedAction<AttackAreaBase>> onStartAttack; //开始攻击时,参数为产生成攻击的攻击区域
public OrderedDictionary<string, PrioritizedAction<AttackAreaBase, AttackResult>> onFinishAttack; //完成攻击时,参数为被攻击目标和对应的攻击结果
public OrderedDictionary<string, PrioritizedAction<AttackAreaBase>> onBeforeGetAttacked; //被攻击前,参数为攻击者和攻击结果
public OrderedDictionary<string, PrioritizedAction<AttackAreaBase, AttackResult>> onAfterGetAttacked; //被攻击后,参数为攻击者和攻击结果
public OrderedDictionary<string, PrioritizedAction<CharacterBase, float>> onUseEnergy; //使用能量时,参数为使用能量的使用者和能量值
public EventSubmodule(CharacterBase owner) : base(owner)
{
onCombatStart = new OrderedDictionary<string, PrioritizedAction>();
onCombatEnd = new OrderedDictionary<string, PrioritizedAction>();
onGetHit = new OrderedDictionary<string, PrioritizedAction<AttackAreaBase>>();
onStartAttack = new OrderedDictionary<string, PrioritizedAction<AttackAreaBase>>();
onFinishAttack = new OrderedDictionary<string, PrioritizedAction<AttackAreaBase, AttackResult>>();
onBeforeGetAttacked = new OrderedDictionary<string, PrioritizedAction<AttackAreaBase>>();
onAfterGetAttacked = new OrderedDictionary<string, PrioritizedAction<AttackAreaBase, AttackResult>>();
onUseEnergy = new OrderedDictionary<string, PrioritizedAction<CharacterBase, float>>();
}
}
}