From bd09b1dfa761945f0fbf03786469e19cd124d4c0 Mon Sep 17 00:00:00 2001 From: TerraGS <40574831+TerraGS@users.noreply.github.com> Date: Sat, 24 Sep 2022 09:52:24 -0500 Subject: [PATCH] Adds flatten effect to clown car running over people (#70031) * adds clown car "pancake" mob interaction * Also improves on clown car code to use signals over Bump() --- code/modules/vehicles/cars/clowncar.dm | 30 ++++++++++++++++++++++--- sound/effects/cartoon_splat.ogg | Bin 0 -> 10098 bytes 2 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 sound/effects/cartoon_splat.ogg diff --git a/code/modules/vehicles/cars/clowncar.dm b/code/modules/vehicles/cars/clowncar.dm index 0688b2ae3ba..5f9141401a4 100644 --- a/code/modules/vehicles/cars/clowncar.dm +++ b/code/modules/vehicles/cars/clowncar.dm @@ -25,6 +25,8 @@ /obj/vehicle/sealed/car/clowncar/Initialize(mapload) . = ..() START_PROCESSING(SSobj,src) + RegisterSignal(src, COMSIG_MOVABLE_CROSS_OVER, .proc/check_crossed) + RegisterSignal(src, COMSIG_MOVABLE_BUMP, .proc/check_bumped) /obj/vehicle/sealed/car/clowncar/process() if(light_on && (obj_flags & EMAGGED)) @@ -93,15 +95,15 @@ to_chat(user, span_danger("You use the [banana] to repair [src]!")) qdel(banana) -/obj/vehicle/sealed/car/clowncar/Bump(atom/bumped) - . = ..() +/obj/vehicle/sealed/car/clowncar/proc/check_bumped(atom/bumped) + SIGNAL_HANDLER if(isliving(bumped)) if(ismegafauna(bumped)) return var/mob/living/hittarget_living = bumped if(iscarbon(hittarget_living)) var/mob/living/carbon/carb = hittarget_living - carb.Paralyze(40) //I play to make sprites go horizontal + carb.Paralyze(4 SECONDS) //I play to make sprites go horizontal hittarget_living.visible_message(span_warning("[src] rams into [hittarget_living] and sucks [hittarget_living.p_them()] up!")) //fuck off shezza this isn't ERP. mob_forced_enter(hittarget_living) playsound(src, pick('sound/vehicles/clowncar_ram1.ogg', 'sound/vehicles/clowncar_ram2.ogg', 'sound/vehicles/clowncar_ram3.ogg'), 75) @@ -115,6 +117,23 @@ dump_mobs(TRUE) log_combat(src, bumped, "crashed into", null, "dumping all passengers") +/obj/vehicle/sealed/car/clowncar/proc/check_crossed(datum/source, atom/movable/crossed) + SIGNAL_HANDLER + if(!has_gravity()) + return + if(!iscarbon(crossed)) + return + var/mob/living/carbon/target_pancake = crossed + if(target_pancake.body_position != LYING_DOWN) + return + if(HAS_TRAIT(target_pancake, TRAIT_INCAPACITATED)) + return + target_pancake.visible_message(span_warning("[src] runs over [target_pancake], flattening [target_pancake.p_them()] like a pancake!")) + target_pancake.AddElement(/datum/element/squish, 5 SECONDS) + target_pancake.Paralyze(2 SECONDS) + playsound(target_pancake, 'sound/effects/cartoon_splat.ogg', 75) + log_combat(src, crossed, "ran over") + /obj/vehicle/sealed/car/clowncar/emag_act(mob/user) if(obj_flags & EMAGGED) return @@ -129,6 +148,11 @@ STOP_PROCESSING(SSobj,src) return ..() +/obj/vehicle/sealed/car/clowncar/Destroy(force) + UnregisterSignal(src, COMSIG_MOVABLE_BUMP) + UnregisterSignal(src, COMSIG_MOVABLE_CROSS_OVER) + return ..() + /** * Plays a random funky effect * Only available while car is emagged diff --git a/sound/effects/cartoon_splat.ogg b/sound/effects/cartoon_splat.ogg new file mode 100644 index 0000000000000000000000000000000000000000..c99c7f1b25fed56b92f503003654176b0cb7f2e4 GIT binary patch literal 10098 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 FzW{{B$}Io@ literal 0 HcmV?d00001