//
// A Death Message.
//
// Switch 0: Kill
//	RelatedPRI_1 is the Killer.
//	RelatedPRI_2 is the Victim.
//	OptionalObject is the DamageType Class.
//

class KFDeathMessage extends xDeathMessage
    config(user);

static function color GetConsoleColor( PlayerReplicationInfo RelatedPRI_1 )
{
    return class'HUD'.Default.GreenColor;
}

static function string GetString(
    optional int Switch,
    optional PlayerReplicationInfo RelatedPRI_1,
    optional PlayerReplicationInfo RelatedPRI_2,
    optional Object OptionalObject
    )
{
    local string KillerName, VictimName;

    if (Class<DamageType>(OptionalObject) == None)
        return "";

    if (RelatedPRI_2 == None)
        VictimName = Default.SomeoneString;
    else
        VictimName = RelatedPRI_2.PlayerName;

    if ( Switch == 1 )
    {
        // suicide
        return class'GameInfo'.Static.ParseKillMessage(
            KillerName,
            VictimName,
            Class<DamageType>(OptionalObject).Static.SuicideMessage(RelatedPRI_2) );
    }

    if (RelatedPRI_1 == None)
        KillerName = Default.SomeoneString;
    else
        KillerName = RelatedPRI_1.PlayerName;

    return class'GameInfo'.Static.ParseKillMessage(
        KillerName,
        VictimName,
        Class<DamageType>(OptionalObject).Static.DeathMessage(RelatedPRI_1, RelatedPRI_2) );
}

static function ClientReceive(
    PlayerController P,
    optional int Switch,
    optional PlayerReplicationInfo RelatedPRI_1,
    optional PlayerReplicationInfo RelatedPRI_2,
    optional Object OptionalObject
    )
{
    if ( Switch == 1 )
    {
        if ( !Default.bNoConsoleDeathMessages )
            Super.ClientReceive(P, Switch, RelatedPRI_1, RelatedPRI_2, OptionalObject);
        return;
    }
    if ( (RelatedPRI_1 == P.PlayerReplicationInfo)
        || (P.PlayerReplicationInfo.bOnlySpectator && (Pawn(P.ViewTarget) != None) && (Pawn(P.ViewTarget).PlayerReplicationInfo == RelatedPRI_1)) )
    {
        // Interdict and send the child message instead.
        P.myHUD.LocalizedMessage( Default.ChildMessage, Switch, RelatedPRI_1, RelatedPRI_2, OptionalObject );
        if ( !Default.bNoConsoleDeathMessages )
            P.myHUD.LocalizedMessage( Default.Class, Switch, RelatedPRI_1, RelatedPRI_2, OptionalObject );

        // check multikills
       // if ( P.Role == ROLE_Authority )
       // {
            // multikills checked already in LogMultiKills()
         //   if ( UnrealPlayer(P).MultiKillLevel > 0 )
           //     P.ReceiveLocalizedMessage( class'MultiKillMessage', UnrealPlayer(P).MultiKillLevel );
      //  }
      //  else
      //  {
      //      if ( ( RelatedPRI_1 != RelatedPRI_2 ) && ( RelatedPRI_2 != None)
           //     && ((RelatedPRI_2.Team == None) || (RelatedPRI_1.Team != RelatedPRI_2.Team)) )
       //     {
       //         if ( (P.Level.TimeSeconds - UnrealPlayer(P).LastKillTime < 4) && (Switch != 1) )
       //         {
       //             UnrealPlayer(P).MultiKillLevel++;
        //            P.ReceiveLocalizedMessage( class'MultiKillMessage', xPlayer(P).MultiKillLevel );
        //        }
        //        else
        //            UnrealPlayer(P).MultiKillLevel = 0;
        //        UnrealPlayer(P).LastKillTime = P.Level.TimeSeconds;
        //    }
        //    else
        //        UnrealPlayer(P).MultiKillLevel = 0;
       // }
   // }
     if (RelatedPRI_2 == P.PlayerReplicationInfo)
    {
        P.ReceiveLocalizedMessage( class'xVictimMessage', 0, RelatedPRI_1 );
        if ( !Default.bNoConsoleDeathMessages )
            Super.ClientReceive(P, Switch, RelatedPRI_1, RelatedPRI_2, OptionalObject);
    }
    else if ( !Default.bNoConsoleDeathMessages )
        Super.ClientReceive(P, Switch, RelatedPRI_1, RelatedPRI_2, OptionalObject);
 }
}

defaultproperties
{
     KilledString="was slaughtered by"
     DrawColor=(R=255,G=50,B=50,A=255)
}
