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

190 lines
4.2 KiB
Ucode

class WaitingMessage extends TimerMessage;
var localized name WarningMessage[2];
var localized string WaveInboundMessage;
var localized string SurvivedMessage;
var localized string FinalWaveInboundMessage;
var localized string WeldedShutMessage;
var localized string ZEDTimeActiveMessage;
var localized string DoorMessage;
var localized string PickupMessage;
static function string GetString(
optional int Switch,
optional PlayerReplicationInfo RelatedPRI_1,
optional PlayerReplicationInfo RelatedPRI_2,
optional Object OptionalObject
)
{
if ( Switch == 1 )
{
return default.WaveInboundMessage;
}
else if( Switch == 2 )
{
return default.SurvivedMessage;
}
else if ( Switch == 3 )
{
return default.FinalWaveInboundMessage;
}
else if ( Switch == 4 )
{
return default.WeldedShutMessage;
}
else if ( Switch == 5 )
{
return default.ZEDTimeActiveMessage;
}
else if ( Switch == 6 )
{
return default.DoorMessage;
}
else if ( Switch == 7 )
{
return default.PickupMessage;
}
}
static function int GetFontSize(int Switch, PlayerReplicationInfo RelatedPRI1, PlayerReplicationInfo RelatedPRI2, PlayerReplicationInfo LocalPlayer)
{
if ( switch == 1 || switch == 2 || switch == 3 )
{
return 4;
}
if ( Switch == 4 || switch == 5 )
{
return 2;
}
if ( switch == 6 || switch == 7 )
{
return 0;
}
return default.FontSize;
}
static function GetPos(int Switch, out EDrawPivot OutDrawPivot, out EStackMode OutStackMode, out float OutPosX, out float OutPosY)
{
OutDrawPivot = default.DrawPivot;
OutStackMode = default.StackMode;
OutPosX = default.PosX;
switch( Switch )
{
case 1:
case 3:
OutPosY = 0.45;
break;
case 2:
OutPosY = 0.4;
break;
case 4:
OutPosY = 0.7;
break;
case 5:
OutPosY = 0.7;
break;
case 6:
OutPosY = 0.8;
break;
case 7:
OutPosY = 0.8;
break;
}
}
static function float GetLifeTime(int Switch)
{
switch( switch )
{
case 1:
case 3:
return 1;
case 2:
return 3;
case 4:
return 4;
case 5:
return 1.5;
case 6:
return 5;
case 7:
return 5;
}
}
static function ClientReceive(
PlayerController P,
optional int Switch,
optional PlayerReplicationInfo RelatedPRI_1,
optional PlayerReplicationInfo RelatedPRI_2,
optional Object OptionalObject
)
{
super(CriticalEventPlus).ClientReceive(P, Switch, RelatedPRI_1, RelatedPRI_2, OptionalObject);
if ( Switch == 1 )
P.QueueAnnouncement(default.WarningMessage[Rand(2)], 1, AP_InstantOrQueueSwitch, 1);
}
static function RenderComplexMessage(
Canvas Canvas,
out float XL,
out float YL,
optional string MessageString,
optional int Switch,
optional PlayerReplicationInfo RelatedPRI_1,
optional PlayerReplicationInfo RelatedPRI_2,
optional Object OptionalObject
)
{
local int i;
local float TempY;
i = InStr(MessageString, "|");
TempY = Canvas.CurY;
Canvas.FontScaleX = Canvas.ClipX / 1024.0;
Canvas.FontScaleY = Canvas.FontScaleX;
if ( i < 0 )
{
Canvas.TextSize(MessageString, XL, YL);
Canvas.SetPos((Canvas.ClipX / 2.0) - (XL / 2.0), TempY);
Canvas.DrawTextClipped(MessageString, false);
}
else
{
Canvas.TextSize(Left(MessageString, i), XL, YL);
Canvas.SetPos((Canvas.ClipX / 2.0) - (XL / 2.0), TempY);
Canvas.DrawTextClipped(Left(MessageString, i), false);
Canvas.TextSize(Mid(MessageString, i + 1), XL, YL);
Canvas.SetPos((Canvas.ClipX / 2.0) - (XL / 2.0), TempY + YL);
Canvas.DrawTextClipped(Mid(MessageString, i + 1), false);
}
Canvas.FontScaleX = 1.0;
Canvas.FontScaleY = 1.0;
}
defaultproperties
{
bComplexString=true
WarningMessage(0)="HereTheyCome5"
WarningMessage(1)="HereTheyCome2"
DrawColor=(G=0)
WaveInboundMessage="NEXT WAVE INBOUND!"
SurvivedMessage="WAVE COMPLETED!|GET TO THE TRADER!"
FinalWaveInboundMessage="FINAL WAVE INBOUND"
WeldedShutMessage="This door is welded shut.|Use the Welder's alt-fire to unweld."
DoorMessage="Press '%Use%' to open/close the door.|Use the Welder to seal closed doors."
PickupMessage="Press '%Use%' to pick up Z.E.D. gun piece."
ZEDTimeActiveMessage="ZED TIME ACTIVATED!"
FontSize=5
}