#include maps\_utility; #include common_scripts\utility; #include maps\_zombietron_utility; main() { init_sounds(); if (!isDefined(level.challenge_round_t1)) { level.challenge_round_t1 = NewHudElem( self ); level.challenge_round_t2 = NewHudElem( self ); level.challenge_round_t1.alignX = "center"; level.challenge_round_t1.alignY = "middle"; level.challenge_round_t1.horzAlign = "center"; level.challenge_round_t1.vertAlign = "middle"; level.challenge_round_t1.y -= 10; level.challenge_round_t1.foreground = true; level.challenge_round_t1.fontScale = 3; level.challenge_round_t1.color = ( 1.0, 0.0, 0.0 ); level.challenge_round_t1.hidewheninmenu = true; level.challenge_round_t2.alignX = "center"; level.challenge_round_t2.alignY = "middle"; level.challenge_round_t2.horzAlign = "center"; level.challenge_round_t2.vertAlign = "middle"; level.challenge_round_t2.y += 20; level.challenge_round_t2.foreground = true; level.challenge_round_t2.fontScale = 2; level.challenge_round_t2.color = ( 1.0, 0.0, 0.0 ); level.challenge_round_t2.hidewheninmenu = true; } level.RandomMiniBosses = []; if ( isDefined(level.ChallengeEvents) ) { for(i=0;iignite ) { PlayFxOnTag( level._effect["barrel_ignite_fire"], self, "tag_origin" ); self PlayLoopSound( "exp_tron_barrel_fire" ); } if ( curTime>fire ) { PlayFxOnTag( level._effect["barrel_top_fire"], self, "tag_origin" ); } wait 0.2; curTime = GetTime(); } self notify("damage"); } barrel_bomb_think() { self thread barrel_blow_think(RandomIntRange(6,12)); self setcandamage( true ); self EnableaimAssist(); self.team = "axis"; self.is_zombie = true; self waittill( "damage" ); PlayFx(level._effect["barrel_explode"],self.origin,(0,1,0)); physicsExplosionSphere( self.origin, 128, 64, 2 ); RadiusDamage( self.origin + ( 0, 0, 20 ), 128, 7000, 5000, self, "MOD_PROJECTILE_SPLASH" ); playRumbleOnPosition( "grenade_rumble", self.origin ); playsoundatposition( "exp_tron_barrel", self.origin ); self Delete(); } barrel_burst(which) { self endon ("exit_taken"); if ( flag(which) ) return; flag_set(which); barrelSpawns = []; if (which == "barrel_burst1") { barrelSpawns = GetEntArray("barrel_drop_1","targetname"); } else { barrelSpawns = GetEntArray("barrel_drop_2","targetname"); } if (maps\_zombietron_challenges::is_this_a_challenge_round(level.round_number )) { number = RandomInt(barrelSpawns.size); waitTime = RandomFloatRange(number,20); } else { number = RandomInt(2); waitTime = RandomFloatRange(30,60); } while(number) { level ok_to_spawn( 0.5 ); spawn_point = barrelSpawns[RandomInt(barrelSpawns.size)]; barrel = Spawn( "script_model", spawn_point.origin); barrel SetModel( level.red_barrel_model ); if ( which == "barrel_burst1") { barrel.angles = (0,90,90); } else { barrel.angles = (0,0,90); } barrel SetScale(1.0); barrel thread barrel_bomb_think(); barrel PhysicsLaunch( barrel.origin, (0,0,1) ); wait RandomFloatRange(1,3); number--; } wait waitTime; flag_clear(which); } barrel_dropper() { self endon ("exit_taken"); btrig1 = getEnt("barrel_drop_1_trig","targetname"); btrig2 = getEnt("barrel_drop_2_trig","targetname"); flag_clear("barrel_burst1"); flag_clear("barrel_burst2"); while(1) { players = GetPlayers(); for (i=0;i