From b085f977b81eefd4989b5d36b0e47d6fa2301557 Mon Sep 17 00:00:00 2001
From: Ny Bruker <robinhs@stud.ntnu.no>
Date: Fri, 30 Sep 2022 15:19:34 +0200
Subject: [PATCH] Added new base classes for items tied to some conditions.

---
 .../Code/Item/Base/ConditionalItemBase.cs     |  4 +--
 .../Assets/Code/Item/Base/OnDeathItemBase.cs  | 25 +++++++++++++++++++
 .../Assets/Code/Item/Base/OnFireItemBase.cs   | 25 +++++++++++++++++++
 .../Assets/Code/Item/Base/OnHealItemBase.cs   | 25 +++++++++++++++++++
 .../Assets/Code/Item/Base/OnHitItemBase.cs    | 25 +++++++++++++++++++
 .../Assets/Code/Item/Base/OnKillItemBase.cs   | 25 +++++++++++++++++++
 .../Code/Item/Base/OnTakeDamageItemBase.cs    | 25 +++++++++++++++++++
 7 files changed, 152 insertions(+), 2 deletions(-)
 create mode 100644 MrBigsock/Assets/Code/Item/Base/OnDeathItemBase.cs
 create mode 100644 MrBigsock/Assets/Code/Item/Base/OnFireItemBase.cs
 create mode 100644 MrBigsock/Assets/Code/Item/Base/OnHealItemBase.cs
 create mode 100644 MrBigsock/Assets/Code/Item/Base/OnHitItemBase.cs
 create mode 100644 MrBigsock/Assets/Code/Item/Base/OnKillItemBase.cs
 create mode 100644 MrBigsock/Assets/Code/Item/Base/OnTakeDamageItemBase.cs

diff --git a/MrBigsock/Assets/Code/Item/Base/ConditionalItemBase.cs b/MrBigsock/Assets/Code/Item/Base/ConditionalItemBase.cs
index 95612893..7beca59d 100644
--- a/MrBigsock/Assets/Code/Item/Base/ConditionalItemBase.cs
+++ b/MrBigsock/Assets/Code/Item/Base/ConditionalItemBase.cs
@@ -14,12 +14,12 @@ namespace BigSock.Item {
 		/*
 			The type of trigger this item uses.
 		*/
-		public TriggerType Trigger { get; set; }
+		public abstract TriggerType Trigger { get; }
 
 		/*
 			The handler to activate when the condition is triggered.
 		*/
-		public Action<ICharEventParams> Handler { get; set; }
+		//public Action<ICharEventParams> Handler { get; set; }
 
 	}
 } 
\ No newline at end of file
diff --git a/MrBigsock/Assets/Code/Item/Base/OnDeathItemBase.cs b/MrBigsock/Assets/Code/Item/Base/OnDeathItemBase.cs
new file mode 100644
index 00000000..f2e237dc
--- /dev/null
+++ b/MrBigsock/Assets/Code/Item/Base/OnDeathItemBase.cs
@@ -0,0 +1,25 @@
+using System.Collections;
+using System;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.InputSystem;
+
+
+namespace BigSock.Item {
+
+	/*
+		Base class for all items that trigger when the user recieves fatal damage.
+	*/
+	public abstract class OnDeathItemBase : ConditionalItemBase {
+		/*
+			The type of trigger this item uses.
+		*/
+		public override TriggerType Trigger => TriggerType.Death;
+
+		/*
+			The handler to activate when the condition is triggered.
+		*/
+		public abstract void Handler(Character source, Character target, AttackStats attack); 
+
+	}
+} 
\ No newline at end of file
diff --git a/MrBigsock/Assets/Code/Item/Base/OnFireItemBase.cs b/MrBigsock/Assets/Code/Item/Base/OnFireItemBase.cs
new file mode 100644
index 00000000..bd4f03b4
--- /dev/null
+++ b/MrBigsock/Assets/Code/Item/Base/OnFireItemBase.cs
@@ -0,0 +1,25 @@
+using System.Collections;
+using System;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.InputSystem;
+
+
+namespace BigSock.Item {
+
+	/*
+		Base class for all items that trigger when the user attacks.
+	*/
+	public abstract class OnFireItemBase : ConditionalItemBase {
+		/*
+			The type of trigger this item uses.
+		*/
+		public override TriggerType Trigger => TriggerType.Fire;
+
+		/*
+			The handler to activate when the condition is triggered.
+		*/
+		public abstract void Handler(Character source, AttackStats attack); 
+
+	}
+} 
\ No newline at end of file
diff --git a/MrBigsock/Assets/Code/Item/Base/OnHealItemBase.cs b/MrBigsock/Assets/Code/Item/Base/OnHealItemBase.cs
new file mode 100644
index 00000000..4a277773
--- /dev/null
+++ b/MrBigsock/Assets/Code/Item/Base/OnHealItemBase.cs
@@ -0,0 +1,25 @@
+using System.Collections;
+using System;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.InputSystem;
+
+
+namespace BigSock.Item {
+
+	/*
+		Base class for all items that trigger when the user heals.
+	*/
+	public abstract class OnHealItemBase : ConditionalItemBase {
+		/*
+			The type of trigger this item uses.
+		*/
+		public override TriggerType Trigger => TriggerType.Heal;
+
+		/*
+			The handler to activate when the condition is triggered.
+		*/
+		public abstract void Handler(Character source, int amount); 
+
+	}
+} 
\ No newline at end of file
diff --git a/MrBigsock/Assets/Code/Item/Base/OnHitItemBase.cs b/MrBigsock/Assets/Code/Item/Base/OnHitItemBase.cs
new file mode 100644
index 00000000..49abf297
--- /dev/null
+++ b/MrBigsock/Assets/Code/Item/Base/OnHitItemBase.cs
@@ -0,0 +1,25 @@
+using System.Collections;
+using System;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.InputSystem;
+
+
+namespace BigSock.Item {
+
+	/*
+		Base class for all items that trigger when the user hits an enemy.
+	*/
+	public abstract class OnHitItemBase : ConditionalItemBase {
+		/*
+			The type of trigger this item uses.
+		*/
+		public override TriggerType Trigger => TriggerType.Hit;
+
+		/*
+			The handler to activate when the condition is triggered.
+		*/
+		public abstract void Handler(Character source, Character target, AttackStats attack); 
+
+	}
+} 
\ No newline at end of file
diff --git a/MrBigsock/Assets/Code/Item/Base/OnKillItemBase.cs b/MrBigsock/Assets/Code/Item/Base/OnKillItemBase.cs
new file mode 100644
index 00000000..b27f1435
--- /dev/null
+++ b/MrBigsock/Assets/Code/Item/Base/OnKillItemBase.cs
@@ -0,0 +1,25 @@
+using System.Collections;
+using System;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.InputSystem;
+
+
+namespace BigSock.Item {
+
+	/*
+		Base class for all items that trigger when the user kills an enemy.
+	*/
+	public abstract class OnKillItemBase : ConditionalItemBase {
+		/*
+			The type of trigger this item uses.
+		*/
+		public override TriggerType Trigger => TriggerType.Kill;
+
+		/*
+			The handler to activate when the condition is triggered.
+		*/
+		public abstract void Handler(Character source, Character target, AttackStats attack); 
+
+	}
+} 
\ No newline at end of file
diff --git a/MrBigsock/Assets/Code/Item/Base/OnTakeDamageItemBase.cs b/MrBigsock/Assets/Code/Item/Base/OnTakeDamageItemBase.cs
new file mode 100644
index 00000000..0dd121d9
--- /dev/null
+++ b/MrBigsock/Assets/Code/Item/Base/OnTakeDamageItemBase.cs
@@ -0,0 +1,25 @@
+using System.Collections;
+using System;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.InputSystem;
+
+
+namespace BigSock.Item {
+
+	/*
+		Base class for all items that trigger when the user takes damage.
+	*/
+	public abstract class OnTakeDamageItemBase : ConditionalItemBase {
+		/*
+			The type of trigger this item uses.
+		*/
+		public override TriggerType Trigger => TriggerType.TakeDamage;
+
+		/*
+			The handler to activate when the condition is triggered.
+		*/
+		public abstract void Handler(Character source, Character target, AttackStats attack); 
+
+	}
+} 
\ No newline at end of file
-- 
GitLab