mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 03:57:13 +01:00
New vending machine, enabling Ian clothes, bug fixes, map update
This commit is contained in:
@@ -258,7 +258,7 @@ datum/preferences
|
||||
dat += "Secondary Language:<br><a href='byond://?src=\ref[user];preference=language;task=input'>[language]</a><br>"
|
||||
dat += "Blood Type: <a href='byond://?src=\ref[user];preference=b_type;task=input'>[b_type]</a><br>"
|
||||
dat += "Skin Tone: <a href='?_src_=prefs;preference=s_tone;task=input'>[-s_tone + 35]/220<br></a>"
|
||||
dat += "Skin pattern: <a href='byond://?src=\ref[user];preference=skin_style;task=input'>Adjust</a><br>"
|
||||
// dat += "Skin pattern: <a href='byond://?src=\ref[user];preference=skin_style;task=input'>Adjust</a><br>"
|
||||
dat += "<br><b>Handicaps</b><br>"
|
||||
dat += "\t<a href='byond://?src=\ref[user];task=input;preference=disabilities'><b>\[Set Disabilities\]</b></a><br>"
|
||||
dat += "\tLimbs: <a href='byond://?src=\ref[user];preference=limbs;task=input'>Adjust</a><br>"
|
||||
@@ -292,6 +292,13 @@ datum/preferences
|
||||
if(ind > 1)
|
||||
dat += ", "
|
||||
dat += "\tMechanical [organ_name] prothesis"
|
||||
|
||||
else if(status == "peg")
|
||||
++ind
|
||||
if(ind > 1)
|
||||
dat += ", "
|
||||
dat += "\tWooden [organ_name] prothesis"
|
||||
|
||||
else if(status == "amputated")
|
||||
++ind
|
||||
if(ind > 1)
|
||||
@@ -1024,13 +1031,16 @@ datum/preferences
|
||||
var/limb = null
|
||||
var/second_limb = null // if you try to change the arm, the hand should also change
|
||||
var/third_limb = null // if you try to unchange the hand, the arm should also change
|
||||
var/valid_limb_states=list("Normal","Amputated","Prothesis")
|
||||
switch(limb_name)
|
||||
if("Left Leg")
|
||||
limb = "l_leg"
|
||||
second_limb = "l_foot"
|
||||
valid_limb_states += "Peg Leg"
|
||||
if("Right Leg")
|
||||
limb = "r_leg"
|
||||
second_limb = "r_foot"
|
||||
valid_limb_states += "Peg Leg"
|
||||
if("Left Arm")
|
||||
limb = "l_arm"
|
||||
second_limb = "l_hand"
|
||||
@@ -1050,7 +1060,7 @@ datum/preferences
|
||||
limb = "r_hand"
|
||||
third_limb = "r_arm"
|
||||
|
||||
var/new_state = input(user, "What state do you wish the limb to be in?") as null|anything in list("Normal","Amputated","Prothesis")
|
||||
var/new_state = input(user, "What state do you wish the limb to be in?") as null|anything in valid_limb_states
|
||||
if(!new_state) return
|
||||
|
||||
switch(new_state)
|
||||
@@ -1066,11 +1076,15 @@ datum/preferences
|
||||
organ_data[limb] = "cyborg"
|
||||
if(second_limb)
|
||||
organ_data[second_limb] = "cyborg"
|
||||
|
||||
if("Peg Leg")
|
||||
organ_data[limb] = "peg"
|
||||
if(second_limb)
|
||||
organ_data[second_limb] = "amputated"
|
||||
/*
|
||||
if("skin_style")
|
||||
var/skin_style_name = input(user, "Select a new skin style") as null|anything in list("default1", "default2", "default3")
|
||||
if(!skin_style_name) return
|
||||
|
||||
*/
|
||||
else
|
||||
switch(href_list["preference"])
|
||||
if("gender")
|
||||
@@ -1190,11 +1204,17 @@ datum/preferences
|
||||
|
||||
var/status = organ_data[name]
|
||||
if(status == "amputated")
|
||||
O.status &= ~ORGAN_ROBOT
|
||||
O.status &= ~ORGAN_PEG
|
||||
O.amputated = 1
|
||||
O.status |= ORGAN_DESTROYED
|
||||
O.destspawn = 1
|
||||
else if(status == "cyborg")
|
||||
O.status &= ~ORGAN_PEG
|
||||
O.status |= ORGAN_ROBOT
|
||||
else if(status == "peg")
|
||||
O.status &= ~ORGAN_ROBOT
|
||||
O.status |= ORGAN_PEG
|
||||
|
||||
if(disabilities & DISABILITY_FLAG_FAT && species=="Human")//character.species.flags & CAN_BE_FAT)
|
||||
character.mutations += FAT
|
||||
|
||||
@@ -566,7 +566,7 @@
|
||||
|
||||
if ((href_list["item"] && !( usr.stat ) && usr.canmove && !( usr.restrained() ) && in_range(src, usr) && ticker)) //if game hasn't started, can't make an equip_e
|
||||
var/obj/effect/equip_e/human/O = new /obj/effect/equip_e/human( )
|
||||
if(usr:gloves)
|
||||
if(ishuman(usr) && usr:gloves)
|
||||
var/obj/item/clothing/gloves/G = usr:gloves
|
||||
pickpocket = G.pickpocket
|
||||
O.source = usr
|
||||
|
||||
@@ -123,7 +123,7 @@
|
||||
|
||||
flags = WHITELISTED | NO_BREATHE | REQUIRE_LIGHT | NON_GENDERED | NO_SCAN | IS_PLANT | RAD_ABSORB
|
||||
|
||||
|
||||
/*
|
||||
/datum/species/skellington // /vg/
|
||||
name = "Skellington"
|
||||
icobase = 'icons/mob/human_races/r_skeleton.dmi'
|
||||
@@ -131,4 +131,5 @@
|
||||
language = "Clatter"
|
||||
attack_verb = "punch"
|
||||
|
||||
flags = WHITELISTED | HAS_LIPS | HAS_TAIL | NO_EAT | NO_BREATHE | NON_GENDERED
|
||||
flags = WHITELISTED | HAS_LIPS | HAS_TAIL | NO_EAT | NO_BREATHE | NON_GENDERED
|
||||
*/
|
||||
@@ -135,7 +135,7 @@ var/list/ai_list = list()
|
||||
|
||||
for(var/line in lines)
|
||||
// split & clean up
|
||||
var/list/Entry = text2list(line, "-")
|
||||
var/list/Entry = text2list(line, ":")
|
||||
for(var/i = 1 to Entry.len)
|
||||
Entry[i] = trim(Entry[i])
|
||||
|
||||
|
||||
@@ -27,7 +27,6 @@
|
||||
regenerate_icons()
|
||||
|
||||
/mob/living/simple_animal/corgi/show_inv(mob/user as mob)
|
||||
/* If you're turning this back on, scroll down and uncomment target_updated
|
||||
user.set_machine(src)
|
||||
if(user.stat) return
|
||||
|
||||
@@ -43,7 +42,6 @@
|
||||
|
||||
user << browse(dat, text("window=mob[];size=325x500", name))
|
||||
onclose(user, "mob[real_name]")
|
||||
*/
|
||||
return
|
||||
|
||||
/mob/living/simple_animal/corgi/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
@@ -95,7 +93,7 @@
|
||||
usr << "\red There is nothing to remove from its [remove_from]."
|
||||
return
|
||||
|
||||
//show_inv(usr) //Commented out because changing Ian's name and then calling up his inventory opens a new inventory...which is annoying.
|
||||
show_inv(usr) //Commented out because changing Ian's name and then calling up his inventory opens a new inventory...which is annoying.
|
||||
|
||||
//Adding things to inventory
|
||||
else if(href_list["add_inv"])
|
||||
@@ -188,7 +186,7 @@
|
||||
src.inventory_back = item_to_add
|
||||
regenerate_icons()
|
||||
|
||||
//show_inv(usr) //Commented out because changing Ian's name and then calling up his inventory opens a new inventory...which is annoying.
|
||||
show_inv(usr) //Commented out because changing Ian's name and then calling up his inventory opens a new inventory...which is annoying.
|
||||
else
|
||||
..()
|
||||
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
|
||||
//Robotic limb malfunctions
|
||||
var/malfunction = 0
|
||||
if (E.status & ORGAN_ROBOT && prob(E.brute_dam + E.burn_dam))
|
||||
if (E.status & (ORGAN_ROBOT|ORGAN_PEG) && prob(E.brute_dam + E.burn_dam))
|
||||
malfunction = 1
|
||||
|
||||
//Broken limbs hurt too
|
||||
@@ -126,6 +126,8 @@
|
||||
//Check arms and legs for existence
|
||||
var/canstand_l = 1 //Can stand on left leg
|
||||
var/canstand_r = 1 //Can stand on right leg
|
||||
var/legispeg_l=0
|
||||
var/legispeg_r=0
|
||||
var/hasleg_l = 1 //Have left leg
|
||||
var/hasleg_r = 1 //Have right leg
|
||||
var/hasarm_l = 1 //Have left arm
|
||||
@@ -135,15 +137,17 @@
|
||||
if(E.status & ORGAN_DESTROYED && !(E.status & ORGAN_SPLINTED))
|
||||
canstand_l = 0
|
||||
hasleg_l = 0
|
||||
legispeg_l=E.status & ORGAN_PEG
|
||||
E = get_organ("r_leg")
|
||||
if(E.status & ORGAN_DESTROYED && !(E.status & ORGAN_SPLINTED))
|
||||
canstand_r = 0
|
||||
hasleg_r = 0
|
||||
legispeg_r=E.status & ORGAN_PEG
|
||||
E = get_organ("l_foot")
|
||||
if(E.status & ORGAN_DESTROYED && !(E.status & ORGAN_SPLINTED))
|
||||
if(E.status & ORGAN_DESTROYED && !(E.status & ORGAN_SPLINTED) && !legispeg_l)
|
||||
canstand_l = 0
|
||||
E = get_organ("r_foot")
|
||||
if(E.status & ORGAN_DESTROYED && !(E.status & ORGAN_SPLINTED))
|
||||
if(E.status & ORGAN_DESTROYED && !(E.status & ORGAN_SPLINTED) && !legispeg_r)
|
||||
canstand_r = 0
|
||||
E = get_organ("l_arm")
|
||||
if(E.status & ORGAN_DESTROYED && !(E.status & ORGAN_SPLINTED))
|
||||
@@ -152,7 +156,7 @@
|
||||
if(E.status & ORGAN_DESTROYED && !(E.status & ORGAN_SPLINTED))
|
||||
hasarm_r = 0
|
||||
|
||||
// Can stand if have at least one full leg (with leg and foot parts present)
|
||||
// Can stand if have at least one full leg (with leg and foot parts present, or an entire pegleg)
|
||||
// Has limbs to move around if at least one arm or leg is at least partially there
|
||||
can_stand = canstand_l||canstand_r
|
||||
has_limbs = hasleg_l||hasleg_r||hasarm_l||hasarm_r
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
|
||||
if(status & ORGAN_DESTROYED)
|
||||
return 0
|
||||
if(status & ORGAN_ROBOT)
|
||||
if(status & (ORGAN_ROBOT|ORGAN_PEG))
|
||||
brute *= 0.66 //~2/3 damage for ROBOLIMBS
|
||||
burn *= 0.66 //~2/3 damage for ROBOLIMBS
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
if(used_weapon)
|
||||
add_autopsy_data("[used_weapon]", brute + burn)
|
||||
|
||||
var/can_cut = (prob(brute*2) || sharp) && !(status & ORGAN_ROBOT)
|
||||
var/can_cut = (prob(brute*2) || sharp) && !(status & (ORGAN_ROBOT|ORGAN_PEG))
|
||||
// If the limbs can break, make sure we don't exceed the maximum damage a limb can take before breaking
|
||||
if((brute_dam + burn_dam + brute + burn) < max_damage || !config.limbs_can_break)
|
||||
if(brute)
|
||||
@@ -138,7 +138,7 @@
|
||||
burn = max(0, burn - can_inflict)
|
||||
//If there are still hurties to dispense
|
||||
if (burn || brute)
|
||||
if (status & ORGAN_ROBOT)
|
||||
if (status & (ORGAN_ROBOT|ORGAN_PEG))
|
||||
droplimb(1) //Robot limbs just kinda fail at full damage.
|
||||
else
|
||||
//List organs we can pass it to
|
||||
@@ -165,6 +165,10 @@
|
||||
if(status & ORGAN_ROBOT && !robo_repair)
|
||||
return
|
||||
|
||||
// Can't fix peglegs.
|
||||
if(status & ORGAN_PEG)
|
||||
return
|
||||
|
||||
//Heal damage on the individual wounds
|
||||
for(var/datum/wound/W in wounds)
|
||||
if(brute == 0 && burn == 0)
|
||||
@@ -222,7 +226,7 @@
|
||||
|
||||
//Possibly trigger an internal wound, too.
|
||||
var/local_damage = brute_dam + burn_dam + damage
|
||||
if(damage > 10 && type != BURN && local_damage > 20 && prob(damage) && !(status & ORGAN_ROBOT))
|
||||
if(damage > 10 && type != BURN && local_damage > 20 && prob(damage) && !(status & (ORGAN_ROBOT|ORGAN_PEG)))
|
||||
var/datum/wound/internal_bleeding/I = new (15)
|
||||
wounds += I
|
||||
owner.custom_pain("You feel something rip in your [display_name]!", 1)
|
||||
@@ -266,7 +270,7 @@
|
||||
return
|
||||
|
||||
//Bone fracurtes
|
||||
if(config.bones_can_break && brute_dam > min_broken_damage * config.organ_health_multiplier && !(status & ORGAN_ROBOT))
|
||||
if(config.bones_can_break && brute_dam > min_broken_damage * config.organ_health_multiplier && !(status & (ORGAN_ROBOT|ORGAN_PEG)))
|
||||
src.fracture()
|
||||
if(!(status & ORGAN_BROKEN))
|
||||
perma_injury = 0
|
||||
@@ -281,6 +285,10 @@
|
||||
#define GANGREN_LEVEL_TERMINAL 2500
|
||||
#define GERM_TRANSFER_AMOUNT germ_level/500
|
||||
/datum/organ/external/proc/update_germs()
|
||||
if(status & (ORGAN_ROBOT|ORGAN_PEG)) //how does robot limb have da germs?
|
||||
if(germ_level > 0)
|
||||
germ_level = 0
|
||||
return
|
||||
if(germ_level > 0 && owner.bodytemperature >= 170) //cryo stops germs from moving and doing their bad stuffs
|
||||
//Syncing germ levels with external wounds
|
||||
for(var/datum/wound/W in wounds)
|
||||
@@ -305,17 +313,17 @@
|
||||
if (prob(10)) //Spreading the fun
|
||||
if (children) //To child organs
|
||||
for (var/datum/organ/external/child in children)
|
||||
if (!(child.status & (ORGAN_DEAD|ORGAN_DESTROYED|ORGAN_ROBOT)))
|
||||
if (!(child.status & (ORGAN_DEAD|ORGAN_DESTROYED|ORGAN_ROBOT|ORGAN_PEG)))
|
||||
child.germ_level += round(GERM_TRANSFER_AMOUNT)
|
||||
if (parent)
|
||||
if (!(parent.status & (ORGAN_DEAD|ORGAN_DESTROYED|ORGAN_ROBOT)))
|
||||
if (!(parent.status & (ORGAN_DEAD|ORGAN_DESTROYED|ORGAN_ROBOT|ORGAN_PEG)))
|
||||
parent.germ_level += round(GERM_TRANSFER_AMOUNT)
|
||||
|
||||
|
||||
//Updating wounds. Handles wound natural I had some free spachealing, internal bleedings and infections
|
||||
//Updating wounds. Handles wound natural healing, internal bleedings and infections
|
||||
/datum/organ/external/proc/update_wounds()
|
||||
|
||||
if((status & ORGAN_ROBOT)) //Robotic limbs don't heal or get worse.
|
||||
if((status & (ORGAN_ROBOT|ORGAN_PEG))) //Robotic limbs don't heal or get worse.
|
||||
return
|
||||
|
||||
for(var/datum/wound/W in wounds)
|
||||
@@ -371,7 +379,7 @@
|
||||
else if(W.damage_type == BURN)
|
||||
burn_dam += W.damage
|
||||
|
||||
if(!(status & ORGAN_ROBOT) && W.bleeding())
|
||||
if(!(status & (ORGAN_ROBOT|ORGAN_PEG)) && W.bleeding())
|
||||
W.bleed_timer--
|
||||
status |= ORGAN_BLEEDING
|
||||
|
||||
@@ -474,11 +482,23 @@
|
||||
if(LEG_RIGHT)
|
||||
if(status & ORGAN_ROBOT)
|
||||
organ = new /obj/item/robot_parts/r_leg(owner.loc)
|
||||
else if(status & ORGAN_PEG)
|
||||
//organ = new /obj/item/stack/sheet/wood(owner.loc)
|
||||
owner.visible_message(\
|
||||
"\red \The [owner]'s [display_name] snaps!",\
|
||||
"\red <b>Your [display_name] snaps!</b>",\
|
||||
"You hear wood being split.")
|
||||
else
|
||||
organ= new /obj/item/weapon/organ/r_leg(owner.loc, owner)
|
||||
if(LEG_LEFT)
|
||||
if(status & ORGAN_ROBOT)
|
||||
organ = new /obj/item/robot_parts/l_leg(owner.loc)
|
||||
else if(status & ORGAN_PEG)
|
||||
//organ = new /obj/item/stack/sheet/wood(owner.loc)
|
||||
owner.visible_message(\
|
||||
"\red \The [owner]'s [display_name] snaps!",\
|
||||
"\red <b>Your [display_name] snaps!</b>",\
|
||||
"You hear wood being split.")
|
||||
else
|
||||
organ= new /obj/item/weapon/organ/l_leg(owner.loc, owner)
|
||||
if(HAND_RIGHT)
|
||||
@@ -567,11 +587,24 @@
|
||||
src.status &= ~ORGAN_SPLINTED
|
||||
src.status &= ~ORGAN_ATTACHABLE
|
||||
src.status &= ~ORGAN_DESTROYED
|
||||
src.status &= ~ORGAN_PEG
|
||||
src.status |= ORGAN_ROBOT
|
||||
for (var/datum/organ/external/T in children)
|
||||
if(T)
|
||||
T.robotize()
|
||||
|
||||
/datum/organ/external/proc/peggify()
|
||||
src.status &= ~ORGAN_BROKEN
|
||||
src.status &= ~ORGAN_BLEEDING
|
||||
src.status &= ~ORGAN_SPLINTED
|
||||
src.status &= ~ORGAN_ATTACHABLE
|
||||
src.status &= ~ORGAN_DESTROYED
|
||||
src.status &= ~ORGAN_ROBOT
|
||||
src.status |= ORGAN_PEG
|
||||
for (var/datum/organ/external/T in children)
|
||||
if(T)
|
||||
T.droplimb(1,1)
|
||||
|
||||
/datum/organ/external/proc/mutate()
|
||||
src.status |= ORGAN_MUTATED
|
||||
owner.update_body()
|
||||
@@ -597,11 +630,12 @@
|
||||
if(isFat && has_fat)
|
||||
fat="_fat"
|
||||
var/icon_state="[icon_name][gender][fat]"
|
||||
//testing("[src].get_icon('[gender]', '[fat]') = /icon([owner.race_icon], [icon_state])")
|
||||
var/baseicon=owner.race_icon
|
||||
if (status & ORGAN_MUTATED)
|
||||
return new /icon(owner.deform_icon, icon_state)
|
||||
else
|
||||
return new /icon(owner.race_icon, icon_state)
|
||||
baseicon=owner.deform_icon
|
||||
if (status & ORGAN_PEG)
|
||||
baseicon='icons/mob/human_races/o_peg.dmi'
|
||||
return new /icon(baseicon, icon_state)
|
||||
|
||||
|
||||
/datum/organ/external/proc/is_usable()
|
||||
@@ -708,13 +742,15 @@
|
||||
|
||||
/datum/organ/external/head/get_icon()
|
||||
if (!owner)
|
||||
return ..()
|
||||
return ..()
|
||||
var/g = "m"
|
||||
if(owner.gender == FEMALE) g = "f"
|
||||
var/baseicon=owner.race_icon
|
||||
if (status & ORGAN_MUTATED)
|
||||
. = new /icon(owner.deform_icon, "[icon_name]_[g]")
|
||||
else
|
||||
. = new /icon(owner.race_icon, "[icon_name]_[g]")
|
||||
baseicon=owner.deform_icon
|
||||
if (status & ORGAN_PEG)
|
||||
baseicon='icons/mob/human_races/o_peg.dmi'
|
||||
return new /icon(baseicon, "[icon_name]_[g]")
|
||||
|
||||
/datum/organ/external/head/take_damage(brute, burn, sharp, used_weapon = null, list/forbidden_limbs = list())
|
||||
..(brute, burn, sharp, used_weapon, forbidden_limbs)
|
||||
|
||||
@@ -267,7 +267,7 @@
|
||||
***************/
|
||||
|
||||
/obj/item/device/videocam
|
||||
name = "camera"
|
||||
name = "video camera"
|
||||
icon = 'icons/obj/items.dmi'
|
||||
desc = "video camera that can send live feed to the entertainment network."
|
||||
icon_state = "videocam"
|
||||
|
||||
@@ -269,6 +269,7 @@ client/proc/add_gun_icons()
|
||||
screen += usr.gun_run_icon
|
||||
|
||||
client/proc/remove_gun_icons()
|
||||
if(!usr) return
|
||||
screen -= usr.item_use_icon
|
||||
screen -= usr.gun_move_icon
|
||||
if (target_can_move)
|
||||
|
||||
@@ -163,3 +163,40 @@
|
||||
user.visible_message("\red [user]'s hand slips, damaging connectors on [target]'s [affected.display_name]!", \
|
||||
"\red Your hand slips, damaging connectors on [target]'s [affected.display_name]!")
|
||||
target.apply_damage(10, BRUTE, affected)
|
||||
|
||||
/datum/surgery_step/limb/attach_plank
|
||||
allowed_tools = list(/obj/item/stack/sheet/wood=100)
|
||||
can_infect = 0
|
||||
|
||||
min_duration = 80
|
||||
max_duration = 100
|
||||
|
||||
can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
var/obj/item/robot_parts/p = tool
|
||||
if (p.part)
|
||||
if (!(target_zone in p.part))
|
||||
return 0
|
||||
var/datum/organ/external/affected = target.get_organ(target_zone)
|
||||
return ..() && affected.status & ORGAN_ATTACHABLE
|
||||
|
||||
begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
var/datum/organ/external/affected = target.get_organ(target_zone)
|
||||
user.visible_message("[user] starts attaching [tool] where [target]'s [affected.display_name] used to be.", \
|
||||
"You start attaching [tool] where [target]'s [affected.display_name] used to be.")
|
||||
|
||||
end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
var/datum/organ/external/affected = target.get_organ(target_zone)
|
||||
user.visible_message("\blue [user] has attached [tool] where [target]'s [affected.display_name] used to be.", \
|
||||
"\blue You have attached [tool] where [target]'s [affected.display_name] used to be.")
|
||||
affected.peggify()
|
||||
target.update_body()
|
||||
target.updatehealth()
|
||||
target.UpdateDamageIcon()
|
||||
var/obj/item/stack/sheet/wood/peg = tool
|
||||
peg.use(1)
|
||||
|
||||
fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
|
||||
var/datum/organ/external/affected = target.get_organ(target_zone)
|
||||
user.visible_message("\red [user]'s hand slips, damaging connectors on [target]'s [affected.display_name]!", \
|
||||
"\red Your hand slips, damaging connectors on [target]'s [affected.display_name]!")
|
||||
target.apply_damage(10, BRUTE, affected)
|
||||
@@ -71,8 +71,8 @@ proc/spread_germs_to_organ(datum/organ/external/E, mob/living/carbon/human/user)
|
||||
var/germ_level = user.germ_level
|
||||
if(user.gloves)
|
||||
germ_level = user.gloves.germ_level
|
||||
|
||||
E.germ_level = max(germ_level,E.germ_level) //as funny as scrubbing microbes out with clean gloves is - no.
|
||||
if(!(E.status & (ORGAN_ROBOT|ORGAN_PEG))) //Germs on robotic limbs bad
|
||||
E.germ_level = max(germ_level,E.germ_level) //as funny as scrubbing microbes out with clean gloves is - no.
|
||||
|
||||
proc/do_surgery(mob/living/M, mob/living/user, obj/item/tool)
|
||||
if(!istype(M,/mob/living/carbon))
|
||||
|
||||
Reference in New Issue
Block a user