void RpcAddResource(Defs.ResourceTypes target, float max) { if (isLocalPlayer) { UI_HUD.i.AddResource(target, max); } }
void RpcUpdateResource(Defs.ResourceTypes target, Transfer vals) { if (isLocalPlayer) { UI_HUD.i.UpdateResource(target, vals); } }
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; } } }
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; } } }
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); } }
void RpcUpdateHUD(Defs.ResourceTypes target, Transfer pack) { hud.Refresh(target, pack); }
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()); } }
public void CmdChangeResource(Source.Type type, Defs.ResourceTypes target, float amount, bool skipPopups) { ChangeResource(new Source(this, type), target, amount, skipPopups); }
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); }
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); }