[MIRROR] Extensive surgery additions (#5590)

* Extensive surgery additions

* Update role_preferences.dm

* Update surgery_step.dm
This commit is contained in:
CitadelStationBot
2018-02-19 10:48:11 -06:00
committed by Poojawa
parent d8faf15832
commit 1e65c813f0
46 changed files with 1098 additions and 251 deletions
+42 -3
View File
@@ -38,14 +38,17 @@
// put special restrictions here
return 1
/datum/surgery/proc/next_step(mob/user)
/datum/surgery/proc/next_step(mob/user, intent)
if(step_in_progress)
return 1
var/try_to_fail = FALSE
if(intent == INTENT_DISARM)
try_to_fail = TRUE
var/datum/surgery_step/S = get_surgery_step()
if(S)
if(S.try_op(user, target, user.zone_selected, user.get_active_held_item(), src))
if(S.try_op(user, target, user.zone_selected, user.get_active_held_item(), src, try_to_fail))
return 1
return 0
@@ -78,8 +81,44 @@
return propability + success_multiplier
/datum/surgery/advanced
name = "advanced surgery"
/datum/surgery/advanced/can_start(mob/user, mob/living/carbon/target)
if(!..())
return FALSE
//Abductor scientists need no instructions
if(isabductor(user))
var/mob/living/carbon/human/H = user
var/datum/species/abductor/S = H.dna.species
if(S.scientist)
return TRUE
var/turf/T = get_turf(target)
var/obj/structure/table/optable/table = locate(/obj/structure/table/optable, T)
if(!table || !table.computer)
return FALSE
if(table.computer.stat & (NOPOWER|BROKEN))
return FALSE
if(type in table.computer.advanced_surgeries)
return TRUE
/obj/item/disk/surgery
name = "Surgery Procedure Disk"
desc = "A disk that contains advanced surgery procedures, must be loaded into an Operating Console."
icon_state = "datadisk1"
materials = list(MAT_METAL=300, MAT_GLASS=100)
var/list/surgeries
/obj/item/disk/surgery/debug
name = "Debug Surgery Disk"
desc = "A disk that contains all existing surgery procedures."
icon_state = "datadisk1"
materials = list(MAT_METAL=300, MAT_GLASS=100)
/obj/item/disk/surgery/debug/Initialize()
. = ..()
surgeries = subtypesof(/datum/surgery/advanced)
//INFO
//Check /mob/living/carbon/attackby for how surgery progresses, and also /mob/living/carbon/attack_hand.