diff --git a/MrBigsock/Assets/Code/Character.cs b/MrBigsock/Assets/Code/Character.cs index bf17da2bc2e33ea6d8908547dcd08a1a339e9908..0d3c07c9282da4ccd139bf1955411242d4f52cb0 100644 --- a/MrBigsock/Assets/Code/Character.cs +++ b/MrBigsock/Assets/Code/Character.cs @@ -114,6 +114,11 @@ namespace BigSock { // Set the base stats. BaseStats = new CharacterStats { MaxHP = baseMaxHP, + MaxMana = 10, + MaxStamina = 10, + RegenMana = 2, + RegenStamina = 2, + Damage = baseDamage, MoveSpeed = baseMovementSpeed, Knockback = knockbackForce, diff --git a/MrBigsock/Assets/Code/Core/CharacterStats.cs b/MrBigsock/Assets/Code/Core/CharacterStats.cs index f9e6e247ddf6a67262c6e79e6f57e5020f458f6c..8ee6c2b7d7aea72fa015ae691643e5d19e3fef71 100644 --- a/MrBigsock/Assets/Code/Core/CharacterStats.cs +++ b/MrBigsock/Assets/Code/Core/CharacterStats.cs @@ -16,6 +16,28 @@ namespace BigSock { */ public float MaxHP { get; set; } + /* + The max mana of the character. + */ + public float MaxMana { get; set; } + + /* + The max stamina of the character. + */ + public float MaxStamina { get; set; } + + /* + The regeneration rate of the character's mana. + */ + public float RegenMana { get; set; } + + /* + The regeneration rate of the character's stamina. + */ + public float RegenStamina { get; set; } + + + /* The damage of the character. */ diff --git a/MrBigsock/Assets/Code/Core/ICharacterStats.cs b/MrBigsock/Assets/Code/Core/ICharacterStats.cs index d18f091c659d24a689372638ef3b5a235b77e8d6..4fa71d78396e5efb122e2641db990de49faee15e 100644 --- a/MrBigsock/Assets/Code/Core/ICharacterStats.cs +++ b/MrBigsock/Assets/Code/Core/ICharacterStats.cs @@ -12,10 +12,31 @@ namespace BigSock { */ public interface ICharacterStats { /* - The hp of the character. + The max hp of the character. */ float MaxHP { get; } + /* + The max mana of the character. + */ + float MaxMana { get; } + + /* + The max stamina of the character. + */ + float MaxStamina { get; } + + /* + The regeneration rate of the character's mana. + */ + float RegenMana { get; } + + /* + The regeneration rate of the character's stamina. + */ + float RegenStamina { get; } + + /* The damage of the character. */ @@ -67,6 +88,11 @@ namespace BigSock { */ public static readonly ICharacterStats IDENTITY = new CharacterStats{ MaxHP = 1, + MaxMana = 1, + MaxStamina = 1, + RegenMana = 1, + RegenStamina = 1, + Damage = 1, MoveSpeed = 1, Knockback = 1, @@ -83,6 +109,11 @@ namespace BigSock { public static ICharacterStats Add(this ICharacterStats a, ICharacterStats b) { return new CharacterStats{ MaxHP = a.MaxHP + b.MaxHP, + MaxMana = a.MaxMana + b.MaxMana, + MaxStamina = a.MaxStamina + b.MaxStamina, + RegenMana = a.RegenMana + b.RegenMana, + RegenStamina = a.RegenStamina + b.RegenStamina, + Damage = a.Damage + b.Damage, MoveSpeed = a.MoveSpeed + b.MoveSpeed, Knockback = a.Knockback + b.Knockback, @@ -101,6 +132,11 @@ namespace BigSock { public static ICharacterStats Remove(this ICharacterStats a, ICharacterStats b) { return new CharacterStats{ MaxHP = a.MaxHP - b.MaxHP, + MaxMana = a.MaxMana - b.MaxMana, + MaxStamina = a.MaxStamina - b.MaxStamina, + RegenMana = a.RegenMana - b.RegenMana, + RegenStamina = a.RegenStamina - b.RegenStamina, + Damage = a.Damage - b.Damage, MoveSpeed = a.MoveSpeed - b.MoveSpeed, Knockback = a.Knockback - b.Knockback, @@ -118,6 +154,11 @@ namespace BigSock { public static ICharacterStats Multiply(this ICharacterStats a, ICharacterStats b) { return new CharacterStats{ MaxHP = a.MaxHP * b.MaxHP, + MaxMana = a.MaxMana * b.MaxMana, + MaxStamina = a.MaxStamina * b.MaxStamina, + RegenMana = a.RegenMana * b.RegenMana, + RegenStamina = a.RegenStamina * b.RegenStamina, + Damage = a.Damage * b.Damage, MoveSpeed = a.MoveSpeed * b.MoveSpeed, Knockback = a.Knockback * b.Knockback,