From d36387607ffdac9c31794f3dec2e7ad0ad0889e6 Mon Sep 17 00:00:00 2001 From: "johnsonmt88@gmail.com" Date: Sun, 26 Aug 2012 01:20:02 +0000 Subject: [PATCH] More file structure stuff. - The folders themselves are now finished - Next I'll go through each file and organize them - Lastly I'll start pulling the object definitions out of /code/defines/ and put them into their respective files. **Note to committers** Make sure the .dme file updates when you update to this revision. If necessary delete the .dme and svn-update. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4546 316c924e-a436-60f5-8080-3fe189b3f50e --- code/defines/obj.dm | 72 +- code/game/objects/effects/decals/crayon.dm | 35 + code/game/objects/{ => items}/bodybag.dm | 0 .../objects/{toys.dm => items/crayons.dm} | 69 +- .../objects/{ => items}/devices/PDA/PDA.dm | 0 .../objects/{ => items}/devices/PDA/cart.dm | 0 .../{ => items}/devices/PDA/chatroom.dm | 0 .../objects/{ => items}/devices/PDA/radio.dm | 0 .../objects/{ => items}/devices/aicard.dm | 0 .../{ => items}/devices/chameleonproj.dm | 0 .../game/objects/{ => items}/devices/flash.dm | 0 .../objects/{ => items}/devices/flashlight.dm | 0 .../{ => items}/devices/infra_sensor.dm | 0 .../{ => items}/devices/lightreplacer.dm | 0 .../objects/{ => items}/devices/multitool.dm | 0 .../objects/{ => items}/devices/paicard.dm | 0 .../objects/{ => items}/devices/powersink.dm | 0 .../{ => items/devices}/radio/beacon.dm | 0 .../{ => items/devices}/radio/electropack.dm | 0 .../devices}/radio/encryptionkey.dm | 0 .../{ => items/devices}/radio/headset.dm | 0 .../{ => items/devices}/radio/intercom.dm | 0 .../{ => items/devices}/radio/radio.dm | 0 .../objects/{ => items}/devices/scanners.dm | 0 .../objects/{ => items}/devices/shields.dm | 0 .../{ => items}/devices/taperecorder.dm | 0 .../{ => items}/devices/traitordevices.dm | 0 .../{ => items}/devices/transfer_valve.dm | 0 .../objects/{ => items}/devices/uplinks.dm | 0 .../objects/{ => items}/shooting_range.dm | 0 code/game/objects/{ => items}/stacks/glass.dm | 0 code/game/objects/{ => items}/stacks/metal.dm | 0 .../objects/{ => items}/stacks/minerals.dm | 0 code/game/objects/{ => items}/stacks/stack.dm | 0 code/game/objects/{ => items}/stacks/wood.dm | 0 .../weapons}/grenades/chem_grenade.dm | 0 .../{ => items/weapons}/grenades/emgrenade.dm | 0 .../{ => items/weapons}/grenades/flashbang.dm | 0 .../{ => items/weapons}/grenades/grenade.dm | 0 .../{ => items/weapons}/grenades/smokebomb.dm | 0 .../weapons}/grenades/spawnergrenade.dm | 0 .../weapons}/secstorage/sbriefcase.dm | 0 .../weapons}/secstorage/secstorage.dm | 0 .../{ => items/weapons}/secstorage/ssafe.dm | 0 .../{ => items/weapons}/storage/backpack.dm | 0 .../{ => items/weapons}/storage/belt.dm | 0 .../{ => items/weapons}/storage/bible.dm | 0 .../{ => items/weapons}/storage/briefcase.dm | 0 .../{ => items/weapons}/storage/fancy.dm | 0 .../{ => items/weapons}/storage/firstaid.dm | 0 .../{ => items/weapons}/storage/kit.dm | 0 .../{ => items/weapons}/storage/lockbox.dm | 0 .../{ => items/weapons}/storage/misc.dm | 34 +- .../{ => items/weapons}/storage/storage.dm | 0 .../{ => items/weapons}/storage/toolbox.dm | 0 .../weapons}/storage/uplink_kits.dm | 0 .../{ => items/weapons}/tanks/emergency.dm | 0 .../{ => items/weapons}/tanks/jetpack.dm | 0 .../{ => items/weapons}/tanks/tank_types.dm | 0 .../{ => items/weapons}/tanks/tanks.dm | 0 code/game/objects/object_procs.dm | 50 -- code/game/objects/structures.dm | 613 ------------------ code/game/objects/structures/false_walls.dm | 208 ++++++ code/game/objects/structures/girders.dm | 373 +++++++++++ code/game/objects/structures/lattice.dm | 31 + tgstation.dme | 326 ++++++++-- 66 files changed, 1010 insertions(+), 801 deletions(-) create mode 100644 code/game/objects/effects/decals/crayon.dm rename code/game/objects/{ => items}/bodybag.dm (100%) rename code/game/objects/{toys.dm => items/crayons.dm} (59%) rename code/game/objects/{ => items}/devices/PDA/PDA.dm (100%) rename code/game/objects/{ => items}/devices/PDA/cart.dm (100%) rename code/game/objects/{ => items}/devices/PDA/chatroom.dm (100%) rename code/game/objects/{ => items}/devices/PDA/radio.dm (100%) rename code/game/objects/{ => items}/devices/aicard.dm (100%) rename code/game/objects/{ => items}/devices/chameleonproj.dm (100%) rename code/game/objects/{ => items}/devices/flash.dm (100%) rename code/game/objects/{ => items}/devices/flashlight.dm (100%) rename code/game/objects/{ => items}/devices/infra_sensor.dm (100%) rename code/game/objects/{ => items}/devices/lightreplacer.dm (100%) rename code/game/objects/{ => items}/devices/multitool.dm (100%) rename code/game/objects/{ => items}/devices/paicard.dm (100%) rename code/game/objects/{ => items}/devices/powersink.dm (100%) rename code/game/objects/{ => items/devices}/radio/beacon.dm (100%) rename code/game/objects/{ => items/devices}/radio/electropack.dm (100%) rename code/game/objects/{ => items/devices}/radio/encryptionkey.dm (100%) rename code/game/objects/{ => items/devices}/radio/headset.dm (100%) rename code/game/objects/{ => items/devices}/radio/intercom.dm (100%) rename code/game/objects/{ => items/devices}/radio/radio.dm (100%) rename code/game/objects/{ => items}/devices/scanners.dm (100%) rename code/game/objects/{ => items}/devices/shields.dm (100%) rename code/game/objects/{ => items}/devices/taperecorder.dm (100%) rename code/game/objects/{ => items}/devices/traitordevices.dm (100%) rename code/game/objects/{ => items}/devices/transfer_valve.dm (100%) rename code/game/objects/{ => items}/devices/uplinks.dm (100%) rename code/game/objects/{ => items}/shooting_range.dm (100%) rename code/game/objects/{ => items}/stacks/glass.dm (100%) rename code/game/objects/{ => items}/stacks/metal.dm (100%) rename code/game/objects/{ => items}/stacks/minerals.dm (100%) rename code/game/objects/{ => items}/stacks/stack.dm (100%) rename code/game/objects/{ => items}/stacks/wood.dm (100%) rename code/game/objects/{ => items/weapons}/grenades/chem_grenade.dm (100%) rename code/game/objects/{ => items/weapons}/grenades/emgrenade.dm (100%) rename code/game/objects/{ => items/weapons}/grenades/flashbang.dm (100%) rename code/game/objects/{ => items/weapons}/grenades/grenade.dm (100%) rename code/game/objects/{ => items/weapons}/grenades/smokebomb.dm (100%) rename code/game/objects/{ => items/weapons}/grenades/spawnergrenade.dm (100%) rename code/game/objects/{ => items/weapons}/secstorage/sbriefcase.dm (100%) rename code/game/objects/{ => items/weapons}/secstorage/secstorage.dm (100%) rename code/game/objects/{ => items/weapons}/secstorage/ssafe.dm (100%) rename code/game/objects/{ => items/weapons}/storage/backpack.dm (100%) rename code/game/objects/{ => items/weapons}/storage/belt.dm (100%) rename code/game/objects/{ => items/weapons}/storage/bible.dm (100%) rename code/game/objects/{ => items/weapons}/storage/briefcase.dm (100%) rename code/game/objects/{ => items/weapons}/storage/fancy.dm (100%) rename code/game/objects/{ => items/weapons}/storage/firstaid.dm (100%) rename code/game/objects/{ => items/weapons}/storage/kit.dm (100%) rename code/game/objects/{ => items/weapons}/storage/lockbox.dm (100%) rename code/game/objects/{ => items/weapons}/storage/misc.dm (61%) rename code/game/objects/{ => items/weapons}/storage/storage.dm (100%) rename code/game/objects/{ => items/weapons}/storage/toolbox.dm (100%) rename code/game/objects/{ => items/weapons}/storage/uplink_kits.dm (100%) rename code/game/objects/{ => items/weapons}/tanks/emergency.dm (100%) rename code/game/objects/{ => items/weapons}/tanks/jetpack.dm (100%) rename code/game/objects/{ => items/weapons}/tanks/tank_types.dm (100%) rename code/game/objects/{ => items/weapons}/tanks/tanks.dm (100%) delete mode 100644 code/game/objects/object_procs.dm create mode 100644 code/game/objects/structures/false_walls.dm create mode 100644 code/game/objects/structures/girders.dm create mode 100644 code/game/objects/structures/lattice.dm diff --git a/code/defines/obj.dm b/code/defines/obj.dm index ff4b08f844..6c5e49c3cf 100644 --- a/code/defines/obj.dm +++ b/code/defines/obj.dm @@ -14,17 +14,69 @@ var/throwforce = 1 var/list/attack_verb = list() //Used in attackby() to say how something was attacked "[x] has been [z.attack_verb] by [y] with [z]" - proc/handle_internal_lifeform(mob/lifeform_inside_me, breath_request) - //Return: (NONSTANDARD) - // null if object handles breathing logic for lifeform - // datum/air_group to tell lifeform to process using that breath return - //DEFAULT: Take air from turf to give to have mob process - if(breath_request>0) - return remove_air(breath_request) - else - return null +/obj/proc/handle_internal_lifeform(mob/lifeform_inside_me, breath_request) + //Return: (NONSTANDARD) + // null if object handles breathing logic for lifeform + // datum/air_group to tell lifeform to process using that breath return + //DEFAULT: Take air from turf to give to have mob process + if(breath_request>0) + return remove_air(breath_request) + else + return null - proc/initialize() +/obj/proc/initialize() + return + +/obj/proc/updateUsrDialog() + var/list/nearby = viewers(1, src) + for(var/mob/M in nearby) + if ((M.client && M.machine == src)) + src.attack_hand(M) + if (istype(usr, /mob/living/silicon/ai) || istype(usr, /mob/living/silicon/robot)) + if (!(usr in nearby)) + if (usr.client && usr.machine==src) // && M.machine == src is omitted because if we triggered this by using the dialog, it doesn't matter if our machine changed in between triggering it and this - the dialog is probably still supposed to refresh. + src.attack_ai(usr) + + // check for TK users + //AutoUpdateTK(src) + if (istype(usr, /mob/living/carbon/human)) + if(istype(usr.l_hand, /obj/item/tk_grab) || istype(usr.r_hand, /obj/item/tk_grab/)) + if(!(usr in nearby)) + if(usr.client && usr.machine==src) + src.attack_hand(usr) + +/obj/proc/updateDialog() + var/list/nearby = viewers(1, src) + for(var/mob/M in nearby) + if ((M.client && M.machine == src)) + src.attack_hand(M) + AutoUpdateAI(src) + //AutoUpdateTK(src) + +/obj/proc/update_icon() + return + +/obj/item/proc/updateSelfDialog() + var/mob/M = src.loc + if(istype(M) && M.client && M.machine == src) + src.attack_self(M) + + +/obj/proc/alter_health() + return 1 + +/obj/proc/hide(h) + return + + +/obj/proc/hear_talk(mob/M as mob, text) +/* + var/mob/mo = locate(/mob) in src + if(mo) + var/rendered = "[M.name]: [text]" + mo.show_message(rendered, 2) + */ + return /obj/structure/signpost icon = 'icons/obj/stationobjs.dmi' diff --git a/code/game/objects/effects/decals/crayon.dm b/code/game/objects/effects/decals/crayon.dm new file mode 100644 index 0000000000..8300a0f744 --- /dev/null +++ b/code/game/objects/effects/decals/crayon.dm @@ -0,0 +1,35 @@ +/obj/effect/decal/cleanable/crayon + name = "rune" + desc = "A rune drawn in crayon." + icon = 'icons/obj/rune.dmi' + layer = 2.1 + anchored = 1 + + + examine() + set src in view(2) + ..() + return + + + New(location,main = "#FFFFFF",shade = "#000000",var/type = "rune") + ..() + loc = location + + name = type + desc = "A [type] drawn in crayon." + + switch(type) + if("rune") + type = "rune[rand(1,6)]" + if("graffiti") + type = pick("amyjon","face","matt","revolution","engie","guy","end","dwarf","uboa") + + var/icon/mainOverlay = new/icon('icons/effects/crayondecal.dmi',"[type]",2.1) + var/icon/shadeOverlay = new/icon('icons/effects/crayondecal.dmi',"[type]s",2.1) + + mainOverlay.Blend(main,ICON_ADD) + shadeOverlay.Blend(shade,ICON_ADD) + + overlays += mainOverlay + overlays += shadeOverlay \ No newline at end of file diff --git a/code/game/objects/bodybag.dm b/code/game/objects/items/bodybag.dm similarity index 100% rename from code/game/objects/bodybag.dm rename to code/game/objects/items/bodybag.dm diff --git a/code/game/objects/toys.dm b/code/game/objects/items/crayons.dm similarity index 59% rename from code/game/objects/toys.dm rename to code/game/objects/items/crayons.dm index b460bfef90..27b38ac5f0 100644 --- a/code/game/objects/toys.dm +++ b/code/game/objects/items/crayons.dm @@ -1,34 +1,3 @@ -/*-------- -//CONTAINS -CRAYONS ---------*/ -/obj/item/weapon/storage/crayonbox/New() - ..() - new /obj/item/toy/crayon/red(src) - new /obj/item/toy/crayon/orange(src) - new /obj/item/toy/crayon/yellow(src) - new /obj/item/toy/crayon/green(src) - new /obj/item/toy/crayon/blue(src) - new /obj/item/toy/crayon/purple(src) - update_icon() - -/obj/item/weapon/storage/crayonbox/update_icon() - overlays = list() //resets list - overlays += image('icons/obj/crayons.dmi',"crayonbox") - for(var/obj/item/toy/crayon/crayon in contents) - overlays += image('icons/obj/crayons.dmi',crayon.colourName) - -/obj/item/weapon/storage/crayonbox/attackby(obj/item/W as obj, mob/user as mob) - if(istype(W,/obj/item/toy/crayon)) - switch(W:colourName) - if("mime") - usr << "This crayon is too sad to be contained in this box." - return - if("rainbow") - usr << "This crayon is too powerful to be contained in this box." - return - ..() - /obj/item/toy/crayon/red icon_state = "crayonred" colour = "#DA0000" @@ -127,40 +96,4 @@ CRAYONS user << "\red You ate your crayon!" del(src) else - ..() - -/obj/effect/decal/cleanable/crayon - name = "rune" - desc = "A rune drawn in crayon." - icon = 'icons/obj/rune.dmi' - layer = 2.1 - anchored = 1 - - - examine() - set src in view(2) - ..() - return - - - New(location,main = "#FFFFFF",shade = "#000000",var/type = "rune") - ..() - loc = location - - name = type - desc = "A [type] drawn in crayon." - - switch(type) - if("rune") - type = "rune[rand(1,6)]" - if("graffiti") - type = pick("amyjon","face","matt","revolution","engie","guy","end","dwarf","uboa") - - var/icon/mainOverlay = new/icon('icons/effects/crayondecal.dmi',"[type]",2.1) - var/icon/shadeOverlay = new/icon('icons/effects/crayondecal.dmi',"[type]s",2.1) - - mainOverlay.Blend(main,ICON_ADD) - shadeOverlay.Blend(shade,ICON_ADD) - - overlays += mainOverlay - overlays += shadeOverlay \ No newline at end of file + ..() \ No newline at end of file diff --git a/code/game/objects/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm similarity index 100% rename from code/game/objects/devices/PDA/PDA.dm rename to code/game/objects/items/devices/PDA/PDA.dm diff --git a/code/game/objects/devices/PDA/cart.dm b/code/game/objects/items/devices/PDA/cart.dm similarity index 100% rename from code/game/objects/devices/PDA/cart.dm rename to code/game/objects/items/devices/PDA/cart.dm diff --git a/code/game/objects/devices/PDA/chatroom.dm b/code/game/objects/items/devices/PDA/chatroom.dm similarity index 100% rename from code/game/objects/devices/PDA/chatroom.dm rename to code/game/objects/items/devices/PDA/chatroom.dm diff --git a/code/game/objects/devices/PDA/radio.dm b/code/game/objects/items/devices/PDA/radio.dm similarity index 100% rename from code/game/objects/devices/PDA/radio.dm rename to code/game/objects/items/devices/PDA/radio.dm diff --git a/code/game/objects/devices/aicard.dm b/code/game/objects/items/devices/aicard.dm similarity index 100% rename from code/game/objects/devices/aicard.dm rename to code/game/objects/items/devices/aicard.dm diff --git a/code/game/objects/devices/chameleonproj.dm b/code/game/objects/items/devices/chameleonproj.dm similarity index 100% rename from code/game/objects/devices/chameleonproj.dm rename to code/game/objects/items/devices/chameleonproj.dm diff --git a/code/game/objects/devices/flash.dm b/code/game/objects/items/devices/flash.dm similarity index 100% rename from code/game/objects/devices/flash.dm rename to code/game/objects/items/devices/flash.dm diff --git a/code/game/objects/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm similarity index 100% rename from code/game/objects/devices/flashlight.dm rename to code/game/objects/items/devices/flashlight.dm diff --git a/code/game/objects/devices/infra_sensor.dm b/code/game/objects/items/devices/infra_sensor.dm similarity index 100% rename from code/game/objects/devices/infra_sensor.dm rename to code/game/objects/items/devices/infra_sensor.dm diff --git a/code/game/objects/devices/lightreplacer.dm b/code/game/objects/items/devices/lightreplacer.dm similarity index 100% rename from code/game/objects/devices/lightreplacer.dm rename to code/game/objects/items/devices/lightreplacer.dm diff --git a/code/game/objects/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm similarity index 100% rename from code/game/objects/devices/multitool.dm rename to code/game/objects/items/devices/multitool.dm diff --git a/code/game/objects/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm similarity index 100% rename from code/game/objects/devices/paicard.dm rename to code/game/objects/items/devices/paicard.dm diff --git a/code/game/objects/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm similarity index 100% rename from code/game/objects/devices/powersink.dm rename to code/game/objects/items/devices/powersink.dm diff --git a/code/game/objects/radio/beacon.dm b/code/game/objects/items/devices/radio/beacon.dm similarity index 100% rename from code/game/objects/radio/beacon.dm rename to code/game/objects/items/devices/radio/beacon.dm diff --git a/code/game/objects/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm similarity index 100% rename from code/game/objects/radio/electropack.dm rename to code/game/objects/items/devices/radio/electropack.dm diff --git a/code/game/objects/radio/encryptionkey.dm b/code/game/objects/items/devices/radio/encryptionkey.dm similarity index 100% rename from code/game/objects/radio/encryptionkey.dm rename to code/game/objects/items/devices/radio/encryptionkey.dm diff --git a/code/game/objects/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm similarity index 100% rename from code/game/objects/radio/headset.dm rename to code/game/objects/items/devices/radio/headset.dm diff --git a/code/game/objects/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm similarity index 100% rename from code/game/objects/radio/intercom.dm rename to code/game/objects/items/devices/radio/intercom.dm diff --git a/code/game/objects/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm similarity index 100% rename from code/game/objects/radio/radio.dm rename to code/game/objects/items/devices/radio/radio.dm diff --git a/code/game/objects/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm similarity index 100% rename from code/game/objects/devices/scanners.dm rename to code/game/objects/items/devices/scanners.dm diff --git a/code/game/objects/devices/shields.dm b/code/game/objects/items/devices/shields.dm similarity index 100% rename from code/game/objects/devices/shields.dm rename to code/game/objects/items/devices/shields.dm diff --git a/code/game/objects/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm similarity index 100% rename from code/game/objects/devices/taperecorder.dm rename to code/game/objects/items/devices/taperecorder.dm diff --git a/code/game/objects/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm similarity index 100% rename from code/game/objects/devices/traitordevices.dm rename to code/game/objects/items/devices/traitordevices.dm diff --git a/code/game/objects/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm similarity index 100% rename from code/game/objects/devices/transfer_valve.dm rename to code/game/objects/items/devices/transfer_valve.dm diff --git a/code/game/objects/devices/uplinks.dm b/code/game/objects/items/devices/uplinks.dm similarity index 100% rename from code/game/objects/devices/uplinks.dm rename to code/game/objects/items/devices/uplinks.dm diff --git a/code/game/objects/shooting_range.dm b/code/game/objects/items/shooting_range.dm similarity index 100% rename from code/game/objects/shooting_range.dm rename to code/game/objects/items/shooting_range.dm diff --git a/code/game/objects/stacks/glass.dm b/code/game/objects/items/stacks/glass.dm similarity index 100% rename from code/game/objects/stacks/glass.dm rename to code/game/objects/items/stacks/glass.dm diff --git a/code/game/objects/stacks/metal.dm b/code/game/objects/items/stacks/metal.dm similarity index 100% rename from code/game/objects/stacks/metal.dm rename to code/game/objects/items/stacks/metal.dm diff --git a/code/game/objects/stacks/minerals.dm b/code/game/objects/items/stacks/minerals.dm similarity index 100% rename from code/game/objects/stacks/minerals.dm rename to code/game/objects/items/stacks/minerals.dm diff --git a/code/game/objects/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm similarity index 100% rename from code/game/objects/stacks/stack.dm rename to code/game/objects/items/stacks/stack.dm diff --git a/code/game/objects/stacks/wood.dm b/code/game/objects/items/stacks/wood.dm similarity index 100% rename from code/game/objects/stacks/wood.dm rename to code/game/objects/items/stacks/wood.dm diff --git a/code/game/objects/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm similarity index 100% rename from code/game/objects/grenades/chem_grenade.dm rename to code/game/objects/items/weapons/grenades/chem_grenade.dm diff --git a/code/game/objects/grenades/emgrenade.dm b/code/game/objects/items/weapons/grenades/emgrenade.dm similarity index 100% rename from code/game/objects/grenades/emgrenade.dm rename to code/game/objects/items/weapons/grenades/emgrenade.dm diff --git a/code/game/objects/grenades/flashbang.dm b/code/game/objects/items/weapons/grenades/flashbang.dm similarity index 100% rename from code/game/objects/grenades/flashbang.dm rename to code/game/objects/items/weapons/grenades/flashbang.dm diff --git a/code/game/objects/grenades/grenade.dm b/code/game/objects/items/weapons/grenades/grenade.dm similarity index 100% rename from code/game/objects/grenades/grenade.dm rename to code/game/objects/items/weapons/grenades/grenade.dm diff --git a/code/game/objects/grenades/smokebomb.dm b/code/game/objects/items/weapons/grenades/smokebomb.dm similarity index 100% rename from code/game/objects/grenades/smokebomb.dm rename to code/game/objects/items/weapons/grenades/smokebomb.dm diff --git a/code/game/objects/grenades/spawnergrenade.dm b/code/game/objects/items/weapons/grenades/spawnergrenade.dm similarity index 100% rename from code/game/objects/grenades/spawnergrenade.dm rename to code/game/objects/items/weapons/grenades/spawnergrenade.dm diff --git a/code/game/objects/secstorage/sbriefcase.dm b/code/game/objects/items/weapons/secstorage/sbriefcase.dm similarity index 100% rename from code/game/objects/secstorage/sbriefcase.dm rename to code/game/objects/items/weapons/secstorage/sbriefcase.dm diff --git a/code/game/objects/secstorage/secstorage.dm b/code/game/objects/items/weapons/secstorage/secstorage.dm similarity index 100% rename from code/game/objects/secstorage/secstorage.dm rename to code/game/objects/items/weapons/secstorage/secstorage.dm diff --git a/code/game/objects/secstorage/ssafe.dm b/code/game/objects/items/weapons/secstorage/ssafe.dm similarity index 100% rename from code/game/objects/secstorage/ssafe.dm rename to code/game/objects/items/weapons/secstorage/ssafe.dm diff --git a/code/game/objects/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm similarity index 100% rename from code/game/objects/storage/backpack.dm rename to code/game/objects/items/weapons/storage/backpack.dm diff --git a/code/game/objects/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm similarity index 100% rename from code/game/objects/storage/belt.dm rename to code/game/objects/items/weapons/storage/belt.dm diff --git a/code/game/objects/storage/bible.dm b/code/game/objects/items/weapons/storage/bible.dm similarity index 100% rename from code/game/objects/storage/bible.dm rename to code/game/objects/items/weapons/storage/bible.dm diff --git a/code/game/objects/storage/briefcase.dm b/code/game/objects/items/weapons/storage/briefcase.dm similarity index 100% rename from code/game/objects/storage/briefcase.dm rename to code/game/objects/items/weapons/storage/briefcase.dm diff --git a/code/game/objects/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm similarity index 100% rename from code/game/objects/storage/fancy.dm rename to code/game/objects/items/weapons/storage/fancy.dm diff --git a/code/game/objects/storage/firstaid.dm b/code/game/objects/items/weapons/storage/firstaid.dm similarity index 100% rename from code/game/objects/storage/firstaid.dm rename to code/game/objects/items/weapons/storage/firstaid.dm diff --git a/code/game/objects/storage/kit.dm b/code/game/objects/items/weapons/storage/kit.dm similarity index 100% rename from code/game/objects/storage/kit.dm rename to code/game/objects/items/weapons/storage/kit.dm diff --git a/code/game/objects/storage/lockbox.dm b/code/game/objects/items/weapons/storage/lockbox.dm similarity index 100% rename from code/game/objects/storage/lockbox.dm rename to code/game/objects/items/weapons/storage/lockbox.dm diff --git a/code/game/objects/storage/misc.dm b/code/game/objects/items/weapons/storage/misc.dm similarity index 61% rename from code/game/objects/storage/misc.dm rename to code/game/objects/items/weapons/storage/misc.dm index 82b0a5aafd..4020ca1614 100644 --- a/code/game/objects/storage/misc.dm +++ b/code/game/objects/items/weapons/storage/misc.dm @@ -3,6 +3,7 @@ * Monkey Cube Box * Candle Packs * Snap Pop Box + * Crayon Box */ /* @@ -69,4 +70,35 @@ W.icon_state = "match_lit" processing_objects.Add(W) W.update_icon() - return \ No newline at end of file + return + +/* + * Crayon Box + */ + +/obj/item/weapon/storage/crayonbox/New() + ..() + new /obj/item/toy/crayon/red(src) + new /obj/item/toy/crayon/orange(src) + new /obj/item/toy/crayon/yellow(src) + new /obj/item/toy/crayon/green(src) + new /obj/item/toy/crayon/blue(src) + new /obj/item/toy/crayon/purple(src) + update_icon() + +/obj/item/weapon/storage/crayonbox/update_icon() + overlays = list() //resets list + overlays += image('icons/obj/crayons.dmi',"crayonbox") + for(var/obj/item/toy/crayon/crayon in contents) + overlays += image('icons/obj/crayons.dmi',crayon.colourName) + +/obj/item/weapon/storage/crayonbox/attackby(obj/item/W as obj, mob/user as mob) + if(istype(W,/obj/item/toy/crayon)) + switch(W:colourName) + if("mime") + usr << "This crayon is too sad to be contained in this box." + return + if("rainbow") + usr << "This crayon is too powerful to be contained in this box." + return + ..() \ No newline at end of file diff --git a/code/game/objects/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm similarity index 100% rename from code/game/objects/storage/storage.dm rename to code/game/objects/items/weapons/storage/storage.dm diff --git a/code/game/objects/storage/toolbox.dm b/code/game/objects/items/weapons/storage/toolbox.dm similarity index 100% rename from code/game/objects/storage/toolbox.dm rename to code/game/objects/items/weapons/storage/toolbox.dm diff --git a/code/game/objects/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm similarity index 100% rename from code/game/objects/storage/uplink_kits.dm rename to code/game/objects/items/weapons/storage/uplink_kits.dm diff --git a/code/game/objects/tanks/emergency.dm b/code/game/objects/items/weapons/tanks/emergency.dm similarity index 100% rename from code/game/objects/tanks/emergency.dm rename to code/game/objects/items/weapons/tanks/emergency.dm diff --git a/code/game/objects/tanks/jetpack.dm b/code/game/objects/items/weapons/tanks/jetpack.dm similarity index 100% rename from code/game/objects/tanks/jetpack.dm rename to code/game/objects/items/weapons/tanks/jetpack.dm diff --git a/code/game/objects/tanks/tank_types.dm b/code/game/objects/items/weapons/tanks/tank_types.dm similarity index 100% rename from code/game/objects/tanks/tank_types.dm rename to code/game/objects/items/weapons/tanks/tank_types.dm diff --git a/code/game/objects/tanks/tanks.dm b/code/game/objects/items/weapons/tanks/tanks.dm similarity index 100% rename from code/game/objects/tanks/tanks.dm rename to code/game/objects/items/weapons/tanks/tanks.dm diff --git a/code/game/objects/object_procs.dm b/code/game/objects/object_procs.dm deleted file mode 100644 index f57f6ce93a..0000000000 --- a/code/game/objects/object_procs.dm +++ /dev/null @@ -1,50 +0,0 @@ -/obj/proc/updateUsrDialog() - var/list/nearby = viewers(1, src) - for(var/mob/M in nearby) - if ((M.client && M.machine == src)) - src.attack_hand(M) - if (istype(usr, /mob/living/silicon/ai) || istype(usr, /mob/living/silicon/robot)) - if (!(usr in nearby)) - if (usr.client && usr.machine==src) // && M.machine == src is omitted because if we triggered this by using the dialog, it doesn't matter if our machine changed in between triggering it and this - the dialog is probably still supposed to refresh. - src.attack_ai(usr) - - // check for TK users - //AutoUpdateTK(src) - if (istype(usr, /mob/living/carbon/human)) - if(istype(usr.l_hand, /obj/item/tk_grab) || istype(usr.r_hand, /obj/item/tk_grab/)) - if(!(usr in nearby)) - if(usr.client && usr.machine==src) - src.attack_hand(usr) - -/obj/proc/updateDialog() - var/list/nearby = viewers(1, src) - for(var/mob/M in nearby) - if ((M.client && M.machine == src)) - src.attack_hand(M) - AutoUpdateAI(src) - //AutoUpdateTK(src) - -/obj/proc/update_icon() - return - -/obj/item/proc/updateSelfDialog() - var/mob/M = src.loc - if(istype(M) && M.client && M.machine == src) - src.attack_self(M) - - -/obj/proc/alter_health() - return 1 - -/obj/proc/hide(h) - return - - -/obj/proc/hear_talk(mob/M as mob, text) -/* - var/mob/mo = locate(/mob) in src - if(mo) - var/rendered = "[M.name]: [text]" - mo.show_message(rendered, 2) - */ - return \ No newline at end of file diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm index 33e4e4b961..594c95b6c8 100644 --- a/code/game/objects/structures.dm +++ b/code/game/objects/structures.dm @@ -22,620 +22,7 @@ obj/structure/meteorhit(obj/O as obj) -/obj/structure/girder - icon_state = "girder" - anchored = 1 - density = 1 - layer = 2 - var/state = 0 - attackby(obj/item/W as obj, mob/user as mob) - if(istype(W, /obj/item/weapon/wrench) && state == 0) - if(anchored && !istype(src,/obj/structure/girder/displaced)) - playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) - user << "\blue Now disassembling the girder" - if(do_after(user,40)) - if(!src) return - user << "\blue You dissasembled the girder!" - new /obj/item/stack/sheet/metal(get_turf(src)) - del(src) - else if(!anchored) - playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) - user << "\blue Now securing the girder" - if(get_turf(user, 40)) - user << "\blue You secured the girder!" - new/obj/structure/girder( src.loc ) - del(src) - else if(istype(W, /obj/item/weapon/pickaxe/plasmacutter)) - user << "\blue Now slicing apart the girder" - if(do_after(user,30)) - if(!src) return - user << "\blue You slice apart the girder!" - new /obj/item/stack/sheet/metal(get_turf(src)) - del(src) - else if(istype(W, /obj/item/weapon/pickaxe/diamonddrill)) - user << "\blue You drill through the girder!" - new /obj/item/stack/sheet/metal(get_turf(src)) - del(src) - else if(istype(W, /obj/item/weapon/screwdriver) && state == 2 && istype(src,/obj/structure/girder/reinforced)) - playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1) - user << "\blue Now unsecuring support struts" - if(do_after(user,40)) - if(!src) return - user << "\blue You unsecured the support struts!" - state = 1 - - else if(istype(W, /obj/item/weapon/wirecutters) && istype(src,/obj/structure/girder/reinforced) && state == 1) - playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1) - user << "\blue Now removing support struts" - if(do_after(user,40)) - if(!src) return - user << "\blue You removed the support struts!" - new/obj/structure/girder( src.loc ) - del(src) - - else if(istype(W, /obj/item/weapon/crowbar) && state == 0 && anchored ) - playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1) - user << "\blue Now dislodging the girder" - if(do_after(user, 40)) - if(!src) return - user << "\blue You dislodged the girder!" - new/obj/structure/girder/displaced( src.loc ) - del(src) - - else if(istype(W, /obj/item/stack/sheet)) - - var/obj/item/stack/sheet/S = W - switch(S.type) - - if(/obj/item/stack/sheet/metal) - if(!anchored) - if(S.amount < 2) return - S.use(2) - user << "\blue You create a false wall! Push on it to open or close the passage." - new /obj/structure/falsewall (src.loc) - else - if(S.amount < 2) return ..() - user << "\blue Now adding plating..." - if (do_after(user,40)) - if(!src || !S || S.amount < 2) return - S.use(2) - user << "\blue You added the plating!" - var/turf/Tsrc = get_turf(src) - Tsrc.ReplaceWithWall() - for(var/obj/machinery/atmospherics/pipe/P in Tsrc) - P.layer = 1 - for(var/turf/simulated/wall/X in Tsrc.loc) - if(X) X.add_hiddenprint(usr) - del(src) - return - - if(/obj/item/stack/sheet/plasteel) - if(!anchored) - if(S.amount < 2) return - S.use(2) - user << "\blue You create a false wall! Push on it to open or close the passage." - new /obj/structure/falserwall (src.loc) - else - if (src.icon_state == "reinforced") //I cant believe someone would actually write this line of code... - if(S.amount < 1) return ..() - user << "\blue Now finalising reinforced wall." - if(do_after(user, 50)) - if(!src || !S || S.amount < 1) return - S.use(1) - user << "\blue Wall fully reinforced!" - var/turf/Tsrc = get_turf(src) - Tsrc.ReplaceWithRWall() - for(var/obj/machinery/atmospherics/pipe/P in Tsrc) - P.layer = 1 - for(var/turf/simulated/wall/r_wall/X in Tsrc.loc) - if(X) X.add_hiddenprint(usr) - del(src) - return - else - if(S.amount < 1) return ..() - user << "\blue Now reinforcing girders" - if (do_after(user,60)) - if(!src || !S || S.amount < 1) return - S.use(1) - user << "\blue Girders reinforced!" - new/obj/structure/girder/reinforced( src.loc ) - del(src) - return - - if(/obj/item/stack/sheet/gold) - if(!anchored) - if(S.amount < 2) return - S.use(2) - user << "\blue You create a false wall! Push on it to open or close the passage." - new /obj/structure/falsewall/gold (src.loc) - else - if(S.amount < 2) return ..() - user << "\blue Now adding plating..." - if (do_after(user,40)) - if(!src || !S || S.amount < 2) return - S.use(2) - user << "\blue You added the plating!" - var/turf/Tsrc = get_turf(src) - Tsrc.ReplaceWithMineralWall("gold") - for(var/obj/machinery/atmospherics/pipe/P in Tsrc) - P.layer = 1 - for(var/turf/simulated/wall/mineral/X in Tsrc.loc) - if(X) X.add_hiddenprint(usr) - del(src) - return - - if(/obj/item/stack/sheet/silver) - if(!anchored) - if(S.amount < 2) return - S.use(2) - user << "\blue You create a false wall! Push on it to open or close the passage." - new /obj/structure/falsewall/silver (src.loc) - else - if(S.amount < 2) return ..() - user << "\blue Now adding plating..." - if (do_after(user,40)) - if(!src || !S || S.amount < 2) return - S.use(2) - user << "\blue You added the plating!" - var/turf/Tsrc = get_turf(src) - Tsrc.ReplaceWithMineralWall("silver") - for(var/obj/machinery/atmospherics/pipe/P in Tsrc) - P.layer = 1 - for(var/turf/simulated/wall/mineral/X in Tsrc.loc) - if(X) X.add_hiddenprint(usr) - del(src) - return - - if(/obj/item/stack/sheet/diamond) - if(!anchored) - if(S.amount < 2) return - S.use(2) - user << "\blue You create a false wall! Push on it to open or close the passage." - new /obj/structure/falsewall/diamond (src.loc) - else - if(S.amount < 2) return ..() - user << "\blue Now adding plating..." - if (do_after(user,40)) - if(!src || !S || S.amount < 2) return - S.use(2) - user << "\blue You added the plating!" - var/turf/Tsrc = get_turf(src) - Tsrc.ReplaceWithMineralWall("diamond") - for(var/obj/machinery/atmospherics/pipe/P in Tsrc) - P.layer = 1 - for(var/turf/simulated/wall/mineral/X in Tsrc.loc) - if(X) X.add_hiddenprint(usr) - del(src) - return - - if(/obj/item/stack/sheet/uranium) - if(!anchored) - if(S.amount < 2) return - S.use(2) - user << "\blue You create a false wall! Push on it to open or close the passage." - new /obj/structure/falsewall/uranium (src.loc) - else - if(S.amount < 2) return ..() - user << "\blue Now adding plating..." - if (do_after(user,40)) - if(!src || !S || S.amount < 2) return - S.use(2) - user << "\blue You added the plating!" - var/turf/Tsrc = get_turf(src) - Tsrc.ReplaceWithMineralWall("uranium") - for(var/obj/machinery/atmospherics/pipe/P in Tsrc) - P.layer = 1 - for(var/turf/simulated/wall/mineral/X in Tsrc.loc) - if(X) X.add_hiddenprint(usr) - del(src) - return - - if(/obj/item/stack/sheet/plasma) - if(!anchored) - if(S.amount < 2) return - S.use(2) - user << "\blue You create a false wall! Push on it to open or close the passage." - new /obj/structure/falsewall/plasma (src.loc) - else - if(S.amount < 2) return ..() - user << "\blue Now adding plating..." - if (do_after(user,40)) - if(!src || !S || S.amount < 2) return - S.use(2) - user << "\blue You added the plating!" - var/turf/Tsrc = get_turf(src) - Tsrc.ReplaceWithMineralWall("plasma") - for(var/obj/machinery/atmospherics/pipe/P in Tsrc) - P.layer = 1 - for(var/turf/simulated/wall/mineral/X in Tsrc.loc) - if(X) X.add_hiddenprint(usr) - del(src) - return - - if(/obj/item/stack/sheet/clown) - if(!anchored) - if(S.amount < 2) return - S.use(2) - user << "\blue You create a false wall! Push on it to open or close the passage." - new /obj/structure/falsewall/clown (src.loc) - else - if(S.amount < 2) return ..() - user << "\blue Now adding plating..." - if (do_after(user,40)) - if(!src || !S || S.amount < 2) return - user << "\blue You added the plating!" - var/turf/Tsrc = get_turf(src) - Tsrc.ReplaceWithMineralWall("clown") - for(var/obj/machinery/atmospherics/pipe/P in Tsrc) - P.layer = 1 - for(var/turf/simulated/wall/mineral/X in Tsrc.loc) - if(X) X.add_hiddenprint(usr) - del(src) - return - - if(/obj/item/stack/sheet/sandstone) - if(!anchored) - if(S.amount < 2) return - S.use(2) - user << "\blue You create a false wall! Push on it to open or close the passage." - new /obj/structure/falsewall/sandstone (src.loc) - else - if(S.amount < 2) return ..() - user << "\blue Now adding plating..." - if (do_after(user,40)) - if(!src || !S || S.amount < 2) return - S.use(2) - user << "\blue You added the plating!" - var/turf/Tsrc = get_turf(src) - Tsrc.ReplaceWithMineralWall("sandstone") - for(var/obj/machinery/atmospherics/pipe/P in Tsrc) - P.layer = 1 - for(var/turf/simulated/wall/mineral/X in Tsrc.loc) - if(X) X.add_hiddenprint(usr) - del(src) - return - - add_hiddenprint(usr) - del(src) - - else if(istype(W, /obj/item/pipe)) - var/obj/item/pipe/P = W - if (P.pipe_type in list(0, 1, 5)) //simple pipes, simple bends, and simple manifolds. - user.drop_item() - P.loc = src.loc - user << "\blue You fit the pipe into the [src]!" - else - ..() - - - blob_act() - if(prob(40)) - del(src) - - - ex_act(severity) - switch(severity) - if(1.0) - del(src) - return - if(2.0) - if (prob(30)) - var/remains = pick(/obj/item/stack/rods,/obj/item/stack/sheet/metal) - new remains(loc) - del(src) - return - if(3.0) - if (prob(5)) - var/remains = pick(/obj/item/stack/rods,/obj/item/stack/sheet/metal) - new remains(loc) - del(src) - return - else - return - -/obj/structure/girder/displaced - icon_state = "displaced" - anchored = 0 - -/obj/structure/girder/reinforced - icon_state = "reinforced" - state = 2 - -/obj/structure/cultgirder - icon= 'icons/obj/cult.dmi' - icon_state= "cultgirder" - anchored = 1 - density = 1 - layer = 2 - - attackby(obj/item/W as obj, mob/user as mob) - if(istype(W, /obj/item/weapon/wrench)) - playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) - user << "\blue Now disassembling the girder" - if(do_after(user,40)) - user << "\blue You dissasembled the girder!" - new /obj/effect/decal/remains/human(get_turf(src)) - del(src) - - else if(istype(W, /obj/item/weapon/pickaxe/plasmacutter)) - user << "\blue Now slicing apart the girder" - if(do_after(user,30)) - user << "\blue You slice apart the girder!" - new /obj/effect/decal/remains/human(get_turf(src)) - del(src) - - else if(istype(W, /obj/item/weapon/pickaxe/diamonddrill)) - user << "\blue You drill through the girder!" - new /obj/effect/decal/remains/human(get_turf(src)) - del(src) - - blob_act() - if(prob(40)) - del(src) - - - ex_act(severity) - switch(severity) - if(1.0) - del(src) - return - if(2.0) - if (prob(30)) - new /obj/effect/decal/remains/human(loc) - del(src) - return - if(3.0) - if (prob(5)) - new /obj/effect/decal/remains/human(loc) - del(src) - return - else - return - -// LATTICE - - -/obj/structure/lattice/blob_act() - del(src) - return - -/obj/structure/lattice/ex_act(severity) - switch(severity) - if(1.0) - del(src) - return - if(2.0) - del(src) - return - if(3.0) - return - else - return - -/obj/structure/lattice/attackby(obj/item/C as obj, mob/user as mob) - - if (istype(C, /obj/item/stack/tile/plasteel)) - var/turf/T = get_turf(src) - T.attackby(C, user) //BubbleWrap - hand this off to the underlying turf instead - return - if (istype(C, /obj/item/weapon/weldingtool)) - var/obj/item/weapon/weldingtool/WT = C - if(WT.remove_fuel(0, user)) - user << "\blue Slicing lattice joints ..." - new /obj/item/stack/rods(src.loc) - del(src) - - return - -/obj/structure/falsewall - var/mineral = "metal" - -/obj/structure/falserwall - var/mineral = "metal" - -/obj/structure/falsewall/gold - mineral = "gold" - -/obj/structure/falsewall/silver - mineral = "silver" - -/obj/structure/falsewall/diamond - mineral = "diamond" - -/obj/structure/falsewall/uranium - mineral = "uranium" - var/active = null - var/last_event = 0 - -/obj/structure/falsewall/plasma - mineral = "plasma" - -/obj/structure/falsewall/clown - mineral = "clown" - -/obj/structure/falsewall/sandstone - mineral = "sandstone" - -/*/obj/structure/falsewall/wood - mineral = "wood"*/ - -/obj/structure/falsewall/attack_hand(mob/user as mob) - if(density) - // Open wall - icon_state = "[mineral]fwall_open" - flick("[mineral]fwall_opening", src) - sleep(15) - src.density = 0 - SetOpacity(0) - else - flick("[mineral]fwall_closing", src) - icon_state = "[mineral]0" - sleep(15) - src.density = 1 - SetOpacity(1) - src.relativewall() - -/obj/structure/falsewall/uranium/attack_hand(mob/user as mob) - radiate() - ..() - -/obj/structure/falsewall/update_icon()//Calling icon_update will refresh the smoothwalls if it's closed, otherwise it will make sure the icon is correct if it's open - ..() - if(density) - icon_state = "[mineral]0" - src.relativewall() - else - icon_state = "[mineral]fwall_open" - -/obj/structure/falsewall/attackby(obj/item/weapon/W as obj, mob/user as mob) - if(istype(W, /obj/item/weapon/screwdriver)) - var/turf/T = get_turf(src) - user.visible_message("[user] tightens some bolts on the wall.", "You tighten the bolts on the wall.") - if(!mineral) - T.ReplaceWithWall() - else - T.ReplaceWithMineralWall(mineral) - del(src) - - if( istype(W, /obj/item/weapon/weldingtool) ) - var/obj/item/weapon/weldingtool/WT = W - if( WT:welding ) - var/turf/T = get_turf(src) - if(!mineral) - T.ReplaceWithWall() - else - T.ReplaceWithMineralWall(mineral) - if(mineral != "plasma")//Stupid shit keeps me from pushing the attackby() to plasma walls -Sieve - T = get_turf(src) - T.attackby(W,user) - del(src) - - else if( istype(W, /obj/item/weapon/pickaxe/plasmacutter) ) - var/turf/T = get_turf(src) - if(!mineral) - T.ReplaceWithWall() - else - T.ReplaceWithMineralWall(mineral) - if(mineral != "plasma") - T = get_turf(src) - T.attackby(W,user) - del(src) - - //DRILLING - else if (istype(W, /obj/item/weapon/pickaxe/diamonddrill)) - var/turf/T = get_turf(src) - if(!mineral) - T.ReplaceWithWall() - else - T.ReplaceWithMineralWall(mineral) - T = get_turf(src) - T.attackby(W,user) - del(src) - - else if( istype(W, /obj/item/weapon/melee/energy/blade) ) - var/turf/T = get_turf(src) - if(!mineral) - T.ReplaceWithWall() - else - T.ReplaceWithMineralWall(mineral) - if(mineral != "plasma") - T = get_turf(src) - T.attackby(W,user) - del(src) - /* - - var/turf/T = get_turf(user) - user << "\blue Now adding plating..." - sleep(40) - if (get_turf(user) == T) - user << "\blue You added the plating!" - var/turf/Tsrc = get_turf(src) - Tsrc.ReplaceWithWall() - - */ - -/obj/structure/falsewall/uranium/attackby(obj/item/weapon/W as obj, mob/user as mob) - radiate() - ..() - -/obj/structure/falsewall/update_icon()//Calling icon_update will refresh the smoothwalls if it's closed, otherwise it will make sure the icon is correct if it's open - ..() - if(density) - icon_state = "[mineral]0" - src.relativewall() - else - icon_state = "[mineral]fwall_open" - -/obj/structure/falserwall/ - attack_hand(mob/user as mob) - if(density) - // Open wall - icon_state = "frwall_open" - flick("frwall_opening", src) - sleep(15) - density = 0 - SetOpacity(0) - else - icon_state = "r_wall" - flick("frwall_closing", src) - sleep(15) - density = 1 - SetOpacity(1) - relativewall() - - - attackby(obj/item/weapon/W as obj, mob/user as mob) - if(istype(W, /obj/item/weapon/screwdriver)) - var/turf/T = get_turf(src) - user.visible_message("[user] tightens some bolts on the r wall.", "You tighten the bolts on the wall.") - T.ReplaceWithWall() //Intentionally makes a regular wall instead of an r-wall (no cheap r-walls for you). - del(src) - - if( istype(W, /obj/item/weapon/weldingtool) ) - var/obj/item/weapon/weldingtool/WT = W - if( WT.remove_fuel(0,user) ) - var/turf/T = get_turf(src) - T.ReplaceWithWall() - T = get_turf(src) - T.attackby(W,user) - del(src) - - else if( istype(W, /obj/item/weapon/pickaxe/plasmacutter) ) - var/turf/T = get_turf(src) - T.ReplaceWithWall() - T = get_turf(src) - T.attackby(W,user) - del(src) - - //DRILLING - else if (istype(W, /obj/item/weapon/pickaxe/diamonddrill)) - var/turf/T = get_turf(src) - T.ReplaceWithWall() - T = get_turf(src) - T.attackby(W,user) - del(src) - - else if( istype(W, /obj/item/weapon/melee/energy/blade) ) - var/turf/T = get_turf(src) - T.ReplaceWithWall() - T = get_turf(src) - T.attackby(W,user) - del(src) - -/obj/structure/falsewall/uranium/proc/radiate() - if(!active) - if(world.time > last_event+15) - active = 1 - for(var/mob/living/L in range(3,src)) - L.apply_effect(12,IRRADIATE,0) - for(var/turf/simulated/wall/mineral/T in range(3,src)) - if(T.mineral == "uranium") - T.radiate() - last_event = world.time - active = null - return - return diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm new file mode 100644 index 0000000000..62a509c00b --- /dev/null +++ b/code/game/objects/structures/false_walls.dm @@ -0,0 +1,208 @@ +/obj/structure/falsewall + var/mineral = "metal" + +/obj/structure/falserwall + var/mineral = "metal" + +/obj/structure/falsewall/gold + mineral = "gold" + +/obj/structure/falsewall/silver + mineral = "silver" + +/obj/structure/falsewall/diamond + mineral = "diamond" + +/obj/structure/falsewall/uranium + mineral = "uranium" + var/active = null + var/last_event = 0 + +/obj/structure/falsewall/plasma + mineral = "plasma" + +/obj/structure/falsewall/clown + mineral = "clown" + +/obj/structure/falsewall/sandstone + mineral = "sandstone" + +/*/obj/structure/falsewall/wood + mineral = "wood"*/ + +/obj/structure/falsewall/attack_hand(mob/user as mob) + if(density) + // Open wall + icon_state = "[mineral]fwall_open" + flick("[mineral]fwall_opening", src) + sleep(15) + src.density = 0 + SetOpacity(0) + else + flick("[mineral]fwall_closing", src) + icon_state = "[mineral]0" + sleep(15) + src.density = 1 + SetOpacity(1) + src.relativewall() + +/obj/structure/falsewall/uranium/attack_hand(mob/user as mob) + radiate() + ..() + +/obj/structure/falsewall/update_icon()//Calling icon_update will refresh the smoothwalls if it's closed, otherwise it will make sure the icon is correct if it's open + ..() + if(density) + icon_state = "[mineral]0" + src.relativewall() + else + icon_state = "[mineral]fwall_open" + +/obj/structure/falsewall/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(istype(W, /obj/item/weapon/screwdriver)) + var/turf/T = get_turf(src) + user.visible_message("[user] tightens some bolts on the wall.", "You tighten the bolts on the wall.") + if(!mineral) + T.ReplaceWithWall() + else + T.ReplaceWithMineralWall(mineral) + del(src) + + if( istype(W, /obj/item/weapon/weldingtool) ) + var/obj/item/weapon/weldingtool/WT = W + if( WT:welding ) + var/turf/T = get_turf(src) + if(!mineral) + T.ReplaceWithWall() + else + T.ReplaceWithMineralWall(mineral) + if(mineral != "plasma")//Stupid shit keeps me from pushing the attackby() to plasma walls -Sieve + T = get_turf(src) + T.attackby(W,user) + del(src) + + else if( istype(W, /obj/item/weapon/pickaxe/plasmacutter) ) + var/turf/T = get_turf(src) + if(!mineral) + T.ReplaceWithWall() + else + T.ReplaceWithMineralWall(mineral) + if(mineral != "plasma") + T = get_turf(src) + T.attackby(W,user) + del(src) + + //DRILLING + else if (istype(W, /obj/item/weapon/pickaxe/diamonddrill)) + var/turf/T = get_turf(src) + if(!mineral) + T.ReplaceWithWall() + else + T.ReplaceWithMineralWall(mineral) + T = get_turf(src) + T.attackby(W,user) + del(src) + + else if( istype(W, /obj/item/weapon/melee/energy/blade) ) + var/turf/T = get_turf(src) + if(!mineral) + T.ReplaceWithWall() + else + T.ReplaceWithMineralWall(mineral) + if(mineral != "plasma") + T = get_turf(src) + T.attackby(W,user) + del(src) + /* + + var/turf/T = get_turf(user) + user << "\blue Now adding plating..." + sleep(40) + if (get_turf(user) == T) + user << "\blue You added the plating!" + var/turf/Tsrc = get_turf(src) + Tsrc.ReplaceWithWall() + + */ + +/obj/structure/falsewall/uranium/attackby(obj/item/weapon/W as obj, mob/user as mob) + radiate() + ..() + +/obj/structure/falsewall/update_icon()//Calling icon_update will refresh the smoothwalls if it's closed, otherwise it will make sure the icon is correct if it's open + ..() + if(density) + icon_state = "[mineral]0" + src.relativewall() + else + icon_state = "[mineral]fwall_open" + +/obj/structure/falserwall/ + attack_hand(mob/user as mob) + if(density) + // Open wall + icon_state = "frwall_open" + flick("frwall_opening", src) + sleep(15) + density = 0 + SetOpacity(0) + else + icon_state = "r_wall" + flick("frwall_closing", src) + sleep(15) + density = 1 + SetOpacity(1) + relativewall() + + + attackby(obj/item/weapon/W as obj, mob/user as mob) + if(istype(W, /obj/item/weapon/screwdriver)) + var/turf/T = get_turf(src) + user.visible_message("[user] tightens some bolts on the r wall.", "You tighten the bolts on the wall.") + T.ReplaceWithWall() //Intentionally makes a regular wall instead of an r-wall (no cheap r-walls for you). + del(src) + + if( istype(W, /obj/item/weapon/weldingtool) ) + var/obj/item/weapon/weldingtool/WT = W + if( WT.remove_fuel(0,user) ) + var/turf/T = get_turf(src) + T.ReplaceWithWall() + T = get_turf(src) + T.attackby(W,user) + del(src) + + else if( istype(W, /obj/item/weapon/pickaxe/plasmacutter) ) + var/turf/T = get_turf(src) + T.ReplaceWithWall() + T = get_turf(src) + T.attackby(W,user) + del(src) + + //DRILLING + else if (istype(W, /obj/item/weapon/pickaxe/diamonddrill)) + var/turf/T = get_turf(src) + T.ReplaceWithWall() + T = get_turf(src) + T.attackby(W,user) + del(src) + + else if( istype(W, /obj/item/weapon/melee/energy/blade) ) + var/turf/T = get_turf(src) + T.ReplaceWithWall() + T = get_turf(src) + T.attackby(W,user) + del(src) + +/obj/structure/falsewall/uranium/proc/radiate() + if(!active) + if(world.time > last_event+15) + active = 1 + for(var/mob/living/L in range(3,src)) + L.apply_effect(12,IRRADIATE,0) + for(var/turf/simulated/wall/mineral/T in range(3,src)) + if(T.mineral == "uranium") + T.radiate() + last_event = world.time + active = null + return + return diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm new file mode 100644 index 0000000000..7d32ddb4b5 --- /dev/null +++ b/code/game/objects/structures/girders.dm @@ -0,0 +1,373 @@ +/obj/structure/girder + icon_state = "girder" + anchored = 1 + density = 1 + layer = 2 + var/state = 0 + + attackby(obj/item/W as obj, mob/user as mob) + if(istype(W, /obj/item/weapon/wrench) && state == 0) + if(anchored && !istype(src,/obj/structure/girder/displaced)) + playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) + user << "\blue Now disassembling the girder" + if(do_after(user,40)) + if(!src) return + user << "\blue You dissasembled the girder!" + new /obj/item/stack/sheet/metal(get_turf(src)) + del(src) + else if(!anchored) + playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) + user << "\blue Now securing the girder" + if(get_turf(user, 40)) + user << "\blue You secured the girder!" + new/obj/structure/girder( src.loc ) + del(src) + + else if(istype(W, /obj/item/weapon/pickaxe/plasmacutter)) + user << "\blue Now slicing apart the girder" + if(do_after(user,30)) + if(!src) return + user << "\blue You slice apart the girder!" + new /obj/item/stack/sheet/metal(get_turf(src)) + del(src) + + else if(istype(W, /obj/item/weapon/pickaxe/diamonddrill)) + user << "\blue You drill through the girder!" + new /obj/item/stack/sheet/metal(get_turf(src)) + del(src) + + else if(istype(W, /obj/item/weapon/screwdriver) && state == 2 && istype(src,/obj/structure/girder/reinforced)) + playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1) + user << "\blue Now unsecuring support struts" + if(do_after(user,40)) + if(!src) return + user << "\blue You unsecured the support struts!" + state = 1 + + else if(istype(W, /obj/item/weapon/wirecutters) && istype(src,/obj/structure/girder/reinforced) && state == 1) + playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1) + user << "\blue Now removing support struts" + if(do_after(user,40)) + if(!src) return + user << "\blue You removed the support struts!" + new/obj/structure/girder( src.loc ) + del(src) + + else if(istype(W, /obj/item/weapon/crowbar) && state == 0 && anchored ) + playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1) + user << "\blue Now dislodging the girder" + if(do_after(user, 40)) + if(!src) return + user << "\blue You dislodged the girder!" + new/obj/structure/girder/displaced( src.loc ) + del(src) + + else if(istype(W, /obj/item/stack/sheet)) + + var/obj/item/stack/sheet/S = W + switch(S.type) + + if(/obj/item/stack/sheet/metal) + if(!anchored) + if(S.amount < 2) return + S.use(2) + user << "\blue You create a false wall! Push on it to open or close the passage." + new /obj/structure/falsewall (src.loc) + else + if(S.amount < 2) return ..() + user << "\blue Now adding plating..." + if (do_after(user,40)) + if(!src || !S || S.amount < 2) return + S.use(2) + user << "\blue You added the plating!" + var/turf/Tsrc = get_turf(src) + Tsrc.ReplaceWithWall() + for(var/obj/machinery/atmospherics/pipe/P in Tsrc) + P.layer = 1 + for(var/turf/simulated/wall/X in Tsrc.loc) + if(X) X.add_hiddenprint(usr) + del(src) + return + + if(/obj/item/stack/sheet/plasteel) + if(!anchored) + if(S.amount < 2) return + S.use(2) + user << "\blue You create a false wall! Push on it to open or close the passage." + new /obj/structure/falserwall (src.loc) + else + if (src.icon_state == "reinforced") //I cant believe someone would actually write this line of code... + if(S.amount < 1) return ..() + user << "\blue Now finalising reinforced wall." + if(do_after(user, 50)) + if(!src || !S || S.amount < 1) return + S.use(1) + user << "\blue Wall fully reinforced!" + var/turf/Tsrc = get_turf(src) + Tsrc.ReplaceWithRWall() + for(var/obj/machinery/atmospherics/pipe/P in Tsrc) + P.layer = 1 + for(var/turf/simulated/wall/r_wall/X in Tsrc.loc) + if(X) X.add_hiddenprint(usr) + del(src) + return + else + if(S.amount < 1) return ..() + user << "\blue Now reinforcing girders" + if (do_after(user,60)) + if(!src || !S || S.amount < 1) return + S.use(1) + user << "\blue Girders reinforced!" + new/obj/structure/girder/reinforced( src.loc ) + del(src) + return + + if(/obj/item/stack/sheet/gold) + if(!anchored) + if(S.amount < 2) return + S.use(2) + user << "\blue You create a false wall! Push on it to open or close the passage." + new /obj/structure/falsewall/gold (src.loc) + else + if(S.amount < 2) return ..() + user << "\blue Now adding plating..." + if (do_after(user,40)) + if(!src || !S || S.amount < 2) return + S.use(2) + user << "\blue You added the plating!" + var/turf/Tsrc = get_turf(src) + Tsrc.ReplaceWithMineralWall("gold") + for(var/obj/machinery/atmospherics/pipe/P in Tsrc) + P.layer = 1 + for(var/turf/simulated/wall/mineral/X in Tsrc.loc) + if(X) X.add_hiddenprint(usr) + del(src) + return + + if(/obj/item/stack/sheet/silver) + if(!anchored) + if(S.amount < 2) return + S.use(2) + user << "\blue You create a false wall! Push on it to open or close the passage." + new /obj/structure/falsewall/silver (src.loc) + else + if(S.amount < 2) return ..() + user << "\blue Now adding plating..." + if (do_after(user,40)) + if(!src || !S || S.amount < 2) return + S.use(2) + user << "\blue You added the plating!" + var/turf/Tsrc = get_turf(src) + Tsrc.ReplaceWithMineralWall("silver") + for(var/obj/machinery/atmospherics/pipe/P in Tsrc) + P.layer = 1 + for(var/turf/simulated/wall/mineral/X in Tsrc.loc) + if(X) X.add_hiddenprint(usr) + del(src) + return + + if(/obj/item/stack/sheet/diamond) + if(!anchored) + if(S.amount < 2) return + S.use(2) + user << "\blue You create a false wall! Push on it to open or close the passage." + new /obj/structure/falsewall/diamond (src.loc) + else + if(S.amount < 2) return ..() + user << "\blue Now adding plating..." + if (do_after(user,40)) + if(!src || !S || S.amount < 2) return + S.use(2) + user << "\blue You added the plating!" + var/turf/Tsrc = get_turf(src) + Tsrc.ReplaceWithMineralWall("diamond") + for(var/obj/machinery/atmospherics/pipe/P in Tsrc) + P.layer = 1 + for(var/turf/simulated/wall/mineral/X in Tsrc.loc) + if(X) X.add_hiddenprint(usr) + del(src) + return + + if(/obj/item/stack/sheet/uranium) + if(!anchored) + if(S.amount < 2) return + S.use(2) + user << "\blue You create a false wall! Push on it to open or close the passage." + new /obj/structure/falsewall/uranium (src.loc) + else + if(S.amount < 2) return ..() + user << "\blue Now adding plating..." + if (do_after(user,40)) + if(!src || !S || S.amount < 2) return + S.use(2) + user << "\blue You added the plating!" + var/turf/Tsrc = get_turf(src) + Tsrc.ReplaceWithMineralWall("uranium") + for(var/obj/machinery/atmospherics/pipe/P in Tsrc) + P.layer = 1 + for(var/turf/simulated/wall/mineral/X in Tsrc.loc) + if(X) X.add_hiddenprint(usr) + del(src) + return + + if(/obj/item/stack/sheet/plasma) + if(!anchored) + if(S.amount < 2) return + S.use(2) + user << "\blue You create a false wall! Push on it to open or close the passage." + new /obj/structure/falsewall/plasma (src.loc) + else + if(S.amount < 2) return ..() + user << "\blue Now adding plating..." + if (do_after(user,40)) + if(!src || !S || S.amount < 2) return + S.use(2) + user << "\blue You added the plating!" + var/turf/Tsrc = get_turf(src) + Tsrc.ReplaceWithMineralWall("plasma") + for(var/obj/machinery/atmospherics/pipe/P in Tsrc) + P.layer = 1 + for(var/turf/simulated/wall/mineral/X in Tsrc.loc) + if(X) X.add_hiddenprint(usr) + del(src) + return + + if(/obj/item/stack/sheet/clown) + if(!anchored) + if(S.amount < 2) return + S.use(2) + user << "\blue You create a false wall! Push on it to open or close the passage." + new /obj/structure/falsewall/clown (src.loc) + else + if(S.amount < 2) return ..() + user << "\blue Now adding plating..." + if (do_after(user,40)) + if(!src || !S || S.amount < 2) return + user << "\blue You added the plating!" + var/turf/Tsrc = get_turf(src) + Tsrc.ReplaceWithMineralWall("clown") + for(var/obj/machinery/atmospherics/pipe/P in Tsrc) + P.layer = 1 + for(var/turf/simulated/wall/mineral/X in Tsrc.loc) + if(X) X.add_hiddenprint(usr) + del(src) + return + + if(/obj/item/stack/sheet/sandstone) + if(!anchored) + if(S.amount < 2) return + S.use(2) + user << "\blue You create a false wall! Push on it to open or close the passage." + new /obj/structure/falsewall/sandstone (src.loc) + else + if(S.amount < 2) return ..() + user << "\blue Now adding plating..." + if (do_after(user,40)) + if(!src || !S || S.amount < 2) return + S.use(2) + user << "\blue You added the plating!" + var/turf/Tsrc = get_turf(src) + Tsrc.ReplaceWithMineralWall("sandstone") + for(var/obj/machinery/atmospherics/pipe/P in Tsrc) + P.layer = 1 + for(var/turf/simulated/wall/mineral/X in Tsrc.loc) + if(X) X.add_hiddenprint(usr) + del(src) + return + + add_hiddenprint(usr) + del(src) + + else if(istype(W, /obj/item/pipe)) + var/obj/item/pipe/P = W + if (P.pipe_type in list(0, 1, 5)) //simple pipes, simple bends, and simple manifolds. + user.drop_item() + P.loc = src.loc + user << "\blue You fit the pipe into the [src]!" + else + ..() + + + blob_act() + if(prob(40)) + del(src) + + + ex_act(severity) + switch(severity) + if(1.0) + del(src) + return + if(2.0) + if (prob(30)) + var/remains = pick(/obj/item/stack/rods,/obj/item/stack/sheet/metal) + new remains(loc) + del(src) + return + if(3.0) + if (prob(5)) + var/remains = pick(/obj/item/stack/rods,/obj/item/stack/sheet/metal) + new remains(loc) + del(src) + return + else + return + +/obj/structure/girder/displaced + icon_state = "displaced" + anchored = 0 + +/obj/structure/girder/reinforced + icon_state = "reinforced" + state = 2 + +/obj/structure/cultgirder + icon= 'icons/obj/cult.dmi' + icon_state= "cultgirder" + anchored = 1 + density = 1 + layer = 2 + + attackby(obj/item/W as obj, mob/user as mob) + if(istype(W, /obj/item/weapon/wrench)) + playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) + user << "\blue Now disassembling the girder" + if(do_after(user,40)) + user << "\blue You dissasembled the girder!" + new /obj/effect/decal/remains/human(get_turf(src)) + del(src) + + else if(istype(W, /obj/item/weapon/pickaxe/plasmacutter)) + user << "\blue Now slicing apart the girder" + if(do_after(user,30)) + user << "\blue You slice apart the girder!" + new /obj/effect/decal/remains/human(get_turf(src)) + del(src) + + else if(istype(W, /obj/item/weapon/pickaxe/diamonddrill)) + user << "\blue You drill through the girder!" + new /obj/effect/decal/remains/human(get_turf(src)) + del(src) + + blob_act() + if(prob(40)) + del(src) + + + ex_act(severity) + switch(severity) + if(1.0) + del(src) + return + if(2.0) + if (prob(30)) + new /obj/effect/decal/remains/human(loc) + del(src) + return + if(3.0) + if (prob(5)) + new /obj/effect/decal/remains/human(loc) + del(src) + return + else + return \ No newline at end of file diff --git a/code/game/objects/structures/lattice.dm b/code/game/objects/structures/lattice.dm new file mode 100644 index 0000000000..56ce8cb1e4 --- /dev/null +++ b/code/game/objects/structures/lattice.dm @@ -0,0 +1,31 @@ +/obj/structure/lattice/blob_act() + del(src) + return + +/obj/structure/lattice/ex_act(severity) + switch(severity) + if(1.0) + del(src) + return + if(2.0) + del(src) + return + if(3.0) + return + else + return + +/obj/structure/lattice/attackby(obj/item/C as obj, mob/user as mob) + + if (istype(C, /obj/item/stack/tile/plasteel)) + var/turf/T = get_turf(src) + T.attackby(C, user) //BubbleWrap - hand this off to the underlying turf instead + return + if (istype(C, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = C + if(WT.remove_fuel(0, user)) + user << "\blue Slicing lattice joints ..." + new /obj/item/stack/rods(src.loc) + del(src) + + return \ No newline at end of file diff --git a/tgstation.dme b/tgstation.dme index e5f35a760b..497d00938a 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -6,6 +6,211 @@ // BEGIN_FILE_DIR #define FILE_DIR . +#define FILE_DIR "code" +#define FILE_DIR "code/ATMOSPHERICS" +#define FILE_DIR "code/ATMOSPHERICS/components" +#define FILE_DIR "code/ATMOSPHERICS/components/binary_devices" +#define FILE_DIR "code/ATMOSPHERICS/components/trinary_devices" +#define FILE_DIR "code/ATMOSPHERICS/components/unary" +#define FILE_DIR "code/controllers" +#define FILE_DIR "code/datums" +#define FILE_DIR "code/datums/diseases" +#define FILE_DIR "code/datums/helper_datums" +#define FILE_DIR "code/datums/spells" +#define FILE_DIR "code/defines" +#define FILE_DIR "code/defines/area" +#define FILE_DIR "code/defines/obj" +#define FILE_DIR "code/defines/procs" +#define FILE_DIR "code/defines/tanning" +#define FILE_DIR "code/FEA" +#define FILE_DIR "code/game" +#define FILE_DIR "code/game/area" +#define FILE_DIR "code/game/asteroid" +#define FILE_DIR "code/game/gamemodes" +#define FILE_DIR "code/game/gamemodes/blob" +#define FILE_DIR "code/game/gamemodes/blob/blobs" +#define FILE_DIR "code/game/gamemodes/changeling" +#define FILE_DIR "code/game/gamemodes/cult" +#define FILE_DIR "code/game/gamemodes/events" +#define FILE_DIR "code/game/gamemodes/events/holidays" +#define FILE_DIR "code/game/gamemodes/extended" +#define FILE_DIR "code/game/gamemodes/malfunction" +#define FILE_DIR "code/game/gamemodes/meteor" +#define FILE_DIR "code/game/gamemodes/nuclear" +#define FILE_DIR "code/game/gamemodes/revolution" +#define FILE_DIR "code/game/gamemodes/sandbox" +#define FILE_DIR "code/game/gamemodes/traitor" +#define FILE_DIR "code/game/gamemodes/wizard" +#define FILE_DIR "code/game/jobs" +#define FILE_DIR "code/game/jobs/job" +#define FILE_DIR "code/game/machinery" +#define FILE_DIR "code/game/machinery/atmoalter" +#define FILE_DIR "code/game/machinery/bots" +#define FILE_DIR "code/game/machinery/computer" +#define FILE_DIR "code/game/machinery/doors" +#define FILE_DIR "code/game/machinery/embedded_controller" +#define FILE_DIR "code/game/machinery/kitchen" +#define FILE_DIR "code/game/machinery/pipe" +#define FILE_DIR "code/game/machinery/telecomms" +#define FILE_DIR "code/game/mecha" +#define FILE_DIR "code/game/mecha/combat" +#define FILE_DIR "code/game/mecha/equipment" +#define FILE_DIR "code/game/mecha/equipment/tools" +#define FILE_DIR "code/game/mecha/equipment/weapons" +#define FILE_DIR "code/game/mecha/medical" +#define FILE_DIR "code/game/mecha/working" +#define FILE_DIR "code/game/objects" +#define FILE_DIR "code/game/objects/effects" +#define FILE_DIR "code/game/objects/effects/decals" +#define FILE_DIR "code/game/objects/effects/spawners" +#define FILE_DIR "code/game/objects/items" +#define FILE_DIR "code/game/objects/items/devices" +#define FILE_DIR "code/game/objects/items/devices/PDA" +#define FILE_DIR "code/game/objects/items/devices/radio" +#define FILE_DIR "code/game/objects/items/stacks" +#define FILE_DIR "code/game/objects/items/weapons" +#define FILE_DIR "code/game/objects/items/weapons/grenades" +#define FILE_DIR "code/game/objects/items/weapons/implants" +#define FILE_DIR "code/game/objects/items/weapons/secstorage" +#define FILE_DIR "code/game/objects/items/weapons/storage" +#define FILE_DIR "code/game/objects/items/weapons/tanks" +#define FILE_DIR "code/game/objects/structures" +#define FILE_DIR "code/game/objects/structures/crates_lockers" +#define FILE_DIR "code/game/objects/structures/crates_lockers/closets" +#define FILE_DIR "code/game/objects/structures/crates_lockers/closets/secure" +#define FILE_DIR "code/game/turfs" +#define FILE_DIR "code/game/vehicles" +#define FILE_DIR "code/game/vehicles/airtight" +#define FILE_DIR "code/game/verbs" +#define FILE_DIR "code/js" +#define FILE_DIR "code/modules" +#define FILE_DIR "code/modules/admin" +#define FILE_DIR "code/modules/admin/DB ban" +#define FILE_DIR "code/modules/admin/verbs" +#define FILE_DIR "code/modules/assembly" +#define FILE_DIR "code/modules/client" +#define FILE_DIR "code/modules/clothing" +#define FILE_DIR "code/modules/clothing/glasses" +#define FILE_DIR "code/modules/clothing/gloves" +#define FILE_DIR "code/modules/clothing/head" +#define FILE_DIR "code/modules/clothing/masks" +#define FILE_DIR "code/modules/clothing/shoes" +#define FILE_DIR "code/modules/clothing/spacesuits" +#define FILE_DIR "code/modules/clothing/suits" +#define FILE_DIR "code/modules/clothing/under" +#define FILE_DIR "code/modules/clothing/under/jobs" +#define FILE_DIR "code/modules/critters" +#define FILE_DIR "code/modules/critters/hivebots" +#define FILE_DIR "code/modules/detectivework" +#define FILE_DIR "code/modules/flufftext" +#define FILE_DIR "code/modules/food" +#define FILE_DIR "code/modules/library" +#define FILE_DIR "code/modules/maps" +#define FILE_DIR "code/modules/mining" +#define FILE_DIR "code/modules/mob" +#define FILE_DIR "code/modules/mob/dead" +#define FILE_DIR "code/modules/mob/dead/observer" +#define FILE_DIR "code/modules/mob/living" +#define FILE_DIR "code/modules/mob/living/blob" +#define FILE_DIR "code/modules/mob/living/carbon" +#define FILE_DIR "code/modules/mob/living/carbon/alien" +#define FILE_DIR "code/modules/mob/living/carbon/alien/humanoid" +#define FILE_DIR "code/modules/mob/living/carbon/alien/humanoid/caste" +#define FILE_DIR "code/modules/mob/living/carbon/alien/larva" +#define FILE_DIR "code/modules/mob/living/carbon/brain" +#define FILE_DIR "code/modules/mob/living/carbon/human" +#define FILE_DIR "code/modules/mob/living/carbon/metroid" +#define FILE_DIR "code/modules/mob/living/carbon/monkey" +#define FILE_DIR "code/modules/mob/living/silicon" +#define FILE_DIR "code/modules/mob/living/silicon/ai" +#define FILE_DIR "code/modules/mob/living/silicon/ai/freelook" +#define FILE_DIR "code/modules/mob/living/silicon/decoy" +#define FILE_DIR "code/modules/mob/living/silicon/pai" +#define FILE_DIR "code/modules/mob/living/silicon/robot" +#define FILE_DIR "code/modules/mob/living/simple_animal" +#define FILE_DIR "code/modules/mob/new_player" +#define FILE_DIR "code/modules/mob/organ" +#define FILE_DIR "code/modules/paperwork" +#define FILE_DIR "code/modules/power" +#define FILE_DIR "code/modules/power/antimatter" +#define FILE_DIR "code/modules/power/singularity" +#define FILE_DIR "code/modules/power/singularity/particle_accelerator" +#define FILE_DIR "code/modules/projectiles" +#define FILE_DIR "code/modules/projectiles/ammunition" +#define FILE_DIR "code/modules/projectiles/guns" +#define FILE_DIR "code/modules/projectiles/guns/energy" +#define FILE_DIR "code/modules/projectiles/guns/projectile" +#define FILE_DIR "code/modules/projectiles/projectile" +#define FILE_DIR "code/modules/reagents" +#define FILE_DIR "code/modules/reagents/reagent_containers" +#define FILE_DIR "code/modules/reagents/reagent_containers/food" +#define FILE_DIR "code/modules/reagents/reagent_containers/food/drinks" +#define FILE_DIR "code/modules/reagents/reagent_containers/food/drinks/bottle" +#define FILE_DIR "code/modules/reagents/reagent_containers/food/snacks" +#define FILE_DIR "code/modules/reagents/reagent_containers/glass" +#define FILE_DIR "code/modules/reagents/reagent_containers/glass/bottle" +#define FILE_DIR "code/modules/recycling" +#define FILE_DIR "code/modules/research" +#define FILE_DIR "code/modules/scripting" +#define FILE_DIR "code/modules/scripting/AST" +#define FILE_DIR "code/modules/scripting/AST/Operators" +#define FILE_DIR "code/modules/scripting/Implementations" +#define FILE_DIR "code/modules/scripting/Interpreter" +#define FILE_DIR "code/modules/scripting/Parser" +#define FILE_DIR "code/modules/scripting/Scanner" +#define FILE_DIR "code/modules/security levels" +#define FILE_DIR "code/unused" +#define FILE_DIR "code/unused/beast" +#define FILE_DIR "code/unused/computer2" +#define FILE_DIR "code/unused/disease2" +#define FILE_DIR "code/unused/gamemodes" +#define FILE_DIR "code/unused/hivebot" +#define FILE_DIR "code/unused/mining" +#define FILE_DIR "code/unused/optics" +#define FILE_DIR "code/unused/pda2" +#define FILE_DIR "code/unused/powerarmor" +#define FILE_DIR "code/unused/spacecraft" +#define FILE_DIR "code/WorkInProgress" +#define FILE_DIR "code/WorkInProgress/carn" +#define FILE_DIR "code/WorkInProgress/mapload" +#define FILE_DIR "code/WorkInProgress/organs" +#define FILE_DIR "code/WorkInProgress/virus2" +#define FILE_DIR "html" +#define FILE_DIR "icons" +#define FILE_DIR "icons/effects" +#define FILE_DIR "icons/mecha" +#define FILE_DIR "icons/misc" +#define FILE_DIR "icons/mob" +#define FILE_DIR "icons/obj" +#define FILE_DIR "icons/obj/assemblies" +#define FILE_DIR "icons/obj/atmospherics" +#define FILE_DIR "icons/obj/clothing" +#define FILE_DIR "icons/obj/doors" +#define FILE_DIR "icons/obj/machines" +#define FILE_DIR "icons/obj/pipes" +#define FILE_DIR "icons/pda_icons" +#define FILE_DIR "icons/spideros_icons" +#define FILE_DIR "icons/Testing" +#define FILE_DIR "icons/turf" +#define FILE_DIR "icons/vehicles" +#define FILE_DIR "icons/vending_icons" +#define FILE_DIR "interface" +#define FILE_DIR "maps" +#define FILE_DIR "maps/RandomZLevels" +#define FILE_DIR "sound" +#define FILE_DIR "sound/AI" +#define FILE_DIR "sound/ambience" +#define FILE_DIR "sound/effects" +#define FILE_DIR "sound/hallucinations" +#define FILE_DIR "sound/items" +#define FILE_DIR "sound/machines" +#define FILE_DIR "sound/mecha" +#define FILE_DIR "sound/misc" +#define FILE_DIR "sound/piano" +#define FILE_DIR "sound/voice" +#define FILE_DIR "sound/weapons" +#define FILE_DIR "tools" +#define FILE_DIR "tools/Redirector" // END_FILE_DIR // BEGIN_PREFERENCES @@ -371,36 +576,13 @@ #include "code\game\mecha\working\firefighter.dm" #include "code\game\mecha\working\ripley.dm" #include "code\game\mecha\working\working.dm" -#include "code\game\objects\bodybag.dm" #include "code\game\objects\empulse.dm" #include "code\game\objects\explosion.dm" #include "code\game\objects\explosion_recursive.dm" #include "code\game\objects\facehugger.dm" #include "code\game\objects\items.dm" -#include "code\game\objects\object_procs.dm" -#include "code\game\objects\shooting_range.dm" #include "code\game\objects\structures.dm" -#include "code\game\objects\toys.dm" #include "code\game\objects\weapons.dm" -#include "code\game\objects\devices\aicard.dm" -#include "code\game\objects\devices\chameleonproj.dm" -#include "code\game\objects\devices\flash.dm" -#include "code\game\objects\devices\flashlight.dm" -#include "code\game\objects\devices\infra_sensor.dm" -#include "code\game\objects\devices\lightreplacer.dm" -#include "code\game\objects\devices\multitool.dm" -#include "code\game\objects\devices\paicard.dm" -#include "code\game\objects\devices\powersink.dm" -#include "code\game\objects\devices\scanners.dm" -#include "code\game\objects\devices\shields.dm" -#include "code\game\objects\devices\taperecorder.dm" -#include "code\game\objects\devices\traitordevices.dm" -#include "code\game\objects\devices\transfer_valve.dm" -#include "code\game\objects\devices\uplinks.dm" -#include "code\game\objects\devices\PDA\cart.dm" -#include "code\game\objects\devices\PDA\chatroom.dm" -#include "code\game\objects\devices\PDA\PDA.dm" -#include "code\game\objects\devices\PDA\radio.dm" #include "code\game\objects\effects\aliens.dm" #include "code\game\objects\effects\biomass.dm" #include "code\game\objects\effects\effect_system.dm" @@ -411,24 +593,52 @@ #include "code\game\objects\effects\signs.dm" #include "code\game\objects\effects\decals\blood.dm" #include "code\game\objects\effects\decals\contraband.dm" +#include "code\game\objects\effects\decals\crayon.dm" #include "code\game\objects\effects\spawners\bombspawner.dm" -#include "code\game\objects\grenades\chem_grenade.dm" -#include "code\game\objects\grenades\emgrenade.dm" -#include "code\game\objects\grenades\flashbang.dm" -#include "code\game\objects\grenades\grenade.dm" -#include "code\game\objects\grenades\smokebomb.dm" -#include "code\game\objects\grenades\spawnergrenade.dm" #include "code\game\objects\items\apc_frame.dm" #include "code\game\objects\items\blueprints.dm" +#include "code\game\objects\items\bodybag.dm" #include "code\game\objects\items\candle.dm" +#include "code\game\objects\items\crayons.dm" #include "code\game\objects\items\helper_procs.dm" #include "code\game\objects\items\item.dm" #include "code\game\objects\items\robot_items.dm" #include "code\game\objects\items\robot_parts.dm" #include "code\game\objects\items\robot_upgrades.dm" #include "code\game\objects\items\shock_kit.dm" +#include "code\game\objects\items\shooting_range.dm" #include "code\game\objects\items\tk_grab.dm" #include "code\game\objects\items\trash.dm" +#include "code\game\objects\items\devices\aicard.dm" +#include "code\game\objects\items\devices\chameleonproj.dm" +#include "code\game\objects\items\devices\flash.dm" +#include "code\game\objects\items\devices\flashlight.dm" +#include "code\game\objects\items\devices\infra_sensor.dm" +#include "code\game\objects\items\devices\lightreplacer.dm" +#include "code\game\objects\items\devices\multitool.dm" +#include "code\game\objects\items\devices\paicard.dm" +#include "code\game\objects\items\devices\powersink.dm" +#include "code\game\objects\items\devices\scanners.dm" +#include "code\game\objects\items\devices\shields.dm" +#include "code\game\objects\items\devices\taperecorder.dm" +#include "code\game\objects\items\devices\traitordevices.dm" +#include "code\game\objects\items\devices\transfer_valve.dm" +#include "code\game\objects\items\devices\uplinks.dm" +#include "code\game\objects\items\devices\PDA\cart.dm" +#include "code\game\objects\items\devices\PDA\chatroom.dm" +#include "code\game\objects\items\devices\PDA\PDA.dm" +#include "code\game\objects\items\devices\PDA\radio.dm" +#include "code\game\objects\items\devices\radio\beacon.dm" +#include "code\game\objects\items\devices\radio\electropack.dm" +#include "code\game\objects\items\devices\radio\encryptionkey.dm" +#include "code\game\objects\items\devices\radio\headset.dm" +#include "code\game\objects\items\devices\radio\intercom.dm" +#include "code\game\objects\items\devices\radio\radio.dm" +#include "code\game\objects\items\stacks\glass.dm" +#include "code\game\objects\items\stacks\metal.dm" +#include "code\game\objects\items\stacks\minerals.dm" +#include "code\game\objects\items\stacks\stack.dm" +#include "code\game\objects\items\stacks\wood.dm" #include "code\game\objects\items\weapons\AI_modules.dm" #include "code\game\objects\items\weapons\cameras.dm" #include "code\game\objects\items\weapons\cards_ids.dm" @@ -459,6 +669,12 @@ #include "code\game\objects\items\weapons\tools.dm" #include "code\game\objects\items\weapons\twohanded.dm" #include "code\game\objects\items\weapons\wrappingpaper.dm" +#include "code\game\objects\items\weapons\grenades\chem_grenade.dm" +#include "code\game\objects\items\weapons\grenades\emgrenade.dm" +#include "code\game\objects\items\weapons\grenades\flashbang.dm" +#include "code\game\objects\items\weapons\grenades\grenade.dm" +#include "code\game\objects\items\weapons\grenades\smokebomb.dm" +#include "code\game\objects\items\weapons\grenades\spawnergrenade.dm" #include "code\game\objects\items\weapons\implants\implant.dm" #include "code\game\objects\items\weapons\implants\implantcase.dm" #include "code\game\objects\items\weapons\implants\implantchair.dm" @@ -467,40 +683,36 @@ #include "code\game\objects\items\weapons\implants\implantnanoaug.dm" #include "code\game\objects\items\weapons\implants\implantpad.dm" #include "code\game\objects\items\weapons\implants\implantuplink.dm" -#include "code\game\objects\radio\beacon.dm" -#include "code\game\objects\radio\electropack.dm" -#include "code\game\objects\radio\encryptionkey.dm" -#include "code\game\objects\radio\headset.dm" -#include "code\game\objects\radio\intercom.dm" -#include "code\game\objects\radio\radio.dm" -#include "code\game\objects\secstorage\sbriefcase.dm" -#include "code\game\objects\secstorage\secstorage.dm" -#include "code\game\objects\secstorage\ssafe.dm" -#include "code\game\objects\stacks\glass.dm" -#include "code\game\objects\stacks\metal.dm" -#include "code\game\objects\stacks\minerals.dm" -#include "code\game\objects\stacks\stack.dm" -#include "code\game\objects\stacks\wood.dm" -#include "code\game\objects\storage\backpack.dm" -#include "code\game\objects\storage\belt.dm" -#include "code\game\objects\storage\bible.dm" -#include "code\game\objects\storage\briefcase.dm" -#include "code\game\objects\storage\fancy.dm" -#include "code\game\objects\storage\firstaid.dm" -#include "code\game\objects\storage\kit.dm" -#include "code\game\objects\storage\lockbox.dm" -#include "code\game\objects\storage\misc.dm" -#include "code\game\objects\storage\storage.dm" -#include "code\game\objects\storage\toolbox.dm" -#include "code\game\objects\storage\uplink_kits.dm" +#include "code\game\objects\items\weapons\secstorage\sbriefcase.dm" +#include "code\game\objects\items\weapons\secstorage\secstorage.dm" +#include "code\game\objects\items\weapons\secstorage\ssafe.dm" +#include "code\game\objects\items\weapons\storage\backpack.dm" +#include "code\game\objects\items\weapons\storage\belt.dm" +#include "code\game\objects\items\weapons\storage\bible.dm" +#include "code\game\objects\items\weapons\storage\briefcase.dm" +#include "code\game\objects\items\weapons\storage\fancy.dm" +#include "code\game\objects\items\weapons\storage\firstaid.dm" +#include "code\game\objects\items\weapons\storage\kit.dm" +#include "code\game\objects\items\weapons\storage\lockbox.dm" +#include "code\game\objects\items\weapons\storage\misc.dm" +#include "code\game\objects\items\weapons\storage\storage.dm" +#include "code\game\objects\items\weapons\storage\toolbox.dm" +#include "code\game\objects\items\weapons\storage\uplink_kits.dm" +#include "code\game\objects\items\weapons\tanks\emergency.dm" +#include "code\game\objects\items\weapons\tanks\jetpack.dm" +#include "code\game\objects\items\weapons\tanks\tank_types.dm" +#include "code\game\objects\items\weapons\tanks\tanks.dm" #include "code\game\objects\structures\aliennests.dm" #include "code\game\objects\structures\displaycase.dm" #include "code\game\objects\structures\door_assembly.dm" #include "code\game\objects\structures\electricchair.dm" +#include "code\game\objects\structures\false_walls.dm" +#include "code\game\objects\structures\girders.dm" #include "code\game\objects\structures\grille.dm" #include "code\game\objects\structures\kitchen_spike.dm" #include "code\game\objects\structures\ladders.dm" #include "code\game\objects\structures\lamarr_cage.dm" +#include "code\game\objects\structures\lattice.dm" #include "code\game\objects\structures\mineral_doors.dm" #include "code\game\objects\structures\mirror.dm" #include "code\game\objects\structures\mop_bucket.dm" @@ -540,10 +752,6 @@ #include "code\game\objects\structures\crates_lockers\closets\secure\scientist.dm" #include "code\game\objects\structures\crates_lockers\closets\secure\secure_closets.dm" #include "code\game\objects\structures\crates_lockers\closets\secure\security.dm" -#include "code\game\objects\tanks\emergency.dm" -#include "code\game\objects\tanks\jetpack.dm" -#include "code\game\objects\tanks\tank_types.dm" -#include "code\game\objects\tanks\tanks.dm" #include "code\game\turfs\turf.dm" #include "code\game\vehicles\vehicle.dm" #include "code\game\vehicles\airtight\airtight.dm"