using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; [CreateAssetMenu(menuName = "Classes/Rogue")] public class RogueClass:ClassBaseType { //Variables [SerializeField]private float rocketBootsSpeed; [SerializeField]private float refillSpeed; //One of this should be upgradable [SerializeField]private float drainSpeed; //One of this should be upgradable private IMovable movable; public float fuel; public float maxFuel; //Upgradable Rigidbody rb; SoundsManager soundsManager; AudioSource audioSource; [SerializeField] private string controlKey; public override void Starter(GameObject source) { //base.Starter(source); dead = false; currentHp = hp; rb = source.GetComponent<Rigidbody>(); movable = source.GetComponent<IMovable>(); GameObject t = GameObject.Find("AudioManager"); if(t) soundsManager = t.GetComponent<SoundsManager>(); audioSource = source.GetComponent<AudioSource>(); } public override void Cooldown() { if (fuel < 100) { if (movable.OnGround()) { fuel += refillSpeed * Time.deltaTime; fuel = Mathf.Clamp(fuel, 0f, maxFuel); } } else fuel = 100; } public override void Ability(StatusEffects se) { if (Input.GetButton(controlKey)) { if (fuel > 0) { fuel -= drainSpeed * Time.deltaTime; fuel = Mathf.Clamp(fuel, 0f, Mathf.Infinity); if (soundsManager) { if(!soundsManager.IsPlaying(audioSource)) soundsManager.PlaySoundEffect("Rocket Boots", audioSource); } rb.velocity = new Vector3(0, rocketBootsSpeed, 0); } else { if(soundsManager) soundsManager.StopCurrentSound(audioSource); } } } }