Facebook
From asd, 8 Months ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 349
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using TMPro;
  4. using UnityEngine;
  5. using UnityEngine.Rendering;
  6. using UnityEngine.UI;
  7.  
  8. public class GSAbilities : MonoBehaviour
  9. {
  10.     [Header("Ability 1")]
  11.     public Image abilityImage1;
  12.     public TextMeshProUGUI abilityText1;
  13.     public float ability1Cooldown = 5;
  14.  
  15.     [Header("Ability 2")]
  16.     public Image abilityImage2;
  17.     public TextMeshProUGUI abilityText2;
  18.     public float ability2Cooldown = 7;
  19.  
  20.     [Header("Ability 3")]
  21.     public Image abilityImage3;
  22.     public TextMeshProUGUI abilityText3;
  23.     public float ability3Cooldown = 10;
  24.  
  25.     private bool isAbility1Cooldown = false;
  26.     private bool isAbility2Cooldown = false;
  27.     private bool isAbility3Cooldown = false;
  28.  
  29.     private float currentAbility1Cooldown;
  30.     private float currentAbility2Cooldown;
  31.     private float currentAbility3Cooldown;
  32.  
  33.     // Start is called before the first frame update
  34.     void Start()
  35.     {
  36.         abilityImage1.fillAmount = 0;
  37.         abilityImage2.fillAmount = 0;
  38.         abilityImage3.fillAmount = 0;
  39.  
  40.         abilityText1.text = "";
  41.         abilityText2.text = "";
  42.         abilityText3.text = "";
  43.     }
  44.  
  45.     // Update is called once per frame
  46.     void Update()
  47.     {
  48.         AbilityCooldown(ref currentAbility1Cooldown, ability1Cooldown, ref isAbility1Cooldown, abilityImage1, abilityText1);
  49.         AbilityCooldown(ref currentAbility2Cooldown, ability2Cooldown, ref isAbility2Cooldown, abilityImage2, abilityText2);
  50.         AbilityCooldown(ref currentAbility3Cooldown, ability3Cooldown, ref isAbility3Cooldown, abilityImage3, abilityText3);
  51.     }
  52.  
  53.     public void Ability1()
  54.     {
  55.         if(!isAbility1Cooldown)
  56.         {  
  57.             isAbility1Cooldown = true;
  58.             currentAbility1Cooldown = ability1Cooldown;
  59.         }
  60.     }
  61.  
  62.     public void Ability2()
  63.     {
  64.         if (!isAbility2Cooldown)
  65.         {
  66.             isAbility2Cooldown = true;
  67.             currentAbility2Cooldown = ability2Cooldown;
  68.         }
  69.     }
  70.  
  71.     public void Ability3()
  72.     {
  73.         if (!isAbility3Cooldown)
  74.         {
  75.             isAbility3Cooldown = true;
  76.             currentAbility3Cooldown = ability3Cooldown;
  77.         }
  78.     }
  79.  
  80.     private void AbilityCooldown(ref float currentCooldown, float maxCooldown, ref bool isCooldown, Image skillImage, TextMeshProUGUI skillText)
  81.     {
  82.         if (isCooldown)
  83.         {
  84.             currentCooldown -= Time.deltaTime;
  85.  
  86.             if(currentCooldown <= 0f)
  87.             {
  88.                 isCooldown = false;
  89.                 currentCooldown = 0f;
  90.  
  91.                 if(skillImage != null)
  92.                 {
  93.                     skillImage.fillAmount = 0f;
  94.                 }
  95.                 if(skillText != null)
  96.                 {
  97.                     skillText.text = "";
  98.                 }
  99.             }
  100.             else
  101.             {
  102.                 if(skillImage != null)
  103.                 {
  104.                     skillImage.fillAmount = currentCooldown / maxCooldown;
  105.                 }
  106.                 if(skillText != null)
  107.                 {
  108.                     skillText.text = Mathf.Ceil(currentCooldown).ToString();
  109.                 }
  110.             }
  111.         }
  112.     }
  113. }
  114.