AsteroidGame/Assets/Entities/Structures/Turret/Turret.cs

58 lines
1.5 KiB
C#

using AsteroidGame.ScriptableObjects;
using GameDev.CoreSystems;
using UnityEngine;
namespace AsteroidGame.Entities
{
public class Turret : StructureBase
{
[Header("WeaponParameters")]
[SerializeField] private int _damage = 1;
[SerializeField] private float _fireRate = 1;
[SerializeField] private float _projectileSpeed = 5;
[Header("Stats")]
[SerializeField] private float _kills = 0f;
[SerializeField] private float _damageDealt = 0f;
[Header("RigConnections")]
[SerializeField] private Transform _turretHead;
[SerializeField] private Transform _barrel;
[Header("Targeter")]
[SerializeField] private SoTargeterConfig _targeterConfig;
[SerializeField] private Targeter _targeter;
[SerializeField] private Targetable _target;
#region Publics
public int Damage
{
get => _damage;
set => _damage = value;
}
#endregion
protected override void OnEnable()
{
base.OnEnable();
InitializeTargeter();
}
private void InitializeTargeter()
{
_targeter = gameObject.AddComponent<Targeter>();
//_targeter.SetParent(this);
_targeter.SetConfig(_targeterConfig);
}
private void Update()
{
if (!_targeter.FoundTarget()) return;
_target = _targeter.GetTarget();
_turretHead.transform.LookAt(_target.GetCenterPosition());
}
}
}