Exemplo n.º 1
0
        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;
        }
Exemplo n.º 2
0
        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() );
            }
        }