public static int ParseKillContextXP( KillContext context ) { int XP = 0; switch ( context ) { case KillContext.Turret: case KillContext.ExplodingBug: XP = 30; break; case KillContext.Gun: XP = 40; break; case KillContext.Bat: case KillContext.Standard: XP = 60; break; } return XP; }
public static void KillPlayer( Player player, Player target, KillContext context ) { try { if ( target.IsOnline ) { SetPlayerDead( target ); Guild g1 = GuildManager.PlayersGuild( player.Info ); Guild g2 = GuildManager.PlayersGuild( target.Info ); int Seconds = 6 - GuildManager.PlayersGuild( target.Info ).DeadSaver; double time = ( DateTime.UtcNow - target.LastTimeKilled ).TotalSeconds; if ( time > Seconds ) { string t = ""; switch ( context ) { case KillContext.Standard: break; case KillContext.Turret: t = "with a turret"; break; case KillContext.Gun: t = "with a gun"; break; case KillContext.Bat: t = "with a bat"; break; case KillContext.ExplodingBug: t = "with an exploding bug"; break; } if ( context == KillContext.Turret ) { if ( player == target ) { g2.SendGuildNotification( String.Format( "{0}&S obstructed the turret's lazer and was incinerated", player.ClassyName ) ); } else { g2.SendGuildNotification( String.Format( "{0}&S has &4killed&s your guild member: {1}&S {2}", player.ClassyName, target.ClassyName, t ) ); g1.SendGuildNotification( String.Format( "{0}&S killed an enemy guild member: {1}&S {2}", player.ClassyName, target.ClassyName, t ) ); } } else { g2.SendGuildNotification( String.Format( "{0}&S has &4killed&s your guild member: {1}&S {2}", player.ClassyName, target.ClassyName, t ) ); g1.SendGuildNotification( String.Format( "{0}&S killed an enemy guild member: {1}&S {2}", player.ClassyName, target.ClassyName, t ) ); } target.LastTimeKilled = DateTime.UtcNow; g1.AddXP( GuildManager.ParseKillContextXP( context ) ); string PlayerKillScore = Cache.GetPlayerScoreEntry( player.Info ); if ( PlayerKillScore == null ) { PlayerKillScore = player.Name + "$0"; } int Score; if ( int.TryParse( PlayerKillScore.Split( '$' )[1], out Score ) ) { Score++; string newString = player.Name + "$" + Score; List<String> nl = Cache.PlayerKillScores.ToList(); nl.Remove( PlayerKillScore ); nl.Add( newString ); Cache.PlayerKillScores = nl.ToArray(); } else Logger.Log( LogType.Error, "PlayerScoreAdd: Unable to increment" ); } } } catch ( Exception e ) { Logger.Log( LogType.Error, e.ToString() ); } }