using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using Saltosion.OneWeapon.Player;

namespace Saltosion.OneWeapon.GUI {
    public class HUDController : MonoBehaviour {

        public PlayerFun PlayerFun;
        public RawImage FunMeter;

        public Text DamageTextGore;
        public Text DamageTextFun;

        public Text FunTextGore;
        public Text FunTextFun;

        private string[] GoreTexts = new string[] { "I'm gonna die of boredom!", "Ultra lame!", "Oof, boring!", "That's cool!", "Holy fuck!", "Bloody awesome!" };
        private string[] FunTexts = new string[] { "I'm gonna fall asleep!", "You should try doing something!", "There aren't enough flowers", "Now that's pretty!", "You're doing great!", "Faboulous!" };

        void Start() {

        }

        void Update() {
            float FunPercent = (PlayerFun.CurrentFun / PlayerFun.MaxFun);
            Vector3 Scale = FunMeter.transform.localScale;

            Scale.x = FunPercent;
            FunMeter.transform.localScale = Scale;
            Rect UVRect = FunMeter.uvRect;
            UVRect.width = FunPercent;
            FunMeter.uvRect = UVRect;

            float FunLevel = Mathf.Floor(FunPercent * 6) / 6;

            Color Color = FunMeter.color;
            Color.g = FunLevel;
            Color.r = 1 - FunLevel;
            FunMeter.color = Color;

            int FunPercentNumber = (int)Mathf.Round(PlayerFun.CurrentDamageBoost * 100);
            string Text = "+" + FunPercentNumber + "%";
            DamageTextGore.text = Text;
            DamageTextFun.text = Text;

            Color GoreColor = DamageTextGore.color;
            GoreColor.g = 1 - PlayerFun.CurrentDamageBoost;
            GoreColor.b = 1 - PlayerFun.CurrentDamageBoost;
            DamageTextGore.color = GoreColor;
            FunTextGore.color = GoreColor;

            Color FunColor = DamageTextFun.color;
            FunColor.b = 1 - PlayerFun.CurrentDamageBoost;
            DamageTextFun.color = FunColor;
            FunTextFun.color = FunColor;

            int FunLevelInt = (int)Mathf.Clamp(Mathf.Floor(FunPercent * 6), 0, 5);
            FunTextGore.text = GoreTexts[FunLevelInt];
            FunTextFun.text = FunTexts[FunLevelInt];

        }
    }
}
