diff --git a/baystation12.dme b/baystation12.dme index 8493df70958..3bfd0149a7d 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1696,6 +1696,7 @@ #include "code\modules\spells\targeted\projectile\magic_missile.dm" #include "code\modules\spells\targeted\projectile\projectile.dm" #include "code\modules\supermatter\supermatter.dm" +#include "code\modules\surgery\_defines.dm" #include "code\modules\surgery\bones.dm" #include "code\modules\surgery\encased.dm" #include "code\modules\surgery\face.dm" @@ -1707,6 +1708,7 @@ #include "code\modules\surgery\robotics.dm" #include "code\modules\surgery\slimes.dm" #include "code\modules\surgery\surgery.dm" +#include "code\modules\surgery\~defines.dm" #include "code\modules\tables\flipping.dm" #include "code\modules\tables\interactions.dm" #include "code\modules\tables\presets.dm" diff --git a/code/modules/surgery/_defines.dm b/code/modules/surgery/_defines.dm new file mode 100644 index 00000000000..900f3e45456 --- /dev/null +++ b/code/modules/surgery/_defines.dm @@ -0,0 +1 @@ +#define SURGERY_FAILURE -1 diff --git a/code/modules/surgery/organs_internal.dm b/code/modules/surgery/organs_internal.dm index d352c4aed48..b73509ddd21 100644 --- a/code/modules/surgery/organs_internal.dm +++ b/code/modules/surgery/organs_internal.dm @@ -273,11 +273,11 @@ if((affected.status & ORGAN_ROBOT) && !(O.status & ORGAN_ROBOT)) user << "You cannot install a naked organ into a robotic body." - return 2 + return SURGERY_FAILURE if(!target.species) user << "\red You have no idea what species this person is. Report this on the bug tracker." - return 2 + return SURGERY_FAILURE var/o_is = (O.gender == PLURAL) ? "are" : "is" var/o_a = (O.gender == PLURAL) ? "" : "a " @@ -289,22 +289,22 @@ if(O.damage > (O.max_damage * 0.75)) user << "\red \The [O.organ_tag] [o_is] in no state to be transplanted." - return 2 + return SURGERY_FAILURE if(!target.internal_organs_by_name[O.organ_tag]) organ_missing = 1 else user << "\red \The [target] already has [o_a][O.organ_tag]." - return 2 + return SURGERY_FAILURE if(O && affected.limb_name == O.parent_organ) organ_compatible = 1 else user << "\red \The [O.organ_tag] [o_do] normally go in \the [affected.name]." - return 2 + return SURGERY_FAILURE else user << "\red You're pretty sure [target.species.name_plural] don't normally have [o_a][O.organ_tag]." - return 2 + return SURGERY_FAILURE return ..() && organ_missing && organ_compatible diff --git a/code/modules/surgery/robotics.dm b/code/modules/surgery/robotics.dm index dc626ec60ae..acdec5f2fd0 100644 --- a/code/modules/surgery/robotics.dm +++ b/code/modules/surgery/robotics.dm @@ -171,7 +171,7 @@ if(istype(C)) if(!C.get_amount() >= 3) user << "You need three or more cable pieces to repair this damage." - return 2 + return SURGERY_FAILURE C.use(3) return 1 return 0 @@ -383,23 +383,23 @@ if(!M.brainmob || !M.brainmob.client || !M.brainmob.ckey || M.brainmob.stat >= DEAD) user << "That brain is not usable." - return 2 + return SURGERY_FAILURE if(!(affected.status & ORGAN_ROBOT)) user << "You cannot install a computer brain into a meat skull." - return 2 + return SURGERY_FAILURE if(!target.species) user << "You have no idea what species this person is. Report this on the bug tracker." - return 2 + return SURGERY_FAILURE if(!target.species.has_organ["brain"]) user << "You're pretty sure [target.species.name_plural] don't normally have a brain." - return 2 + return SURGERY_FAILURE if(!isnull(target.internal_organs["brain"])) user << "Your subject already has a brain." - return 2 + return SURGERY_FAILURE return 1 diff --git a/code/modules/surgery/surgery.dm b/code/modules/surgery/surgery.dm index 6e57a4f37b4..116f15b4c34 100644 --- a/code/modules/surgery/surgery.dm +++ b/code/modules/surgery/surgery.dm @@ -91,7 +91,7 @@ proc/do_surgery(mob/living/carbon/M, mob/living/user, obj/item/tool) if(S.tool_quality(tool)) var/step_is_valid = S.can_use(user, M, zone, tool) if(step_is_valid && S.is_valid_target(M)) - if(step_is_valid == 2) // This is a failure that already has a message for failing. + if(step_is_valid == SURGERY_FAILURE) // This is a failure that already has a message for failing. return 1 M.op_stage.in_progress += zone S.begin_step(user, M, zone, tool) //start on it diff --git a/code/modules/surgery/~defines.dm b/code/modules/surgery/~defines.dm new file mode 100644 index 00000000000..6b27ac56f5b --- /dev/null +++ b/code/modules/surgery/~defines.dm @@ -0,0 +1 @@ +#undef SURGERY_FAILURE