Compare commits
2 Commits
87e455827c
...
cf3cf65b06
Author | SHA1 | Date |
---|---|---|
|
cf3cf65b06 | |
|
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:
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
using ScriptableObjectArchitecture;
|
||||||
|
|
||||||
namespace GameDev.CoreSystems
|
namespace GameDev.CoreSystems
|
||||||
{
|
{
|
||||||
public interface IPowerSystem
|
public interface IPowerSystem
|
||||||
|
@ -15,7 +17,7 @@ namespace GameDev.CoreSystems
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// True if consumer demand exceed generator capacity
|
/// True if consumer demand exceed generator capacity
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool PowerLost { get; set; }
|
public BoolReference PowerLost { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Initialize the power configuration of the entity with the <see cref="SoPowerConfig"/>
|
/// Initialize the power configuration of the entity with the <see cref="SoPowerConfig"/>
|
||||||
|
|
|
@ -3,6 +3,6 @@ namespace GameDev.CoreSystems
|
||||||
public interface IWeapon
|
public interface IWeapon
|
||||||
{
|
{
|
||||||
public float FireRate { get; set; }
|
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: Header("Config")]
|
||||||
[field: SerializeField] public float FireRate { get; set; }
|
[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: Header("State")]
|
||||||
[field: SerializeField] public bool FireWeapon { get; set; }
|
[field: SerializeField] public bool FireWeapon { get; set; }
|
||||||
[field: SerializeField] private float _timeUntilFire;
|
[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()
|
private void Update()
|
||||||
{
|
{
|
||||||
if (FireWeapon)
|
if (FireWeapon)
|
||||||
|
@ -32,9 +36,12 @@ namespace GameDev.CoreSystems
|
||||||
{
|
{
|
||||||
if (hitInfo.transform.TryGetComponent(out Targetable target))
|
if (hitInfo.transform.TryGetComponent(out Targetable target))
|
||||||
{
|
{
|
||||||
|
target.Damageable.DeathEvent.AddListener(IncrementKillCount);
|
||||||
Debug.DrawRay(position, forward * Vector3.Distance(position, target.GetCenterPosition()),
|
Debug.DrawRay(position, forward * Vector3.Distance(position, target.GetCenterPosition()),
|
||||||
Color.red, 0.1f);
|
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;
|
_timeUntilFire = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void IncrementKillCount()
|
||||||
|
{
|
||||||
|
NumberOfKills += 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue