diff --git a/_maps/RandomRuins/SpaceRuins/advancedlab.dmm b/_maps/RandomRuins/SpaceRuins/advancedlab.dmm new file mode 100644 index 0000000000..39e29018ea --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/advancedlab.dmm @@ -0,0 +1,582 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"b" = ( +/turf/closed/wall, +/area/ruin/space/has_grav/powered/advancedlab) +"c" = ( +/obj/structure/fans/tiny, +/obj/machinery/door/airlock/external, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/powered/advancedlab) +"d" = ( +/obj/machinery/vending/assist, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/powered/advancedlab) +"e" = ( +/obj/machinery/vending/snack/random, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/powered/advancedlab) +"f" = ( +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/powered/advancedlab) +"g" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/powered/advancedlab) +"h" = ( +/obj/structure/table/glass, +/obj/item/crowbar/advanced, +/obj/item/multitool/advanced{ + pixel_x = 4; + pixel_y = -1 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/powered/advancedlab) +"i" = ( +/obj/machinery/computer/rdconsole, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/powered/advancedlab) +"j" = ( +/obj/structure/chair/comfy/beige, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/powered/advancedlab) +"k" = ( +/obj/structure/table/glass, +/obj/item/screwdriver/advanced{ + pixel_y = 8 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/powered/advancedlab) +"l" = ( +/obj/structure/table/glass, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/powered/advancedlab) +"m" = ( +/obj/structure/table/glass, +/obj/item/gps{ + gpstag = "Abductor Replication Lab"; + pixel_x = -2; + pixel_y = 3 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/powered/advancedlab) +"n" = ( +/obj/structure/chair/comfy/beige{ + icon_state = "comfychair"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/powered/advancedlab) +"o" = ( +/obj/structure/table/glass, +/obj/item/weldingtool/advanced{ + pixel_x = 4; + pixel_y = 4 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/powered/advancedlab) +"p" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/table/glass, +/obj/item/paper{ + name = "Note to finder"; + pixel_x = -1; + pixel_y = 3; + info = "As of yet, our experiments have seen a fair bit of success. Unfortunately, our business partners have stopped funding us as they realised they utterly hate each other. To whoever finds this place, they are yours. Use them how you will. I leave you with the next generation of greytiding." + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/powered/advancedlab) +"q" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/table/glass, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/powered/advancedlab) +"r" = ( +/obj/structure/table/glass, +/obj/item/wirecutters/advanced{ + pixel_y = 7 + }, +/obj/item/wrench/advanced{ + pixel_x = -1; + pixel_y = 3 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/powered/advancedlab) +"s" = ( +/obj/structure/chair/comfy/beige{ + icon_state = "comfychair"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/powered/advancedlab) +"t" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/powered/advancedlab) +"u" = ( +/obj/machinery/light/small{ + icon_state = "bulb"; + dir = 4 + }, +/obj/structure/closet, +/obj/item/clothing/suit/hooded/wintercoat/miner, +/obj/item/clothing/shoes/sneakers/brown, +/obj/item/clothing/under/pants/classicjeans, +/obj/item/clothing/neck/scarf, +/obj/item/clothing/neck/stripedgreenscarf, +/obj/item/toy/tennis/rainbow, +/obj/item/toy/tennis, +/obj/item/clothing/suit/hooded/wintercoat/miner, +/obj/item/clothing/shoes/sneakers/brown, +/obj/item/clothing/under/pants/classicjeans, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/powered/advancedlab) +"v" = ( +/obj/machinery/vending/boozeomat{ + req_access = null; + shut_up = 1 + }, +/turf/closed/wall, +/area/ruin/space/has_grav/powered/advancedlab) +"w" = ( +/obj/machinery/door/airlock/command{ + name = "Dorms" + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/powered/advancedlab) +"x" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/table/glass, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/powered/advancedlab) +"y" = ( +/obj/machinery/light/small{ + icon_state = "bulb"; + dir = 1 + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/powered/advancedlab) +"z" = ( +/obj/machinery/door/airlock/security{ + name = "Visiting Business Partners" + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/powered/advancedlab) +"A" = ( +/turf/open/floor/wood, +/area/ruin/space/has_grav/powered/advancedlab) +"B" = ( +/obj/structure/bed, +/obj/item/bedsheet/syndie, +/turf/open/floor/wood, +/area/ruin/space/has_grav/powered/advancedlab) +"C" = ( +/obj/structure/closet{ + name = "Clothes" + }, +/obj/item/clothing/head/chameleon, +/obj/item/clothing/gloves/combat, +/obj/item/clothing/suit/chameleon, +/obj/item/clothing/under/chameleon, +/obj/item/clothing/shoes/chameleon, +/turf/open/floor/wood, +/area/ruin/space/has_grav/powered/advancedlab) +"D" = ( +/obj/machinery/light/small, +/turf/open/floor/wood, +/area/ruin/space/has_grav/powered/advancedlab) +"E" = ( +/obj/structure/table/wood, +/obj/item/radio/headset/chameleon, +/turf/open/floor/wood, +/area/ruin/space/has_grav/powered/advancedlab) +"F" = ( +/obj/structure/falsewall, +/turf/open/floor/wood, +/area/ruin/space/has_grav/powered/advancedlab) +"G" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/ruin/space/has_grav/powered/advancedlab) +"H" = ( +/obj/structure/table/wood, +/obj/item/radio/headset/headset_cent/alt{ + keyslot2 = null + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/powered/advancedlab) +"I" = ( +/obj/structure/closet{ + name = "Official Clothing" + }, +/obj/item/clothing/under/rank/centcom_commander, +/obj/item/clothing/head/centhat, +/obj/item/clothing/gloves/combat, +/obj/item/clothing/suit/armor/vest, +/obj/item/clothing/shoes/sneakers/brown, +/turf/open/floor/wood, +/area/ruin/space/has_grav/powered/advancedlab) +"J" = ( +/obj/machinery/door/airlock/command{ + name = "Dorms" + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/powered/advancedlab) +"K" = ( +/obj/machinery/door/airlock/command{ + name = "Visiting Officials" + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/powered/advancedlab) +"L" = ( +/obj/structure/bed, +/obj/item/bedsheet/centcom, +/turf/open/floor/wood, +/area/ruin/space/has_grav/powered/advancedlab) +"M" = ( +/obj/structure/lattice, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/space/basic, +/area/ruin/space/has_grav/powered/advancedlab) +"N" = ( +/obj/structure/extinguisher_cabinet, +/turf/closed/wall, +/area/ruin/space/has_grav/powered/advancedlab) +"O" = ( +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/powered/advancedlab) +"P" = ( +/obj/structure/lattice, +/turf/template_noop, +/area/space/nearstation) +"Q" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/powered/advancedlab) +"R" = ( +/obj/machinery/light/small{ + icon_state = "bulb"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ruin/space/has_grav/powered/advancedlab) +"T" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ruin/space/has_grav/powered/advancedlab) + +(1,1,1) = {" +a +b +b +b +b +b +b +b +b +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +b +d +j +l +q +s +O +b +a +a +a +a +a +a +a +a +a +"} +(3,1,1) = {" +a +b +e +j +m +l +s +f +b +a +a +a +a +a +a +a +a +a +"} +(4,1,1) = {" +a +c +f +j +l +l +s +f +M +M +M +M +M +M +a +a +a +a +"} +(5,1,1) = {" +a +b +f +f +n +n +f +f +w +f +Q +f +f +M +a +a +a +a +"} +(6,1,1) = {" +a +b +f +f +f +f +f +f +M +M +M +M +f +M +a +a +a +a +"} +(7,1,1) = {" +a +b +g +f +f +f +f +f +b +P +P +M +R +M +a +a +a +a +"} +(8,1,1) = {" +a +N +f +f +f +f +f +u +b +P +P +M +f +M +a +a +a +a +"} +(9,1,1) = {" +a +b +f +f +f +f +f +b +b +b +b +M +J +M +b +a +a +a +"} +(10,1,1) = {" +a +b +h +k +o +r +f +b +y +A +A +F +T +A +b +a +a +a +"} +(11,1,1) = {" +a +b +i +f +f +f +t +b +z +v +b +b +b +K +b +a +a +a +"} +(12,1,1) = {" +a +b +p +f +f +f +f +b +A +C +b +G +A +A +b +a +a +a +"} +(13,1,1) = {" +a +b +l +l +x +l +f +b +A +D +b +H +A +D +b +a +a +a +"} +(14,1,1) = {" +a +b +b +b +b +b +b +b +B +E +b +I +A +L +b +a +a +a +"} +(15,1,1) = {" +a +a +a +a +a +a +a +b +b +b +b +b +b +b +b +a +a +a +"} diff --git a/code/datums/ruins/space.dm b/code/datums/ruins/space.dm index 22fca23902..9762426608 100644 --- a/code/datums/ruins/space.dm +++ b/code/datums/ruins/space.dm @@ -305,3 +305,9 @@ suffix = "spacehermit.dmm" name = "Space Hermit" description = "A late awakening cryo pod in a crashed escape pod wakes up to find what befell of his fellow survivors. Contains all the necessary resources to actually make it out alive. Good luck." + +/datum/map_template/ruin/space/advancedlab + id = "advancedlab" + suffix = "advancedlab.dmm" + name = "Abductor Replication Lab" + description = "Some scientists tried and almost succeeded to recreate abductor tools. Somewhat slower and a bit less modern than their originals, these tools are the best you can get if you aren't an alien." diff --git a/code/datums/wires/_wires.dm b/code/datums/wires/_wires.dm index f1b08ee18b..fab5a1313c 100644 --- a/code/datums/wires/_wires.dm +++ b/code/datums/wires/_wires.dm @@ -231,6 +231,9 @@ // Same for anyone with an abductor multitool. else if(user.is_holding_item_of_type(/obj/item/multitool/abductor)) reveal_wires = TRUE + // and advanced multitool + else if(user.is_holding_item_of_type(/obj/item/multitool/advanced)) + reveal_wires = TRUE // Station blueprints do that too, but only if the wires are not randomized. else if(user.is_holding_item_of_type(/obj/item/areaeditor/blueprints) && !randomize) diff --git a/code/game/area/areas/ruins/space.dm b/code/game/area/areas/ruins/space.dm index 00a7fed012..d5ceb833b7 100644 --- a/code/game/area/areas/ruins/space.dm +++ b/code/game/area/areas/ruins/space.dm @@ -467,3 +467,8 @@ /area/ruin/space/has_grav/powered/ancient_shuttle name = "Ancient Shuttle" icon_state = "yellow" + +// Abductor Replication Lab +/area/ruin/space/has_grav/powered/advancedlab + name = "Abductor Replication Lab" + icon_state = "yellow" diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm index f8b1d6e15b..a3ab9153ce 100644 --- a/code/game/objects/items/devices/multitool.dm +++ b/code/game/objects/items/devices/multitool.dm @@ -237,3 +237,10 @@ icon = 'icons/obj/abductor.dmi' icon_state = "multitool" toolspeed = 0.1 + +/obj/item/multitool/advanced + name = "advanced multitool" + desc = "The reproduction of an abductor's multitool, this multitool is a classy silver." + icon = 'icons/obj/advancedtools.dmi' + icon_state = "multitool" + toolspeed = 0.2 diff --git a/code/game/objects/items/tools/crowbar.dm b/code/game/objects/items/tools/crowbar.dm index 97375221d4..70bfebb799 100644 --- a/code/game/objects/items/tools/crowbar.dm +++ b/code/game/objects/items/tools/crowbar.dm @@ -90,4 +90,12 @@ var/obj/item/wirecutters/power/cutjaws = new /obj/item/wirecutters/power(drop_location()) to_chat(user, "You attach the cutting jaws to [src].") qdel(src) - user.put_in_active_hand(cutjaws) \ No newline at end of file + user.put_in_active_hand(cutjaws) + +/obj/item/crowbar/advanced + name = "advanced crowbar" + desc = "A scientist's almost successful reproduction of an abductor's crowbar, it uses the same technology combined with a handle that can't quite hold it." + icon = 'icons/obj/advancedtools.dmi' + usesound = 'sound/weapons/sonic_jackhammer.ogg' + icon_state = "crowbar" + toolspeed = 0.2 \ No newline at end of file diff --git a/code/game/objects/items/tools/screwdriver.dm b/code/game/objects/items/tools/screwdriver.dm index e5808de088..68946f73cd 100644 --- a/code/game/objects/items/tools/screwdriver.dm +++ b/code/game/objects/items/tools/screwdriver.dm @@ -141,4 +141,14 @@ name = "powered screwdriver" desc = "An electrical screwdriver, designed to be both precise and quick." usesound = 'sound/items/drill_use.ogg' - toolspeed = 0.5 \ No newline at end of file + toolspeed = 0.5 + +/obj/item/screwdriver/advanced + name = "advanced screwdriver" + desc = "A classy silver screwdriver with an alien alloy tip, it works almost as well as the real thing." + icon = 'icons/obj/advancedtools.dmi' + icon_state = "screwdriver_a" + item_state = "screwdriver_nuke" + usesound = 'sound/items/pshoom.ogg' + toolspeed = 0.2 + random_color = FALSE \ No newline at end of file diff --git a/code/game/objects/items/tools/weldingtool.dm b/code/game/objects/items/tools/weldingtool.dm index 718035a9a5..9b622a14c4 100644 --- a/code/game/objects/items/tools/weldingtool.dm +++ b/code/game/objects/items/tools/weldingtool.dm @@ -377,4 +377,18 @@ nextrefueltick = world.time + 10 reagents.add_reagent("welding_fuel", 1) +/obj/item/weldingtool/advanced + name = "advanced welding tool" + desc = "A modern welding tool combined with an alien welding tool, it never runs out of fuel and works almost as fast." + icon = 'icons/obj/advancedtools.dmi' + icon_state = "welder" + toolspeed = 0.2 + light_intensity = 0 + change_icons = 0 + +/obj/item/weldingtool/advanced/process() + if(get_fuel() <= max_fuel) + reagents.add_reagent("welding_fuel", 1) + ..() + #undef WELDER_FUEL_BURN_INTERVAL diff --git a/code/game/objects/items/tools/wirecutters.dm b/code/game/objects/items/tools/wirecutters.dm index 1a35196bd8..527891afdb 100644 --- a/code/game/objects/items/tools/wirecutters.dm +++ b/code/game/objects/items/tools/wirecutters.dm @@ -82,7 +82,6 @@ icon = 'icons/obj/abductor.dmi' icon_state = "cutters" toolspeed = 0.1 - random_color = FALSE /obj/item/wirecutters/cyborg @@ -126,3 +125,11 @@ return else ..() + +/obj/item/wirecutters/advanced + name = "advanced wirecutters" + desc = "A set of reproduction alien wirecutters, they have a silver handle with an exceedingly sharp blade." + icon = 'icons/obj/advancedtools.dmi' + icon_state = "cutters" + toolspeed = 0.2 + random_color = FALSE \ No newline at end of file diff --git a/code/game/objects/items/tools/wrench.dm b/code/game/objects/items/tools/wrench.dm index 4fd99e9adf..8ff960825a 100644 --- a/code/game/objects/items/tools/wrench.dm +++ b/code/game/objects/items/tools/wrench.dm @@ -112,4 +112,12 @@ user.dust() - return OXYLOSS \ No newline at end of file + return OXYLOSS + +/obj/item/wrench/advanced + name = "advanced wrench" + desc = "A wrench that uses the same magnetic technology that abductor tools use, but slightly more ineffeciently." + icon = 'icons/obj/advancedtools.dmi' + icon_state = "wrench" + usesound = 'sound/effects/empulse.ogg' + toolspeed = 0.2 \ No newline at end of file diff --git a/config/spaceRuinBlacklist.txt b/config/spaceRuinBlacklist.txt index cba9a01e73..deafa47969 100644 --- a/config/spaceRuinBlacklist.txt +++ b/config/spaceRuinBlacklist.txt @@ -49,3 +49,4 @@ #_maps/RandomRuins/SpaceRuins/bigape.dmm #_maps/RandomRuins/SpaceRuins/arcade.dmm #_maps/RandomRuins/SpaceRuins/spacehermit.dmm +#_maps/RandomRuins/SpaceRuins/advancedlab.dmm diff --git a/icons/obj/advancedtools.dmi b/icons/obj/advancedtools.dmi new file mode 100644 index 0000000000..974202dd58 Binary files /dev/null and b/icons/obj/advancedtools.dmi differ