From 510aaf1b6755c4fe76ecac137cdefc1564c8a086 Mon Sep 17 00:00:00 2001 From: Stedd Date: Sun, 6 Oct 2024 11:04:28 +0200 Subject: [PATCH] Added damage dealt and kills stats to weapons --- Configs/SoWeaponConfig.cs | 23 ----------------------- Configs/SoWeaponConfig.cs.meta | 11 ----------- Interfaces/IWeapon.cs | 2 +- Scripts/Weapon.cs | 16 ++++++++++++++-- 4 files changed, 15 insertions(+), 37 deletions(-) delete mode 100644 Configs/SoWeaponConfig.cs delete mode 100644 Configs/SoWeaponConfig.cs.meta diff --git a/Configs/SoWeaponConfig.cs b/Configs/SoWeaponConfig.cs deleted file mode 100644 index 2b656d3..0000000 --- a/Configs/SoWeaponConfig.cs +++ /dev/null @@ -1,23 +0,0 @@ -using GameDev.CoreSystems; -using UnityEngine; - -namespace AsteroidGame.ScriptableObjects -{ - public class SoWeaponConfig : ScriptableObject, IWeapon - { - [SerializeField] private float _fireRate; - [SerializeField] private float _damage; - - public float FireRate - { - get => _fireRate; - set => _fireRate = value; - } - - public float Damage - { - get => _damage; - set => _damage = value; - } - } -} \ No newline at end of file diff --git a/Configs/SoWeaponConfig.cs.meta b/Configs/SoWeaponConfig.cs.meta deleted file mode 100644 index f7217fb..0000000 --- a/Configs/SoWeaponConfig.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 19bf3f6dd184a48499aff1db728edfcd -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Interfaces/IWeapon.cs b/Interfaces/IWeapon.cs index 8fc0d8f..af2aca6 100644 --- a/Interfaces/IWeapon.cs +++ b/Interfaces/IWeapon.cs @@ -3,6 +3,6 @@ namespace GameDev.CoreSystems public interface IWeapon { public float FireRate { get; set; } - public float Damage { get; set; } + public int Damage { get; set; } } } \ No newline at end of file diff --git a/Scripts/Weapon.cs b/Scripts/Weapon.cs index f4e052e..c470535 100644 --- a/Scripts/Weapon.cs +++ b/Scripts/Weapon.cs @@ -10,12 +10,16 @@ namespace GameDev.CoreSystems [field: Header("Config")] [field: SerializeField] public float FireRate { get; set; } - [field: SerializeField] public float Damage { get; set; } + [field: SerializeField] public int Damage { get; set; } [field: Header("State")] [field: SerializeField] public bool FireWeapon { get; set; } [field: SerializeField] private float _timeUntilFire; + [field: Header("Stats")] + [field: SerializeField] public int NumberOfKills { get; set; } + [field: SerializeField] public int DamageDealt { get; set; } + private void Update() { if (FireWeapon) @@ -32,9 +36,12 @@ namespace GameDev.CoreSystems { if (hitInfo.transform.TryGetComponent(out Targetable target)) { + target.Damageable.DeathEvent.AddListener(IncrementKillCount); Debug.DrawRay(position, forward * Vector3.Distance(position, target.GetCenterPosition()), Color.red, 0.1f); - target.Damageable.ModifyHealth(Mathf.RoundToInt(-Damage)); + target.Damageable.ModifyHealth(-Damage); + DamageDealt += Damage; + target.Damageable.DeathEvent.RemoveListener(IncrementKillCount); } } @@ -45,5 +52,10 @@ namespace GameDev.CoreSystems _timeUntilFire = 0; } } + + private void IncrementKillCount() + { + NumberOfKills += 1; + } } } \ No newline at end of file