From da2eebd6a058652fcd3164ea23f482e5777f17d6 Mon Sep 17 00:00:00 2001 From: Ny Bruker <robinhs@stud.ntnu.no> Date: Fri, 30 Sep 2022 16:07:54 +0200 Subject: [PATCH] Added a conditional item to test. - Also moved some classes around to avoid future clutter. --- .../Base/{ => Conditional}/OnDeathItemBase.cs | 0 .../Base/{ => Conditional}/OnFireItemBase.cs | 0 .../Base/{ => Conditional}/OnHealItemBase.cs | 0 .../Base/{ => Conditional}/OnHitItemBase.cs | 0 .../Base/{ => Conditional}/OnKillItemBase.cs | 0 .../{ => Conditional}/OnTakeDamageItemBase.cs | 0 .../Code/Item/Base/ConditionalItemBase.cs | 3 ++ MrBigsock/Assets/Code/Item/Base/ItemBase.cs | 6 ++-- .../Assets/Code/Item/Items/ItemFourEyes.cs | 31 +++++++++++++++++++ .../{RunningShoes.cs => ItemRunningShoes.cs} | 13 ++++---- .../Code/Item/Items/RunningShoes.cs.meta | 11 ------- MrBigsock/Assets/Code/PlayerController.cs | 5 ++- 12 files changed, 48 insertions(+), 21 deletions(-) rename MrBigsock/Assets/Code/Item/Base/{ => Conditional}/OnDeathItemBase.cs (100%) rename MrBigsock/Assets/Code/Item/Base/{ => Conditional}/OnFireItemBase.cs (100%) rename MrBigsock/Assets/Code/Item/Base/{ => Conditional}/OnHealItemBase.cs (100%) rename MrBigsock/Assets/Code/Item/Base/{ => Conditional}/OnHitItemBase.cs (100%) rename MrBigsock/Assets/Code/Item/Base/{ => Conditional}/OnKillItemBase.cs (100%) rename MrBigsock/Assets/Code/Item/Base/{ => Conditional}/OnTakeDamageItemBase.cs (100%) create mode 100644 MrBigsock/Assets/Code/Item/Items/ItemFourEyes.cs rename MrBigsock/Assets/Code/Item/Items/{RunningShoes.cs => ItemRunningShoes.cs} (54%) delete mode 100644 MrBigsock/Assets/Code/Item/Items/RunningShoes.cs.meta diff --git a/MrBigsock/Assets/Code/Item/Base/OnDeathItemBase.cs b/MrBigsock/Assets/Code/Item/Base/Conditional/OnDeathItemBase.cs similarity index 100% rename from MrBigsock/Assets/Code/Item/Base/OnDeathItemBase.cs rename to MrBigsock/Assets/Code/Item/Base/Conditional/OnDeathItemBase.cs diff --git a/MrBigsock/Assets/Code/Item/Base/OnFireItemBase.cs b/MrBigsock/Assets/Code/Item/Base/Conditional/OnFireItemBase.cs similarity index 100% rename from MrBigsock/Assets/Code/Item/Base/OnFireItemBase.cs rename to MrBigsock/Assets/Code/Item/Base/Conditional/OnFireItemBase.cs diff --git a/MrBigsock/Assets/Code/Item/Base/OnHealItemBase.cs b/MrBigsock/Assets/Code/Item/Base/Conditional/OnHealItemBase.cs similarity index 100% rename from MrBigsock/Assets/Code/Item/Base/OnHealItemBase.cs rename to MrBigsock/Assets/Code/Item/Base/Conditional/OnHealItemBase.cs diff --git a/MrBigsock/Assets/Code/Item/Base/OnHitItemBase.cs b/MrBigsock/Assets/Code/Item/Base/Conditional/OnHitItemBase.cs similarity index 100% rename from MrBigsock/Assets/Code/Item/Base/OnHitItemBase.cs rename to MrBigsock/Assets/Code/Item/Base/Conditional/OnHitItemBase.cs diff --git a/MrBigsock/Assets/Code/Item/Base/OnKillItemBase.cs b/MrBigsock/Assets/Code/Item/Base/Conditional/OnKillItemBase.cs similarity index 100% rename from MrBigsock/Assets/Code/Item/Base/OnKillItemBase.cs rename to MrBigsock/Assets/Code/Item/Base/Conditional/OnKillItemBase.cs diff --git a/MrBigsock/Assets/Code/Item/Base/OnTakeDamageItemBase.cs b/MrBigsock/Assets/Code/Item/Base/Conditional/OnTakeDamageItemBase.cs similarity index 100% rename from MrBigsock/Assets/Code/Item/Base/OnTakeDamageItemBase.cs rename to MrBigsock/Assets/Code/Item/Base/Conditional/OnTakeDamageItemBase.cs diff --git a/MrBigsock/Assets/Code/Item/Base/ConditionalItemBase.cs b/MrBigsock/Assets/Code/Item/Base/ConditionalItemBase.cs index 7beca59d..879b73c9 100644 --- a/MrBigsock/Assets/Code/Item/Base/ConditionalItemBase.cs +++ b/MrBigsock/Assets/Code/Item/Base/ConditionalItemBase.cs @@ -11,6 +11,9 @@ namespace BigSock.Item { A class that represents an item that an effect when a condition is meet. */ public abstract class ConditionalItemBase : ItemBase { + + public static readonly Random RND = new Random(); + /* The type of trigger this item uses. */ diff --git a/MrBigsock/Assets/Code/Item/Base/ItemBase.cs b/MrBigsock/Assets/Code/Item/Base/ItemBase.cs index bd74fdd3..24ee2654 100644 --- a/MrBigsock/Assets/Code/Item/Base/ItemBase.cs +++ b/MrBigsock/Assets/Code/Item/Base/ItemBase.cs @@ -14,17 +14,17 @@ namespace BigSock.Item { /* The name of the item. */ - public string Name { get; protected set; } + public abstract string Name { get; } /* The description of the item. */ - public string Description { get; protected set; } + public abstract string Description { get; } /* The id of the item. */ - public ulong Id { get; protected set; } + public abstract ulong Id { get; } } } \ No newline at end of file diff --git a/MrBigsock/Assets/Code/Item/Items/ItemFourEyes.cs b/MrBigsock/Assets/Code/Item/Items/ItemFourEyes.cs new file mode 100644 index 00000000..df46c8fa --- /dev/null +++ b/MrBigsock/Assets/Code/Item/Items/ItemFourEyes.cs @@ -0,0 +1,31 @@ +using System.Collections; +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.InputSystem; + + +namespace BigSock.Item { + + /* + An item that adds a 30% chance to deal double damage on hit. + */ + public class ItemFourEyes : OnHitItemBase { + public override ulong Id => 201; + public override string Name => "Four Eyes"; + public override string Description => "30% chance to deal double dammage."; + + public static readonly double CHANCE = 0.3; + + public override void Handler(Character source, Character target, AttackStats attack) { + var roll = RND.NextDouble(); + if(roll >= CHANCE) { + attack.Damage *= 2; + MonoBehaviour.print($"[ItemFourEyes.Handler()] Hit. ({roll:P1} >= {CHANCE:P1})") + } else { + MonoBehaviour.print($"[ItemFourEyes.Handler()] Miss. ({roll:P1} < {CHANCE:P1})") + } + } + + } +} \ No newline at end of file diff --git a/MrBigsock/Assets/Code/Item/Items/RunningShoes.cs b/MrBigsock/Assets/Code/Item/Items/ItemRunningShoes.cs similarity index 54% rename from MrBigsock/Assets/Code/Item/Items/RunningShoes.cs rename to MrBigsock/Assets/Code/Item/Items/ItemRunningShoes.cs index 618fdef6..bc30d62e 100644 --- a/MrBigsock/Assets/Code/Item/Items/RunningShoes.cs +++ b/MrBigsock/Assets/Code/Item/Items/ItemRunningShoes.cs @@ -6,15 +6,16 @@ using UnityEngine.InputSystem; namespace BigSock.Item { - + /* A passive item that increases user's running speed by 50%. */ - public class RunningShoes : PassiveItemBase { - public RunningShoes() { - Id = 101; - Name = "Running Shoes"; - Description = "Increases movement speed by 50%"; + public class ItemRunningShoes : PassiveItemBase { + public override ulong Id => 101; + public override string Name => "Running Shoes"; + public override string Description => "Increases movement speed by 50%"; + + public ItemRunningShoes() { Modifier = new CharacterStats{ MoveSpeed = 0.5f, }; diff --git a/MrBigsock/Assets/Code/Item/Items/RunningShoes.cs.meta b/MrBigsock/Assets/Code/Item/Items/RunningShoes.cs.meta deleted file mode 100644 index 791c93b1..00000000 --- a/MrBigsock/Assets/Code/Item/Items/RunningShoes.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 12406fa4fcf374142ad545946396cbde -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/MrBigsock/Assets/Code/PlayerController.cs b/MrBigsock/Assets/Code/PlayerController.cs index 3fbe2ec8..95ef3e8c 100644 --- a/MrBigsock/Assets/Code/PlayerController.cs +++ b/MrBigsock/Assets/Code/PlayerController.cs @@ -44,6 +44,9 @@ namespace BigSock { spriteRenderer = GetComponent<SpriteRenderer>(); hpBar.SetMaxHealth(Convert.ToInt32(MaxHP)); hpBar.SetHealth(Convert.ToInt32(HP)); + + //!! DEBUG: Add item to player at start to test if it works. + TryPickUpItem(new ItemFourEyes()); } @@ -106,7 +109,7 @@ namespace BigSock { //!! Code for testing the new item stuff. if(Input.GetKeyDown(KeyCode.Space)) { - TryPickUpItem(new RunningShoes()); + TryPickUpItem(new ItemRunningShoes()); } } -- GitLab