public static void InvokePlayerDamaged(PlayerDamagedEventArgs args) { if (PlayerDamaged != null) { PlayerDamaged(args); } }
private void UpdateHealth(object sender, PlayerDamagedEventArgs args) { if (healthBar == null) { return; } healthBar.GetComponent <RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, maxSize * args.Health / maxHealth); }
public void UpdatePlayerScoreFromPlayerDamage(object sender, PlayerDamagedEventArgs e) { if (ReferenceEquals(e.DamagedPlayer, ParentHUD.Player)) { if (e.Damager is AbstractEnemy) { playerScore = clamp(playerScore - 250); } } else if (e.DamagedPlayer != null) { playerScore += 850; } }
/// <summary> /// Grants EoC for: /// <para>getting damaged by a player or NPC</para> /// <para>getting knocked out</para> /// <para>knocking out another player</para> /// <para> </para> /// <para>Also starts the <code>HitsTable</code> to trigger <5% HP EoC generation</para> /// </summary> private static void OnDamaged(PlayerDamagedEventArgs args) { Mobile aggr = args.Aggressor; Player p = args.Player; if (aggr != null) { if (p.Guild != null && !p.Guild.Disbanded && p.Guild == aggr.Guild) { return; } if (p.Party != null && p.Party == aggr.Party) { return; } p.EssenceOfCharacter += Math.Max(1, (args.DamageAmount / 10)); if (args.WillKill) { if (aggr is Player) { int change = (int)(p.SkillsTotal / aggr.SkillsTotal) * 10; ((Player)aggr).EssenceOfCharacter += change; p.EssenceOfCharacter += change; } else { int count = 0; for (int i = 0; i < p.Aggressed.Count; i++) { if (AttackMessage.CheckAggressions(p, p.Aggressed[i].Defender)) { count++; } } for (int i = 0; i < p.Aggressors.Count; i++) { if (AttackMessage.CheckAggressions(p, p.Aggressors[i].Attacker)) { count++; } } p.EssenceOfCharacter += Math.Max(50, (50 * count)); } } } if (p.Hits < (int)(p.HitsMax * 0.05)) { if (!HitsTable.ContainsKey(p)) { HitsTable[p] = new HitsTimer(p); HitsTable[p].Start(); } else if (!HitsTable[p].Running) { HitsTable[p].Start(); } } else if (HitsTable.ContainsKey(p)) { HitsTable[p].Stop(); HitsTable.Remove(p); } }
public static void InvokePlayerDamaged( PlayerDamagedEventArgs args ) { if( PlayerDamaged != null ) PlayerDamaged(args); }
public void OnPlayerDamaged(PlayerDamagedEventArgs args) { PlayerDamaged?.Invoke(this, args); }
public static bool PlayerDamaged(Player player, ref uint amount, ref Vector3 ragdoll, ref EDeathCause deathCause, ref ELimb limb, CSteamID killer, object attacker, bool fromUFM) { TemplateObject attackerTag = null; if (killer != null && killer != CSteamID.Nil && killer != Provider.server) { SteamPlayer steamkiller = PlayerTool.getSteamPlayer(killer); if (steamkiller != null) { attackerTag = new PlayerTag(steamkiller); } } else if (attacker != null) { if (attacker is Animal) { attackerTag = new AnimalTag((Animal)attacker); } else if (attacker is Zombie) { attackerTag = new ZombieTag((Zombie)attacker); } } PlayerTag playerTag = new PlayerTag(player.channel.owner); UFMHealthController healthController = player.gameObject.GetComponent <UFMHealthController>(); uint health = healthController != null ? healthController.health : player.life.health; if (amount >= health) { PlayerDeathEventArgs deathevt = new PlayerDeathEventArgs(); deathevt.Player = playerTag; deathevt.Amount = new NumberTag(amount); deathevt.Cause = new TextTag(deathCause.ToString()); deathevt.Limb = new TextTag(limb.ToString()); deathevt.Killer = attackerTag; UnturnedFreneticEvents.OnPlayerDeath.Fire(deathevt); amount = (uint)deathevt.Amount.Internal; if (!deathevt.Cancelled && !EntityDeath(playerTag, ref amount) && healthController != null) { healthController.Damage(amount); player.life.ragdoll = ragdoll; amount = (uint)(((double)amount / healthController.maxHealth) * 100.0); return(false); } return(deathevt.Cancelled); } PlayerDamagedEventArgs evt = new PlayerDamagedEventArgs(); evt.Player = playerTag; evt.Amount = new NumberTag(amount); evt.Attacker = attackerTag; UnturnedFreneticEvents.OnPlayerDamaged.Fire(evt); amount = (uint)evt.Amount.Internal; if (!evt.Cancelled && !EntityDamaged(playerTag, ref amount) && healthController != null) { healthController.Damage(amount); player.life.ragdoll = ragdoll; amount = (uint)(((double)amount / healthController.maxHealth) * 100.0); return(false); } return(evt.Cancelled); }