From 602945f47d84a6c3d27c12514a280fb099d36bee Mon Sep 17 00:00:00 2001 From: Adrian Paschkowski <git@wasdennnoch.me> Date: Thu, 15 Apr 2021 18:49:11 +0200 Subject: [PATCH] Adjustments --- Assets/Prefabs/Fighters/AntiPlayer.prefab | 4 +--- Assets/Prefabs/Fighters/Bandit.prefab | 6 ++---- Assets/Scripts/Fighters/AntiPlayer.cs | 2 +- Assets/Scripts/Fighters/Fighter.cs | 4 ++-- Assets/Scripts/StatsManager.cs | 18 +++++++++++++++++- 5 files changed, 23 insertions(+), 11 deletions(-) diff --git a/Assets/Prefabs/Fighters/AntiPlayer.prefab b/Assets/Prefabs/Fighters/AntiPlayer.prefab index bbe8e9b..9213920 100644 --- a/Assets/Prefabs/Fighters/AntiPlayer.prefab +++ b/Assets/Prefabs/Fighters/AntiPlayer.prefab @@ -111,11 +111,9 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: baseHealth: 100 - baseAttackSpeed: 1 + baseAttackSpeed: 2.2 baseAttackDamage: 10 baseArmor: 1 - maxHealth: 100 - currentHealth: 100 maxDistanceToEnemy: 1 movementSpeed: 4 delayUntilNextTarget: 0.3 diff --git a/Assets/Prefabs/Fighters/Bandit.prefab b/Assets/Prefabs/Fighters/Bandit.prefab index ada3cc7..afc44b9 100644 --- a/Assets/Prefabs/Fighters/Bandit.prefab +++ b/Assets/Prefabs/Fighters/Bandit.prefab @@ -51,13 +51,11 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: baseHealth: 100 - baseAttackSpeed: 1 + baseAttackSpeed: 4 baseAttackDamage: 10 baseArmor: 1 - maxHealth: 100 - currentHealth: 100 playerDistanceToAttack: 1.25 - playerNearDistance: 3.75 + playerNearDistance: 4 --- !u!95 &95346456782871180 Animator: serializedVersion: 3 diff --git a/Assets/Scripts/Fighters/AntiPlayer.cs b/Assets/Scripts/Fighters/AntiPlayer.cs index 3dd96f4..e159efe 100644 --- a/Assets/Scripts/Fighters/AntiPlayer.cs +++ b/Assets/Scripts/Fighters/AntiPlayer.cs @@ -73,7 +73,7 @@ public class AntiPlayer : Fighter, IFighterCallback public override int DealDamage(int dmg) { var actualDamage = base.DealDamage(dmg); - StatsManager.instance.ModifyMana((int)(actualDamage * StatsManager.instance.manaReceiveMultiplier)); + StatsManager.instance.AddDamageBasedMana(actualDamage, !alive); return actualDamage; } diff --git a/Assets/Scripts/Fighters/Fighter.cs b/Assets/Scripts/Fighters/Fighter.cs index 55ec613..1cf8e2c 100644 --- a/Assets/Scripts/Fighters/Fighter.cs +++ b/Assets/Scripts/Fighters/Fighter.cs @@ -19,8 +19,8 @@ public abstract class Fighter : MonoBehaviour, IRoundCallback public List<IFighterCallback> callbacks = new List<IFighterCallback>(); - [SerializeField] protected int maxHealth = 100; // Dynamically valculated based on upgrades - [SerializeField] protected int currentHealth = 100; + protected int maxHealth = 100; // Dynamically valculated based on upgrades + protected int currentHealth = 100; protected float currentHealthPercentage { get => (float) currentHealth / maxHealth; } protected Animator animator; protected new Rigidbody2D rigidbody; diff --git a/Assets/Scripts/StatsManager.cs b/Assets/Scripts/StatsManager.cs index b83e992..6ecacf6 100644 --- a/Assets/Scripts/StatsManager.cs +++ b/Assets/Scripts/StatsManager.cs @@ -53,7 +53,10 @@ public class StatsManager : MonoBehaviour public static StatsManager instance { get; private set; } [SerializeField] int currentMana; - public float manaReceiveMultiplier; + [SerializeField, Tooltip("When the AntiPlayer receives damage, how much of that damage is converted to Mana")] + float antiPlayerDamageManaMultiplier = 100f; + [SerializeField, Tooltip("When the AntiPlayer dies, how much mana to give")] + int antiPlayerDeathMana = 1000; [SerializeField] List<Upgrade> availableUpgrades; // The currently active statistics for each fighter type @@ -107,6 +110,19 @@ public class StatsManager : MonoBehaviour return currentMana + delta >= 0; } + // Adds Mana based on the amount of damage the AntiPlayer has taken + public void AddDamageBasedMana(int damage, bool death = false) + { + if (death) + { + ModifyMana(antiPlayerDeathMana); + } + else + { + ModifyMana((int)(damage * antiPlayerDamageManaMultiplier)); + } + } + void RecalculateStatMultipliers() { var enemyStats = fighterStats[FighterTypes.ENEMY]; -- GitLab