From 3a8eb2035ac8f8c7b21db8f872145769a8dc85f1 Mon Sep 17 00:00:00 2001 From: Shadowlight213 Date: Thu, 25 Aug 2016 11:21:08 -0700 Subject: [PATCH 1/3] Fixes rad storms having the parent message. Makes ckeyless monkeys less affected to try and reduce the amount of collapse emote spam. --- code/datums/weather/weather_types.dm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/code/datums/weather/weather_types.dm b/code/datums/weather/weather_types.dm index c63cdb306de..e01e4fa6e71 100644 --- a/code/datums/weather/weather_types.dm +++ b/code/datums/weather/weather_types.dm @@ -119,6 +119,7 @@ desc = "A cloud of intense radiation passes through the area dealing rad damage to those who are unprotected." telegraph_duration = 300 + telegraph_message = "The air begins to grow warm." //telegraph_sound = 'sound/lavaland/ash_storm_windup.ogg' //TODO: Get sounds and sprite overlays //telegraph_overlay = "light_ash" @@ -129,6 +130,7 @@ //weather_overlay = "ash_storm" end_duration = 100 + telegraph_message = "The air seems to be cooling off again." //end_sound = 'sound/lavaland/ash_storm_end.ogg' //end_overlay = "light_ash" @@ -151,7 +153,10 @@ else randmutg(H) H.domutcheck() - L.rad_act(20,1) + if(ismonkey(L) && !L.ckey) + L.rad_act(1,1) //This is here to prevent all the genetics and viro monkeys from collapsing forever and spamming ghosts. + else + L.rad_act(20,1) /datum/weather/rad_storm/end() if(..()) From bd9af8e79121b3f7b808d3f67be9b0018991571b Mon Sep 17 00:00:00 2001 From: Shadowlight213 Date: Thu, 25 Aug 2016 13:19:08 -0700 Subject: [PATCH 2/3] Removed commented code --- code/datums/weather/weather_types.dm | 6 ------ 1 file changed, 6 deletions(-) diff --git a/code/datums/weather/weather_types.dm b/code/datums/weather/weather_types.dm index e01e4fa6e71..979d317e93c 100644 --- a/code/datums/weather/weather_types.dm +++ b/code/datums/weather/weather_types.dm @@ -120,19 +120,13 @@ telegraph_duration = 300 telegraph_message = "The air begins to grow warm." - //telegraph_sound = 'sound/lavaland/ash_storm_windup.ogg' //TODO: Get sounds and sprite overlays - //telegraph_overlay = "light_ash" weather_message = "You feel waves of heat wash over you! Find shelter!" weather_duration_lower = 600 weather_duration_upper = 1500 - //weather_sound = 'sound/lavaland/ash_storm_start.ogg' - //weather_overlay = "ash_storm" end_duration = 100 telegraph_message = "The air seems to be cooling off again." - //end_sound = 'sound/lavaland/ash_storm_end.ogg' - //end_overlay = "light_ash" area_type = /area protected_areas = list(/area/maintenance, /area/turret_protected/ai_upload, /area/turret_protected/ai_upload_foyer, /area/turret_protected/ai) From 3ff6886189e7aaa203896d3bc36b3e39c54e96de Mon Sep 17 00:00:00 2001 From: Shadowlight213 Date: Thu, 25 Aug 2016 21:58:23 -0700 Subject: [PATCH 3/3] Fixes infinite stun and collapse spam --- code/datums/dna.dm | 1 + code/datums/weather/weather_types.dm | 7 ++----- code/modules/mob/living/carbon/human/emote.dm | 9 +++++---- code/modules/mob/living/carbon/human/species.dm | 9 +++++---- code/modules/mob/living/carbon/monkey/life.dm | 6 ++++-- code/modules/mob/living/life.dm | 2 +- code/modules/mob/status_procs.dm | 12 ++++++------ 7 files changed, 24 insertions(+), 22 deletions(-) diff --git a/code/datums/dna.dm b/code/datums/dna.dm index 0dea00071e3..ca05c8bc3bf 100644 --- a/code/datums/dna.dm +++ b/code/datums/dna.dm @@ -321,6 +321,7 @@ mob/living/carbon/human/updateappearance(icon_update=1, mutcolor_update=0, mutat var/num = rand(1, DNA_UNI_IDENTITY_BLOCKS) var/newdna = setblock(M.dna.uni_identity, num, random_string(DNA_BLOCK_SIZE, hex_characters)) M.dna.uni_identity = newdna + M.updateappearance(mutations_overlay_update=1) return /proc/clean_dna(mob/living/carbon/M) diff --git a/code/datums/weather/weather_types.dm b/code/datums/weather/weather_types.dm index 979d317e93c..083c92d2937 100644 --- a/code/datums/weather/weather_types.dm +++ b/code/datums/weather/weather_types.dm @@ -126,7 +126,7 @@ weather_duration_upper = 1500 end_duration = 100 - telegraph_message = "The air seems to be cooling off again." + end_message = "The air seems to be cooling off again." area_type = /area protected_areas = list(/area/maintenance, /area/turret_protected/ai_upload, /area/turret_protected/ai_upload_foyer, /area/turret_protected/ai) @@ -147,10 +147,7 @@ else randmutg(H) H.domutcheck() - if(ismonkey(L) && !L.ckey) - L.rad_act(1,1) //This is here to prevent all the genetics and viro monkeys from collapsing forever and spamming ghosts. - else - L.rad_act(20,1) + L.rad_act(20,1) /datum/weather/rad_storm/end() if(..()) diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 6850dc1ed0f..6d67ed7ad7c 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -45,10 +45,11 @@ m_type = 2 if ("collapse","collapses") - Paralyse(2) - adjustStaminaLoss(100) // Hampers abuse against simple mobs, but still leaves it a viable option. - message = "[src] collapses!" - m_type = 2 + if(status_flags & CANPARALYSE) //You can't collapse if you can't actually collapse. + Paralyse(2) + adjustStaminaLoss(100) // Hampers abuse against simple mobs, but still leaves it a viable option. + message = "[src] collapses!" + m_type = 2 if ("cough","coughs") if (miming) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 88455c18f79..9f0c803600f 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -804,17 +804,18 @@ if(!(RADIMMUNE in specflags)) if(H.radiation) if (H.radiation > 100) + if(!H.weakened) + H.emote("collapse") H.Weaken(10) H << "You feel weak." - H.emote("collapse") - switch(H.radiation) - if(50 to 75) if(prob(5)) + if(!H.weakened) + H.emote("collapse") H.Weaken(3) H << "You feel weak." - H.emote("collapse") + if(prob(15)) if(!( H.hair_style == "Shaved") || !(H.hair_style == "Bald") || (HAIR in specflags)) H << "Your hair starts to \ diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index f3e208b6e95..d3e541143b0 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -22,17 +22,19 @@ if (radiation) if (radiation > 100) + if(!weakened) + emote("collapse") Weaken(10) src << "You feel weak." - emote("collapse") switch(radiation) if(50 to 75) if(prob(5)) + if(!weakened) + emote("collapse") Weaken(3) src << "You feel weak." - emote("collapse") if(75 to 100) if(prob(1)) diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index c6dcd735de1..f1fc06d3e8b 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -78,7 +78,7 @@ //this updates all special effects: stunned, sleeping, weakened, druggy, stuttering, etc.. /mob/living/proc/handle_status_effects() if(paralysis) - AdjustParalysis(-1) + AdjustParalysis(-1, 1, 1) if(stunned) AdjustStunned(-1, 1, 1) if(weakened) diff --git a/code/modules/mob/status_procs.dm b/code/modules/mob/status_procs.dm index 21fae144f2c..649fe0462bb 100644 --- a/code/modules/mob/status_procs.dm +++ b/code/modules/mob/status_procs.dm @@ -46,24 +46,24 @@ /////////////////////////////////// PARALYSIS //////////////////////////////////// -/mob/proc/Paralyse(amount, updating = 1) - if(status_flags & CANPARALYSE) +/mob/proc/Paralyse(amount, updating = 1, ignore_canparalyse = 0) + if(status_flags & CANPARALYSE || ignore_canparalyse) var/old_paralysis = paralysis paralysis = max(max(paralysis,amount),0) if((!old_paralysis && paralysis) || (old_paralysis && !paralysis)) if(updating) update_stat() -/mob/proc/SetParalysis(amount, updating = 1) - if(status_flags & CANPARALYSE) +/mob/proc/SetParalysis(amount, updating = 1, ignore_canparalyse = 0) + if(status_flags & CANPARALYSE || ignore_canparalyse) var/old_paralysis = paralysis paralysis = max(amount,0) if((!old_paralysis && paralysis) || (old_paralysis && !paralysis)) if(updating) update_stat() -/mob/proc/AdjustParalysis(amount, updating = 1) - if(status_flags & CANPARALYSE) +/mob/proc/AdjustParalysis(amount, updating = 1, ignore_canparalyse = 0) + if(status_flags & CANPARALYSE || ignore_canparalyse) var/old_paralysis = paralysis paralysis = max(paralysis + amount,0) if((!old_paralysis && paralysis) || (old_paralysis && !paralysis))