You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
RatAttack2D/Assets/Scripts/Weapon.cs

57 lines
1.6 KiB

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Weapon : MonoBehaviour
{
[SerializeField] private int maxAmmo;
[SerializeField] private float shootSpeed;
[SerializeField] private int damage;
[SerializeField] private bool fullAuto;
[SerializeField] private float shootPointHeight;
[SerializeField] private GameObject Bullet;
private int Ammo;
private bool shootDone;
private float Wait;
private Transform shootPoint;
private SpriteRenderer SR;
private void Start()
{
Ammo = maxAmmo;
shootPoint = transform.GetChild(0);
SR = transform.GetComponent<SpriteRenderer>();
}
public void shoot()
{
if(Ammo == 0 || Wait > 0 || shootDone && !fullAuto)
{
return;
}
if(!fullAuto)
{
shootDone = true;
}
Wait += shootSpeed;
GameObject bullet = GameObject.Instantiate(Bullet, shootPoint.position, transform.rotation);
bullet.GetComponent<Bullet>().setDmg = damage;
bullet.GetComponent<Bullet>().OwnTag = transform.tag;
}
private void Update()
{
Wait -= Time.deltaTime;
Wait = Mathf.Clamp(Wait, 0, shootSpeed);
if(Wait == 0)
{
shootDone = false;
}
if(SR.flipY)
{
shootPoint.localPosition = new Vector3(shootPoint.localPosition.x, -shootPointHeight, 0);
}
else
{
shootPoint.localPosition = new Vector3(shootPoint.localPosition.x, shootPointHeight, 0);
}
}
}