Added damage dealt and kills stats to weapons
This commit is contained in:
parent
87e455827c
commit
510aaf1b67
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 19bf3f6dd184a48499aff1db728edfcd
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
|
@ -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; }
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue