From 59a31bab8694ac664f60388a9875f64d3ad23b3d Mon Sep 17 00:00:00 2001 From: Chinsky Date: Wed, 21 Nov 2012 08:19:10 +0400 Subject: [PATCH 1/7] Added delay to vessel repair surgery. Fixed metroid core surgery exploit. --- code/WorkInProgress/surgery.dm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/code/WorkInProgress/surgery.dm b/code/WorkInProgress/surgery.dm index ab19b0e525c..3989e7d8804 100644 --- a/code/WorkInProgress/surgery.dm +++ b/code/WorkInProgress/surgery.dm @@ -308,6 +308,9 @@ proc/spread_germs_to_organ(datum/organ/external/E, mob/living/carbon/human/user) /datum/surgery_step/fix_vein required_tool = /obj/item/weapon/FixOVein + min_duration = 70 + max_duration = 90 + can_use(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/datum/organ/external/affected = target.get_organ(target_zone) @@ -855,7 +858,8 @@ proc/spread_germs_to_organ(datum/organ/external/E, mob/living/carbon/human/user) target.cores-- user.visible_message("\blue [user] cuts out one of [target]'s cores with \the [tool].",, \ "\blue You cut out one of [target]'s cores with \the [tool]. [target.cores] cores left.") - new/obj/item/metroid_core(target.loc) + if(target.cores >= 0) + new/obj/item/metroid_core(target.loc) if(target.cores <= 0) target.icon_state = "baby roro dead-nocore" From c686245263b61c6502084b91e26fec352120fb21 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Wed, 21 Nov 2012 20:54:50 +0400 Subject: [PATCH 2/7] Fixes issue #1981 Only secborgs are THE LAW. --- code/modules/mob/living/silicon/robot/emote.dm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/silicon/robot/emote.dm b/code/modules/mob/living/silicon/robot/emote.dm index 1eb1d159c9a..34d01953679 100644 --- a/code/modules/mob/living/silicon/robot/emote.dm +++ b/code/modules/mob/living/silicon/robot/emote.dm @@ -195,10 +195,13 @@ m_type = 2 if("law") - message = "[src] shows its legal authorization barcode." + if (istype(module,/obj/item/weapon/robot_module/security)) + message = "[src] shows its legal authorization barcode." - playsound(src.loc, 'biamthelaw.ogg', 50, 0) - m_type = 2 + playsound(src.loc, 'biamthelaw.ogg', 50, 0) + m_type = 2 + else + src << "You are not THE LAW, pal." else src << text("Invalid Emote: []", act) if ((message && src.stat == 0)) From 15abc757d3270d14e23e832545c3e3ece059ac93 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Wed, 21 Nov 2012 20:55:53 +0400 Subject: [PATCH 3/7] Nullchecks. And one zero division. --- code/game/objects/items/devices/taperecorder.dm | 4 ++-- code/modules/admin/verbs/adminsay.dm | 2 +- code/modules/paperwork/paper.dm | 2 +- code/modules/power/smes.dm | 2 +- code/modules/research/xenoarchaeology/artifact_analysis.dm | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm index e98c28e7dc4..555dbe1caea 100644 --- a/code/game/objects/items/devices/taperecorder.dm +++ b/code/game/objects/items/devices/taperecorder.dm @@ -124,8 +124,8 @@ usr << "You can't clear the memory while playing or recording!" return else - storedinfo -= storedinfo - timestamp -= timestamp + if(storedinfo) storedinfo.Cut() + if(timestamp) timestamp.Cut() timerecorded = 0 usr << "Memory cleared." return diff --git a/code/modules/admin/verbs/adminsay.dm b/code/modules/admin/verbs/adminsay.dm index f567abc87e0..8175482402c 100644 --- a/code/modules/admin/verbs/adminsay.dm +++ b/code/modules/admin/verbs/adminsay.dm @@ -25,7 +25,7 @@ for (var/client/C in admin_list) if (src.holder.rank == "Admin Observer") C << "ADMIN: [key_name(usr, C)]: [msg]" - else if(C.holder.level != 0) + else if(C.holder && C.holder.level != 0) C << "ADMIN: [key_name(usr, C)] (JMP): [msg]" /client/proc/cmd_mod_say(msg as text) diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 16fa20c5de5..c007425c9b8 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -226,7 +226,7 @@ /obj/item/weapon/paper/Topic(href, href_list) ..() - if((usr.stat || usr.restrained())) + if(!usr || (usr.stat || usr.restrained())) return if(href_list["write"]) diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index 63f9f9ab3d9..a0f320873ac 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -61,7 +61,7 @@ /obj/machinery/power/smes/proc/chargedisplay() - return round(5.5*charge/capacity) + return round(5.5*charge/(capacity ? capacity : 5e6)) #define SMESRATE 0.05 // rate of internal charge to external power diff --git a/code/modules/research/xenoarchaeology/artifact_analysis.dm b/code/modules/research/xenoarchaeology/artifact_analysis.dm index 1a83768937b..5225b650e7f 100644 --- a/code/modules/research/xenoarchaeology/artifact_analysis.dm +++ b/code/modules/research/xenoarchaeology/artifact_analysis.dm @@ -221,7 +221,7 @@ findarti++ cur_artifact = A if (findarti == 1) - if(cur_artifact.being_used) + if(cur_artifact && cur_artifact.being_used) var/message = "[src] states, \"Cannot analyse. Excess energy drain is disrupting signal.\"" src.visible_message(message, message) else From 558097d87d37cc22586a5d3fc1eeda710e62696f Mon Sep 17 00:00:00 2001 From: Chinsky Date: Wed, 21 Nov 2012 21:49:33 +0400 Subject: [PATCH 4/7] Attempt to fix mods not loading on main server. I STILL THINK MLOC SHOULD UNLAZY AND CHECK PERMISSIONS OR SOMETHING. --- code/world.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/world.dm b/code/world.dm index b73100d519f..917ccc1d3cc 100644 --- a/code/world.dm +++ b/code/world.dm @@ -18,8 +18,8 @@ src.load_mode() src.load_motd() - src.load_mods() src.load_admins() + src.load_mods() investigate_reset() if (config.usewhitelist) load_whitelist() From 7150999fc6920ee950571b7a62b20c9599752501 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Wed, 21 Nov 2012 22:29:46 +0400 Subject: [PATCH 5/7] Rolling pins now work not inly only in full moon at the odd day of week between 1 and 3 am if stars are right. Fixes issue #1980 --- code/game/objects/items/weapons/kitchen.dm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/code/game/objects/items/weapons/kitchen.dm b/code/game/objects/items/weapons/kitchen.dm index b91b5a560d3..2ab6bbc9caf 100644 --- a/code/game/objects/items/weapons/kitchen.dm +++ b/code/game/objects/items/weapons/kitchen.dm @@ -86,13 +86,12 @@ else H.Stun(time) if(H.stat != 2) H.stat = 1 - for(var/mob/O in viewers(H, null)) - O.show_message(text("\red [] has been knocked unconscious!", H), 1, "\red You hear someone fall.", 2) + user.visible_message("\red [H] has been knocked unconscious!", "\red You knock [H] unconscious!") + return else - H << text("\red [] tried to knock you unconscious!",user) + H.visible_message("\red [user] tried to knock [H] unconscious!", "\red [user] tried to knock you unconscious!") H.eye_blurry += 3 - - return + return ..() /* * Trays - Agouri From 8270ea9b9e134aafb5c038867d7993005da673d9 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Wed, 21 Nov 2012 23:05:13 +0400 Subject: [PATCH 6/7] Made incubator eat right chems, issue #1991 --- code/WorkInProgress/virus2/dishincubator.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/WorkInProgress/virus2/dishincubator.dm b/code/WorkInProgress/virus2/dishincubator.dm index e6d0da12394..f2aefe07ead 100644 --- a/code/WorkInProgress/virus2/dishincubator.dm +++ b/code/WorkInProgress/virus2/dishincubator.dm @@ -165,5 +165,5 @@ if(beaker) if(!beaker.reagents.remove_reagent("virusfood",5)) foodsupply += 10 - if(!beaker.reagents.remove_reagent("toxins",1)) + if(!beaker.reagents.remove_reagent("toxin",1)) toxins += 1 \ No newline at end of file From bdc587b9990863223715fe81c62baa847647c790 Mon Sep 17 00:00:00 2001 From: Mloc Date: Wed, 21 Nov 2012 21:51:51 +0000 Subject: [PATCH 7/7] Hopeful fix for NT status. --- code/world.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/world.dm b/code/world.dm index 917ccc1d3cc..af1b8e32c02 100644 --- a/code/world.dm +++ b/code/world.dm @@ -147,6 +147,8 @@ Starting up. [time2text(world.timeofday, "hh:mm.ss")] if(revdata) s["revision"] = revdata.revision s["admins"] = admins + s["end"] = "end" + return list2params(s)