Compare commits
No commits in common. "cf3cf65b068d861d5bd65db2fbbb53a55f5bbf4d" and "87e455827c0c563da6dcd74ab2afdbd1fc725f27" have entirely different histories.
cf3cf65b06
...
87e455827c
|
@ -0,0 +1,23 @@
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 19bf3f6dd184a48499aff1db728edfcd
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -1,5 +1,3 @@
|
||||||
using ScriptableObjectArchitecture;
|
|
||||||
|
|
||||||
namespace GameDev.CoreSystems
|
namespace GameDev.CoreSystems
|
||||||
{
|
{
|
||||||
public interface IPowerSystem
|
public interface IPowerSystem
|
||||||
|
@ -17,7 +15,7 @@ namespace GameDev.CoreSystems
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// True if consumer demand exceed generator capacity
|
/// True if consumer demand exceed generator capacity
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public BoolReference PowerLost { get; set; }
|
public bool 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 int Damage { get; set; }
|
public float Damage { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -10,16 +10,12 @@ 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 int Damage { get; set; }
|
[field: SerializeField] public float 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)
|
||||||
|
@ -36,12 +32,9 @@ 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(-Damage);
|
target.Damageable.ModifyHealth(Mathf.RoundToInt(-Damage));
|
||||||
DamageDealt += Damage;
|
|
||||||
target.Damageable.DeathEvent.RemoveListener(IncrementKillCount);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,10 +45,5 @@ namespace GameDev.CoreSystems
|
||||||
_timeUntilFire = 0;
|
_timeUntilFire = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void IncrementKillCount()
|
|
||||||
{
|
|
||||||
NumberOfKills += 1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue