Exemple #1
0
 void RpcAddResource(Defs.ResourceTypes target, float max)
 {
     if (isLocalPlayer)
     {
         UI_HUD.i.AddResource(target, max);
     }
 }
Exemple #2
0
 void RpcUpdateResource(Defs.ResourceTypes target, Transfer vals)
 {
     if (isLocalPlayer)
     {
         UI_HUD.i.UpdateResource(target, vals);
     }
 }
Exemple #3
0
    public void Refresh(Defs.ResourceTypes targetResource, Transfer pack)
    {
        for (int count = 0; count < elements.Count; count++)
        {
            if (elements[count].resource == targetResource)
            {
                elements[count].fill.fillAmount = pack.PCT;

                if (elements[count].reductionAnimation)
                {
                    if (elements[count].lastReportedVal > pack.PCT)
                    {
                        elements[count].sinceLastLoss = 1.2f;
                    }
                    else
                    {
                        elements[count].sinceLastLoss = 0;
                    }
                }

                elements[count].lastReportedVal = pack.PCT;
                break;
            }
        }
    }
Exemple #4
0
    public void UpdateResource(Defs.ResourceTypes target, Transfer vals)
    {
        for (int count = 0; count < elements.Count; count++)
        {
            if (elements[count].resource == target)
            {
                if (elements[count].lastTransfer.PCT > vals.PCT)
                {
                    elements[count].timeout = 1.25f;
                    if (target == Defs.ResourceTypes.Health)
                    {
                        BorderFlash();
                    }
                }

                elements[count].fill.fillAmount = vals.PCT;
                elements[count].lastTransfer    = vals;
                break;
            }
        }
    }
Exemple #5
0
    public Resource GetResourceDefinition(Defs.ResourceTypes type)
    {
        switch (type)
        {
        case Defs.ResourceTypes.Health:
            return(Health);

        case Defs.ResourceTypes.Stamina:
            return(Stamina);

        case Defs.ResourceTypes.Mana:
            return(Mana);

        case Defs.ResourceTypes.Bloodlust:
            return(Bloodlust);

        case Defs.ResourceTypes.Sunlight:
            return(Sunlight);

        case Defs.ResourceTypes.Moonlight:
            return(Moonlight);

        case Defs.ResourceTypes.Curse:
            return(Curse);

        case Defs.ResourceTypes.Corruption:
            return(Corruption);

        case Defs.ResourceTypes.Darkness:
            return(Darkness);

        default:
            Debug.LogError("OUT OF RANGE!");
            return(null);
        }
    }
Exemple #6
0
 void RpcUpdateHUD(Defs.ResourceTypes target, Transfer pack)
 {
     hud.Refresh(target, pack);
 }
Exemple #7
0
    public void ChangeResource(Source source, Defs.ResourceTypes target, float amount, bool skipPopups)
    {
        if (amount != 0)
        {
            bool isNegative = false;
            if (amount < 0)
            {
                sinceLoss = 0;
                hud.FadeMode(false);
                isNegative = true;
            }

            switch (target)
            {
            case Defs.ResourceTypes.Health:
                //PRE PROCESSING
                bool negate = false;
                switch (source.type)
                {
                case Source.Type.Weapon:

                    #region PARRY
                    if (source.weapon.WeaponType == Defs.WeaponType.Melee)
                    {
                        if (states != null)
                        {
                            if (states.HasState(stateParry))
                            {
                                if (isNegative)
                                {
                                    negate = true;
                                    RpcCreatePopupText("Parried!", Color.grey);
                                }
                            }
                        }
                    }
                    #endregion

                    break;

                case Source.Type.Item:
                    break;

                case Source.Type.State:
                    break;

                case Source.Type.Natural:
                    break;

                case Source.Type.System:
                    break;
                }

                if (negate)
                {
                    return;
                }

                //Apply Amount
                Health.Val = Mathf.Clamp(Health.Val + amount, 0, Health.Max);

                switch (mode)
                {
                case Defs.UnitType.Critter:
                    aggro = source.causer.transform;
                    break;

                case Defs.UnitType.Troop:
                    break;

                case Defs.UnitType.Player:
                    break;
                }

                //Bounty
                if (source.causer != this)
                {
                    if (isNegative)
                    {
                        //Damage
                        bool exists = false;
                        for (int count = 0; count < bounty.Count; count++)
                        {
                            if (bounty[count].causer == source.causer)
                            {
                                bounty[count].damage += Mathf.Abs(amount);
                                exists = true;
                                break;
                            }
                        }

                        if (!exists)
                        {
                            Bounty newBounty = new Bounty()
                            {
                                causer = source.causer,
                                damage = Mathf.Abs(amount),
                            };
                            bounty.Add(newBounty);
                        }
                    }
                }

                //Popups
                if (Health.Popups && !skipPopups)
                {
                    Color to = Health.Color;
                    if (isNegative)
                    {
                        to = Color.red;
                    }

                    if (Mathf.Abs(amount) < 5000)
                    {
                        RpcCreatePopup(Mathf.Abs(amount), Health.PCT(amount), to);
                    }
                    else
                    {
                        int    num  = Random.Range(0, 7);
                        string text = "Kek lmao, the programmer can't maths";
                        switch (num)
                        {
                        case 0:
                            text = "Tons of damage!";
                            break;

                        case 1:
                            text = "I am fed";
                            break;

                        case 2:
                            text = "Holy S*** run from me!";
                            break;

                        case 3:
                            text = "I am a balanced character";
                            break;

                        case 4:
                            text = "The definition of OP";
                            break;

                        case 5:
                            text = "My presence has been made clear";
                            break;

                        case 6:
                            text = "This is your queue to leave";
                            break;
                        }
                        RpcCreatePopupText(text, Color.red);
                    }
                }

                //HUD
                RpcUpdateHUD(Defs.ResourceTypes.Health, new Transfer(Health));

                //Effects
                if (isNegative)
                {
                    //Effects
                    RpcEffects(Health.PCT(Mathf.Abs(amount)));
                }

                //Player Specific
                if (mode == Defs.UnitType.Player)
                {
                    //Delay Regen
                    if (isNegative)
                    {
                        regenerationHealthDelay = 6;
                    }

                    //HUD
                    RpcUpdateResource(Defs.ResourceTypes.Health, new Transfer(Health));
                }

                if (Health.Val == 0)
                {
                    StartCoroutine(Die(source.causer));
                }
                break;

            case Defs.ResourceTypes.Stamina:
                //Apply Amount
                Stamina.Val = Mathf.Clamp(Stamina.Val + amount, 0, Stamina.Max);

                //Popups
                if (Stamina.Popups && !skipPopups)
                {
                    RpcCreatePopup(amount, Stamina.PCT(amount), Stamina.Color);
                }

                //HUD
                RpcUpdateHUD(Defs.ResourceTypes.Stamina, new Transfer(Stamina));

                //Player Specific
                if (mode == Defs.UnitType.Player)
                {
                    //HUD
                    RpcUpdateResource(Defs.ResourceTypes.Stamina, new Transfer(Stamina));
                }
                break;

            case Defs.ResourceTypes.Mana:
                //Apply Amount
                Mana.Val = Mathf.Clamp(Mana.Val + amount, 0, Mana.Max);

                //Popups
                if (Mana.Popups && !skipPopups)
                {
                    RpcCreatePopup(amount, Mana.PCT(amount), Mana.Color);
                }

                //HUD
                RpcUpdateHUD(Defs.ResourceTypes.Mana, new Transfer(Mana));

                //Player Specific
                if (mode == Defs.UnitType.Player)
                {
                    //HUD
                    RpcUpdateResource(Defs.ResourceTypes.Mana, new Transfer(Mana));
                }
                break;

            case Defs.ResourceTypes.Bloodlust:
                //Apply Amount
                Bloodlust.Val = Mathf.Clamp(Bloodlust.Val + amount, 0, Bloodlust.Max);

                //Popups
                if (Bloodlust.Popups && !skipPopups)
                {
                    RpcCreatePopup(amount, Bloodlust.PCT(amount), Bloodlust.Color);
                }

                //HUD
                RpcUpdateHUD(Defs.ResourceTypes.Bloodlust, new Transfer(Bloodlust));

                //Player Specific
                if (mode == Defs.UnitType.Player)
                {
                    //HUD
                    RpcUpdateResource(Defs.ResourceTypes.Bloodlust, new Transfer(Bloodlust));
                }
                break;

            case Defs.ResourceTypes.Sunlight:
                //Apply Amount
                Sunlight.Val = Mathf.Clamp(Sunlight.Val + amount, 0, Sunlight.Max);

                //Popups
                if (Sunlight.Popups && !skipPopups)
                {
                    RpcCreatePopup(amount, Sunlight.PCT(amount), Sunlight.Color);
                }

                //HUD
                RpcUpdateHUD(Defs.ResourceTypes.Sunlight, new Transfer(Sunlight));

                //Player Specific
                if (mode == Defs.UnitType.Player)
                {
                    //HUD
                    RpcUpdateResource(Defs.ResourceTypes.Sunlight, new Transfer(Sunlight));
                }
                break;

            case Defs.ResourceTypes.Moonlight:
                //Apply Amount
                Moonlight.Val = Mathf.Clamp(Moonlight.Val + amount, 0, Moonlight.Max);

                //Popups
                if (Moonlight.Popups && !skipPopups)
                {
                    RpcCreatePopup(amount, Moonlight.PCT(amount), Moonlight.Color);
                }

                //HUD
                RpcUpdateHUD(Defs.ResourceTypes.Moonlight, new Transfer(Moonlight));

                //Player Specific
                if (mode == Defs.UnitType.Player)
                {
                    //HUD
                    RpcUpdateResource(Defs.ResourceTypes.Moonlight, new Transfer(Moonlight));
                }
                break;

            case Defs.ResourceTypes.Curse:
                //Apply Amount
                Curse.Val = Mathf.Clamp(Curse.Val + amount, 0, Curse.Max);

                //Popups
                if (Curse.Popups && !skipPopups)
                {
                    RpcCreatePopup(amount, Curse.PCT(amount), Curse.Color);
                }

                //HUD
                RpcUpdateHUD(Defs.ResourceTypes.Curse, new Transfer(Curse));

                //Player Specific
                if (mode == Defs.UnitType.Player)
                {
                    //HUD
                    RpcUpdateResource(Defs.ResourceTypes.Curse, new Transfer(Curse));
                }
                break;

            case Defs.ResourceTypes.Corruption:
                //Apply Amount
                Corruption.Val = Mathf.Clamp(Corruption.Val + amount, 0, Corruption.Max);

                //Popups
                if (Corruption.Popups && !skipPopups)
                {
                    RpcCreatePopup(amount, Corruption.PCT(amount), Corruption.Color);
                }

                //HUD
                RpcUpdateHUD(Defs.ResourceTypes.Corruption, new Transfer(Corruption));

                //Player Specific
                if (mode == Defs.UnitType.Player)
                {
                    //HUD
                    RpcUpdateResource(Defs.ResourceTypes.Corruption, new Transfer(Corruption));
                }
                break;

            case Defs.ResourceTypes.Darkness:
                //Apply Amount
                Darkness.Val = Mathf.Clamp(Darkness.Val + amount, 0, Darkness.Max);

                //Popups
                if (Darkness.Popups && !skipPopups)
                {
                    RpcCreatePopup(amount, Darkness.PCT(amount), Darkness.Color);
                }

                //HUD
                RpcUpdateHUD(Defs.ResourceTypes.Darkness, new Transfer(Darkness));

                //Player Specific
                if (mode == Defs.UnitType.Player)
                {
                    //HUD
                    RpcUpdateResource(Defs.ResourceTypes.Darkness, new Transfer(Darkness));
                }
                break;
            }
        }
        else
        {
            //Debug.LogError("CHANGE RESOURCE: Passed a value of 0! :" + target.ToString());
        }
    }
Exemple #8
0
 public void CmdChangeResource(Source.Type type, Defs.ResourceTypes target, float amount, bool skipPopups)
 {
     ChangeResource(new Source(this, type), target, amount, skipPopups);
 }
Exemple #9
0
    public void AddResource(Defs.ResourceTypes target, float max)
    {
        GameObject       newSpawn   = Instantiate(elementObject, elementRoot, false);
        ContainedElement newElement = new ContainedElement
        {
            root          = newSpawn.transform,
            resource      = target,
            fill          = newSpawn.transform.GetChild(0).GetChild(0).GetComponent <Image>(),
            fillReduction = newSpawn.transform.GetChild(0).GetComponent <Image>(),
            text          = newSpawn.transform.GetChild(0).GetChild(0).GetChild(0).GetComponent <TextMeshProUGUI>(),
            lastTransfer  = new Transfer(max, max, 1),
            throwVal      = max,
            timeout       = 0,
        };

        Color color = Color.black;

        Defs.LayoutSize size = Defs.LayoutSize.Medium;
        switch (target)
        {
        case Defs.ResourceTypes.Health:
            color = Parameters.i.Health.Color;
            size  = Parameters.i.Health.pHBar;
            break;

        case Defs.ResourceTypes.Stamina:
            color = Parameters.i.Stamina.Color;
            size  = Parameters.i.Stamina.pHBar;
            break;

        case Defs.ResourceTypes.Mana:
            color = Parameters.i.Mana.Color;
            size  = Parameters.i.Mana.pHBar;
            break;

        case Defs.ResourceTypes.Bloodlust:
            color = Parameters.i.Bloodlust.Color;
            size  = Parameters.i.Bloodlust.pHBar;
            break;

        case Defs.ResourceTypes.Sunlight:
            color = Parameters.i.Sunlight.Color;
            size  = Parameters.i.Sunlight.pHBar;
            break;

        case Defs.ResourceTypes.Moonlight:
            color = Parameters.i.Moonlight.Color;
            size  = Parameters.i.Moonlight.pHBar;
            break;

        case Defs.ResourceTypes.Curse:
            color = Parameters.i.Curse.Color;
            size  = Parameters.i.Curse.pHBar;
            break;

        case Defs.ResourceTypes.Corruption:
            color = Parameters.i.Corruption.Color;
            size  = Parameters.i.Corruption.pHBar;
            break;

        case Defs.ResourceTypes.Darkness:
            color = Parameters.i.Darkness.Color;
            size  = Parameters.i.Darkness.pHBar;
            break;
        }
        newElement.fill.color = color;
        float height = 2;

        switch (size)
        {
        case Defs.LayoutSize.Large:
            height = 25;
            break;

        case Defs.LayoutSize.Medium:
            height = 18;
            break;

        case Defs.LayoutSize.Small:
            height          = 10;
            newElement.text = null;
            break;
        }
        newElement.root.GetComponent <LayoutElement>().minHeight = height;
        if (newElement.text != null)
        {
            newElement.text.text = max.ToString("F0") + "/<b>" + max.ToString("F0") + "</b>";
        }
        elements.Add(newElement);
    }
Exemple #10
0
    public Resource GetResource(Defs.ResourceTypes type, float max)
    {
        string name   = "NULL";
        Color  color  = Color.black;
        Sprite icon   = null;
        bool   popups = false;

        switch (type)
        {
        case Defs.ResourceTypes.Health:
            name   = Health.Name;
            color  = Health.Color;
            icon   = Health.Icon;
            popups = Health.Popups;
            break;

        case Defs.ResourceTypes.Stamina:
            name   = Stamina.Name;
            color  = Stamina.Color;
            icon   = Stamina.Icon;
            popups = Stamina.Popups;
            break;

        case Defs.ResourceTypes.Mana:
            name   = Mana.Name;
            color  = Mana.Color;
            icon   = Mana.Icon;
            popups = Mana.Popups;
            break;

        case Defs.ResourceTypes.Bloodlust:
            name   = Bloodlust.Name;
            color  = Bloodlust.Color;
            icon   = Bloodlust.Icon;
            popups = Bloodlust.Popups;
            break;

        case Defs.ResourceTypes.Sunlight:
            name   = Sunlight.Name;
            color  = Sunlight.Color;
            icon   = Sunlight.Icon;
            popups = Sunlight.Popups;
            break;

        case Defs.ResourceTypes.Moonlight:
            name   = Moonlight.Name;
            color  = Moonlight.Color;
            icon   = Moonlight.Icon;
            popups = Moonlight.Popups;
            break;

        case Defs.ResourceTypes.Curse:
            name   = Curse.Name;
            color  = Curse.Color;
            icon   = Curse.Icon;
            popups = Curse.Popups;
            break;

        case Defs.ResourceTypes.Corruption:
            name   = Corruption.Name;
            color  = Corruption.Color;
            icon   = Corruption.Icon;
            popups = Corruption.Popups;
            break;

        case Defs.ResourceTypes.Darkness:
            name   = Darkness.Name;
            color  = Darkness.Color;
            icon   = Darkness.Icon;
            popups = Darkness.Popups;
            break;
        }
        Resource resource = new Resource()
        {
            Name   = name,
            Color  = color,
            Icon   = icon,
            Popups = popups,
            Max    = max,
            Val    = max,
        };

        return(resource);
    }