diff --git a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm index bd65a8b422..7c73a1fd8c 100644 --- a/code/game/objects/structures/flora.dm +++ b/code/game/objects/structures/flora.dm @@ -101,6 +101,12 @@ icon_state = "festivus_pole" desc = "During last year's Feats of Strength the Research Director was able to suplex this passing immobile rod into a planter." +/obj/structure/festivus/anchored + name = "suplexed rod" + desc = "A true feat of strength, almost as good as last year." + icon_state = "anchored_rod" + anchored = TRUE + /obj/structure/flora/tree/dead/Initialize() icon_state = "tree_[rand(1, 6)]" . = ..() diff --git a/code/modules/events/immovable_rod.dm b/code/modules/events/immovable_rod.dm index abf13bcab9..d9654b395d 100644 --- a/code/modules/events/immovable_rod.dm +++ b/code/modules/events/immovable_rod.dm @@ -45,6 +45,7 @@ In my current plan for it, 'solid' will be defined as anything with density == 1 throwforce = 100 density = TRUE anchored = TRUE + var/mob/living/wizard var/z_original = 0 var/destination var/notify = TRUE @@ -140,3 +141,23 @@ In my current plan for it, 'solid' will be defined as anything with density == 1 H.adjustBruteLoss(160) if(L && (L.density || prob(10))) L.ex_act(EXPLODE_HEAVY) + +obj/effect/immovablerod/attack_hand(mob/living/user) + if(ishuman(user)) + var/mob/living/carbon/human/U = user + if(U.job in list("Research Director")) + playsound(src, 'sound/effects/meteorimpact.ogg', 100, 1) + for(var/mob/M in urange(8, src)) + if(!M.stat) + shake_camera(M, 2, 3) + if(wizard) + U.visible_message("[src] transforms into [wizard] as [U] suplexes them!", "As you grab [src], it suddenly turns into [wizard] as you suplex them!") + to_chat(wizard, "You're suddenly jolted out of rod-form as [U] somehow manages to grab you, slamming you into the ground!") + wizard.Stun(60) + wizard.apply_damage(25, BRUTE) + qdel(src) + else + U.visible_message("[U] suplexes [src] into the ground!", "You suplex [src] into the ground!") + new /obj/structure/festivus/anchored(drop_location()) + new /obj/effect/anomaly/flux(drop_location()) + qdel(src) diff --git a/code/modules/spells/spell_types/rod_form.dm b/code/modules/spells/spell_types/rod_form.dm index 06f38b8346..5a532db7ac 100644 --- a/code/modules/spells/spell_types/rod_form.dm +++ b/code/modules/spells/spell_types/rod_form.dm @@ -28,7 +28,6 @@ /obj/effect/immovablerod/wizard var/max_distance = 13 var/damage_bonus = 0 - var/mob/living/wizard var/turf/start_turf notify = FALSE diff --git a/icons/obj/flora/pinetrees.dmi b/icons/obj/flora/pinetrees.dmi index a68e0388b0..3ee4a89f07 100644 Binary files a/icons/obj/flora/pinetrees.dmi and b/icons/obj/flora/pinetrees.dmi differ