public override void OnDeath(PlayerDeathArgs args) { base.OnDeath(args); var center = Position + Vector2.UnitY * 5; var hitbox = Player.GetAABB(); if (Game.IsEditorTest) { ScriptHelper.RunIn(() => Game.DrawCircle(center, InfectRadius, Color.Cyan), 3000); } foreach (var bot in BotManager.GetBots()) { if (ScriptHelper.IntersectCircle(bot.Player.GetAABB(), center, InfectRadius)) { bot.Infect(InfectTeam); Game.ShowChatMessage(bot.Player.Name + " is infected"); } } Game.TriggerExplosion(Position); for (var i = 0; i < 5; i++) { Game.CreateObject(RandomHelper.GetItem(Giblets), RandomHelper.WithinArea(hitbox), RandomHelper.Between(0, MathHelper.TwoPI)); Game.PlayEffect(EffectName.Gib, RandomHelper.WithinArea(hitbox)); } }
public override void OnPlayerData(TerrariaPacket e) { TDMArena arena = ActiveArena as TDMArena; PlayerTeamArgs playerTeam = e as PlayerTeamArgs; if (playerTeam != null) { if (RedTeam.Contains(e.Player)) { e.Player.SetTeam(1); } else if (BlueTeam.Contains(e.Player)) { e.Player.SetTeam(3); } } PlayerDeathArgs playerDeath = e as PlayerDeathArgs; if (playerDeath != null) { if (RedTeam.Contains(e.Player)) { _blueScore++; SendMessageToAllPlayers($"A member of Blue Team got a kill! {_scoreText}", Color.Turquoise); } else if (BlueTeam.Contains(e.Player)) { _redScore++; SendMessageToAllPlayers($"A member of Red Team got a kill! {_scoreText}", Color.OrangeRed); } } }
public virtual void OnDeath(PlayerDeathArgs args) { if (args.Killed) { SayDeathLine(); } }
private static void OnPlayerDeath(IPlayer player, PlayerDeathArgs args) { if (player == null) { return; } var bot = GetBot(player); if (bot == Bot.None) { return; } bot.OnDeath(args); if (args.Removed) { m_bots.Remove(bot.Player.UniqueID); } if (args.Killed) { AddInfectedCorpse(bot); } }
public override void OnDeath(PlayerDeathArgs args) { base.OnDeath(args); foreach (var bodyguard in m_bodyguards) { bodyguard.Player.SetGuardTarget(null); } }
public override void OnDeath(PlayerDeathArgs args) { base.OnDeath(args); if (m_bouncer != null) { m_bouncer.SetGuardTarget(null); m_occupiedBouncerIDs.Remove(m_bouncer.UniqueID); } }
public void OnPlayerDeath(IPlayer player, PlayerDeathArgs args) { if (player.GetHitEffect() == PlayerHitEffect.Metal && args.Removed) { var deathPosition = player.GetWorldPosition(); var effects = new List <Tuple <string, int> >() { Tuple.Create(EffectName.BulletHitMetal, 1), Tuple.Create(EffectName.Steam, 2), Tuple.Create(EffectName.Electric, 4), }; foreach (var effect in effects) { var effectName = effect.Item1; var count = effect.Item2; for (var i = 0; i < count; i++) { var position = player.GetWorldPosition(); position.X += RandomHelper.Between(-10, 10); position.Y += RandomHelper.Between(-10, 10); Game.PlayEffect(effectName, position); } } Game.TriggerExplosion(deathPosition); for (var i = 0; i < 4; i++) { var debrisLinearVelocity = RandomHelper.Direction(15, 165) * 10; var debris = Game.CreateObject(RandomHelper.GetItem(DebrisList), deathPosition, 0f, debrisLinearVelocity, 0f); debris.SetMaxFire(); Game.CreateObject(RandomHelper.GetItem(DebrisList), deathPosition, 0f, debrisLinearVelocity * -Vector2.UnitX, 0f); if (RandomHelper.Between(0, 100) < 50) { Game.CreateObject(RandomHelper.GetItem(WiringTubeList), deathPosition, 0f, RandomHelper.Direction(0, 180) * 6, 0f); } } } }
public override void OnDeath(PlayerDeathArgs args) { base.OnDeath(args); if (Player.CurrentPrimaryWeapon.WeaponItem == WeaponItem.FLAMETHROWER) { Game.SpawnFireNodes(Position, 20, 5f, FireNodeType.Flamethrower); Game.TriggerFireplosion(Position, 60f); Game.TriggerExplosion(Position); } }
public override void OnDeath(PlayerDeathArgs args) { base.OnDeath(args); if (args.Removed) { foreach (var m in m_markers) { m.Remove(); } } }
private static void OnPlayerDeath(IPlayer player, PlayerDeathArgs args) { if (player == null) { return; } if (m_infectedPlayers.ContainsKey(player.UniqueID)) { m_infectedCorpses.Add(new InfectedCorpse(player)); } }
public void OnPlayerDeath(IPlayer player, PlayerDeathArgs args) { // player just died or was removed (or both if falling outside the map while alive or gibbed while alive). if (args.Killed) { Game.WriteToConsole(string.Format("Player {0} died", player.UniqueID)); } if (args.Removed) { Game.WriteToConsole(string.Format("Player {0} removed", player.UniqueID)); } }
public override void OnDeath(PlayerDeathArgs args) { base.OnDeath(args); if (Player == null || m_useDoubleBody) { return; } if (args.Removed) { SelfDestruct(); } else { if (RandomHelper.Boolean()) { SelfDestruct(); } } if (!m_useDoubleBody && !m_destroyed) { m_useDoubleBody = true; var doubleBody = Game.CreatePlayer(Position); Decorate(doubleBody); var newMod = doubleBody.GetModifiers(); newMod.CurrentHealth = newMod.MaxHealth; doubleBody.SetModifiers(newMod); doubleBody.SetValidBotEliminateTarget(false); doubleBody.SetStatusBarsVisible(false); doubleBody.SetNametagVisible(false); doubleBody.SetFaceDirection(Player.GetFaceDirection()); BotManager.SetPlayer(this, doubleBody); Player.Remove(); Player = doubleBody; StartDeathKneeling(); } }
/// <summary> /// Tick called when a player dies /// </summary> /// <param name="args"></param> public void Death(IPlayer deadPlayer, PlayerDeathArgs args) { Game.WriteToConsole("Death() deadPlayer: ", deadPlayer.Name); Game.WriteToConsole("Death() deadPlayer.IsRemoved: ", deadPlayer.IsRemoved); Game.WriteToConsole("Death() args.IsRemoved: ", args.Removed); if (deadPlayer == null || deadPlayer.IsRemoved || args.Removed) { return; } if (deadPlayer.GetTeam() == PlayerTeam.Team1) { Game.WriteToConsole("Blue player dead"); _RedKillsCount++; RefreshKillCounter(_RedKillsCount, Teams.Red); } if (deadPlayer.GetTeam() == PlayerTeam.Team2) { Game.WriteToConsole("Red player dead"); _BlueKillsCount++; RefreshKillCounter(_BlueKillsCount, Teams.Blue); } var user = deadPlayer.GetUser(); if (user != null) { _DeadPlayers.Add( new DeadPlayer() { DeathTimeStamp = Game.TotalElapsedGameTime, User = user, DeadBody = deadPlayer, Team = deadPlayer.GetTeam(), IsBot = deadPlayer.IsBot }); Game.WriteToConsole("Death() added senderPlayer to _DeadPlayers: ", deadPlayer.Name); } }
private static void OnPlayerDeath(IPlayer player, PlayerDeathArgs args) { if (args.Removed) { PlayerWeapon playerWpn; if (m_owners.TryGetValue(player.UniqueID, out playerWpn)) { playerWpn.Melee.Remove(); playerWpn.Primary.Remove(); playerWpn.Secondary.Remove(); playerWpn.Throwable.Remove(); playerWpn.Powerup.Remove(); m_owners.Remove(player.UniqueID); } if (m_queuedPowerups.ContainsKey(player.UniqueID)) { m_queuedPowerups.Remove(player.UniqueID); } } }
// called on player's death public void Death(IPlayer killedPlayer, PlayerDeathArgs args) { BlueRnd(); RedRnd(); // refresh death counter on the map if (killedPlayer != null && args.Removed == false) { if (killedPlayer.GetTeam() == PlayerTeam.Team1) { vRedKills++; RefreshCounter(vRedKills, "RedT"); } if (killedPlayer.GetTeam() == PlayerTeam.Team2) { vBluKills++; RefreshCounter(vBluKills, "BlueT"); } if (vRedKills < DEATH_LIMIT || vBluKills < DEATH_LIMIT) { IUser user = killedPlayer.GetUser(); if (user == null) { Game.CreateDialogue(killedPlayer.Name + " not added to dead list because user is null.", killedPlayer); return; } //store user to respawn and body to remove m_deadPlayers.Add(new DeadPlayer(Game.TotalElapsedGameTime, user, killedPlayer, killedPlayer.GetTeam())); Game.CreateDialogue(killedPlayer.Name + " added to dead list", killedPlayer); } else { WhoWins(); } } }
public override void OnDeath(PlayerDeathArgs args) { base.OnDeath(args); if (!args.Removed) { if (RandomHelper.Percentage(.75f)) { Game.PlaySound("CartoonScream", Position); } } if (m_offender == null || m_offender.IsDead) { m_offender = FindClosestTarget(); } if (m_offender != null) { m_mommy.Enrage(m_offender); } }
public override void OnPlayerData(TerrariaPacket e) { if (GetGameState() != GameState.GameRunning) { return; } PlayerDeathArgs deathPacket = e as PlayerDeathArgs; if (deathPacket != null) { if (RedTeam.Contains(e.Player)) { PaintCircle((int)e.Player.TPlayer.Center.X, (int)e.Player.TPlayer.Center.Y, (int)(3 + deathPacket.Damage / 20f), _deepBluePaintID); } else if (BlueTeam.Contains(e.Player)) { PaintCircle((int)e.Player.TPlayer.Center.X, (int)e.Player.TPlayer.Center.Y, (int)(3 + deathPacket.Damage / 20f), _deepRedPaintID); } } ProjectileDestroyArgs projectileDied = e as ProjectileDestroyArgs; if (projectileDied != null) { if (projectileDied.ProjectileDestroyed.owner == projectileDied.Owner) { if (RedTeam.Contains(e.Player)) { PaintCircle((int)projectileDied.ProjectileX, (int)projectileDied.ProjectileY, 3 + projectileDied.ProjectileDestroyed.damage / 150, _deepRedPaintID); } else if (BlueTeam.Contains(e.Player)) { PaintCircle((int)projectileDied.ProjectileX, (int)projectileDied.ProjectileY, 3 + projectileDied.ProjectileDestroyed.damage / 150, _deepBluePaintID); } } } }
/// <summary> /// Method called when a player dies /// </summary> /// <param name="args"></param> public void Death(IPlayer deadPlayer, PlayerDeathArgs args) { Game.WriteToConsole("Death() deadPlayer: ", deadPlayer.Name); Game.WriteToConsole("Death() args.IsRemoved: ", args.Removed); }
public override void OnDeath(PlayerDeathArgs args) { base.OnDeath(args); StopOccupying(); }
public override void OnPlayerData(TerrariaPacket e) { CTFArena arena = ActiveArena as CTFArena; PlayerTeamArgs playerTeam = e as PlayerTeamArgs; if (playerTeam != null) { if (RedTeam.Contains(e.Player)) { e.Player.SetTeam(1); } else if (BlueTeam.Contains(e.Player)) { e.Player.SetTeam(3); } } PlayerUpdateArgs playerUpdate = e as PlayerUpdateArgs; if (playerUpdate != null) { // Picking up flags if (_redFlagHolder == null && Vector2.Distance(new Vector2(playerUpdate.PositionX, playerUpdate.PositionY), arena.RedFlag) < 2 * 16 && BlueTeam.Contains(e.Player)) { _redFlagHolder = e.Player; SendMessageToAllPlayers($"{_redFlagHolder.Name} has picked up the red flag!", Color.OrangeRed); } else if (_blueFlagHolder == null && Vector2.Distance(new Vector2(playerUpdate.PositionX, playerUpdate.PositionY), arena.BlueFlag) < 2 * 16 && RedTeam.Contains(e.Player)) { _blueFlagHolder = e.Player; SendMessageToAllPlayers($"{_blueFlagHolder.Name} has picked up the blue flag!", Color.Turquoise); } // Placing flags at base flag if (_redFlagHolder != null && _redFlagHolder == e.Player && Vector2.Distance(new Vector2(playerUpdate.PositionX, playerUpdate.PositionY), arena.BlueFlag) < 2 * 16 && BlueTeam.Contains(e.Player) && !e.Player.TPlayer.dead) { SendMessageToAllPlayers($"{_redFlagHolder.Name} has scored for the blue team!", Color.Turquoise); _redFlagHolder = null; _blueScore += 1; SendMessageToAllPlayers($"Score: {_scoreText}", Color.Cyan); } else if (_blueFlagHolder != null && _blueFlagHolder == e.Player && Vector2.Distance(new Vector2(playerUpdate.PositionX, playerUpdate.PositionY), arena.RedFlag) < 2 * 16 && RedTeam.Contains(e.Player) && !e.Player.TPlayer.dead) { SendMessageToAllPlayers($"{_blueFlagHolder.Name} has scored for the red team!", Color.OrangeRed); _blueFlagHolder = null; _redScore += 1; SendMessageToAllPlayers($"Score: {_scoreText}", Color.Cyan); } } PlayerDeathArgs playerDeath = e as PlayerDeathArgs; if (playerDeath != null) { if (e.Player == _redFlagHolder) { _redFlagHolder = null; SendMessageToAllPlayers($"{e.Player.Name} has dropped the red flag!", Color.OrangeRed); } if (e.Player == _blueFlagHolder) { _blueFlagHolder = null; SendMessageToAllPlayers($"{e.Player.Name} has dropped the blue flag!", Color.Turquoise); } } }