Question by
Cryno1000 · Apr 17, 2020 at 09:21 AM ·
c#scripting problemweaponweapon system
Having an issue where after I shoot a specific weapon, other weapons don't work as intended.
So one of my scripts handles all of my weapons for my player. But recently when I added a rocket launcher, I've run into some issues. So everything works fine until the player shoots the rocket launcher but after they do, guns shoot roughly once per second instead of their varying rates. Additionally, it takes a few seconds after swapping weapons to be able to shoot them.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class barrel : MonoBehaviour
{
[SerializeField]
private Transform barrelTip;
[SerializeField]
private Transform barrelTip2;
[SerializeField]
private Transform barrelTip3;
public GameObject bullet;
public GameObject rocket;
private Vector2 lookDirection;
private float lookAngle;
public bool canShootWeapon1;
public bool canShootWeapon2;
public bool canShootWeapon3;
public bool canShootCurrentWeapon;
public bool reloading = false;
public int prevreserve;
public playercontroller player;
public Text ammo;
public int shootspeed;
public int amounttoremove;
public int currentweaponammo;
public int weapon1ammo = 12;
public int weapon2ammo;
public int weapon3ammo;
public int currentweaponreserve;
public int weapon1reserve;
public int weapon2reserve;
public int weapon3reserve;
public int maxcurrentweaponammo;
public int maxweapon1ammo = 12;
public int maxweapon2ammo;
public int maxweapon3ammo;
public int maxpistolammo = 12;
public int maxassaultrifleammo = 30;
public int maxsniperammo = 5;
public int maxshotgunammo = 5;
public int maxlmgammo = 100;
public int maxsmgammo = 30;
public int maxrocketlauncherammo = 1;
public bool keyboard;
public Transform target;
//controls
public string shoot;
public string currentPrefix1;
public string currentPrefix2;
//buffs
public bool piercing = false;
public bool metal = false;
public bool grippy = false;
public bool bouncy = false;
public bool crippling = false;
public bool lightbool = false;
public bool legendary = false;
//debuffs
public bool paper = false;
public bool sticky = false;
public bool homemade = false;
public bool warped = false;
public bool broken = false;
public bool taxing = false;
public bool heavy = false;
public float pistolwait = 3;
public float assaultriflewait = 3;
public float sniperwait = 3;
public float shotgunwait = 3;
public float lmgwait = 3;
public float smgwait = 3;
public float rocketlauncherwait = 3;
//def == default
public float defpistolwait = 3;
public float defassaultriflewait = 3;
public float defsniperwait = 3;
public float defshotgunwait = 3;
public float deflmgwait = 3;
public float defsmgwait = 3;
public float defrocketlauncherwait = 3;
public float currentweaponwait;
public float gripwait = 0.8f;
public float stickywait = 1.2f;
[HideInInspector] public bool weapon2owned;
[HideInInspector] public bool weapon3owned;
[HideInInspector] public string weapon1name;
[HideInInspector] public string weapon2name;
[HideInInspector] public string weapon3name;
[HideInInspector] public string weapon1type;
[HideInInspector] public string weapon2type;
[HideInInspector] public string weapon3type;
[HideInInspector] public string weapon2prefix1;
[HideInInspector] public string weapon2prefix2;
[HideInInspector] public string weapon3prefix1;
[HideInInspector] public string weapon3prefix2;
[HideInInspector] public string currentweaponprefix1;
[HideInInspector] public string currentweaponprefix2;
public string currentweapontype;
[HideInInspector] public string currentweaponname;
public Text currentweapon;
public Sprite pistolimg;
public Sprite assaultrifleimg;
public Sprite shotgunimg;
public Sprite sniperimg;
public Sprite lmgimg;
public Sprite smgimg;
public Sprite rocketlauncherimg;
public Image weapon;
public int weaponselection;
public string reload;
public weaponbox weaponboxscript;
void Start()
{
player.GetComponent<playercontroller>();
shootspeed = 20;
weaponselection = 1;
currentweaponammo = maxpistolammo;
WeaponSwapFunction();
canShootWeapon1 = true;
canShootWeapon2 = true;
canShootWeapon3 = true;
canShootCurrentWeapon = true;
weapon1type = "Pistol";
weapon2type = "none";
weapon3type = "none";
}
// Update is called once per frame
void Update()
{
if (Input.GetButtonDown(reload)) StartCoroutine("reloadcheck");
GetRefsBarrel();
AttackCheck();
RotateToLookDirection();
WeaponSprites();
Scene currentScene = SceneManager.GetActiveScene();
string sceneName = currentScene.name;
if (sceneName != "charactercreation")
{
if (weaponselection == 1)
{
currentweapontype = weapon1type;
currentweaponname = weapon1name;
}
if (weaponselection == 2)
{
currentweapontype = weapon2type;
currentweaponname = weapon2name;
}
if (weaponselection == 3)
{
currentweapontype = weapon3type;
currentweaponname = weapon3name;
}
currentweapon.text = currentweaponname;
}
}
public void CanShootThisWeapon()
{
if (weaponselection == 1 && canShootWeapon1) canShootCurrentWeapon = true;
else if (weaponselection == 2 && canShootWeapon2) canShootCurrentWeapon = true;
else if (weaponselection == 3 && canShootWeapon3) canShootCurrentWeapon = true;
else canShootCurrentWeapon = false;
}
public void GetCurrentReserve()
{
if (weaponselection == 1) currentweaponreserve = weapon1reserve;
else if (weaponselection == 2) currentweaponreserve = weapon2reserve;
else if (weaponselection == 3) currentweaponreserve = weapon3reserve;
}
public void WeaponSwapFunction()
{
if (weaponselection == 0)
{
weaponselection = 3;
WeaponSwapFunction();
}
else if (weaponselection == 1)
{
currentweapontype = weapon1type;
currentweaponprefix1 = "";
currentweaponprefix2 = "";
currentweaponammo = weapon1ammo;
CallWeaponSwapFunctions();
}
else if (weaponselection == 2)
{
if (weapon2type == "none")
{
weaponselection = 1;
WeaponSwapFunction();
}
else if (weapon2type != "none")
{
currentweapontype = weapon2type;
currentweaponprefix1 = weapon2prefix1;
currentweaponprefix2 = weapon2prefix2;
currentweaponammo = weapon2ammo;
CallWeaponSwapFunctions();
}
}
else if (weaponselection == 3)
{
if (weapon3type == "none")
{
weaponselection = 2;
WeaponSwapFunction();
}
else if (weapon3type != "none")
{
currentweapontype = weapon3type;
currentweaponprefix1 = weapon3prefix1;
currentweaponprefix2 = weapon3prefix2;
currentweaponammo = weapon3ammo;
CallWeaponSwapFunctions();
}
}
else if (weaponselection == 4)
{
weaponselection = 1;
WeaponSwapFunction();
}
Scene currentScene = SceneManager.GetActiveScene();
string sceneName = currentScene.name;
if (sceneName != "charactercreation") currentweapon.text = currentweaponname;
}
public void WeaponSprites()
{
if (currentweapontype == "Pistol") weapon.sprite = pistolimg;
else if (currentweapontype == "Assault Rifle") weapon.sprite = assaultrifleimg;
else if (currentweapontype == "Shotgun") weapon.sprite = shotgunimg;
else if (currentweapontype == "Sniper") weapon.sprite = sniperimg;
else if (currentweapontype == "LMG") weapon.sprite = lmgimg;
else if (currentweapontype == "SMG") weapon.sprite = smgimg;
else if (currentweapontype == "Rocket Launcher") weapon.sprite = rocketlauncherimg;
}
public void WeaponNames()
{
weapon1name = "Pistol";
weapon2name = weapon2prefix1 + weapon2prefix2 + weapon2type;
weapon3name = weapon3prefix1 + weapon3prefix2 + weapon3type;
}
public void WeaponBox()
{
weaponboxscript.randomweapon();
if (weaponselection == 2 && weapon3owned == true || weaponselection == 1 && weapon2type == "none")
{
weapon2type = weaponboxscript.weapontype;
weapon2prefix1 = weaponboxscript.prefix1choice;
weapon2prefix2 = weaponboxscript.prefix2choice;
weaponselection = 2;
WeaponNames();
UpdateAmmoAndShootSpeed();
weapon2owned = true;
WeaponSwapFunction();
GetAndSetMaxAmmo();
}
if (weaponselection == 3 || weaponselection == 2 && weapon3type == "none")
{
weapon3type = weaponboxscript.weapontype;
weapon3prefix1 = weaponboxscript.prefix1choice;
weapon3prefix2 = weaponboxscript.prefix2choice;
weaponselection = 3;
WeaponNames();
UpdateAmmoAndShootSpeed();
weapon3owned = true;
WeaponSwapFunction();
GetAndSetMaxAmmo();
}
}
public void GetAndSetMaxAmmo()
{
if (currentweapontype == "Pistol") currentweaponammo = maxpistolammo;
else if (currentweapontype == "Assault Rifle") currentweaponammo = maxassaultrifleammo;
else if (currentweapontype == "Shotgun") currentweaponammo = maxshotgunammo;
else if (currentweapontype == "Sniper") currentweaponammo = maxsniperammo;
else if (currentweapontype == "LMG") currentweaponammo = maxlmgammo;
else if (currentweapontype == "SMG") currentweaponammo = maxsmgammo;
else if (currentweapontype == "Rocket Launcher") currentweaponammo = maxrocketlauncherammo;
if (weaponselection == 2)
{
if (currentweapontype == "Pistol") weapon2ammo = maxpistolammo;
else if (currentweapontype == "Assault Rifle") weapon2ammo = maxassaultrifleammo;
else if (currentweapontype == "Shotgun") weapon2ammo = maxshotgunammo;
else if (currentweapontype == "Sniper") weapon2ammo = maxsniperammo;
else if (currentweapontype == "LMG") weapon2ammo = maxlmgammo;
else if (currentweapontype == "SMG") weapon2ammo = maxsmgammo;
else if (currentweapontype == "Rocket Launcher") weapon2ammo = maxrocketlauncherammo;
}
else if (weaponselection == 3)
{
if (currentweapontype == "Pistol") weapon3ammo = maxpistolammo;
else if (currentweapontype == "Assault Rifle") weapon3ammo = maxassaultrifleammo;
else if (currentweapontype == "Shotgun") weapon3ammo = maxshotgunammo;
else if (currentweapontype == "Sniper") weapon3ammo = maxsniperammo;
else if (currentweapontype == "LMG") weapon3ammo = maxlmgammo;
else if (currentweapontype == "SMG") weapon3ammo = maxsmgammo;
else if (currentweapontype == "Rocket Launcher") weapon3ammo = maxrocketlauncherammo;
}
}
public void GetRefs()
{
weaponboxscript = GameObject.FindGameObjectWithTag("items/weaponbox").GetComponent<weaponbox>();
if (player.player == 1)
{
currentweapon = GameObject.FindGameObjectWithTag("ui/currentweapon/currentweapon1").GetComponent<Text>();
weapon = GameObject.FindGameObjectWithTag("ui/weapon/weapon1").GetComponent<Image>();
}
else if (player.player == 2)
{
currentweapon = GameObject.FindGameObjectWithTag("ui/currentweapon/currentweapon2").GetComponent<Text>();
weapon = GameObject.FindGameObjectWithTag("ui/weapon/weapon2").GetComponent<Image>();
}
else if (player.player == 3)
{
currentweapon = GameObject.FindGameObjectWithTag("ui/currentweapon/currentweapon3").GetComponent<Text>();
weapon = GameObject.FindGameObjectWithTag("ui/weapon/weapon3").GetComponent<Image>();
}
else if (player.player == 4)
{
currentweapon = GameObject.FindGameObjectWithTag("ui/currentweapon/currentweapon4").GetComponent<Text>();
weapon = GameObject.FindGameObjectWithTag("ui/weapon/weapon4").GetComponent<Image>();
}
currentweapon.text = currentweaponname;
}
public void RotateToLookDirection()
{
if (keyboard == true)
{
lookDirection = Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position;
lookAngle = Mathf.Atan2(lookDirection.y, lookDirection.x) * Mathf.Rad2Deg;
transform.rotation = Quaternion.Euler(0f, 0f, lookAngle - 90f);
}
if (keyboard == false)
{
Vector3 difference = target.position - transform.position;
float rotationZ = Mathf.Atan2(difference.y, difference.x) * Mathf.Rad2Deg;
transform.rotation = Quaternion.Euler(0.0f, 0.0f, rotationZ);
}
}
public void AttackCheck()
{
float attack = Input.GetAxis(shoot);
if (Input.GetButtonDown(shoot))
{
if (currentweapontype == "Pistol" || currentweapontype == "Shotgun" || currentweapontype == "Sniper")
{
if (canShootCurrentWeapon == true)
{
if (weaponselection == 1)
{
weapon1ammo -= 1;
currentweaponammo = weapon1ammo;
canShootCurrentWeapon = false;
}
else if (weaponselection == 2)
{
weapon2ammo -= 1;
currentweaponammo = weapon2ammo;
canShootCurrentWeapon = false;
}
else if (weaponselection == 3)
{
weapon3ammo -= 1;
currentweaponammo = weapon3ammo;
canShootCurrentWeapon = false;
}
FireBullet();
UpdateAmmoAndShootSpeed();
StartCoroutine("shootwait");
}
}
if (currentweapontype == "Rocket Launcher")
{
if (weaponselection == 2 && canShootWeapon2 == true || weaponselection == 3 && canShootWeapon3 == true)
{
if (weaponselection == 2)
{
weapon2ammo -= 1;
currentweaponammo = weapon2ammo;
canShootWeapon2 = false;
canShootCurrentWeapon = false;
}
if (weaponselection == 3)
{
weapon3ammo -= 1;
currentweaponammo = weapon3ammo;
canShootWeapon3 = false;
canShootCurrentWeapon = false;
}
FireBullet();
UpdateAmmoAndShootSpeed();
StartCoroutine("shootwait");
}
}
else { }
}
if (Input.GetButton(shoot))
{
if (currentweapontype == "LMG" || currentweapontype == "SMG" || currentweapontype == "Assault Rifle")
{
if (canShootCurrentWeapon == true)
{
if (weaponselection == 1)
{
weapon1ammo -= 1;
canShootCurrentWeapon = false;
}
else if (weaponselection == 2)
{
weapon2ammo -= 1;
canShootCurrentWeapon = false;
}
else if (weaponselection == 3)
{
weapon3ammo -= 1;
canShootCurrentWeapon = false;
}
FireBullet();
currentweaponammo -= 1;
UpdateAmmoAndShootSpeed();
StartCoroutine("shootwait");
}
}
else { }
}
}
public void OnLevelWasLoaded(int level)
{
StartCoroutine("waitthenupdateammo");
if (player.player == 1) weapon = GameObject.FindGameObjectWithTag("ui/weapon/weapon1").GetComponent<Image>();
if (player.player == 2) weapon = GameObject.FindGameObjectWithTag("ui/weapon/weapon2").GetComponent<Image>();
if (player.player == 3) weapon = GameObject.FindGameObjectWithTag("ui/weapon/weapon3").GetComponent<Image>();
if (player.player == 4) weapon = GameObject.FindGameObjectWithTag("ui/weapon/weapon4").GetComponent<Image>();
GetRefs();
GetRefsBarrel();
WeaponSwapFunction();
WeaponNames();
WeaponSprites();
UpdateAmmoAndShootSpeed();
}
IEnumerator waitthenupdateammo()
{
yield return new WaitForSeconds(0.1f);
UpdateAmmoAndShootSpeed();
}
public void UpdateAmmoAndShootSpeed()
{
if (weaponselection == 1)
{
if (currentweapontype == "Pistol")
{
shootspeed = 20;
maxweapon1ammo = maxpistolammo;
}
}
else if (weaponselection == 2)
{
if (currentweapontype == "Pistol")
{
shootspeed = 20;
maxcurrentweaponammo = maxpistolammo;
maxweapon2ammo = maxpistolammo;
}
if (currentweapontype == "Assault Rifle")
{
shootspeed = 20;
maxcurrentweaponammo = maxassaultrifleammo;
maxweapon2ammo = maxassaultrifleammo;
}
if (currentweapontype == "Shotgun")
{
shootspeed = 8;
maxcurrentweaponammo = maxshotgunammo;
maxweapon2ammo = maxshotgunammo;
}
if (currentweapontype == "Sniper")
{
shootspeed = 40;
maxcurrentweaponammo = maxsniperammo;
maxweapon2ammo = maxsniperammo;
}
if (currentweapontype == "LMG")
{
shootspeed = 15;
maxcurrentweaponammo = maxlmgammo;
maxweapon2ammo = maxlmgammo;
}
if (currentweapontype == "SMG")
{
shootspeed = 30;
maxcurrentweaponammo = maxsmgammo;
maxweapon2ammo = maxsmgammo;
}
if (currentweapontype == "Rocket Launcher")
{
shootspeed = 30;
maxcurrentweaponammo = maxrocketlauncherammo;
maxweapon2ammo = maxrocketlauncherammo;
}
}
else if (weaponselection == 3)
{
if (currentweapontype == "Pistol")
{
shootspeed = 20;
maxcurrentweaponammo = maxpistolammo;
maxweapon3ammo = maxpistolammo;
}
if (currentweapontype == "Assault Rifle")
{
shootspeed = 20;
maxcurrentweaponammo = maxassaultrifleammo;
maxweapon3ammo = maxassaultrifleammo;
}
if (currentweapontype == "Shotgun")
{
shootspeed = 8;
maxcurrentweaponammo = maxshotgunammo;
maxweapon3ammo = maxshotgunammo;
}
if (currentweapontype == "Sniper")
{
shootspeed = 40;
maxcurrentweaponammo = maxsniperammo;
maxweapon3ammo = maxsniperammo;
}
if (currentweapontype == "LMG")
{
shootspeed = 15;
maxcurrentweaponammo = maxlmgammo;
maxweapon3ammo = maxlmgammo;
}
if (currentweapontype == "SMG")
{
shootspeed = 30;
maxcurrentweaponammo = maxsmgammo;
maxweapon3ammo = maxsmgammo;
}
if (currentweapontype == "Rocket Launcher")
{
shootspeed = 30;
maxcurrentweaponammo = maxrocketlauncherammo;
maxweapon3ammo = maxrocketlauncherammo;
}
}
Scene currentScene = SceneManager.GetActiveScene();
string sceneName = currentScene.name;
if (sceneName != "charactercreation") ammo.text = currentweaponammo + "/" + currentweaponreserve;
}
public void GetPrefix()
{
currentPrefix1 = currentweaponprefix1;
currentPrefix2 = currentweaponprefix2;
}
public void GetReloadSpeed()
{
if (grippy == true)
{
pistolwait = defpistolwait * gripwait;
assaultriflewait = defassaultriflewait * gripwait;
shotgunwait = defshotgunwait * gripwait;
sniperwait = defsniperwait * gripwait;
lmgwait = deflmgwait * gripwait;
smgwait = defsmgwait * gripwait;
rocketlauncherwait = defrocketlauncherwait * gripwait;
}
if (sticky == true)
{
pistolwait = defpistolwait * stickywait;
assaultriflewait = defassaultriflewait * stickywait;
shotgunwait = defshotgunwait * stickywait;
sniperwait = defsniperwait * stickywait;
lmgwait = deflmgwait * stickywait;
rocketlauncherwait = defrocketlauncherwait * stickywait;
}
if (currentweapontype == "Pistol") currentweaponwait = pistolwait;
else if (currentweapontype == "Assault Rifle") currentweaponwait = assaultriflewait;
else if (currentweapontype == "Shotgun") currentweaponwait = shotgunwait;
else if (currentweapontype == "Sniper") currentweaponwait = sniperwait;
else if (currentweapontype == "LMG") currentweaponwait = lmgwait;
else if (currentweapontype == "SMG") currentweaponwait = smgwait;
else if (currentweapontype == "Rocket Launcher") currentweaponwait = rocketlauncherwait;
}
public void MaxAmmos()
{
if (weapon2type == "Pistol") maxweapon2ammo = maxpistolammo;
if (weapon2type == "Assault Rifle") maxweapon2ammo = maxassaultrifleammo;
if (weapon2type == "Shotgun") maxweapon2ammo = maxshotgunammo;
if (weapon2type == "Sniper") maxweapon2ammo = maxsniperammo;
if (weapon2type == "LMG") maxweapon2ammo = maxlmgammo;
if (weapon2type == "SMG") maxweapon2ammo = maxsmgammo;
if (weapon2type == "Rocket Launcher") maxweapon2ammo = maxrocketlauncherammo;
if (weapon3type == "Pistol") maxweapon3ammo = maxpistolammo;
if (weapon3type == "Assault Rifle") maxweapon3ammo = maxassaultrifleammo;
if (weapon3type == "Shotgun") maxweapon3ammo = maxshotgunammo;
if (weapon3type == "Sniper") maxweapon3ammo = maxshotgunammo;
if (weapon3type == "LMG") maxweapon3ammo = maxlmgammo;
if (weapon3type == "SMG") maxweapon3ammo = maxsmgammo;
if (weapon3type == "Rocket Launcher") maxweapon3ammo = maxrocketlauncherammo;
}
public void ResetPrefix()
{
piercing = false;
metal = false;
grippy = false;
bouncy = false;
crippling = false;
lightbool = false;
legendary = false;
paper = false;
sticky = false;
homemade = false;
warped = false;
broken = false;
taxing = false;
heavy = false;
}
public void Prefix1()
{
if (currentPrefix1 == "Piercing ") piercing = true;
else if (currentPrefix1 == "Metal ") metal = true;
else if (currentPrefix1 == "Grippy ") grippy = true;
else if (currentPrefix1 == "Bouncy ") bouncy = true;
else if (currentPrefix1 == "Crippling ") crippling = true;
else if (currentPrefix1 == "Light ") lightbool = true;
else if (currentPrefix1 == "LEGENDARY ") legendary = true;
else if (currentPrefix1 == "Paper ") paper = true;
else if (currentPrefix1 == "Sticky ") sticky = true;
else if (currentPrefix1 == "Homemade ") homemade = true;
else if (currentPrefix1 == "Warped ") warped = true;
else if (currentPrefix1 == "Broken ") broken = true;
else if (currentPrefix1 == "Taxing ") taxing = true;
else if (currentPrefix1 == "Heavy ") heavy = true;
}
public void Prefix2()
{
if (currentPrefix2 == "Piercing ") piercing = true;
else if (currentPrefix2 == "Metal ") metal = true;
else if (currentPrefix2 == "Grippy ") grippy = true;
else if (currentPrefix2 == "Bouncy ") bouncy = true;
else if (currentPrefix2 == "Crippling ") crippling = true;
else if (currentPrefix2 == "Light ") lightbool = true;
else if (currentPrefix2 == "LEGENDARY ") legendary = true;
else if (currentPrefix2 == "Paper ") paper = true;
else if (currentPrefix2 == "Sticky ") sticky = true;
else if (currentPrefix2 == "Homemade ") homemade = true;
else if (currentPrefix2 == "Warped ") warped = true;
else if (currentPrefix2 == "Broken ") broken = true;
else if (currentPrefix2 == "Taxing ") taxing = true;
else if (currentPrefix2 == "Heavy ") heavy = true;
}
public void CanShootWeapon()
{
if (canShootCurrentWeapon == true)
{
if (weaponselection == 1)
{
canShootWeapon1 = true;
canShootWeapon2 = false;
canShootWeapon3 = false;
}
else if (weaponselection == 2)
{
canShootWeapon2 = true;
canShootWeapon1 = false;
canShootWeapon3 = false;
}
else if (weaponselection == 3)
{
canShootWeapon3 = true;
canShootWeapon1 = false;
canShootWeapon2 = false;
}
}
else if (canShootCurrentWeapon == false)
{
canShootWeapon1 = false;
canShootWeapon2 = false;
canShootWeapon3 = false;
}
}
public void GetRefsBarrel()
{
Scene currentScene = SceneManager.GetActiveScene();
string sceneName = currentScene.name;
if (sceneName != "charactercreation")
{
if (player.player == 1)
{
ammo = GameObject.FindGameObjectWithTag("ui/ammo/ammo1").GetComponent<Text>();
}
else if (player.player == 2)
{
ammo = GameObject.FindGameObjectWithTag("ui/ammo/ammo2").GetComponent<Text>();
}
else if (player.player == 3)
{
ammo = GameObject.FindGameObjectWithTag("ui/ammo/ammo3").GetComponent<Text>();
}
else if (player.player == 4)
{
ammo = GameObject.FindGameObjectWithTag("ui/ammo/ammo4").GetComponent<Text>();
}
}
}
public IEnumerator reloadcheck()
{
if (weaponselection == 1) canShootWeapon1 = false;
else if (weaponselection == 2) canShootWeapon2 = false;
else if (weaponselection == 3) canShootWeapon3 = false;
if (currentweapontype == "Pistol")
{
currentweaponwait = pistolwait;
maxcurrentweaponammo = maxpistolammo;
}
else if (currentweapontype == "Assault Rifle")
{
currentweaponwait = assaultriflewait;
maxcurrentweaponammo = maxassaultrifleammo;
}
else if (currentweapontype == "Shotgun")
{
currentweaponwait = shotgunwait;
maxcurrentweaponammo = maxsniperammo;
}
else if (currentweapontype == "Sniper")
{
currentweaponwait = sniperwait;
maxcurrentweaponammo = maxsniperammo;
}
else if (currentweapontype == "LMG")
{
currentweaponwait = lmgwait;
maxcurrentweaponammo = maxlmgammo;
}
else if (currentweapontype == "SMG")
{
currentweaponwait = smgwait;
maxcurrentweaponammo = maxsmgammo;
}
else if (currentweapontype == "Rocket Launcher")
{
currentweaponwait = rocketlauncherwait;
maxcurrentweaponammo = maxrocketlauncherammo;
}
yield return new WaitForSeconds(currentweaponwait);
currentweaponammo = maxcurrentweaponammo;
UpdateAmmoAndShootSpeed();
CanShootThisWeapon();
GetAndSetMaxAmmo();
}
IEnumerator shootwait()
{
if (currentweapontype == "Pistol") currentweaponwait = pistolwait;
else if (currentweapontype == "Assault Rifle") currentweaponwait = assaultriflewait;
else if (currentweapontype == "Shotgun") currentweaponwait = shotgunwait;
else if (currentweapontype == "Sniper") currentweaponwait = sniperwait;
else if (currentweapontype == "LMG") currentweaponwait = lmgwait;
else if (currentweapontype == "SMG") currentweaponwait = smgwait;
if (currentweaponammo >= 1 && currentweapontype != "Rocket Launcher")
{
yield return new WaitForSeconds(currentweaponwait);
CanShootThisWeapon();
}
else if (currentweapontype == "Rocket Launcher")
{
StartCoroutine("reloadcheck");
}
}
public void CallWeaponSwapFunctions()
{
player.PrefixStuff();
WeaponNames();
GetReloadSpeed();
MaxAmmos();
ResetPrefix();
GetPrefix();
Prefix1();
Prefix2();
WeaponSprites();
UpdateAmmoAndShootSpeed();
}
private void FireBullet()
{
if (currentweapontype != "Rocket Launcher")
{
if (keyboard == true)
{
GameObject firedBullet = Instantiate(bullet, barrelTip.position, barrelTip.rotation);
firedBullet.GetComponent<Rigidbody2D>().velocity = barrelTip.up * shootspeed;
firedBullet.GetComponent<bullet>().playershot = player.player;
if (currentweapontype == "Shotgun")
{
GameObject firedBullet2 = Instantiate(bullet, barrelTip2.position, barrelTip2.rotation);
firedBullet2.GetComponent<Rigidbody2D>().velocity = barrelTip2.up * shootspeed;
firedBullet2.GetComponent<bullet>().playershot = player.player;
GameObject firedBullet3 = Instantiate(bullet, barrelTip3.position, barrelTip3.rotation);
firedBullet3.GetComponent<Rigidbody2D>().velocity = barrelTip3.up * shootspeed;
firedBullet3.GetComponent<bullet>().playershot = player.player;
}
}
else if (keyboard == false)
{
GameObject firedBullet = Instantiate(bullet, barrelTip.position, barrelTip.rotation);
firedBullet.GetComponent<Rigidbody2D>().velocity = barrelTip.right * shootspeed;
firedBullet.GetComponent<bullet>().playershot = player.player;
if (currentweapontype == "Shotgun")
{
GameObject firedBullet2 = Instantiate(bullet, barrelTip2.position, barrelTip2.rotation);
firedBullet2.GetComponent<Rigidbody2D>().velocity = barrelTip2.right * shootspeed;
firedBullet2.GetComponent<bullet>().playershot = player.player;
GameObject firedBullet3 = Instantiate(bullet, barrelTip3.position, barrelTip3.rotation);
firedBullet3.GetComponent<Rigidbody2D>().velocity = barrelTip3.right * shootspeed;
firedBullet3.GetComponent<bullet>().playershot = player.player;
}
}
}
if (currentweapontype == "Rocket Launcher")
{
if (keyboard == true)
{
GameObject firedRocket = Instantiate(rocket, barrelTip.position, barrelTip.rotation);
firedRocket.GetComponent<Rigidbody2D>().velocity = barrelTip.up * shootspeed;
firedRocket.GetComponent<bullet>().playershot = player.player;
}
else if (keyboard == false)
{
GameObject firedRocket = Instantiate(rocket, barrelTip.position, barrelTip.rotation);
firedRocket.GetComponent<Rigidbody2D>().velocity = barrelTip.right * shootspeed;
firedRocket.GetComponent<bullet>().playershot = player.player;
}
}
}
}
Any help is greatly appreciated!
Comment