local surge_current local surge_1_begin_len = 5 * 60 * 60 * 1000 -- 5 minutes local surge_2_full_len = 30 * 60 * 60 * 1000 -- 30 minutes local surge_3_finish_len = 5 * 60 * 60 * 1000 -- 10 minutes local surge_began function begin_surge( actor, npc ) surge_began = get_game_time() level.set_weather_fx( "surge_day" ) level.add_pp_effector( "vibros_p.ppe", 1974, false ) xr_sound.get_safe_sound_object([[ambient\earthquake]]) :play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) level.add_cam_effector("camera_effects\\earthquake.anm", 1974, false, "") surge_full_begin = surge_began + surge_1_begin_len stage_slowing = surge_full_begin + surge_2_full_len stage_ends = stage_slowing + surge_3_finish_len -- game time changes independent of script timers, so check irl second intervals while get_game_time() < surge_full_begin then sleep( 1000 ) end level.set_weather_fx( "surge_day" ) level.remove_pp_effector( 1974 ) level.add_pp_effector( "vibros.ppe", 1974, false ) xr_sound.get_safe_sound_object([[ambient\earthquake]]) :play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) level.add_cam_effector("camera_effects\\earthquake.anm", 1974, false, "") while get_game_time() < stage_slowing then sleep( 1000 ) end level.set_weather_fx( "surge_day" ) level.remove_pp_effector( 1974 ) level.add_pp_effector( "vibros_p.ppe", 1974, false ) xr_sound.get_safe_sound_object([[ambient\earthquake]]) :play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) level.add_cam_effector("camera_effects\\earthquake.anm", 1974, false, "") while get_game_time() < stage_ends then sleep( 1000 ) end level.set_weather_fx( "surge_day" ) -- NEED TO FIND A WAY TO UNDO! level.remove_pp_effector( 1974 ) end