From 6363d046f799e47c743652c4f3efa78655f94180 Mon Sep 17 00:00:00 2001
From: Ny Bruker <robinhs@stud.ntnu.no>
Date: Fri, 9 Dec 2022 18:39:10 +0100
Subject: [PATCH] Gave abilities an Icon property.

---
 .../Assets/Code/Core/Abilities/AbilityDodge.cs    |  1 +
 .../Code/Core/Abilities/Base/BaseAbility.cs       | 15 +++++++++++++++
 .../Assets/Code/Core/Abilities/Base/IAbility.cs   |  5 +++++
 .../Code/Core/Abilities/BasicProjectile1.cs       |  1 +
 .../Code/Core/Abilities/BasicProjectile2.cs       |  1 +
 .../Code/Core/Abilities/BiggerSlowerProjectile.cs |  1 +
 6 files changed, 24 insertions(+)

diff --git a/MrBigsock/Assets/Code/Core/Abilities/AbilityDodge.cs b/MrBigsock/Assets/Code/Core/Abilities/AbilityDodge.cs
index ff78922d..d3be2c1a 100644
--- a/MrBigsock/Assets/Code/Core/Abilities/AbilityDodge.cs
+++ b/MrBigsock/Assets/Code/Core/Abilities/AbilityDodge.cs
@@ -19,6 +19,7 @@ namespace BigSock {
 		public override ulong Id => 201;
 		public override string Name => "Dodge";
 		public override string Description => "A basic dodge move.";
+		public override string IconName => "item/foureyes";
 
 		public AbilityDodge() {
 			StaminaCost = 10;
diff --git a/MrBigsock/Assets/Code/Core/Abilities/Base/BaseAbility.cs b/MrBigsock/Assets/Code/Core/Abilities/Base/BaseAbility.cs
index 068ffe60..920ec10e 100644
--- a/MrBigsock/Assets/Code/Core/Abilities/Base/BaseAbility.cs
+++ b/MrBigsock/Assets/Code/Core/Abilities/Base/BaseAbility.cs
@@ -6,6 +6,8 @@ using System.Text;
 using UnityEngine;
 using UnityEngine.InputSystem;
 
+using BigSock.Service;
+
 
 namespace BigSock {
 
@@ -33,6 +35,19 @@ namespace BigSock {
 		*/
 		public abstract ulong Id { get; }
 
+
+		/*
+			The icon of the ability.
+		*/
+		public Sprite Icon => SpriteService.SINGLETON.Get(IconName);
+
+		/*
+			The name of the icon this ability uses.
+				Override this to change what icon the item uses.
+		*/
+		public virtual string IconName { get; } = "item/runningshoes";
+
+
 		/*
 			The next time the ability has cooled down.
 		*/
diff --git a/MrBigsock/Assets/Code/Core/Abilities/Base/IAbility.cs b/MrBigsock/Assets/Code/Core/Abilities/Base/IAbility.cs
index e746fa82..7fa26add 100644
--- a/MrBigsock/Assets/Code/Core/Abilities/Base/IAbility.cs
+++ b/MrBigsock/Assets/Code/Core/Abilities/Base/IAbility.cs
@@ -31,6 +31,11 @@ namespace BigSock {
 		*/
 		ulong Id { get; }
 
+		/*
+			The icon of the ability.
+		*/
+		Sprite Icon { get; }
+
 		/*
 			The next time the ability has cooled down.
 		*/
diff --git a/MrBigsock/Assets/Code/Core/Abilities/BasicProjectile1.cs b/MrBigsock/Assets/Code/Core/Abilities/BasicProjectile1.cs
index 505c9dc1..430978b0 100644
--- a/MrBigsock/Assets/Code/Core/Abilities/BasicProjectile1.cs
+++ b/MrBigsock/Assets/Code/Core/Abilities/BasicProjectile1.cs
@@ -23,6 +23,7 @@ namespace BigSock {
 		public override ulong Id => 101;
 		public override string Name => "Basic Player Projectile Attack";
 		public override string Description => "A basic projectile shooting attack the player has.";
+		public override string IconName => "item/coffee";
 
 		public BasicProjectile1() {
 			AttackStats = new AttackStats{
diff --git a/MrBigsock/Assets/Code/Core/Abilities/BasicProjectile2.cs b/MrBigsock/Assets/Code/Core/Abilities/BasicProjectile2.cs
index cf848b71..f24257d4 100644
--- a/MrBigsock/Assets/Code/Core/Abilities/BasicProjectile2.cs
+++ b/MrBigsock/Assets/Code/Core/Abilities/BasicProjectile2.cs
@@ -23,6 +23,7 @@ namespace BigSock {
 		public override ulong Id => 104;
 		public override string Name => "Chargeable Player Attack";
 		public override string Description => "A basic projectile shooting attack the player has.";
+		public override string IconName => "item/elixirofspeed";
 
 
 
diff --git a/MrBigsock/Assets/Code/Core/Abilities/BiggerSlowerProjectile.cs b/MrBigsock/Assets/Code/Core/Abilities/BiggerSlowerProjectile.cs
index 0fa01a45..1c54514c 100644
--- a/MrBigsock/Assets/Code/Core/Abilities/BiggerSlowerProjectile.cs
+++ b/MrBigsock/Assets/Code/Core/Abilities/BiggerSlowerProjectile.cs
@@ -20,6 +20,7 @@ namespace BigSock {
 		public override ulong Id => 102;
 		public override string Name => "Big Ball";
 		public override string Description => "It's big and slow, but it packs a punch.";
+		public override string IconName => "item/premature";
 
 		public BiggerSlowerProjectile() {
 			AttackStats = new AttackStats{
-- 
GitLab