manual mirror of upstream robotic surgery pr

This commit is contained in:
deathride58
2017-10-25 14:29:45 -04:00
parent d0a9c56f3b
commit 70a2c466f3
12 changed files with 207 additions and 45 deletions
+13 -1
View File
@@ -5,6 +5,7 @@
var/accept_hand = 0 //does the surgery step require an open hand? If true, ignores implements. Compatible with accept_any_item.
var/accept_any_item = 0 //does the surgery step accept any item? If true, ignores implements. Compatible with require_hand.
var/time = 10 //how long does the step take?
var/repeatable = 0
/datum/surgery_step/proc/try_op(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
@@ -31,8 +32,19 @@
else
to_chat(user, "<span class='warning'>You need to expose [target]'s [parse_zone(target_zone)] to perform surgery on it!</span>")
return 1 //returns 1 so we don't stab the guy in the dick or wherever.
if(repeatable)
var/datum/surgery/next_step = surgery.get_surgery_next_step()
if(next_step)
surgery.status++
if(next_step.try_op(user, target, user.zone_selected, user.get_active_held_item(), surgery))
return 1
else
surgery.status--
if(iscyborg(user) && user.a_intent != INTENT_HARM) //to save asimov borgs a LOT of heartache
return 1
return 0
@@ -63,7 +75,7 @@
if(failure(user, target, target_zone, tool, surgery))
advance = 1
if(advance)
if(advance && !repeatable)
surgery.status++
if(surgery.status > surgery.steps.len)
surgery.complete()