//WEAPON OVERHEAT
    public void WeaponOverheated()                                              //TODO: whole system overheat (apply to all cards in inventory)
    {
        userInfo.heat          = -100;
        userInfo.overheatState = 1;
        coolingProcessAwait    = 1;                                                     //Trigger for ConsoleState-Cooling
        shipstateAnim.SetTrigger("Overheat");
        shipstateAnim.SetBool("isCooling", true);
        SystemAudioDB systemaudiodb = GameObject.Find("GameMaster").GetComponent <SystemAudioDB>();                                     //non-static void => get component required

        systemaudiodb.playSFX(sysAudioSource, "overheat1");
    }
    // Update is called once per frame
    void Update()
    {
        //PLAYER POSITION
        playerPositionX = transform.position.x;
        playerPositionY = transform.position.y;

        //BASIC MOVEMENT

        /*
         *      Vector2 mousePos = thecamera.ScreenToWorldPoint(Input.mousePosition);
         * gameObject.transform.position = Vector2.Lerp(gameObject.transform.position, mousePos, 50 * Time.deltaTime); */

        //PROJECTILE FIRING (HOLDING)
        if (firingState == 1)
        {
            if (userInfo.inventory[userInfo.currentCard].delay <= 0 && userInfo.overheatState == 0 && (userInfo.weakShot == 0 || (userInfo.weakShot == 1 && userInfo.heat >= userInfo.inventory[userInfo.currentCard].heatDes)))
            {
                WeaponDB weaponDB = GameObject.Find("GameMaster").GetComponent <WeaponDB>();                                    //get components from the "WeaponDB" script in the GameObject "GameMaster"
                weaponDB.useCard(ref userInfo, userInfo.currentCard, gameObject);
                //WEAPON OVERHEAT TRIGGER
                if (userInfo.heat < 0)
                {
                    //WeaponOverheated ();			TEMPORARY REMOVED
                    userInfo.heat = 0;
                }
            }
        }

        //IN OVERHEAT STATE
        else if (userInfo.overheatState == 1)
        {
            if (userInfo.heat >= userInfo.heatMax)                              //Get out of overheat state when Heat reaches Max
            {
                userInfo.overheatState = 0;
            }
        }

        // CONSOLE SHIP STATE (ANIMATOR)
        if (Mathf.RoundToInt(userInfo.heat) >= 0 && userInfo.heat < userInfo.heatMax && userInfo.overheatState == 1 && coolingProcessAwait == 1)                        //Heat reaches 0 => Initialize cooling process
        {
            shipstateAnim.SetBool("startCooling", true);
            SystemAudioDB systemaudiodb = GameObject.Find("GameMaster").GetComponent <SystemAudioDB>();                                         //non-static void => get component required
            systemaudiodb.playSFX(sysAudioSource, "overheat2");
            coolingProcessAwait = 0;
        }
        if (userInfo.heat >= userInfo.heatMax)
        {
            shipstateAnim.SetBool("startCooling", false);
            shipstateAnim.SetBool("isCooling", false);
        }
        //

        //UPDATE PER FRAMES: WEAPON DELAY DECREASES (Can only shoot when Delay reaches 0)
        userInfo.inventory[userInfo.currentCard].delay -= Time.deltaTime * 60;
        if (userInfo.inventory[userInfo.currentCard].delay < 0)
        {
            userInfo.inventory[userInfo.currentCard].delay = 0;
        }
        //

        //UPDATE PER FRAMES: WEAPON COOLDOWN (OVERHEAT SYSTEM)
        if (firingState == 0 || userInfo.weakShot == 1)
        {
            userInfo.heat += 15 * Time.deltaTime;
        }
        if (userInfo.heat > userInfo.heatMax)
        {
            userInfo.heat = userInfo.heatMax;
        }
        //

        //UPDATE PER FRAMES: WEAKSHOT checked
        if (userInfo.heat > userInfo.inventory[userInfo.currentCard].heatDes + 1)
        {
            userInfo.weakShot = 0;
        }
        else if (userInfo.heat <= 0)
        {
            userInfo.weakShot = 1;
        }
        //
    }