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
|
||||
{
|
||||
public interface IPowerSystem
|
||||
|
@ -17,7 +15,7 @@ namespace GameDev.CoreSystems
|
|||
/// <summary>
|
||||
/// True if consumer demand exceed generator capacity
|
||||
/// </summary>
|
||||
public BoolReference PowerLost { get; set; }
|
||||
public bool PowerLost { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Initialize the power configuration of the entity with the <see cref="SoPowerConfig"/>
|
||||
|
|
|
@ -3,6 +3,6 @@ namespace GameDev.CoreSystems
|
|||
public interface IWeapon
|
||||
{
|
||||
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: SerializeField] public float FireRate { get; set; }
|
||||
[field: SerializeField] public int Damage { get; set; }
|
||||
[field: SerializeField] public float 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)
|
||||
|
@ -36,12 +32,9 @@ 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(-Damage);
|
||||
DamageDealt += Damage;
|
||||
target.Damageable.DeathEvent.RemoveListener(IncrementKillCount);
|
||||
target.Damageable.ModifyHealth(Mathf.RoundToInt(-Damage));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -52,10 +45,5 @@ namespace GameDev.CoreSystems
|
|||
_timeUntilFire = 0;
|
||||
}
|
||||
}
|
||||
|
||||
private void IncrementKillCount()
|
||||
{
|
||||
NumberOfKills += 1;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue