//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; } // }