Compare commits

..

No commits in common. "cf3cf65b068d861d5bd65db2fbbb53a55f5bbf4d" and "87e455827c0c563da6dcd74ab2afdbd1fc725f27" have entirely different histories.

5 changed files with 38 additions and 18 deletions

23
Configs/SoWeaponConfig.cs Normal file
View File

@ -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;
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 19bf3f6dd184a48499aff1db728edfcd
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -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"/>

View File

@ -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; }
}
}

View File

@ -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;
}
}
}