Skip to content

Commit

Permalink
Merge pull request #2903 from Aurorablade/OrganRefactor
Browse files Browse the repository at this point in the history
[HOLY SHIT!]Charlie, lets go to candy mountain, charlie
  • Loading branch information
Fox-McCloud committed Mar 5, 2016
2 parents 47bfb28 + fe3eb50 commit ab490f7
Show file tree
Hide file tree
Showing 138 changed files with 4,370 additions and 2,412 deletions.
4 changes: 2 additions & 2 deletions _maps/map_files/MetaStation/MetaStation.v41A.II.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -383,7 +383,7 @@
"ahs" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/item/weapon/pickaxe,/obj/item/weapon/storage/firstaid/toxin,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
"aht" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/item/weapon/scalpel,/obj/item/stack/cable_coil,/obj/item/weapon/storage/firstaid/regular,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
"ahu" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/item/weapon/circular_saw,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
"ahv" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/optable,/obj/item/organ/brain,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
"ahv" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/optable,/obj/item/organ/internal/brain,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
"ahw" = (/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id_tag = "voxshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/shuttle/window{dir = 4; icon = 'icons/turf/shuttle.dmi'; icon_state = "window5_mid"; tag = "icon-window5 (EAST)"},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox)
"ahx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/auxsolarport)
"ahy" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison)
Expand Down Expand Up @@ -7701,7 +7701,7 @@
"cSe" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/chapel/office)
"cSf" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/chapel/office)
"cSg" = (/obj/machinery/door/morgue{name = "Relic Closet"; req_access_txt = "22"},/turf/simulated/floor/plasteel{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/chapel/office)
"cSh" = (/obj/structure/table/woodentable,/obj/item/weapon/spellbook/oneuse/smoke{name = "mysterious old book of "},/obj/item/weapon/reagent_containers/food/drinks/bottle/holywater{name = "flask of holy water"; pixel_x = -2; pixel_y = 2},/obj/item/weapon/nullrod{pixel_x = 4},/obj/item/organ/heart,/obj/item/device/soulstone,/turf/simulated/floor/plasteel{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/chapel/office)
"cSh" = (/obj/structure/table/woodentable,/obj/item/weapon/spellbook/oneuse/smoke{name = "mysterious old book of "},/obj/item/weapon/reagent_containers/food/drinks/bottle/holywater{name = "flask of holy water"; pixel_x = -2; pixel_y = 2},/obj/item/weapon/nullrod{pixel_x = 4},/obj/item/organ/internal/heart,/obj/item/device/soulstone,/turf/simulated/floor/plasteel{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/chapel/office)
"cSi" = (/obj/machinery/door/airlock/maintenance{name = "Chapel Maintenance Access "; req_access_txt = "0"; req_one_access_txt = "12;27"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"})
"cSj" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/camera{c_tag = "Departure Lounge - Port Fore"; dir = 4; network = list("SS13")},/obj/structure/flora/kirbyplants{icon_state = "plant-24"; layer = 4.1; tag = "icon-plant-24"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
"cSk" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
Expand Down
2 changes: 1 addition & 1 deletion _maps/map_files/cyberiad/cyberiad.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -8471,7 +8471,7 @@
"dha" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/item/broken_device,/obj/item/robot_parts/chest,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
"dhb" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/item/weapon/scalpel,/obj/item/stack/cable_coil,/obj/item/weapon/storage/firstaid/regular,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
"dhc" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/item/weapon/pickaxe,/obj/item/weapon/storage/firstaid/toxin,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
"dhd" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/optable,/obj/item/organ/brain,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
"dhd" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/optable,/obj/item/organ/internal/brain,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
"dhe" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/item/weapon/circular_saw,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
"dhf" = (/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id_tag = "voxshutters"; name = "Blast Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/shuttle/window{dir = 4; icon = 'icons/turf/shuttle.dmi'; icon_state = "window5_mid"; tag = "icon-window5 (EAST)"},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox)
"dhg" = (/obj/item/weapon/storage/toolbox/syndicate,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
Expand Down
4 changes: 3 additions & 1 deletion code/__HELPERS/global_lists.dm
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,9 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/socks, socks_list, socks_m, socks_f)

init_subtypes(/datum/surgery_step, surgery_steps)
sort_surgeries()

for(var/path in (subtypesof(/datum/surgery)))
surgeries_list += new path()

init_datum_subtypes(/datum/job, joblist, list(/datum/job/ai, /datum/job/cyborg), "title")
init_datum_subtypes(/datum/superheroes, all_superheroes, null, "name")
Expand Down
1 change: 1 addition & 0 deletions code/_globalvars/lists/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -72,4 +72,5 @@ var/global/list/blocked_mobs = list(/mob/living/simple_animal,
var/global/list/med_hud_users = list()
var/global/list/sec_hud_users = list()
var/global/list/antag_hud_users = list()
var/global/list/surgeries_list = list()
//items that ask to be called every cycle
2 changes: 1 addition & 1 deletion code/_globalvars/lists/objects.dm
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,4 @@ var/global/list/power_monitors = list()

var/global/list/beacons = list()
var/global/list/shuttle_caller_list = list() //list of all communication consoles and AIs, for automatic shuttle calls when there are none.
var/global/list/tracked_implants = list() //list of all current implants that are tracked to work out what sort of trek everyone is on. Sadly not on lavaworld not implemented...
var/global/list/tracked_implants = list() //list of all current implants that are tracked to work out what sort of trek everyone is on. Sadly not on lavaworld not implemented...
16 changes: 16 additions & 0 deletions code/_onclick/hud/action.dm
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,22 @@
/datum/action/item_action/hands_free
check_flags = AB_CHECK_ALIVE|AB_CHECK_INSIDE

///prset for organ actions
/datum/action/item_action/organ_action
check_flags = AB_CHECK_ALIVE

/datum/action/item_action/organ_action/CheckRemoval(mob/living/carbon/user)
if(!iscarbon(user))
return 1
if(target in user.internal_organs)
return 0
return 1

/datum/action/item_action/organ_action/IsAvailable()
var/obj/item/organ/internal/I = target
if(!I.owner)
return 0
return ..()

//Preset for spells
/datum/action/spell_action
Expand Down
17 changes: 15 additions & 2 deletions code/_onclick/item_attack.dm
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,21 @@
var/messagesource = M

if (can_operate(M)) //Checks if mob is lying down on table for surgery
if (do_surgery(M,user,src))
return 0
if(istype(src,/obj/item/robot_parts))//popup ovveride for direct attach
if(!attempt_initiate_surgery(src, M, user,1))
return 0
else
return 1
if(istype(src,/obj/item/weapon/screwdriver) && M.get_species() == "Machine")
if(!attempt_initiate_surgery(src, M, user))
return 0
else
return 1
if(is_sharp(src))
if(!attempt_initiate_surgery(src, M, user))
return 0
else
return 1

if (istype(M,/mob/living/carbon/brain))
messagesource = M:container
Expand Down
9 changes: 4 additions & 5 deletions code/datums/datumvars.dm
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

// reference: /client/proc/modify_variables(var/atom/O, var/param_var_name = null, var/autodetect_class = 0)

/client/proc/debug_variables(datum/D in world)
Expand Down Expand Up @@ -992,8 +991,8 @@ body
if(locate(new_organ) in M.internal_organs)
usr << "Mob already has that organ."
return

new new_organ(M)
var/obj/item/organ/internal/organ = new new_organ
organ.insert(M)
message_admins("[key_name_admin(usr)] has given [key_name_admin(M)] the organ [new_organ]")
log_admin("[key_name(usr)] has given [key_name(M)] the organ [new_organ]")

Expand All @@ -1005,7 +1004,7 @@ body
usr << "This can only be done to instances of type /mob/living/carbon"
return

var/obj/item/organ/rem_organ = input("Please choose an organ to remove.","Organ",null) as null|anything in M.internal_organs
var/obj/item/organ/internal/rem_organ = input("Please choose an organ to remove.","Organ",null) as null|anything in M.internal_organs

if(!M)
usr << "Mob doesn't exist anymore"
Expand All @@ -1016,7 +1015,7 @@ body
return

usr << "Removed [rem_organ] from [M]."
rem_organ.removed()
rem_organ.remove(M)
message_admins("[key_name_admin(usr)] has removed the organ [rem_organ] from [key_name_admin(M)]")
log_admin("[key_name(usr)] has removed the organ [rem_organ] from [key_name(M)]")
qdel(rem_organ)
Expand Down
4 changes: 2 additions & 2 deletions code/datums/hud.dm
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ var/datum/atom_hud/huds = list( \
/datum/atom_hud/proc/remove_hud_from(mob/M)
if(!M)
return
//if(src in M.permanent_huds)//I will deal with you later -Fethas
// return
if(src in M.permanent_huds)//I will deal with you later -Fethas
return
for(var/atom/A in hudatoms)
remove_from_single_hud(M, A)
hudusers -= M
Expand Down
7 changes: 0 additions & 7 deletions code/datums/spells/inflict_handler.dm
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,6 @@
switch(destroys)
if("gib")
target.gib()
if("gib_brain")
if(ishuman(target))
var/mob/living/carbon/C = target
if(C.brain_op_stage != 4) // Their brain is already taken out
var/obj/item/organ/brain/B = new(C.loc)
B.transfer_identity(C)
target.gib()
if("disintegrate")
target.dust()

Expand Down
2 changes: 1 addition & 1 deletion code/datums/spells/summonitem.dm
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
if(!marked_item) //linking item to the spell
message = "<span class='notice'>"
for(var/obj/item in hand_items)
if(istype(item, /obj/item/organ/brain)) //Yeah, sadly this doesn't work due to the organ system.
if(istype(item, /obj/item/organ/internal/brain)) //Yeah, sadly this doesn't work due to the organ system.
break
marked_item = item
message += "You mark [item] for recall.</span>"
Expand Down
4 changes: 2 additions & 2 deletions code/game/asteroid.dm
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ var/global/max_secret_rooms = 6
walltypes = list(/turf/simulated/wall/r_wall=2,/turf/simulated/wall=2,/turf/simulated/mineral/random/high_chance=1)
floortypes = list(/turf/simulated/floor,/turf/simulated/floor/engine)
treasureitems = list(/obj/machinery/bot/medbot/mysterious=1, /obj/item/weapon/circular_saw=1, /obj/structure/closet/critter/cat=2)
fluffitems = list(/obj/effect/decal/cleanable/blood=5,/obj/item/organ/appendix=2,/obj/structure/closet/crate/freezer=2,
fluffitems = list(/obj/effect/decal/cleanable/blood=5,/obj/item/organ/internal/appendix=2,/obj/structure/closet/crate/freezer=2,
/obj/machinery/optable=1,/obj/item/weapon/scalpel=1,/obj/item/weapon/storage/firstaid/regular=3,
/obj/item/weapon/tank/anesthetic=1, /obj/item/weapon/surgical_drapes=2, /obj/item/device/mass_spectrometer/adv=1,/obj/item/clothing/glasses/hud/health=1)

Expand All @@ -72,7 +72,7 @@ var/global/max_secret_rooms = 6
treasureitems = list(/obj/item/device/soulstone=1, /obj/item/clothing/suit/space/cult=1, /obj/item/weapon/bedsheet/cult=2,
/obj/item/clothing/suit/cultrobes=2, /mob/living/simple_animal/hostile/creature=3)
fluffitems = list(/obj/effect/gateway=1,/obj/effect/gibspawner=1,/obj/structure/cult/talisman=1,/obj/item/toy/crayon/red=2,
/obj/item/organ/heart=2, /obj/effect/decal/cleanable/blood=4,/obj/structure/table/woodentable=2,/obj/item/weapon/ectoplasm=3,
/obj/item/organ/internal/heart=2, /obj/effect/decal/cleanable/blood=4,/obj/structure/table/woodentable=2,/obj/item/weapon/ectoplasm=3,
/obj/item/clothing/head/helmet/space/cult=1, /obj/item/clothing/shoes/cult=1)

if("wizden")
Expand Down
78 changes: 70 additions & 8 deletions code/game/gamemodes/changeling/powers/augmented_eyesight.dm
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,80 @@
/obj/effect/proc_holder/changeling/augmented_eyesight
name = "Augmented Eyesight"
desc = "Creates heat receptors in our eyes and dramatically increases light sensing ability."
helptext = "Grants us night vision and thermal vision. It may be toggled on or off."
helptext = "Grants us thermal vision or flash protection. We will become a lot more vulnerable to flash-based devices while thermal vision is active."
chemical_cost = 0
dna_cost = 2 //Would be 1 without thermal vision
var/active = 0 //Whether or not vision is enhanced

/obj/effect/proc_holder/changeling/augmented_eyesight/sting_action(mob/living/carbon/human/user)
if(!istype(user))
return
if(user.get_int_organ(/obj/item/organ/internal/cyberimp/eyes/thermals/ling))
user << "<span class='notice'>Our eyes are protected from flashes.</span>"
var/obj/item/organ/internal/cyberimp/eyes/O = new /obj/item/organ/internal/cyberimp/eyes/shield/ling()
O.insert(user)

/obj/effect/proc_holder/changeling/augmented_eyesight/sting_action(var/mob/user)
if(!user.vision_type)
user << "<span class='notice'>We feel a minute twitch in our eyes, and darkness creeps away.</span>"
user.vision_type = new /datum/vision_override/nightvision/thermals/ling_augmented_eyesight
else
user << "<span class='notice'>Our vision dulls. Shadows gather.</span>"
user.vision_type = null
var/obj/item/organ/internal/cyberimp/eyes/O = new /obj/item/organ/internal/cyberimp/eyes/thermals/ling()
O.insert(user)

return 1


/obj/effect/proc_holder/changeling/augmented_eyesight/on_refund(mob/user)
user.vision_type = null
var/obj/item/organ/internal/cyberimp/eyes/O = user.get_organ_slot("eye_ling")
if(O)
O.remove(user)
qdel(O)





/obj/item/organ/internal/cyberimp/eyes/shield/ling
name = "protective membranes"
desc = "These variable transparency organic membranes will protect you from welders and flashes and heal your eye damage."
icon_state = "ling_eyeshield"
eye_colour = null
implant_overlay = null
origin_tech = "biotech=4"
slot = "eye_ling"
status = 0

/obj/item/organ/internal/cyberimp/eyes/shield/ling/on_life()
..()
var/obj/item/organ/internal/eyes/E = owner.get_int_organ(/obj/item/organ/internal/eyes)
if(owner.eye_blind || owner.eye_blurry || (owner.sdisabilities & BLIND) || (owner.disabilities & NEARSIGHTED) || (E.damage > 0))
owner.reagents.add_reagent("oculine", 1)

/obj/item/organ/internal/cyberimp/eyes/shield/ling/prepare_eat()
var/obj/S = ..()
S.reagents.add_reagent("oculine", 15)
return S


/obj/item/organ/internal/cyberimp/eyes/thermals/ling
name = "heat receptors"
desc = "These heat receptors dramatically increases eyes light sensing ability."
icon_state = "ling_thermal"
eye_colour = null
implant_overlay = null
origin_tech = "biotech=5;magnets=5"
slot = "eye_ling"
status = 0
aug_message = "We feel a minute twitch in our eyes, and darkness creeps away."

/obj/item/organ/internal/cyberimp/eyes/thermals/ling/emp_act(severity)
return

/obj/item/organ/internal/cyberimp/eyes/thermals/ling/insert(mob/living/carbon/M, special = 0)
..()
if(ishuman(owner))
var/mob/living/carbon/human/H = owner
H.weakeyes = 1

/obj/item/organ/internal/cyberimp/eyes/thermals/ling/remove(mob/living/carbon/M, special = 0)
if(ishuman(owner))
var/mob/living/carbon/human/H = owner
H.weakeyes = 0
..()
9 changes: 9 additions & 0 deletions code/game/gamemodes/changeling/powers/panacea.dm
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,15 @@
/obj/effect/proc_holder/changeling/panacea/sting_action(var/mob/user)

user << "<span class='notice'>We cleanse impurities from our form.</span>"

var/obj/item/organ/internal/body_egg/egg = user.get_int_organ(/obj/item/organ/internal/body_egg)
if(egg)
egg.remove(user)
if(iscarbon(user))
var/mob/living/carbon/human/C = user
C.vomit()
egg.forceMove(get_turf(user))

user.reagents.add_reagent("mutadone", 10)
user.reagents.add_reagent("potass_iodide", 10)
user.reagents.add_reagent("charcoal", 20)
Expand Down
2 changes: 1 addition & 1 deletion code/game/gamemodes/changeling/powers/revive.dm
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
O.trace_chemicals = list()
O.wounds = list()
O.wound_update_accuracy = 1
for(var/obj/item/organ/IO in H.internal_organs)
for(var/obj/item/organ/internal/IO in H.internal_organs)
IO.damage = 0
IO.trace_chemicals = list()
H.updatehealth()
Expand Down
4 changes: 2 additions & 2 deletions code/game/gamemodes/cult/runes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -582,8 +582,8 @@ var/list/sacrificed = list()
if(!(iscultist(V)))
victims += V//Checks for cult status and mob type
for(var/obj/item/I in src.loc)//Checks for MMIs/brains/Intellicards
if(istype(I,/obj/item/organ/brain))
var/obj/item/organ/brain/B = I
if(istype(I,/obj/item/organ/internal/brain))
var/obj/item/organ/internal/brain/B = I
victims += B.brainmob
else if(istype(I,/obj/item/device/mmi))
var/obj/item/device/mmi/B = I
Expand Down
14 changes: 10 additions & 4 deletions code/game/gamemodes/miniantags/slaughter/slaughter.dm
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@
new /obj/effect/decal/cleanable/blood (src.loc)
new /obj/effect/gibspawner/generic(get_turf(src))
new /obj/effect/gibspawner/generic(get_turf(src))
new /obj/item/weapon/demonheart(src.loc)
new /obj/item/organ/internal/heart/demonheart(src.loc)
playsound(get_turf(src),'sound/misc/demon_dies.ogg', 200, 1)
visible_message("<span class='danger'>[src] screams in anger as it collapses into a puddle of viscera, its most recent meals spilling out of it.</span>")
for(var/mob/living/M in consumed_mobs)
Expand Down Expand Up @@ -138,15 +138,15 @@
//////////The Loot

//The loot from killing a slaughter demon - can be consumed to allow the user to blood crawl
/obj/item/weapon/demonheart
/obj/item/organ/internal/heart/demonheart
name = "demon heart"
desc = "Still it beats furiously, emanating an aura of utter hate."
icon = 'icons/obj/surgery.dmi'
icon_state = "demon_heart"
origin_tech = "combat=5;biotech=8"


/obj/item/weapon/demonheart/attack_self(mob/living/user)
/obj/item/organ/internal/heart/demonheart/attack_self(mob/living/user)
user.visible_message("<span class='warning'>[user] raises [src] to their mouth and tears into it with their teeth!</span>", \
"<span class='danger'>An unnatural hunger consumes you. You raise [src] to your mouth and devour it!</span>")
playsound(user, 'sound/misc/Demon_consume.ogg', 50, 1)
Expand All @@ -159,8 +159,14 @@
user.bloodcrawl = BLOODCRAWL_EAT
else
user <<"<span class='warning'>...and you don't feel any different.</span>"
qdel(src)

user.drop_item()
insert(user) //Consuming the heart literally replaces your heart with a demon heart. H A R D C O R E

/obj/item/organ/internal/heart/demonheart/remove(mob/living/carbon/M, special = 0)
..()
if(M.mind)
M.bloodcrawl = 0

//Objectives and helpers.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ datum/directive/ipc_virus/get_remaining_orders()

return text

/hook/debrain/proc/debrain_directive(obj/item/organ/brain/B)
/hook/debrain/proc/debrain_directive(var/obj/item/organ/internal/brain/B)
var/datum/directive/ipc_virus/D = get_directive("ipc_virus")
if (!D) return 1

Expand Down
4 changes: 2 additions & 2 deletions code/game/machinery/adv_med.dm
Original file line number Diff line number Diff line change
Expand Up @@ -405,7 +405,7 @@
occupantData["extOrgan"] = extOrganData

var/intOrganData[0]
for(var/obj/item/organ/I in H.internal_organs)
for(var/obj/item/organ/internal/I in H.internal_organs)
var/organData[0]
organData["name"] = I.name
organData["desc"] = I.desc
Expand Down Expand Up @@ -589,7 +589,7 @@
else
dat += "<td>[e.name]</td><td>-</td><td>-</td><td>Not Found</td>"
dat += "</tr>"
for(var/obj/item/organ/i in occupant.internal_organs)
for(var/obj/item/organ/internal/i in occupant.internal_organs)
var/mech = i.desc
var/infection = "None"
switch (i.germ_level)
Expand Down
2 changes: 1 addition & 1 deletion code/game/machinery/cloning.dm
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@
if ((M.stat != 2) || (!M.client))
continue
//They need a brain!
if ((istype(M, /mob/living/carbon/human)) && (M:brain_op_stage >= 4.0))
if(istype(M, /mob/living/carbon/human) && !M.get_int_organ(/obj/item/organ/internal/brain))
continue

if (M.ckey == find_key)
Expand Down

0 comments on commit ab490f7

Please sign in to comment.