#include common_scripts\utility; #include maps\_utility; main() { setup_util_fx(); level._effect[ "technical_gate_shatter" ] = LoadFX( "explosions/wood_explosion_1" ); level._effect[ "bird_takeoff_pm" ] = LoadFX( "misc/bird_takeoff_pm" ); level._effect[ "headshot" ] = LoadFX( "impacts/flesh_hit_head_fatal_exit" ); level._effect[ "bodyshot" ] = LoadFX( "impacts/flesh_hit" ); // ambient level fx level._effect[ "insects_carcass_runner" ] = LoadFX( "misc/insects_carcass_runner" ); level._effect[ "firelp_med_pm" ] = LoadFX( "fire/firelp_med_pm" ); level._effect[ "firelp_small_pm_a" ] = LoadFX( "fire/firelp_small_pm_a" ); level._effect[ "dust_wind_fast" ] = LoadFX( "dust/dust_wind_fast" ); level._effect[ "dust_wind_fast_light" ] = LoadFX( "dust/dust_wind_fast_light" ); level._effect[ "trash_spiral_runner" ] = LoadFX( "misc/trash_spiral_runner" ); level._effect[ "trash_spiral_runner_far" ] = LoadFX( "misc/trash_spiral_runner_far" ); level._effect[ "leaves_fall_gentlewind" ] = LoadFX( "misc/leaves_fall_gentlewind" ); level._effect[ "leaves_ground_gentlewind" ] = LoadFX( "misc/leaves_ground_gentlewind" ); level._effect[ "hallway_smoke_light" ] = LoadFX( "smoke/hallway_smoke_light" ); level._effect[ "battlefield_smokebank_S" ] = LoadFX( "smoke/battlefield_smokebank_S" ); level._effect[ "room_smoke_200" ] = LoadFX( "smoke/room_smoke_200" ); level._effect[ "room_smoke_200_fast_far" ] = LoadFX( "smoke/room_smoke_200_fast_far" ); level._effect[ "insect_trail_runner_icbm" ] = LoadFX( "misc/insect_trail_runner_icbm" ); level._effect[ "moth_runner" ] = LoadFX( "misc/moth_runner" ); level._effect[ "insects_light_invasion" ] = LoadFX( "misc/insects_light_invasion" ); level._effect[ "chimney_small" ] = LoadFX( "smoke/chimney_small" ); level._effect[ "chimney_large" ] = LoadFX( "smoke/chimney_large" ); level._effect[ "roof_slide" ] = LoadFX( "misc/roof_slide" ); // airliner exhaust level._effect[ "airliner_exhaust" ] = LoadFX( "fire/jet_engine_anatov_constant" ); level._effect[ "airliner_wingtip_left" ] = LoadFX( "misc/aircraft_light_wingtip_green" ); level._effect[ "airliner_wingtip_right" ] = LoadFX( "misc/aircraft_light_wingtip_red" ); level._effect[ "airliner_tail" ] = LoadFX( "misc/aircraft_light_white_blink" ); level._effect[ "airliner_belly" ] = LoadFX( "misc/aircraft_light_red_blink" ); // fake chopper shellejects level._effect[ "hind_fake_shelleject" ] = LoadFX( "shellejects/20mm_cargoship" ); // fake rotor wash dust level._effect[ "hind_fake_rotorwash_dust" ] = LoadFX( "treadfx/heli_dust_icbm" ); // chopper flares level.flare_fx[ "pavelow" ] = LoadFX( "misc/flares_cobra" ); // fake explosions for the chopper owning level._effect[ "hind_fake_explosion_1" ] = LoadFX( "explosions/grenadeexp_metal" ); level._effect[ "hind_fake_explosion_2" ] = LoadFX( "explosions/circuit_breaker" ); level._effect[ "hind_fake_explosion_3" ] = LoadFX( "explosions/pillar_explosion_brick_invasion" ); // fx for player falling level._effect[ "playerfall_impact" ] = LoadFX( "impacts/bodyfall_dust_large" ); level._effect[ "playerfall_residual" ] = LoadFX( "explosions/breach_room_residual" ); // fake squibs around player level._effect[ "squib_plaster" ] = LoadFX( "impacts/large_plaster" ); level._effect[ "flashlight" ] = LoadFX( "misc/gulag_cafe_spotlight" ); levelstart_fx_setup(); treadfx_override(); footstep_effects(); } setup_util_fx() { // for bloody_death level._effect[ "flesh_hit" ] = LoadFX( "impacts/flesh_hit_body_fatal_exit" ); } bird_startle_trigs() { trigs = GetEntArray( "trig_bird_startle", "targetname" ); array_thread( trigs, ::bird_startle_trig_think ); } bird_startle_trig_think() { ASSERT( IsDefined( self.script_exploder ), "Bird startle trigger at origin " + self.origin + " doesn't have script_exploder set." ); exploderName = self.script_exploder; self waittill( "trigger" ); level thread exploder( exploderName ); self Delete(); } levelstart_fx_setup() { lights = GetEntArray( "flickerlight_fire", "script_noteworthy" ); array_thread( lights, ::flickerlight_fire ); } flickerlight_fire() { wait( RandomFloatRange( .05, .5 ) ); intensity = self GetLightIntensity(); while( 1 ) { self SetLightIntensity( intensity * RandomFloatRange( 1.2, 2.2 ) ); wait( RandomFloatRange( .05, 1 ) ); } } footstep_effects() { //Regular footstep fx animscripts\utility::setFootstepEffect( "dirt", loadfx ( "impacts/footstep_dust" ) ); animscripts\utility::setFootstepEffect( "concrete", loadfx ( "impacts/footstep_dust" ) ); animscripts\utility::setFootstepEffect( "asphalt", loadfx ( "impacts/footstep_dust" ) ); animscripts\utility::setFootstepEffect( "rock", loadfx ( "impacts/footstep_dust" ) ); animscripts\utility::setFootstepEffect( "mud", loadfx ( "impacts/footstep_mud" ) ); //Small footstep fx animscripts\utility::setFootstepEffectSmall( "dirt", loadfx ( "impacts/footstep_dust" ) ); animscripts\utility::setFootstepEffectSmall( "concrete", loadfx ( "impacts/footstep_dust" ) ); animscripts\utility::setFootstepEffectSmall( "asphalt", loadfx ( "impacts/footstep_dust" ) ); animscripts\utility::setFootstepEffectSmall( "rock", loadfx ( "impacts/footstep_dust" ) ); animscripts\utility::setFootstepEffectSmall( "mud", loadfx ( "impacts/footstep_mud" ) ); //Other notetrack fx /* setNotetrackEffect( , , , , , ) : name of the notetrack to do the fx/sound on : name of the tag on the AI to use when playing fx : the fx will only play when the AI is on this surface. Specify "all" to make it work for all surfaces. : load the fx to play here : when this notetrack hits a sound can be played. This is the prefix of the sound alias to play ( gets followed by surface type ) : suffix of sound alias to play, follows the surface type. Example: prefix of "bodyfall_" and suffix of "_large" will play sound alias "bodyfall_dirt_large" when the notetrack happens on dirt. */ animscripts\utility::setNotetrackEffect( "bodyfall small", "J_SpineLower", "dirt", loadfx ( "impacts/bodyfall_dust_small_runner" ), "bodyfall_", "_small" ); animscripts\utility::setNotetrackEffect( "bodyfall small", "J_SpineLower", "concrete", loadfx ( "impacts/bodyfall_default_small_runner" ), "bodyfall_", "_small" ); animscripts\utility::setNotetrackEffect( "bodyfall small", "J_SpineLower", "asphalt", loadfx ( "impacts/bodyfall_default_small_runner" ), "bodyfall_", "_small" ); animscripts\utility::setNotetrackEffect( "bodyfall small", "J_SpineLower", "rock", loadfx ( "impacts/bodyfall_default_small_runner" ), "bodyfall_", "_small" ); animscripts\utility::setNotetrackEffect( "bodyfall large", "J_SpineLower", "dirt", loadfx ( "impacts/bodyfall_dust_large_runner" ), "bodyfall_", "_large" ); animscripts\utility::setNotetrackEffect( "bodyfall large", "J_SpineLower", "concrete", loadfx ( "impacts/bodyfall_default_large_runner" ), "bodyfall_", "_large" ); animscripts\utility::setNotetrackEffect( "bodyfall large", "J_SpineLower", "asphalt", loadfx ( "impacts/bodyfall_default_large_runner" ), "bodyfall_", "_large" ); animscripts\utility::setNotetrackEffect( "bodyfall large", "J_SpineLower", "rock", loadfx ( "impacts/bodyfall_default_large_runner" ), "bodyfall_", "_large" ); animscripts\utility::setNotetrackEffect( "bodyfall large", "J_SpineLower", "mud", loadfx ( "impacts/bodyfall_mud_large_runner" ), "bodyfall_", "_large" ); animscripts\utility::setNotetrackEffect( "knee fx left", "J_Knee_LE", "dirt", loadfx ( "impacts/footstep_dust" ) ); animscripts\utility::setNotetrackEffect( "knee fx left", "J_Knee_LE", "concrete", loadfx ( "impacts/footstep_dust" ) ); animscripts\utility::setNotetrackEffect( "knee fx left", "J_Knee_LE", "asphalt", loadfx ( "impacts/footstep_dust" ) ); animscripts\utility::setNotetrackEffect( "knee fx left", "J_Knee_LE", "rock", loadfx ( "impacts/footstep_dust" ) ); animscripts\utility::setNotetrackEffect( "knee fx left", "J_Knee_LE", "mud", loadfx ( "impacts/footstep_mud" ) ); animscripts\utility::setNotetrackEffect( "knee fx right", "J_Knee_RI", "dirt", loadfx ( "impacts/footstep_dust" ) ); animscripts\utility::setNotetrackEffect( "knee fx right", "J_Knee_RI", "concrete", loadfx ( "impacts/footstep_dust" ) ); animscripts\utility::setNotetrackEffect( "knee fx right", "J_Knee_RI", "asphalt", loadfx ( "impacts/footstep_dust" ) ); animscripts\utility::setNotetrackEffect( "knee fx right", "J_Knee_RI", "rock", loadfx ( "impacts/footstep_dust" ) ); animscripts\utility::setNotetrackEffect( "knee fx right", "J_Knee_RI", "mud", loadfx ( "impacts/footstep_mud" ) ); } treadfx_override() { driving_tread_fx = "treadfx/tread_dust_boneyard"; maps\_treadfx::setvehiclefx( "technical", "brick", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical", "bark", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical", "carpet", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical", "cloth", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical", "concrete", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical", "dirt", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical", "flesh", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical", "foliage", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical", "glass", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical", "grass", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical", "gravel", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical", "ice", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical", "metal", undefined ); //maps\_treadfx::setvehiclefx( "technical", "mud", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical", "paper", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical", "plaster", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical", "rock", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical", "sand", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical", "snow", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical", "slush", driving_tread_fx ); //maps\_treadfx::setvehiclefx( "technical", "water", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical", "wood", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical", "asphalt", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical", "ceramic", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical", "plastic", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical", "rubber", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical", "cushion", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical", "fruit", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical", "painted metal", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical", "default", driving_tread_fx ); //maps\_treadfx::setvehiclefx( "technical", "none", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical_physics", "brick", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical_physics", "bark", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical_physics", "carpet", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical_physics", "cloth", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical_physics", "concrete", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical_physics", "dirt", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical_physics", "flesh", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical_physics", "foliage", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical_physics", "glass", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical_physics", "grass", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical_physics", "gravel", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical_physics", "ice", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical_physics", "metal", undefined ); //maps\_treadfx::setvehiclefx( "technical_physics", "mud", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical_physics", "paper", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical_physics", "plaster", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical_physics", "rock", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical_physics", "sand", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical_physics", "snow", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical_physics", "slush", driving_tread_fx ); //maps\_treadfx::setvehiclefx( "technical_physics", "water", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical_physics", "wood", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical_physics", "asphalt", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical_physics", "ceramic", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical_physics", "plastic", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical_physics", "rubber", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical_physics", "cushion", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical_physics", "fruit", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical_physics", "painted metal", driving_tread_fx ); maps\_treadfx::setvehiclefx( "technical_physics", "default", driving_tread_fx ); //maps\_treadfx::setvehiclefx( "technical_physics", "none", driving_tread_fx ); flying_tread_fx = "treadfx/heli_dust_large"; maps\_treadfx::setvehiclefx( "pavelow", "brick", flying_tread_fx ); maps\_treadfx::setvehiclefx( "pavelow", "bark", flying_tread_fx ); maps\_treadfx::setvehiclefx( "pavelow", "carpet", flying_tread_fx ); maps\_treadfx::setvehiclefx( "pavelow", "cloth", flying_tread_fx ); maps\_treadfx::setvehiclefx( "pavelow", "concrete", flying_tread_fx ); maps\_treadfx::setvehiclefx( "pavelow", "dirt", flying_tread_fx ); maps\_treadfx::setvehiclefx( "pavelow", "flesh", flying_tread_fx ); maps\_treadfx::setvehiclefx( "pavelow", "foliage", flying_tread_fx ); maps\_treadfx::setvehiclefx( "pavelow", "glass", flying_tread_fx ); maps\_treadfx::setvehiclefx( "pavelow", "grass", flying_tread_fx ); maps\_treadfx::setvehiclefx( "pavelow", "gravel", flying_tread_fx ); maps\_treadfx::setvehiclefx( "pavelow", "ice", flying_tread_fx ); maps\_treadfx::setvehiclefx( "pavelow", "metal", flying_tread_fx ); maps\_treadfx::setvehiclefx( "pavelow", "mud", flying_tread_fx ); maps\_treadfx::setvehiclefx( "pavelow", "paper", flying_tread_fx ); maps\_treadfx::setvehiclefx( "pavelow", "plaster", flying_tread_fx ); maps\_treadfx::setvehiclefx( "pavelow", "rock", flying_tread_fx ); maps\_treadfx::setvehiclefx( "pavelow", "sand", flying_tread_fx ); maps\_treadfx::setvehiclefx( "pavelow", "snow", flying_tread_fx ); maps\_treadfx::setvehiclefx( "pavelow", "water", flying_tread_fx ); maps\_treadfx::setvehiclefx( "pavelow", "wood", flying_tread_fx ); maps\_treadfx::setvehiclefx( "pavelow", "asphalt", flying_tread_fx ); maps\_treadfx::setvehiclefx( "pavelow", "ceramic", flying_tread_fx ); maps\_treadfx::setvehiclefx( "pavelow", "plastic", flying_tread_fx ); maps\_treadfx::setvehiclefx( "pavelow", "rubber", flying_tread_fx ); maps\_treadfx::setvehiclefx( "pavelow", "cushion", flying_tread_fx ); maps\_treadfx::setvehiclefx( "pavelow", "fruit", flying_tread_fx ); maps\_treadfx::setvehiclefx( "pavelow", "painted metal", flying_tread_fx ); maps\_treadfx::setvehiclefx( "pavelow", "default", flying_tread_fx ); maps\_treadfx::setvehiclefx( "pavelow", "none", flying_tread_fx ); }