From cc7de44969163e907bd0654b3827ee057165c2d1 Mon Sep 17 00:00:00 2001
From: Ny Bruker <robinhs@stud.ntnu.no>
Date: Fri, 14 Oct 2022 18:19:55 +0200
Subject: [PATCH] Added new item interfaces for different item types.

---
 .../Code/Item/Base/ConditionalItemBase.cs     |  2 +-
 .../Assets/Code/Item/Base/IConditionalItem.cs | 21 +++++++++++++++++++
 .../Assets/Code/Item/Base/IInactiveItem.cs    | 16 ++++++++++++++
 .../Assets/Code/Item/Base/IPassiveItem.cs     | 20 ++++++++++++++++++
 .../Assets/Code/Item/Base/PassiveItemBase.cs  |  2 +-
 5 files changed, 59 insertions(+), 2 deletions(-)
 create mode 100644 MrBigsock/Assets/Code/Item/Base/IConditionalItem.cs
 create mode 100644 MrBigsock/Assets/Code/Item/Base/IInactiveItem.cs
 create mode 100644 MrBigsock/Assets/Code/Item/Base/IPassiveItem.cs

diff --git a/MrBigsock/Assets/Code/Item/Base/ConditionalItemBase.cs b/MrBigsock/Assets/Code/Item/Base/ConditionalItemBase.cs
index 286c2b15..319f9114 100644
--- a/MrBigsock/Assets/Code/Item/Base/ConditionalItemBase.cs
+++ b/MrBigsock/Assets/Code/Item/Base/ConditionalItemBase.cs
@@ -10,7 +10,7 @@ namespace BigSock.Item {
 	/*
 		A class that represents an item that an effect when a condition is meet.
 	*/
-	public abstract class ConditionalItemBase : ItemBase {
+	public abstract class ConditionalItemBase : IConditionalItem {
 
 		public static readonly System.Random RND = new System.Random();
 
diff --git a/MrBigsock/Assets/Code/Item/Base/IConditionalItem.cs b/MrBigsock/Assets/Code/Item/Base/IConditionalItem.cs
new file mode 100644
index 00000000..04add95c
--- /dev/null
+++ b/MrBigsock/Assets/Code/Item/Base/IConditionalItem.cs
@@ -0,0 +1,21 @@
+using System.Collections;
+using System;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.InputSystem;
+
+
+namespace BigSock.Item {
+
+	/*
+		An interface for items that trigger on a particular condition.
+	*/
+	public interface IConditionalItem : IInactiveItem {
+
+		/*
+			The type of trigger this item uses.
+		*/
+		TriggerType Trigger { get; }
+		
+	}
+}
\ No newline at end of file
diff --git a/MrBigsock/Assets/Code/Item/Base/IInactiveItem.cs b/MrBigsock/Assets/Code/Item/Base/IInactiveItem.cs
new file mode 100644
index 00000000..afc9f365
--- /dev/null
+++ b/MrBigsock/Assets/Code/Item/Base/IInactiveItem.cs
@@ -0,0 +1,16 @@
+using System.Collections;
+using System;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.InputSystem;
+
+
+namespace BigSock.Item {
+
+	/*
+		An interface an item that isn't an active item.
+	*/
+	public interface IInactiveItem : IItem {
+
+	}
+}
\ No newline at end of file
diff --git a/MrBigsock/Assets/Code/Item/Base/IPassiveItem.cs b/MrBigsock/Assets/Code/Item/Base/IPassiveItem.cs
new file mode 100644
index 00000000..56c2b6ef
--- /dev/null
+++ b/MrBigsock/Assets/Code/Item/Base/IPassiveItem.cs
@@ -0,0 +1,20 @@
+using System.Collections;
+using System;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.InputSystem;
+
+
+namespace BigSock.Item {
+
+	/*
+		An interface for items that are passive.
+	*/
+	public interface IPassiveItem : IInactiveItem {
+		/*
+			The modifier of the item.
+		*/
+		ICharacterStats Modifier { get; set; }
+
+	}
+}
\ No newline at end of file
diff --git a/MrBigsock/Assets/Code/Item/Base/PassiveItemBase.cs b/MrBigsock/Assets/Code/Item/Base/PassiveItemBase.cs
index 1b09c3b4..f0a246d1 100644
--- a/MrBigsock/Assets/Code/Item/Base/PassiveItemBase.cs
+++ b/MrBigsock/Assets/Code/Item/Base/PassiveItemBase.cs
@@ -10,7 +10,7 @@ namespace BigSock.Item {
 	/*
 		A class that represents an item that provides passive stat boosts.
 	*/
-	public abstract class PassiveItemBase : ItemBase {
+	public abstract class PassiveItemBase : IPassiveItem {
 		/*
 			The modifier of the item.
 		*/
-- 
GitLab