diff --git a/Assets/Prefabs/Fighters/AntiPlayer.prefab b/Assets/Prefabs/Fighters/AntiPlayer.prefab index bbe8e9ba9c29fec14204283ecc7ac845c35c28ed..9213920c4f195ff6c04168af6426ce12eb00b813 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 ada3cc7409ac2dae6e1deb93d9465c260c89da5e..afc44b9972faf46570d327b61c626e7b7134cd83 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 3dd96f4c4049c71d08fb2cf089f2332bd9aeb2d2..e159efec3860a76a01079f6e000b6c1de51db5d7 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 55ec6139867d4011a48cd43509eb95e276a4e9a0..1cf8e2c30414c723f954c493fdec5a688fdca553 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 b83e9927a1deb6e9ef2ba25a72f7c632a5e010d7..6ecacf6c0a5ff0ce749be85199c98d788c9037bc 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];