init() { precacheShader( "progress_bar_bg" ); precacheShader( "progress_bar_fg" ); precacheShader( "progress_bar_fill" ); precacheShader( "score_bar_bg" ); precacheShader( "score_bar_allies" ); precacheShader( "score_bar_opfor" ); level.uiParent = spawnstruct(); level.uiParent.horzAlign = "left"; level.uiParent.vertAlign = "top"; level.uiParent.alignX = "left"; level.uiParent.alignY = "top"; level.uiParent.x = 0; level.uiParent.y = 0; level.uiParent.width = 0; level.uiParent.height = 0; level.uiParent.children = []; level.fontHeight = 12; level.hud["allies"] = spawnstruct(); level.hud["axis"] = spawnstruct(); level.primaryProgressBarY = -61; level.primaryProgressBarX = 0; level.primaryProgressBarHeight = 8; level.primaryProgressBarWidth = 120; level.primaryProgressBarTextY = -75; level.primaryProgressBarTextX = 0; level.primaryProgressBarFontSize = 1.4; level.teamProgressBarY = 32; level.teamProgressBarHeight = 14; level.teamProgressBarWidth = 192; level.teamProgressBarTextY = 8; level.teamProgressBarFontSize = 1.65; level.lowerTextYAlign = "CENTER"; level.lowerTextY = 70; level.lowerTextFontSize = 2; } fontPulseInit() { self.baseFontScale = self.fontScale; self.maxFontScale = self.fontScale * 2; self.inFrames = 3; self.outFrames = 5; } fontPulse(player) { self notify ( "fontPulse" ); self endon ( "fontPulse" ); player endon("disconnect"); player endon("joined_team"); player endon("joined_spectators"); scaleRange = self.maxFontScale - self.baseFontScale; while ( self.fontScale < self.maxFontScale ) { self.fontScale = min( self.maxFontScale, self.fontScale + (scaleRange / self.inFrames) ); wait 0.05; } while ( self.fontScale > self.baseFontScale ) { self.fontScale = max( self.baseFontScale, self.fontScale - (scaleRange / self.outFrames) ); wait 0.05; } }