public void DealPercentDamage(int spellcasterID, float percentDamage, string evntName) { var evnt = DealPercentDmgEvent.Create(Bolt.GlobalTargets.Everyone); evnt.SpellcasterID = spellcasterID; evnt.PercentDmgDecimal = percentDamage; evnt.EventName = evntName; evnt.Send(); }
// Deals a percent amount of damage to a target spellcaster, and display a pop-up message. // Also tries to update the healthvalue UI-component in the mainplayerscene. public override void OnEvent(DealPercentDmgEvent evnt) { playerSpellcaster = playerEntity.GetComponent <Player>().spellcaster; if (playerSpellcaster.spellcasterID == evnt.SpellcasterID) { PanelHolder.instance.displayNotify(evnt.EventName, "Lose " + ((int)(evnt.PercentDmgDecimal * 100)) + "% health", "OK"); playerSpellcaster.TakeDamage((int)(playerSpellcaster.fCurrentHealth * evnt.PercentDmgDecimal)); SpellCaster.savePlayerData(playerSpellcaster); try { GameObject health = GameObject.Find("text_healthvalue"); if (health != null) { health.GetComponent <Text>().text = playerSpellcaster.fCurrentHealth + " / 20"; } } catch { // Not in home page } } }