private static void OnPlayerDamage(IPlayer player, PlayerDamageArgs args) { if (player == null) { return; } IPlayer attacker = null; if (args.DamageType == PlayerDamageEventType.Melee) { attacker = Game.GetPlayer(args.SourceID); } if (args.DamageType == PlayerDamageEventType.Projectile) { var projectile = Game.GetProjectile(args.SourceID); attacker = Game.GetPlayer(projectile.OwnerPlayerID); } var bot = GetBot(player); if (bot != Bot.None) { bot.OnDamage(attacker, args); } }
public override void OnDamage(IPlayer attacker, PlayerDamageArgs args) { base.OnDamage(attacker, args); if (m_controller != null) { m_controller.OnDamage(attacker, args); } }
public void OnPlayerDamage(IPlayer player, PlayerDamageArgs args) { if (args.DamageType == PlayerDamageEventType.Melee && args.SourceID != 0) { IPlayer hitBy = Game.GetPlayer(args.SourceID); Game.WriteToConsole(string.Format("Player {0} took {1} melee damage from player {2}", player.UniqueID, args.Damage, hitBy.UniqueID)); } else { Game.WriteToConsole(string.Format("Player {0} took {1} {2} damage", player.UniqueID, args.Damage, args.DamageType)); } }
public override void OnDamage(IPlayer attacker, PlayerDamageArgs args) { base.OnDamage(attacker, args); var mod = Player.GetModifiers(); var currentHealth = mod.CurrentHealth; var maxHealth = mod.MaxHealth; if (currentHealth / maxHealth <= 0.25f) { Game.PlayEffect(EffectName.Electric, Position); Game.PlaySound("ElectricSparks", Position); } }
public override void OnDamage(IPlayer attacker, PlayerDamageArgs args) { base.OnDamage(attacker, args); if (IsBuilding) { m_damageTakenWhileBuilding += args.Damage; if (m_damageTakenWhileBuilding >= 20) { StopBuilding(); m_damageTakenWhileBuilding = 0; } } }
private void UpdateInfectedStatus(IPlayer attacker, PlayerDamageArgs args) { if (CanBeInfected && attacker != null) { var directContact = args.DamageType == PlayerDamageEventType.Melee && attacker.CurrentWeaponDrawn == WeaponItemType.NONE && !attacker.IsKicking && !attacker.IsJumpKicking; var attackerBot = BotManager.GetBot(attacker); if (attackerBot.CanInfect && directContact) { Infect(attackerBot.InfectTeam); Game.ShowChatMessage(attacker.Name + " infected " + Player.Name); } } }
public override void OnPlayerDamage(Entity player, Entity inflictor, Entity attacker, int damage, int dFlags, string mod, string weapon, Vector3 point, Vector3 dir, string hitLoc) { int baseDamage = damage; PlayerDamageArgs data = new PlayerDamageArgs(player, inflictor, attacker, damage, dFlags, mod, weapon, point, dir, hitLoc); Script.PlayerDamage.Run(attacker, data); data.Update(out damage); if (damage > player.Health + baseDamage && damage > baseDamage) { AfterDelay(1, () => player.FinishPlayerDamage(inflictor, attacker, damage, dFlags, mod, weapon, point, dir, hitLoc, 0f)); } else { player.Health += baseDamage - damage; } }
private void UpdateInfectedStatus(IPlayer player, IPlayer attacker, PlayerDamageArgs args) { if (player == null) { return; } if (!CanInfectFrom(player) && !player.IsBurnedCorpse && attacker != null) { var attackerPunching = args.DamageType == PlayerDamageEventType.Melee && attacker.CurrentWeaponDrawn == WeaponItemType.NONE && !attacker.IsKicking && !attacker.IsJumpKicking; if (CanInfectFrom(attacker) && attackerPunching) { Infect(player); } } }
private void OnPlayerDamage(IPlayer player, PlayerDamageArgs args) { if (args.DamageType == PlayerDamageEventType.Projectile) { if (m_customBullets.ContainsKey(args.SourceID)) { if (rnd.Next(0, 100) < 15 && !CanInfectFrom(player) && !player.IsBurnedCorpse) { Infect(player); } } } if (args.DamageType == PlayerDamageEventType.Melee) { var attacker = Game.GetPlayer(args.SourceID); UpdateInfectedStatus(player, attacker, args); } }
public virtual void OnDamage(IPlayer attacker, PlayerDamageArgs args) { UpdateInfectedStatus(attacker, args); }
public override void OnDamage(IPlayer attacker, PlayerDamageArgs args) { base.OnDamage(attacker, args); m_offender = attacker; }
public virtual void OnDamage(IPlayer attacker, PlayerDamageArgs args) { }