LunarInfantry/Assets/Scripts/RangedWeapon.cs
2026-01-23 00:55:00 -08:00

64 lines
1.6 KiB
C#

using System;
using UnityEngine;
public class RangedWeapon : Weapon
{
private Camera cam;
private Vector3 mousePos;
[Header("Ranged Weapon Specifics")]
public int reloadActionUsage;
public bool fired;
[SerializeField] private Projectile projectile;
private void Start()
{
cam = Camera.main;
}
public override void TryAttack()
{
if (!fired)
{
AttackEffects();
}
}
public void Reload()
{
fired = false;
}
protected override void AttackEffects()
{
isAiming = true;
}
private void Update()
{
if (isAiming)
{
mousePos = cam.ScreenToWorldPoint(Input.mousePosition);
if (Input.GetMouseButtonDown(0))
{
CreateProjectile(mousePos);
fired = true;
isAiming = false;
ActionUIHandler.instance.UpdateActions(1);
ActionUIHandler.instance.cursorObject.SetActive(false);
}
else if (Input.GetMouseButtonDown(1))
{
isAiming = false;
ActionUIHandler.instance.cursorObject.SetActive(false);
}
}
}
private void CreateProjectile(Vector3 target)
{
Projectile newProjectile = Instantiate(projectile, transform.position, Quaternion.identity);
newProjectile.RotateToTarget(target);
newProjectile.damage = damage;
newProjectile.pierceAmount = pierce;
newProjectile.tag = tag;
newProjectile.fromEntity = thisEntity;
}
}