Added Weapon
This commit is contained in:
parent
639357ca9a
commit
08e1e8f0ea
|
@ -29,7 +29,12 @@ namespace GameDev.CoreSystems
|
|||
public void ModifyHealth(int healthChange)
|
||||
{
|
||||
if (IsInvulnerable) return;
|
||||
|
||||
CurrentHealth += healthChange;
|
||||
|
||||
if (CurrentHealth >= 0) return;
|
||||
|
||||
print($"{transform.parent.parent.name} died");
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
|
|
@ -14,6 +14,9 @@ namespace GameDev.CoreSystems
|
|||
[SerializeField] private Transform _centerPosition;
|
||||
[SerializeField] private Transform _basePosition;
|
||||
|
||||
[field: Header("Collider")]
|
||||
[field: SerializeField] public Collider Collider { get; private set; }
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
_activeTargetableRuntimeSet._list.Add(this);
|
||||
|
|
|
@ -0,0 +1,75 @@
|
|||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace GameDev.CoreSystems
|
||||
{
|
||||
public class Weapon : MonoBehaviour, IWeapon
|
||||
{
|
||||
[field: Header("RigConnections")]
|
||||
[field: SerializeField] public Transform PivotPoint { get; private set; }
|
||||
[field: SerializeField] public Transform BarrelEndPoint { get; private set; }
|
||||
|
||||
[field: Header("Config")]
|
||||
[field: SerializeField] public float FireRate { get; set; }
|
||||
[field: SerializeField] public float Damage { get; set; }
|
||||
|
||||
[field: Header("State")]
|
||||
[field: SerializeField] public bool FireWeapon { get; set; }
|
||||
[field: SerializeField] private float _timeUntilFire;
|
||||
|
||||
private Vector3 _start;
|
||||
private Vector3 _direction;
|
||||
// private bool drawGizmo;
|
||||
// private Vector3 start;
|
||||
// private Vector3 end;
|
||||
//
|
||||
// private void OnEnable()
|
||||
// {
|
||||
// start = BarrelEndPoint.position;
|
||||
// end = BarrelEndPoint.position;
|
||||
// }
|
||||
//
|
||||
// private void OnDrawGizmos()
|
||||
// {
|
||||
// if (drawGizmo)
|
||||
// {
|
||||
// Gizmos.DrawLine(start, end);
|
||||
// }
|
||||
// }
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (FireWeapon)
|
||||
{
|
||||
// drawGizmo = true;
|
||||
// start = BarrelEndPoint.position;
|
||||
// end = start + Vector3.forward * 5;
|
||||
_timeUntilFire -= Time.deltaTime;
|
||||
|
||||
if (!(_timeUntilFire <= 0)) return;
|
||||
|
||||
// _start = BarrelEndPoint.position;
|
||||
//_direction = BarrelEndPoint.forward;
|
||||
|
||||
var ray = new Ray(BarrelEndPoint.position, BarrelEndPoint.forward);
|
||||
Debug.DrawRay(BarrelEndPoint.position, BarrelEndPoint.forward * 10, Color.green);
|
||||
|
||||
if (Physics.Raycast(ray, out RaycastHit hitInfo))
|
||||
{
|
||||
if (hitInfo.transform.TryGetComponent(out Targetable target))
|
||||
{
|
||||
print("pew");
|
||||
target.Damageable.ModifyHealth(Mathf.RoundToInt(-Damage));
|
||||
}
|
||||
}
|
||||
|
||||
_timeUntilFire = FireRate;
|
||||
}
|
||||
else
|
||||
{
|
||||
// drawGizmo = false;
|
||||
_timeUntilFire = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 86bd9978589203b4db636cf6248e263b
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Loading…
Reference in New Issue