40 lines
2.8 KiB
C#
40 lines
2.8 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>> onHealthChanged; //生命变化时,参数为生命变化的角色和变化的数值
|
|
public OrderedDictionary<string, PrioritizedAction<CharacterBase, float>> onEnergyChanged; //能量变化时,参数为能量变化的角色和变化的数值
|
|
|
|
|
|
public OrderedDictionary<string, PrioritizedAction> onFirstJump; //第一次跳跃时
|
|
public OrderedDictionary<string, PrioritizedAction> onJumpLand; //落地时
|
|
|
|
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>>();
|
|
onHealthChanged = new OrderedDictionary<string, PrioritizedAction<CharacterBase, float>>();
|
|
onEnergyChanged = new OrderedDictionary<string, PrioritizedAction<CharacterBase, float>>();
|
|
|
|
onFirstJump = new OrderedDictionary<string, PrioritizedAction>();
|
|
onJumpLand = new OrderedDictionary<string, PrioritizedAction>();
|
|
}
|
|
}
|
|
} |