rott/kf_sources/ScrnBalanceSrv/Classes/ScrnPromotedMessage.uc
2026-07-14 20:27:09 +07:00

54 lines
1.8 KiB
Ucode

class ScrnPromotedMessage extends KFVetEarnedMessageSR
abstract;
var Sound PromotedSnd;
var String PromotedSndRef;
var String PromotedSndRefDef;
static function PreloadAssets()
{
default.PromotedSnd = sound(DynamicLoadObject(default.PromotedSndRef, class'Sound', true));
if ( default.PromotedSnd == none )
default.PromotedSnd = sound(DynamicLoadObject(default.PromotedSndRefDef, class'Sound', true));
}
static function UnloadAssets()
{
default.PromotedSnd = none;
}
static function ClientReceive(
PlayerController P,
optional int Switch,
optional PlayerReplicationInfo RelatedPRI_1,
optional PlayerReplicationInfo RelatedPRI_2,
optional Object OptionalObject
)
{
if ( default.PromotedSnd == none )
PreloadAssets();
//log("PromotedSnd="$default.PromotedSnd, 'ScrnBalance');
if ( default.PromotedSnd != none ) {
P.ClientPlaySound(default.PromotedSnd,true,2.f,SLOT_Talk);
P.ClientPlaySound(default.PromotedSnd,true,2.f,SLOT_Interface);
}
if( SRHUDKillingFloor(P.myHUD)!=None && KFPlayerReplicationInfo(P.PlayerReplicationInfo)!=None
&& OptionalObject!=None && KFPlayerReplicationInfo(P.PlayerReplicationInfo).ClientVeteranSkill==OptionalObject )
{
// Temporarly fill the bar.
SRHUDKillingFloor(P.myHUD).LevelProgressBar = 1.f;
SRHUDKillingFloor(P.myHUD).NextLevelTimer = P.Level.TimeSeconds+1.f;
}
default.DrawColor = class'ScrnHUD'.static.PerkColor(Switch);
Super(CriticalEventPlus).ClientReceive(P,Switch,RelatedPRI_1,RelatedPRI_2,OptionalObject);
}
defaultproperties
{
PromotedSndRef="ScrnSnd.Promoted"
PromotedSndRefDef="KF_InterfaceSnd.Perks.PerkAchieved"
EarnedString="You have been promoted to %v level %l!"
}