Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[HOLY SHIT!]Charlie, lets go to candy mountain, charlie #2903

Merged
merged 94 commits into from
Mar 5, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
80eb828
this shit dosen't even compile yet...
Aurorablade Dec 20, 2015
4b7253b
commit so i can swap branches...
Aurorablade Dec 22, 2015
046b0b9
almost....
Aurorablade Dec 23, 2015
96c5a5c
might as well fix fonglict
Aurorablade Dec 24, 2015
5d7aa0a
missed one
Aurorablade Dec 24, 2015
1a70e9c
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise int…
Aurorablade Dec 24, 2015
027d966
IT COMPILES
Aurorablade Dec 25, 2015
4e1f63d
wot
Aurorablade Dec 25, 2015
2146cc0
things
Aurorablade Dec 26, 2015
5de62e2
conflicts AHHHHHHHHHHHHHHH
Aurorablade Dec 27, 2015
648ede2
AAAAAAAAAAAAAAAHHHHHHHHHHHHHHHH
Aurorablade Dec 27, 2015
b58ed5a
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise int…
Aurorablade Dec 27, 2015
92e15c1
BREAK ALL THE THINGS
Aurorablade Dec 31, 2015
a4c420c
Conflict fixing time
Aurorablade Jan 2, 2016
bd19dc6
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise int…
Aurorablade Jan 2, 2016
948adea
Added Asses as an organ
Aurorablade Jan 4, 2016
2623f75
progress
Aurorablade Jan 7, 2016
87d2023
so you can almost perform surgery with a claymore
Aurorablade Jan 8, 2016
678a2e9
commit so i can go bugfix and do other things
Aurorablade Jan 9, 2016
ba87398
conflict fixes
Aurorablade Jan 15, 2016
124fc7c
urgh i update the wrong file...hush
Aurorablade Jan 15, 2016
56d9a12
too early for this shit
Aurorablade Jan 15, 2016
5f7c634
Revert "too early for this shit"
Aurorablade Jan 15, 2016
b691b71
Revert "urgh i update the wrong file...hush"
Aurorablade Jan 15, 2016
0fa96f2
Revert "conflict fixes"
Aurorablade Jan 15, 2016
9b80140
way to early...
Aurorablade Jan 15, 2016
51013b9
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise int…
Aurorablade Jan 15, 2016
cc8f402
progress
Aurorablade Jan 22, 2016
363da58
being conflict fix
Aurorablade Jan 22, 2016
95dca71
Merge branch 'OrganRefactor' of https://github.com/Aurorablade/Paradi…
Aurorablade Jan 22, 2016
f352c29
end conflict fix
Aurorablade Jan 22, 2016
20b1506
the map errors don't have a heart...
Aurorablade Jan 22, 2016
42d8ac6
xeno organ fail still...
Aurorablade Jan 23, 2016
53f4102
home streach.
Aurorablade Jan 27, 2016
5424446
Begin Conflict fixes(1/2)
Aurorablade Jan 27, 2016
9b5f844
begin conflict fix (2/2)
Aurorablade Jan 27, 2016
e9c2d27
being conflict fix(3/2)
Aurorablade Jan 27, 2016
b2881bd
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise int…
Aurorablade Jan 27, 2016
3a39d9d
end conflict fixes
Aurorablade Jan 27, 2016
c4d151c
you buy organ, yaya?
Aurorablade Jan 31, 2016
e926935
onward to merge conflicts!
Aurorablade Feb 2, 2016
8daac69
i hate this shit right here...
Aurorablade Feb 2, 2016
276e5a0
Merge conflicts GO
Aurorablade Feb 2, 2016
25876fd
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise int…
Aurorablade Feb 2, 2016
6001f3d
ayyy merge conflicts fix
Aurorablade Feb 3, 2016
0fc841f
can i sleep uyet
Aurorablade Feb 3, 2016
12b3ccb
why
Aurorablade Feb 5, 2016
e1899e4
almost
Aurorablade Feb 6, 2016
e5f5b68
fixed slime surgery
Aurorablade Feb 7, 2016
3b90cb7
almost ready for review
Aurorablade Feb 8, 2016
eca3edf
LIMBSTUMPS
Aurorablade Feb 9, 2016
5e8fa9d
commiting before fixing merge conflicts
Aurorablade Feb 11, 2016
0f77eb0
Conflicts
Aurorablade Feb 11, 2016
545d3ab
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise int…
Aurorablade Feb 11, 2016
b42d865
almost ready for review
Aurorablade Feb 12, 2016
c501100
its done
Aurorablade Feb 12, 2016
7cb4534
Dionas have a liver
Aurorablade Feb 13, 2016
3f2ac37
Well that was fast..conflict fix
Aurorablade Feb 13, 2016
9a55bb1
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise int…
Aurorablade Feb 13, 2016
400ed30
issue with identity transfer
Aurorablade Feb 13, 2016
d532473
gibs rustled, limbs logged
Aurorablade Feb 14, 2016
066fafa
spawning..no not in that way..
Aurorablade Feb 14, 2016
08d7976
AAHHHHHHHHHHHHHHHHHH
Aurorablade Feb 15, 2016
d81fbaf
riohgeroi
Aurorablade Feb 15, 2016
e725613
Fixes organ DNA and transfer
marlyn-x86 Feb 16, 2016
01ab404
Merge pull request #11 from Crazylemon64/OrganRefactor
Aurorablade Feb 16, 2016
29293dd
look ma no brain
Aurorablade Feb 18, 2016
3c952cc
MERGE CONFLICT TIME
Aurorablade Feb 18, 2016
b766120
activateing code delta
Aurorablade Feb 18, 2016
3bd1590
l-look at you hacker....
Aurorablade Feb 18, 2016
570dd61
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise int…
Aurorablade Feb 19, 2016
7e07369
sgut w
Aurorablade Feb 19, 2016
7d612b0
jobs done
Aurorablade Feb 19, 2016
07381e8
just a jump to the left...
Aurorablade Feb 20, 2016
1b4fe03
....NOTHING TO SEE HERE
Aurorablade Feb 20, 2016
d861d86
halp
Aurorablade Feb 22, 2016
64d8354
ding
Aurorablade Feb 23, 2016
bbac400
fixc all the things.
Aurorablade Feb 23, 2016
c8aa308
fixed
Aurorablade Feb 24, 2016
c65b411
honk
Aurorablade Feb 24, 2016
7b1715f
here we go with this shit again
Aurorablade Feb 24, 2016
9a804eb
Merge branch 'master' of https://github.com/ParadiseSS13/Paradise int…
Aurorablade Feb 24, 2016
9e88c23
hello conflicts my old friend...
Aurorablade Feb 24, 2016
96d713f
moved up borer code to another surgery
Aurorablade Feb 24, 2016
71ebef0
honkkk
Aurorablade Feb 25, 2016
5f98feb
meanwhile as i driver tiger INSANE
Aurorablade Feb 25, 2016
9fea6b7
fixes
Aurorablade Feb 26, 2016
204d8bd
Return of the honk
Aurorablade Feb 26, 2016
8796724
comment not commenting
Aurorablade Feb 27, 2016
378c5d0
removes the removed so we can remove while we remove
Aurorablade Feb 28, 2016
60baa8c
futher removes the removed things so we can remove while we remove..
Aurorablade Feb 28, 2016
960e552
the honkening
Aurorablade Feb 29, 2016
ac02c8a
the honk strikes back
Aurorablade Feb 29, 2016
fe3eb50
I'M GOING TO OPERATE
Aurorablade Mar 1, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
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)))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

... this is the entire point of init_subtypes() ;_________;

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
Expand Down Expand Up @@ -993,8 +992,8 @@ client
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 @@ -1006,7 +1005,7 @@ client
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 @@ -1017,7 +1016,7 @@ client
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
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dealt with later. ;P

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.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

note to self: make this work with this new organ system. Ripping someone's brain out would be hilarious.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it might, just something i can do later

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
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ahhh yis. Time to butcher lings before shoving them into the incinerator, now.

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