From e6523036cd0fe093ca57e31859f075cabb3a045a Mon Sep 17 00:00:00 2001 From: Rhials Date: Sun, 22 Jan 2023 16:30:18 -0500 Subject: [PATCH] Magnitis is more aggressive, uses throw_at instead of Move at higher stages (#72739) I got this disease yesterday and was super disappointed by the actual effects. Rather than suffer an unending waves of metal objects being thrown at my head, I noticed that stuff on the bridge kept getting disorganized, shrugged, and moved on. Now, stages 3/4 of Magnitis will use throw_at instead of just moving objects to the infectee. This can hurt or even kill the victim in extreme cases. Remember to duck! The messages about electrical shocks will now appear when a magnetic pulse occurs. Some of the disease messages have been slightly altered to fit this. --- code/datums/diseases/magnitis.dm | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/code/datums/diseases/magnitis.dm b/code/datums/diseases/magnitis.dm index 8118dac6f60..6d4c22d5ed1 100644 --- a/code/datums/diseases/magnitis.dm +++ b/code/datums/diseases/magnitis.dm @@ -22,7 +22,7 @@ switch(stage) if(2) if(DT_PROB(1, delta_time)) - to_chat(affected_mob, span_danger("You feel a slight shock course through your body.")) + to_chat(affected_mob, span_danger("Your skin tingles with energy.")) if(DT_PROB(1, delta_time)) for(var/obj/nearby_object in orange(2, affected_mob)) if(nearby_object.anchored || !(nearby_object.flags_1 & CONDUCT_1)) @@ -36,41 +36,31 @@ nearby_silicon.Move(get_step(nearby_silicon, move_dir), move_dir) if(3) if(DT_PROB(1, delta_time)) - to_chat(affected_mob, span_danger("You feel a strong shock course through your body.")) - if(DT_PROB(1, delta_time)) - to_chat(affected_mob, span_danger("You feel like clowning around.")) + to_chat(affected_mob, span_danger("Your hair stands on end.")) if(DT_PROB(2, delta_time)) + to_chat(affected_mob, span_danger("You feel a light shock course through your body.")) for(var/obj/nearby_object in orange(4, affected_mob)) if(nearby_object.anchored || !(nearby_object.flags_1 & CONDUCT_1)) continue for(var/i in 1 to rand(1, 2)) - var/move_dir = get_dir(nearby_object, affected_mob) - if(!nearby_object.Move(get_step(nearby_object, move_dir), move_dir)) - break + nearby_object.throw_at(affected_mob, 4, 3) for(var/mob/living/silicon/nearby_silicon in orange(4, affected_mob)) if(isAI(nearby_silicon)) continue for(var/i in 1 to rand(1, 2)) - var/move_dir = get_dir(nearby_silicon, affected_mob) - if(!nearby_silicon.Move(get_step(nearby_silicon, move_dir), move_dir)) - break + nearby_silicon.throw_at(affected_mob, 4, 3) if(4) - if(DT_PROB(1, delta_time)) - to_chat(affected_mob, span_danger("You feel a powerful shock course through your body.")) if(DT_PROB(1, delta_time)) to_chat(affected_mob, span_danger("You query upon the nature of miracles.")) if(DT_PROB(4, delta_time)) + to_chat(affected_mob, span_danger("You feel a powerful shock course through your body.")) for(var/obj/nearby_object in orange(6, affected_mob)) if(nearby_object.anchored || !(nearby_object.flags_1 & CONDUCT_1)) continue for(var/i in 1 to rand(1, 3)) - var/move_dir = get_dir(nearby_object, affected_mob) - if(!nearby_object.Move(get_step(nearby_object, move_dir), move_dir)) - break + nearby_object.throw_at(affected_mob, 6, 5) // I really wanted to use addtimers to stagger out when everything gets thrown but it would probably cause a lot of lag. for(var/mob/living/silicon/nearby_silicon in orange(6, affected_mob)) if(isAI(nearby_silicon)) continue for(var/i in 1 to rand(1, 3)) - var/move_dir = get_dir(nearby_silicon, affected_mob) - if(!nearby_silicon.Move(get_step(nearby_silicon, move_dir), move_dir)) - break + nearby_silicon.throw_at(affected_mob, 6, 5)