/datum/surgery/dethrall
name = "dethralling"
steps = list(/datum/surgery_step/incise, /datum/surgery_step/clamp_bleeders, /datum/surgery_step/retract_skin, /datum/surgery_step/saw, /datum/surgery_step/dethrall)
possible_locs = list("head")
/datum/surgery/dethrall/can_start(mob/user, mob/living/carbon/target)
return is_thrall(target)
/datum/surgery_step/dethrall
name = "search head"
accept_hand = 1
time = 70
var/obj/item/organ/internal/brain/B = null
/datum/surgery_step/dethrall/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
B = target.getorgan(/obj/item/organ/internal/brain)
if(B)
user.visible_message("[user] begins looking around in [target]'s head.", "You begin looking for foreign influences on [target]'s brain...")
/datum/surgery_step/dethrall/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
if(B)
if(!is_thrall(target))
user << "You are unable to locate anything on [target]'s brain."
return 1
sleep(30)
user.visible_message("[user] begins removing something from [target]'s head.", \
"You begin carefully extracting the tumor...")
if(!do_mob(user, target, 50))
if(prob(50))
user.visible_message("[user] slips and rips the tumor out from [target]'s head!", \
"You fumble and tear out [target]'s tumor!")
ticker.mode.remove_thrall(target.mind,1)
return 1
else
user.visible_message("[user] screws up!")
return 0
if(target.dna.species.id == "l_shadowling")
target << "NOT LIKE THIS!"
user.visible_message("[target] suddenly slams upward and knocks down [user]!", \
"[target] suddenly bolts up and slams you with tremendous force!")
if(iscarbon(user))
var/mob/living/carbon/C = user
C.Weaken(6)
C.apply_damage(20, "brute", "chest")
else if(issilicon(user))
var/mob/living/silicon/S = user
S.Weaken(8)
S.apply_damage(20, "brute")
playsound(S, 'sound/effects/bang.ogg', 50, 1)
return
user.visible_message("[user] carefully extracts the tumor from [target]'s brain!", \
"You extract the black tumor from [target]'s head. It quickly shrivels and burns away.")
ticker.mode.remove_thrall(target.mind,0)
else
user << "[target] has no brain!"
return 1