12/21 modernizations from TG live (#103)
* sync (#3) * shuttle auto call * Merge /vore into /master (#39) * progress * Compile errors fixed No idea if it's test worthy tho as conflicts with race overhaul and narky removal. * Update admins.txt * efforts continue Fuck grab code, seriously * grab code is cancer * Execute the Narkism Do not hesitate. Show no mercy. * holy shit grab code is awful * have I bitched about grab code My bitching, let me show you it * código de agarre es una mierda No really it is * yeah I don't even know anymore. * Lolnope. Fuck grab code * I'm not even sure what to fix anymore * Self eating is not an acceptable fate * Taste the void, son. * My code doesn't pass it's own sanity check. Maybe it's a sign of things to come. * uncommented and notes * It Works and I Don't Know Why (#38) * shuttle auto call * it works and I don't know why * Subsystem 12/21 Most Recent TG subsystem folder * globalvars 12/21 Tossed out the flavor_misc and parallax files * Onclick 12/21 as well as .dme updates * _defines 12/21 ommited old _MC.dm * _HELPERS 12/21 Preserved snowflake placement of furry sprites * _defeines/genetics reapplied narkism holdover for snowflake races. * Oops forgot mutant colors * modules porting 12/21 + Sounds/icons Admin, Client and most of mob life files ommitted * enviroment file * Admin optimizations ahelp log system kept * Mob ports 12/21 Flavor text preserved * datums ported 12/21 * Game ported 12/21 * batch of duplicate fixes/dogborg work Dogborgs need to be modernized to refractored borg standards. * moar fixes * Maps and futher compile fixes
This commit is contained in:
@@ -1,51 +1,50 @@
|
||||
/datum/surgery/prosthetic_replacement
|
||||
name = "prosthetic replacement"
|
||||
steps = list(/datum/surgery_step/incise, /datum/surgery_step/clamp_bleeders, /datum/surgery_step/retract_skin, /datum/surgery_step/add_prosthetic)
|
||||
species = list(/mob/living/carbon/human)
|
||||
species = list(/mob/living/carbon/human, /mob/living/carbon/monkey)
|
||||
possible_locs = list("r_arm", "l_arm", "l_leg", "r_leg", "head")
|
||||
requires_bodypart = FALSE //need a missing limb
|
||||
|
||||
/datum/surgery/prosthetic_replacement/can_start(mob/user, mob/living/carbon/target)
|
||||
if(!ishuman(target))
|
||||
if(!iscarbon(target))
|
||||
return 0
|
||||
var/mob/living/carbon/human/H = target
|
||||
if(!H.get_bodypart(user.zone_selected)) //can only start if limb is missing
|
||||
var/mob/living/carbon/C = target
|
||||
if(!C.get_bodypart(user.zone_selected)) //can only start if limb is missing
|
||||
return 1
|
||||
|
||||
|
||||
|
||||
/datum/surgery_step/add_prosthetic
|
||||
name = "add prosthetic"
|
||||
implements = list(/obj/item/robot_parts = 100, /obj/item/bodypart = 100)
|
||||
implements = list(/obj/item/bodypart = 100)
|
||||
time = 32
|
||||
var/organ_rejection_dam = 0
|
||||
|
||||
/datum/surgery_step/add_prosthetic/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
var/tool_body_zone
|
||||
if(istype(tool, /obj/item/robot_parts))
|
||||
var/obj/item/robot_parts/RP = tool
|
||||
tool_body_zone = RP.body_zone
|
||||
else if(istype(tool, /obj/item/bodypart))
|
||||
var/obj/item/bodypart/L = tool
|
||||
if(L.status != ORGAN_ROBOTIC)
|
||||
organ_rejection_dam = 10
|
||||
if(target.dna.species.id != L.species_id)
|
||||
var/obj/item/bodypart/BP = tool
|
||||
if(ismonkey(target))// monkey patient only accept organic monkey limbs
|
||||
if(BP.status == BODYPART_ROBOTIC || BP.animal_origin != MONKEY_BODYPART)
|
||||
user << "<span class='warning'>[BP] doesn't match the patient's morphology.</span>"
|
||||
return -1
|
||||
if(BP.status != BODYPART_ROBOTIC)
|
||||
organ_rejection_dam = 10
|
||||
if(ishuman(target))
|
||||
if(BP.animal_origin)
|
||||
user << "<span class='warning'>[BP] doesn't match the patient's morphology.</span>"
|
||||
return -1
|
||||
var/mob/living/carbon/human/H = target
|
||||
if(H.dna.species.id != BP.species_id)
|
||||
organ_rejection_dam = 30
|
||||
tool_body_zone = L.body_zone
|
||||
if(target_zone == tool_body_zone) //so we can't replace a leg with an arm.
|
||||
|
||||
if(target_zone == BP.body_zone) //so we can't replace a leg with an arm, or a human arm with a monkey arm.
|
||||
user.visible_message("[user] begins to replace [target]'s [parse_zone(target_zone)].", "<span class ='notice'>You begin to replace [target]'s [parse_zone(target_zone)]...</span>")
|
||||
else
|
||||
user << "<span class='warning'>[tool] isn't the right type for [parse_zone(target_zone)].</span>"
|
||||
return -1
|
||||
|
||||
/datum/surgery_step/add_prosthetic/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
||||
var/obj/item/bodypart/L
|
||||
if(istype(tool, /obj/item/robot_parts))
|
||||
L = newBodyPart(target_zone, 1, 1)
|
||||
user.drop_item()
|
||||
qdel(tool)
|
||||
else
|
||||
L = tool
|
||||
user.drop_item()
|
||||
var/obj/item/bodypart/L = tool
|
||||
user.drop_item()
|
||||
L.attach_limb(target)
|
||||
if(organ_rejection_dam)
|
||||
target.adjustToxLoss(organ_rejection_dam)
|
||||
|
||||
Reference in New Issue
Block a user