Skip to content

Commit

Permalink
Merge pull request tgstation#42149 from FrostyFridge/selfsurgery
Browse files Browse the repository at this point in the history
Allows mechanical organ manipulation to be performed on your own augmented body parts
  • Loading branch information
Cyberboss authored Jan 8, 2019
2 parents e3fefb1 + cf23448 commit 5da26c6
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 6 deletions.
6 changes: 3 additions & 3 deletions code/modules/mob/living/carbon/carbon.dm
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,9 @@
mode() // Activate held item

/mob/living/carbon/attackby(obj/item/I, mob/user, params)
if(!(mobility_flags & MOBILITY_STAND) && surgeries.len)
if(user != src && (user.a_intent == INTENT_HELP || user.a_intent == INTENT_DISARM))
for(var/datum/surgery/S in surgeries)
for(var/datum/surgery/S in surgeries)
if(!(mobility_flags & MOBILITY_STAND) || !S.lying_required)
if((S.self_operable || user != src) && (user.a_intent == INTENT_HELP || user.a_intent == INTENT_DISARM))
if(S.next_step(user,user.a_intent))
return 1
return ..()
Expand Down
6 changes: 3 additions & 3 deletions code/modules/mob/living/carbon/carbon_defense.dm
Original file line number Diff line number Diff line change
Expand Up @@ -131,9 +131,9 @@
if(D.spread_flags & DISEASE_SPREAD_CONTACT_SKIN)
ContactContractDisease(D)

if(!(mobility_flags & MOBILITY_STAND) && surgeries.len)
if(user.a_intent == INTENT_HELP || user.a_intent == INTENT_DISARM)
for(var/datum/surgery/S in surgeries)
for(var/datum/surgery/S in surgeries)
if(!(mobility_flags & MOBILITY_STAND) || !S.lying_required)
if(user.a_intent == INTENT_HELP || user.a_intent == INTENT_DISARM)
if(S.next_step(user, user.a_intent))
return 1
return 0
Expand Down
2 changes: 2 additions & 0 deletions code/modules/surgery/organ_manipulation.dm
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@
name = "prosthesis organ manipulation"
possible_locs = list(BODY_ZONE_CHEST, BODY_ZONE_HEAD)
requires_bodypart_type = BODYPART_ROBOTIC
lying_required = FALSE
self_operable = TRUE
steps = list(
/datum/surgery_step/mechanic_open,
/datum/surgery_step/open_hatch,
Expand Down
1 change: 1 addition & 0 deletions code/modules/surgery/surgery.dm
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
var/success_multiplier = 0 //Step success propability multiplier
var/requires_real_bodypart = 0 //Some surgeries don't work on limbs that don't really exist
var/lying_required = TRUE //Does the vicitm needs to be lying down.
var/self_operable = FALSE //Can the surgery be performed on yourself.

/datum/surgery/New(surgery_target, surgery_location, surgery_bodypart)
..()
Expand Down

0 comments on commit 5da26c6

Please sign in to comment.