From 4c87838e6436749b6a4e7064b7fdf4c3f581c41b Mon Sep 17 00:00:00 2001 From: Segrain Date: Fri, 31 Jan 2014 16:19:22 +0300 Subject: [PATCH 1/5] Double call removal. --- code/game/gamemodes/heist/heist.dm | 3 --- 1 file changed, 3 deletions(-) diff --git a/code/game/gamemodes/heist/heist.dm b/code/game/gamemodes/heist/heist.dm index bd77584ba64..fd2cdf88ade 100644 --- a/code/game/gamemodes/heist/heist.dm +++ b/code/game/gamemodes/heist/heist.dm @@ -158,9 +158,6 @@ VOX HEIST ROUNDTYPE objs += new /datum/objective/heist/inviolate_crew objs += new /datum/objective/heist/inviolate_death - for(var/datum/objective/heist/O in objs) - O.choose_target() - return objs /datum/game_mode/heist/proc/greet_vox(var/datum/mind/raider) From 4e17dc0b93d88b0f7f8d84e48143562e5e3aed79 Mon Sep 17 00:00:00 2001 From: Segrain Date: Fri, 31 Jan 2014 16:21:05 +0300 Subject: [PATCH 2/5] Sanity checks. --- code/game/machinery/bots/ed209bot.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/bots/ed209bot.dm b/code/game/machinery/bots/ed209bot.dm index d71a43c083e..47718fae917 100644 --- a/code/game/machinery/bots/ed209bot.dm +++ b/code/game/machinery/bots/ed209bot.dm @@ -961,7 +961,7 @@ Auto Patrol: []"}, var/turf/T = get_turf(user) user << "You start to wire [src]..." sleep(40) - if(get_turf(user) == T) + if(get_turf(user) == T && build_step == 6) coil.use(1) build_step++ user << "You wire the ED-209 assembly." @@ -996,7 +996,7 @@ Auto Patrol: []"}, var/turf/T = get_turf(user) user << "Now attaching the gun to the frame..." sleep(40) - if(get_turf(user) == T) + if(get_turf(user) == T && build_step == 8) build_step++ name = "armed [name]" user << "Taser gun attached." From 93a29c60b39a8fd9f9bcf1836ebf27c7bfe44fdd Mon Sep 17 00:00:00 2001 From: Segrain Date: Fri, 31 Jan 2014 16:22:31 +0300 Subject: [PATCH 3/5] Verb category. --- code/modules/mob/living/silicon/robot/robot.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 176a5a85270..2a1e4a10cf5 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -277,6 +277,7 @@ icon = 'icons/mob/custom-synthetic.dmi' /mob/living/silicon/robot/verb/Namepick() + set category = "Robot Commands" if(custom_name) return 0 From 4df59faf76a9f69d7ecc5b69c21afd1bb5480472 Mon Sep 17 00:00:00 2001 From: Segrain Date: Fri, 31 Jan 2014 16:28:24 +0300 Subject: [PATCH 4/5] Surgery tracking. --- code/modules/mob/living/carbon/human/human.dm | 1 + code/modules/organs/organ_external.dm | 2 ++ code/modules/surgery/headreattach.dm | 7 +++++-- code/modules/surgery/robolimbs.dm | 8 ++++++-- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 68d178c6407..91256f7eb07 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1014,6 +1014,7 @@ O.status &= ~ORGAN_BROKEN O.status &= ~ORGAN_BLEEDING O.status &= ~ORGAN_SPLINTED + O.status &= ~ORGAN_CUT_AWAY O.status &= ~ORGAN_ATTACHABLE if (!O.amputated) O.status &= ~ORGAN_DESTROYED diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 53633d5db00..9bb448a8be9 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -600,9 +600,11 @@ This function completely restores a damaged organ to perfect condition. src.status &= ~ORGAN_BROKEN src.status &= ~ORGAN_BLEEDING src.status &= ~ORGAN_SPLINTED + src.status &= ~ORGAN_CUT_AWAY src.status &= ~ORGAN_ATTACHABLE src.status &= ~ORGAN_DESTROYED src.status |= ORGAN_ROBOT + src.destspawn = 0 for (var/datum/organ/external/T in children) if(T) T.robotize() diff --git a/code/modules/surgery/headreattach.dm b/code/modules/surgery/headreattach.dm index 617351178e7..eb5c6964269 100644 --- a/code/modules/surgery/headreattach.dm +++ b/code/modules/surgery/headreattach.dm @@ -14,7 +14,7 @@ if (affected.parent) if (affected.parent.status & ORGAN_DESTROYED) return 0 - return target_zone == "head" + return affected.name == "head" /datum/surgery_step/head/peel @@ -27,6 +27,9 @@ min_duration = 80 max_duration = 100 + can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) + var/datum/organ/external/affected = target.get_organ(target_zone) + return ..() && !(affected.status & ORGAN_CUT_AWAY) begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) user.visible_message("[user] starts peeling back tattered flesh where [target]'s head used to be with \the [tool].", \ @@ -59,7 +62,7 @@ can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/datum/organ/external/affected = target.get_organ(target_zone) - return ..() && affected.status & ORGAN_CUT_AWAY + return ..() && affected.status & ORGAN_CUT_AWAY && affected.open < 3 && !(affected.status & ORGAN_ATTACHABLE) begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/datum/organ/external/affected = target.get_organ(target_zone) diff --git a/code/modules/surgery/robolimbs.dm b/code/modules/surgery/robolimbs.dm index ee56a46bf59..3be16401be2 100644 --- a/code/modules/surgery/robolimbs.dm +++ b/code/modules/surgery/robolimbs.dm @@ -16,7 +16,7 @@ if (affected.parent) if (affected.parent.status & ORGAN_DESTROYED) return 0 - return 1 + return affected.name != "head" /datum/surgery_step/limb/cut @@ -29,6 +29,10 @@ min_duration = 80 max_duration = 100 + can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) + var/datum/organ/external/affected = target.get_organ(target_zone) + return ..() && !(affected.status & ORGAN_CUT_AWAY) + begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/datum/organ/external/affected = target.get_organ(target_zone) user.visible_message("[user] starts cutting away flesh where [target]'s [affected.display_name] used to be with \the [tool].", \ @@ -61,7 +65,7 @@ can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/datum/organ/external/affected = target.get_organ(target_zone) - return ..() && affected.status & ORGAN_CUT_AWAY + return ..() && affected.status & ORGAN_CUT_AWAY && affected.open < 3 && !(affected.status & ORGAN_ATTACHABLE) begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/datum/organ/external/affected = target.get_organ(target_zone) From ece35561435d2db2292731da08a7de68a492417a Mon Sep 17 00:00:00 2001 From: Segrain Date: Fri, 31 Jan 2014 16:31:17 +0300 Subject: [PATCH 5/5] Smallfix. --- code/modules/mob/living/carbon/human/human.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 91256f7eb07..821a6e82052 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1018,6 +1018,7 @@ O.status &= ~ORGAN_ATTACHABLE if (!O.amputated) O.status &= ~ORGAN_DESTROYED + O.destspawn = 0 O.wounds.Cut() O.heal_damage(1000,1000,1,1)