Files
Cielonos/Assets/Scripts/MainGame/Characters/Base/Submodules/EventSubmodule.cs
SoulliesOfficial f7af60351b 阶段性完成
2025-12-08 05:27:53 -05:00

28 lines
1.9 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, AttackResult>> onGetAttacked; //被攻击时,参数为攻击者和攻击结果
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>>();
onGetAttacked = new OrderedDictionary<string, PrioritizedAction<AttackAreaBase, AttackResult>>();
onUseEnergy = new OrderedDictionary<string, PrioritizedAction<CharacterBase, float>>();
}
}
}