diff --git a/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm b/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm index 078ad96536..33ed75f36e 100644 --- a/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm +++ b/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm @@ -732,6 +732,13 @@ +/mob/living/carbon/xenomorph/Moved(atom/oldloc, direction, Forced) + . = ..() + if(!client) // We are not, in fact, counted steps for AI xeno in /client/Move() + life_steps_total++ + + + /mob/living/carbon/xenomorph/slip(slip_source_name, stun_level, weaken_level, run_only, override_noslip, slide_steps) return FALSE diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/crusher/crusher_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/crusher/crusher_abilities.dm index 24db82fea8..a8ce0e60c1 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/crusher/crusher_abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/crusher/crusher_abilities.dm @@ -280,10 +280,10 @@ noise_timer = noise_timer ? --noise_timer : 3 if(noise_timer == 3) - playsound(xeno, 'sound/effects/alien_footstep_charge1.ogg', 50) + playsound(xeno, 'sound/effects/alien_footstep_charge1.ogg', 100) - for(var/mob/living/carbon/human/Mob in range(10, xeno)) - shake_camera(Mob, 2, 1) + for(var/mob/living/carbon/human/Mob in range(14, xeno)) + shake_camera(Mob, 2, 2) for(var/mob/living/carbon/human/Mob in xeno.loc) if(Mob.body_position == LYING_DOWN && Mob.stat != DEAD) diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/crusher/crusher_powers.dm b/code/modules/mob/living/carbon/xenomorph/abilities/crusher/crusher_powers.dm index ca313a69ef..b5dc656d87 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/crusher/crusher_powers.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/crusher/crusher_powers.dm @@ -109,6 +109,7 @@ if (!check_and_use_plasma_owner()) return + playsound(get_turf(xeno_owner), 'sound/voice/alien_crusher_spawn.ogg', 75) apply_cooldown() ADD_TRAIT(xeno_owner, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Stomp")) @@ -122,7 +123,7 @@ REMOVE_TRAIT(xeno_owner, TRAIT_IMMOBILIZED, TRAIT_SOURCE_ABILITY("Stomp")) xeno_owner.anchored = FALSE - playsound(get_turf(xeno_owner), 'sound/effects/bang.ogg', 25, 0) + playsound(get_turf(xeno_owner), 'sound/effects/alien_footstep_charge3.ogg', 75) xeno_owner.visible_message(SPAN_XENODANGER("[xeno_owner] smashes into the ground!"), SPAN_XENODANGER("You smash into the ground!")) xeno_owner.create_stomp() diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Crusher.dm b/code/modules/mob/living/carbon/xenomorph/castes/Crusher.dm index d326a4d061..780a46ca12 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Crusher.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Crusher.dm @@ -81,13 +81,19 @@ /mob/living/carbon/xenomorph/crusher/Initialize(mapload, mob/living/carbon/xenomorph/oldXeno, h_number, ai_hard_off = FALSE) . = ..() + AddComponent(/datum/component/footstep, 2, 50, 15, 1, "metalbang") - playsound(src, 'sound/voice/alien_crusher_spawn.ogg', 100, FALSE, 30) + playsound(src, 'sound/voice/alien_death_unused.ogg', 100, TRUE, 30) for(var/mob/current_mob as anything in get_mobs_in_z_level_range(get_turf(src), 30) - src) var/relative_dir = get_dir(current_mob, src) var/final_dir = dir2text(relative_dir) to_chat(current_mob, SPAN_HIGHDANGER("You hear a terrible roar coming from [final_dir ? "the [final_dir]" : "nearby"] as the ground shakes!")) +/mob/living/carbon/xenomorph/crusher/death(cause, gibbed) + . = ..() + playsound(src, 'sound/voice/alien_crusher_death.ogg', 50, FALSE, 15) + + // Refactored to handle all of crusher's interactions with object during charge. /mob/living/carbon/xenomorph/proc/handle_collision(atom/target) if(!target) diff --git a/sound/voice/alien_crusher_death.ogg b/sound/voice/alien_crusher_death.ogg new file mode 100644 index 0000000000..67629295be Binary files /dev/null and b/sound/voice/alien_crusher_death.ogg differ