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

58 lines
1.8 KiB
Ucode

class FrozenDosh extends ScrnCashPickup;
var FrozenDosh HeadDosh, NextDosh;
var bool bCryoExpertAchFailed;
// fixes none reference issue -- PooSH
function GiveCashTo( Pawn Other )
{
local SRStatsBase Stats;
if( Other.Controller!=None && Other.Controller.PlayerReplicationInfo!=none ) {
Other.Controller.PlayerReplicationInfo.Score += CashAmount;
Stats = SRStatsBase(PlayerController(Other.Controller).SteamStatsAndAchievements);
if ( Stats != none ) {
if ( Other.Health < 25 )
class'ScrnAchievements'.static.ProgressAchievementByID(Stats.Rep, 'Freeze_DoshSui', CashAmount);
class'ScrnAchievements'.static.ProgressAchievementByID(Stats.Rep, 'Freeze_Dosh', CashAmount);
}
}
if ( DroppedBy != none && DroppedBy == Other.Controller ) {
if ( HeadDosh == self && NextDosh == none && !bCryoExpertAchFailed )
class'ScrnAchievements'.static.ProgressAchievementByID(Stats.Rep, 'Freeze_Expert', 1);
}
else if ( HeadDosh != none )
HeadDosh.bCryoExpertAchFailed = true;
AnnouncePickup(Other);
Destroy();
}
simulated function Destroyed()
{
local FrozenDosh dosh;
local int c;
if ( HeadDosh == self ) {
for ( dosh=NextDosh; dosh!=none && (++c)<=10; dosh=dosh.NextDosh ) {
dosh.HeadDosh = NextDosh;
dosh.bCryoExpertAchFailed = bCryoExpertAchFailed;
}
}
else {
for ( dosh=HeadDosh; dosh!=none && (++c)<=10; dosh=dosh.NextDosh )
if ( dosh.NextDosh == self ) {
dosh.NextDosh = NextDosh;
break;
}
}
super.Destroyed();
}
defaultproperties
{
FadeOutTime=20.000000
bAutoFadeOutTime=False
DrawScale=0.300000
UV2Texture=None
}