diff --git a/MrBigsock/Assets/Code/Character.cs b/MrBigsock/Assets/Code/Character.cs index de0bdcacdd805bfe9071fd611a69d3ee7735e957..0c23a48295cd9848e173f80034aa17d3d84451d6 100644 --- a/MrBigsock/Assets/Code/Character.cs +++ b/MrBigsock/Assets/Code/Character.cs @@ -7,7 +7,7 @@ using BigSock.Item; namespace BigSock { // Common class for all characters. - public class Character : Entity { + public partial class Character : Entity { /* Attack speed of the character. @@ -214,4 +214,99 @@ namespace BigSock { } } + + + /* + Events + */ + public partial class Character { + + /* + Triggers when character uses an attack. + Params: actor, attack stats. + */ + public event Action<Character, AttackStats> OnFire; + + /* + Triggers when character hits an enemy. + Params: actor, target, attack stats. + */ + public event Action<Character, Character, AttackStats> OnHit; + + /* + Triggers when character kills an enemy. + Params: actor, target, attack stats. + */ + public event Action<Character, Character, AttackStats> OnKill; + + + + /* + Triggers when character takes damage. + Params: actor, target, attack stats. + (Target here is the character that dealt damage to this one) + */ + public event Action<Character, Character, AttackStats> OnTakeDamage; + + /* + Triggers when character heals back health. + Params: actor, amount. + (Add heal source later on) + */ + public event Action<Character, int> OnHeal; + + /* + Triggers when character has taken fatal damage. + (This is before the character is killed, so can be used to prevent death) + Params: actor, target, attack stats. + (Target here is the character that dealt damage to this one) + */ + public event Action<Character, Character, AttackStats> OnDeath; + + + + /* + Triggers when character picked up an item. + Params: actor, item. + */ + public event Action<Character, IItem> OnPickedUpItem; + + /* + Triggers when character gains xp. + Params: actor, amount. + */ + public event Action<Character, int> OnGainedXP; + + /* + Triggers when character levels up. + Params: actor. + */ + public event Action<Character> OnLevelUp; + + + + /* + Triggers when character enters a new room. + Params: actor. + (Add room object later) + */ + public event Action<Character> OnEnterNewRoom; + + /* + Triggers when character clears a room. + Params: actor. + (Add room object later) + */ + public event Action<Character> OnClearedRoom; + + /* + Triggers when character enters a new level. + Params: actor. + (Add level object later) + */ + public event Action<Character> OnEnterNewStage; + + + } + } diff --git a/MrBigsock/Assets/Code/Item/Base/TriggerType.cs b/MrBigsock/Assets/Code/Item/Base/TriggerType.cs index 5ea86686ea3a336febb9af898ac444e10196e4c8..1a6bb41aaeae52b330446ad4ea0bc2da04a1a1ab 100644 --- a/MrBigsock/Assets/Code/Item/Base/TriggerType.cs +++ b/MrBigsock/Assets/Code/Item/Base/TriggerType.cs @@ -12,9 +12,24 @@ namespace BigSock.Item { */ public enum TriggerType { None, - OnKill, - OnAttack, - OnHit, - OnDamage, + + // Target + Fire, + Hit, + Kill, + + // Actor + TakeDamage, + Heal, + Death, + + PickedUpItem, + GainedXP, + LevelUp, + + // Stage + EnterNewRoom, + ClearedRoom, + EnterNewStage, } } \ No newline at end of file