diff --git a/baystation12.dme b/baystation12.dme index 884ad691a88..5d4b167fef7 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -785,6 +785,7 @@ #include "code\game\objects\structures\inflatable.dm" #include "code\game\objects\structures\janicart.dm" #include "code\game\objects\structures\kitchen_spike.dm" +#include "code\game\objects\structures\lamarr_cage.dm" #include "code\game\objects\structures\lattice.dm" #include "code\game\objects\structures\mirror.dm" #include "code\game\objects\structures\mop_bucket.dm" diff --git a/code/datums/uplink/ammunition.dm b/code/datums/uplink/ammunition.dm index 44dd7e64c52..5f0812f52b7 100644 --- a/code/datums/uplink/ammunition.dm +++ b/code/datums/uplink/ammunition.dm @@ -10,10 +10,15 @@ item_cost = 1 path = /obj/item/ammo_magazine/mc9mm -/datum/uplink_item/item/ammo/a10mm - name = "10mm" - item_cost = 1 - path = /obj/item/ammo_magazine/a10mm +/datum/uplink_item/item/ammo/tommygunmag + name = "Tommygun Magazine (.45)" + item_cost = 2 + path = /obj/item/ammo_magazine/tommymag + +/datum/uplink_item/item/ammo/tommygundrum + name = "Tommygun Drum Magazine (.45)" + item_cost = 4 + path = /obj/item/ammo_magazine/tommydrum /datum/uplink_item/item/ammo/darts name = "Darts" @@ -25,11 +30,6 @@ item_cost = 2 path = /obj/item/ammo_magazine/a357 -/datum/uplink_item/item/ammo/a762 - name = "7.62mm" - item_cost = 3 - path = /obj/item/ammo_magazine/a762 - /datum/uplink_item/item/ammo/sniperammo name = "14.5mm" item_cost = 4 diff --git a/code/datums/uplink/grenades.dm b/code/datums/uplink/grenades.dm index 6c9fcdfb48d..503be66246e 100644 --- a/code/datums/uplink/grenades.dm +++ b/code/datums/uplink/grenades.dm @@ -18,3 +18,8 @@ name = "5xEMP Grenades" item_cost = 6 path = /obj/item/weapon/storage/box/emps + +/datum/uplink_item/item/grenades/manhack + name = "Manhack Delivery Grenade" + item_cost = 3 + path = /obj/item/weapon/grenade/spawnergrenade/manhacks diff --git a/code/datums/uplink/highly visible and dangerous weapons.dm b/code/datums/uplink/highly visible and dangerous weapons.dm index cee8965f649..2858cebad44 100644 --- a/code/datums/uplink/highly visible and dangerous weapons.dm +++ b/code/datums/uplink/highly visible and dangerous weapons.dm @@ -14,6 +14,11 @@ item_cost = 6 path = /obj/item/weapon/gun/energy/crossbow +/datum/uplink_item/item/visible_weapons/forcegloves + name = "Force Gloves" + item_cost = 8 + path = /obj/item/clothing/gloves/force/syndicate + /datum/uplink_item/item/visible_weapons/energy_sword name = "Energy Sword" item_cost = 8 @@ -34,16 +39,10 @@ item_cost = 12 path = /obj/item/weapon/gun/projectile/revolver -//These are for traitors (or other antags, perhaps) to have the option of purchasing some merc gear. /datum/uplink_item/item/visible_weapons/submachinegun - name = "Submachine Gun" - item_cost = 12 - path = /obj/item/weapon/gun/projectile/automatic/c20r - -/datum/uplink_item/item/visible_weapons/assaultrifle - name = "Assault Rifle" + name = "Tommy Gun" item_cost = 14 - path = /obj/item/weapon/gun/projectile/automatic/rifle/sts35 + path = /obj/item/weapon/gun/projectile/automatic/tommygun /datum/uplink_item/item/visible_weapons/heavysniper name = "Anti-materiel Rifle" diff --git a/code/datums/uplink/medical.dm b/code/datums/uplink/medical.dm index 265c163309e..588f4bb7bd5 100644 --- a/code/datums/uplink/medical.dm +++ b/code/datums/uplink/medical.dm @@ -18,3 +18,8 @@ name = "Combat medical kit" item_cost = 12 path = /obj/item/weapon/storage/firstaid/combat + +/datum/uplink_item/item/medical/combathypo + name = "Combat hypospray" + item_cost = 6 + path = /obj/item/weapon/reagent_containers/hypospray/combat \ No newline at end of file diff --git a/code/datums/uplink/stealthy and inconspicuous weapons.dm b/code/datums/uplink/stealthy and inconspicuous weapons.dm index bf9bd060236..f800487dad4 100644 --- a/code/datums/uplink/stealthy and inconspicuous weapons.dm +++ b/code/datums/uplink/stealthy and inconspicuous weapons.dm @@ -16,7 +16,7 @@ /datum/uplink_item/item/stealthy_weapons/concealed_cane name = "Concealed Cane Sword" - item_cost = 2 + item_cost = 9 path = /obj/item/weapon/cane/concealed /datum/uplink_item/item/stealthy_weapons/random_toxin diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index 9e5b01e3eab..2129d00e617 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -122,16 +122,6 @@ else ..() -/obj/item/weapon/cane/concealed/update_icon() - if(concealed_blade) - name = initial(name) - icon_state = initial(icon_state) - item_state = initial(icon_state) - else - name = "cane shaft" - icon_state = "nullrod" - item_state = "foldcane" - /obj/item/weapon/disk name = "disk" icon = 'icons/obj/items.dmi' diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm index b47dd1d48dc..a26fd25052e 100644 --- a/code/game/objects/items/weapons/storage/backpack.dm +++ b/code/game/objects/items/weapons/storage/backpack.dm @@ -328,6 +328,7 @@ /obj/item/weapon/storage/backpack/duffel/tox name = "scientist's duffel bag" desc = "Handy when it comes to storing volatile materials of the anomalous persuasion." + icon_state = "duffel-toxins" /obj/item/weapon/storage/backpack/duffel/sec name = "security duffel bag" diff --git a/code/game/objects/structures/lamarr_cage.dm b/code/game/objects/structures/lamarr_cage.dm new file mode 100644 index 00000000000..ade6807dcb3 --- /dev/null +++ b/code/game/objects/structures/lamarr_cage.dm @@ -0,0 +1,262 @@ +/obj/structure/lamarr + name = "lab cage" + icon = 'icons/obj/stationobjs.dmi' + icon_state = "labcage1" + desc = "A glass lab container for storing interesting creatures." + density = 1 + anchored = 1 + unacidable = 1//Dissolving the case would also delete Lamarr + var/health = 30 + var/occupied = 1 + var/destroyed = 0 + +/obj/structure/lamarr/ex_act(severity) + switch(severity) + if (1) + new /obj/item/weapon/material/shard( src.loc ) + Break() + qdel(src) + if (2) + if (prob(50)) + src.health -= 15 + src.healthcheck() + if (3) + if (prob(50)) + src.health -= 5 + src.healthcheck() + + +/obj/structure/lamarr/bullet_act(var/obj/item/projectile/Proj) + health -= Proj.damage + ..() + src.healthcheck() + return + +/obj/structure/lamarr/proc/healthcheck() + if (src.health <= 0) + if (!( src.destroyed )) + src.density = 0 + src.destroyed = 1 + new /obj/item/weapon/material/shard( src.loc ) + playsound(src, "shatter", 70, 1) + Break() + else + playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) + return + +/obj/structure/lamarr/update_icon() + if(src.destroyed) + src.icon_state = "labcageb[src.occupied]" + else + src.icon_state = "labcage[src.occupied]" + return + + +/obj/structure/lamarr/attackby(obj/item/weapon/W as obj, mob/user as mob) + src.health -= W.force + src.healthcheck() + ..() + return + +/obj/structure/lamarr/attack_hand(mob/user as mob) + if (src.destroyed) + return + else + usr << "You kick the lab cage." + for(var/mob/O in oviewers()) + if ((O.client && !( O.blinded ))) + O << "[] kicks the lab cage." + + src.health -= 2 + healthcheck() + return + +/obj/structure/lamarr/proc/Break() + if(occupied) + new /obj/item/clothing/mask/lamarr(src.loc) + occupied = 0 + update_icon() + return + +var/const/MIN_ACTIVE_TIME = 200 //time between being dropped and going idle +var/const/MAX_ACTIVE_TIME = 400 + +/obj/item/clothing/mask/lamarr + name = "Lamarr" + desc = "The worst she might do is attempt to... couple with your head."//hope we don't get sued over a harmless reference, rite? + gender = FEMALE + icon = 'icons/mob/alien.dmi' + icon_state = "facehugger" + item_state = "facehugger" + w_class = 3 //note: can be picked up by aliens unlike most other items of w_class below 4 + flags = PROXMOVE + body_parts_covered = FACE|EYES + throw_range = 5 + + var/stat = CONSCIOUS //UNCONSCIOUS is the idle state in this case + var/strength = 5 + var/attached = 0 + var/sterile = 1 + +/obj/item/clothing/mask/lamarr/New()//to prevent deleting it if aliums are disabled + return + +/obj/item/clothing/mask/lamarr/attack_hand(user as mob) + + if((stat == CONSCIOUS)) + if(Attach(user)) + return + + ..() + +/obj/item/clothing/mask/lamarr/apply_hit_effect(mob/living/target, mob/living/user, var/hit_zone) + . = ..() + user.drop_from_inventory(src) + if(hit_zone == "head") + Attach(target) + + +/obj/item/clothing/mask/lamarr/examine(mob/user) + ..(user) + switch(stat) + if(DEAD,UNCONSCIOUS) + user << "[src] is not moving." + if(CONSCIOUS) + user << "[src] seems to be active." + if (sterile) + user << " It looks like the proboscis has been removed." + return + +/obj/item/clothing/mask/lamarr/attackby(obj/item/I, mob/user) + if(I.force) + user.do_attack_animation(src) + Die() + return + +/obj/item/clothing/mask/lamarr/bullet_act() + Die() + return + +/obj/item/clothing/mask/lamarr/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) + if(exposed_temperature > T0C+80) + Die() + return + +/obj/item/clothing/mask/lamarr/equipped(mob/M) + ..() + Attach(M) + +/obj/item/clothing/mask/lamarr/Crossed(atom/target) + HasProximity(target) + return + +/obj/item/clothing/mask/lamarr/on_found(mob/finder as mob) + if(stat == CONSCIOUS) + HasProximity(finder) + return 1 + return + +/obj/item/clothing/mask/lamarr/HasProximity(atom/movable/AM as mob|obj) + if(CanHug(AM)) + Attach(AM) + +/obj/item/clothing/mask/lamarr/throw_at(atom/target, range, speed) + ..() + if(stat == CONSCIOUS) + icon_state = "[initial(icon_state)]_thrown" + spawn(15) + if(icon_state == "[initial(icon_state)]_thrown") + icon_state = "[initial(icon_state)]" + +/obj/item/clothing/mask/lamarr/proc/Attach(M as mob) + + if((!iscarbon(M))) + return + + if(attached) + return + + var/mob/living/L = M //just so I don't need to use : + + if(loc == L) return + if(stat != CONSCIOUS) return + if(!sterile) L.take_organ_damage(strength,0) //done here so that even borgs and humans in helmets take damage + + L.visible_message("\[src] leaps at [L]'s face!") + + + if(ishuman(L)) + var/mob/living/carbon/human/H = L + if(H.head && H.head.flags & AIRTIGHT) + H.visible_message("\The [src] smashes against [H]'s [H.head]!") + Die() + return + + + if(iscarbon(M)) + var/mob/living/carbon/target = L + + if(target.wear_mask) + if(prob(20)) return + var/obj/item/clothing/W = target.wear_mask + if(!W.canremove) return + target.drop_from_inventory(W) + + target.visible_message("\The [src] tears [W] off of [target]'s face!") + + target.equip_to_slot(src, slot_wear_mask) + target.contents += src // Monkey sanity check - Snapshot + + GoIdle() //so it doesn't jump the people that tear it off + + return + +/obj/item/clothing/mask/lamarr/proc/GoActive() + if(stat == DEAD || stat == CONSCIOUS) + return + + stat = CONSCIOUS + icon_state = "[initial(icon_state)]" + + return + +/obj/item/clothing/mask/lamarr/proc/GoIdle(var/min_time=MIN_ACTIVE_TIME, var/max_time=MAX_ACTIVE_TIME) + if(stat == DEAD || stat == UNCONSCIOUS) + return + +/* RemoveActiveIndicators() */ + + stat = UNCONSCIOUS + icon_state = "[initial(icon_state)]_inactive" + + spawn(rand(min_time,max_time)) + GoActive() + return + +/obj/item/clothing/mask/lamarr/proc/Die() + if(stat == DEAD) + return + +/* RemoveActiveIndicators() */ + + icon_state = "[initial(icon_state)]_dead" + stat = DEAD + + src.visible_message("\The [src] curls up into a ball!") + + return + +/proc/CanHug(var/mob/M) + + if(!iscarbon(M)) + return 0 + + var/mob/living/carbon/C = M + if(istype(C) && locate(/obj/item/organ/xenos/hivenode) in C.internal_organs) + return 0 + + if(ishuman(C)) + var/mob/living/carbon/human/H = C + if(H.head && (H.head.body_parts_covered & FACE) && !(H.head.item_flags & FLEXIBLEMATERIAL)) + return 0 + return 1 diff --git a/code/modules/client/preferences_gear.dm b/code/modules/client/preferences_gear.dm index 5974e08c743..7d9c6848c33 100644 --- a/code/modules/client/preferences_gear.dm +++ b/code/modules/client/preferences_gear.dm @@ -389,6 +389,7 @@ var/global/list/gear_datums = list() path = /obj/item/clothing/under/color/blackf slot = slot_w_uniform cost = 1 + /datum/gear/blackfjumpsuit display_name = "jumpsuit, rainbow" path = /obj/item/clothing/under/rainbow @@ -419,13 +420,6 @@ var/global/list/gear_datums = list() slot = slot_w_uniform cost = 1 -/datum/gear/roboticist_skirt - display_name = "skirt, roboticist" - path = /obj/item/clothing/under/rank/roboticist/skirt - slot = slot_w_uniform - cost = 1 - allowed_roles = list("Roboticist") - /datum/gear/amishsuit display_name = "suit, amish" path = /obj/item/clothing/under/sl_suit @@ -611,46 +605,6 @@ var/global/list/gear_datums = list() cost = 1 allowed_roles = list("Scientist","Chief Medical Officer","Medical Doctor","Geneticist","Paramedic","Nursing Intern","Xenobiologist","Roboticist","Research Director","Detective",) -// Resomi junk -/datum/gear/resomi_grey - display_name = "Resomi uniform, grey" - path = /obj/item/clothing/under/resomi - cost = 1 - slot = slot_w_uniform - -/datum/gear/resomi_rainbow - display_name = "Resomi uniform, rainbow" - path = /obj/item/clothing/under/resomi/rainbow - cost = 1 - slot = slot_w_uniform - -/datum/gear/resomi_white - display_name = "Resomi uniform, white" - path = /obj/item/clothing/under/resomi/white - cost = 1 - slot = slot_w_uniform - -/datum/gear/resomi_eng - display_name = "Resomi uniform, Engineering" - path = /obj/item/clothing/under/resomi/yellow - cost = 1 - slot = slot_w_uniform - allowed_roles = list("Chief Engineer","Station Engineer","Atmospherics Technician") - -/datum/gear/resomi_sec - display_name = "Resomi uniform, Security" - path = /obj/item/clothing/under/resomi/red - cost = 1 - slot = slot_w_uniform - allowed_roles = list("Security Officer","Head of Security","Warden") - - -/datum/gear/resomi_med - display_name = "Resomi uniform, Medical" - path = /obj/item/clothing/under/resomi/medical - cost = 1 - slot = slot_w_uniform - // Attachments /datum/gear/armband_cargo display_name = "armband, cargo" @@ -1272,7 +1226,6 @@ var/global/list/gear_datums = list() sort_category = "utility" cost = 2 - /datum/gear/wallet display_name = "wallet" path = /obj/item/weapon/storage/wallet @@ -1418,7 +1371,6 @@ var/global/list/gear_datums = list() sort_category = "misc" cost = 1 - /datum/gear/cape display_name = "tunnel cloak" path = /obj/item/weapon/storage/backpack/cloak @@ -1437,11 +1389,6 @@ var/global/list/gear_datums = list() sort_category = "misc" cost = 1 -/*/datum/gear/combitool - display_name = "combi-tool" - path = /obj/item/weapon/combitool - cost = 3*/ - // Stuff worn on the ears. Items here go in the "ears" sort_category but they must not use // the slot_r_ear or slot_l_ear as the slot, or else players will spawn with no headset. /datum/gear/earmuffs diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 16ff63fc0ce..3adece20525 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -420,7 +420,7 @@ BLIND // can't see anything /obj/item/clothing/shoes/proc/draw_knife() set name = "Draw Boot Knife" set desc = "Pull out your boot knife." - set category = "IC" + set category = "Object" set src in usr if(usr.stat || usr.restrained() || usr.incapacitated()) @@ -443,10 +443,7 @@ BLIND // can't see anything /obj/item/clothing/shoes/attackby(var/obj/item/I, var/mob/user) - if(can_hold_knife && istype(I, /obj/item/weapon/material/shard) || \ - istype(I, /obj/item/weapon/material/butterfly) || \ - istype(I, /obj/item/weapon/material/kitchen/utensil) || \ - istype(I, /obj/item/weapon/material/hatchet/tacknife)) + if(can_hold_knife && is_type_in_list(I, list(/obj/item/weapon/material/shard, /obj/item/weapon/material/butterfly, /obj/item/weapon/material/kitchen/utensil, /obj/item/weapon/material/hatchet/tacknife, /obj/item/weapon/material/sword/trench))) if(holding) user << "\The [src] is already holding \a [holding]." return diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 415c3debf09..3036e7b8c29 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -21,7 +21,8 @@ force = 3 armor = list(melee = 80, bullet = 60, laser = 50,energy = 25, bomb = 50, bio = 10, rad = 0) item_flags = NOSLIP - siemens_coefficient = 0.6 + siemens_coefficient = 0.5 + can_hold_knife = 1 /obj/item/clothing/shoes/combat //Basically SWAT shoes combined with galoshes. name = "combat boots" @@ -30,7 +31,8 @@ force = 5 armor = list(melee = 80, bullet = 60, laser = 50,energy = 25, bomb = 50, bio = 10, rad = 0) item_flags = NOSLIP - siemens_coefficient = 0.6 + siemens_coefficient = 0.5 + can_hold_knife = 1 cold_protection = FEET min_cold_protection_temperature = SHOE_MIN_COLD_PROTECTION_TEMPERATURE diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index dbc824be5b5..29ae696d86e 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -656,11 +656,7 @@ var/global/list/robot_modules = list( LANGUAGE_SKRELLIAN = 0, LANGUAGE_GUTTER = 1 ) - sprites = list( - "Dread" = "securityrobot", - ) - var/id - + /obj/item/weapon/robot_module/syndicate/New(var/mob/living/silicon/robot/R) loc = R src.modules += new /obj/item/device/flash(src) @@ -689,7 +685,7 @@ var/global/list/robot_modules = list( id = null return ..() */ -/obj/item/weapon/robot_module/security/combat +/obj/item/weapon/robot_module/combat name = "combat robot module" channels = list("Security" = 1) networks = list(NETWORK_SECURITY) diff --git a/code/modules/research/mechfab_designs.dm b/code/modules/research/mechfab_designs.dm index 1a3ef67b9b1..1327cd68029 100644 --- a/code/modules/research/mechfab_designs.dm +++ b/code/modules/research/mechfab_designs.dm @@ -608,4 +608,123 @@ build_type = MECHFAB materials = list(DEFAULT_WALL_MATERIAL = 750, "glass" = 750) build_path = /obj/item/device/flash/synthetic - category = "Misc" \ No newline at end of file + category = "Misc" + +//hardsuits modules + +/datum/design/hardsuitmodules + build_type = MECHFAB + category = "Hardsuit Modules" + time = 10 + +/datum/design/hardsuitmodules/iss_module + name = "IIS module" + desc = "An integrated intelligence system module suitable for most hardsuits." + id = "iis_module" + req_tech = list(TECH_DATA = 4, TECH_MATERIAL = 3) + materials = list("glass" = 7500, DEFAULT_WALL_MATERIAL = 5000) + build_path = /obj/item/rig_module/ai_container + +/datum/design/hardsuitmodules/sink_module + name = "hardsuit power sink" + desc = "An heavy-duty power sink suitable for hardsuits." + id = "power_sink_module" + req_tech = list(TECH_POWER = 4, TECH_MATERIAL = 3, TECH_ENGINEERING = 4, TECH_ILLEGAL = 3) + materials = list(DEFAULT_WALL_MATERIAL = 10000, "gold"= 2000, "silver"= 3000, "glass"= 2000) + build_path = /obj/item/rig_module/power_sink + +/datum/design/hardsuitmodules/meson_module + name = "hardsuit meson scanner" + desc = "A layered, translucent visor system for a hardsuit." + id = "meson_module" + req_tech = list(TECH_MAGNET = 4, TECH_MATERIAL = 2, TECH_ENGINEERING = 3) + materials = list("glass"= 5000, DEFAULT_WALL_MATERIAL= 1500) + build_path = /obj/item/rig_module/vision/meson + +/datum/design/hardsuitmodules/sechud_module + name = "hardsuit meson scanner" + desc = "A simple tactical information system for a hardsuit." + id = "sechud_module" + req_tech = list(TECH_BIO = 3, TECH_MATERIAL = 2, TECH_MAGNET = 3) + materials = list("glass" = 5000, DEFAULT_WALL_MATERIAL =1500) + build_path = /obj/item/rig_module/vision/sechud + +/datum/design/hardsuitmodules/medhud_module + name = "hardsuit medical hud" + desc = "A simple medical status indicator for a hardsuit." + id = "medhu_module" + req_tech = list(TECH_BIO = 3, TECH_MATERIAL = 2, TECH_MAGNET = 3) + materials = list("glass"= 5000, DEFAULT_WALL_MATERIAL =1500) + build_path = /obj/item/rig_module/vision/medhud + +/datum/design/hardsuitmodules/nvg_module + name = "hardsuit night vision interface" + desc = "A multi input night vision system for a hardsuit." + id = "nvg_module" + req_tech = list(TECH_BIO = 4, TECH_MATERIAL = 3, TECH_MAGNET = 4) + materials = list("glass" = 5000, DEFAULT_WALL_MATERIAL = 1500, "uranium" = 5000) + build_path = /obj/item/rig_module/vision/nvg + +/datum/design/hardsuitmodules/healthscanner_module + name = "hardsuit night vision interface" + desc = "A hardsuit-mounted health scanner." + id = "healthscanner_module" + req_tech = list(TECH_BIO = 3, TECH_MATERIAL = 3, TECH_MAGNET = 2) + materials = list("glass" = 5250, DEFAULT_WALL_MATERIAL = 2500) + build_path = /obj/item/rig_module/device/healthscanner + +/datum/design/hardsuitmodules/chem_module + name = "mounted chemical injector" + desc = "A complex web of tubing and a large needle suitable for hardsuit use." + id = "chem_module" + req_tech = list(TECH_BIO = 5, TECH_MATERIAL = 4, TECH_DATA = 3, TECH_PHORON = 2) + materials = list("glass" = 9250, DEFAULT_WALL_MATERIAL = 10000, "gold" = 2500, "silver" = 4250, "phoron" = 5500) + build_path = /obj/item/rig_module/chem_dispenser/injector + +/datum/design/hardsuitmodules/plasmacutter_module + name = "hardsuit plasma cutter" + desc = "A self-sustaining plasma arc capable of cutting through walls." + id = "plasmacutter_module" + req_tech = list(TECH_ENGINEERING = 4, TECH_MATERIAL = 3, TECH_PHORON = 4) + materials = list("glass" = 5250, DEFAULT_WALL_MATERIAL = 30000, "silver" = 5250, "phoron" = 7250) + build_path = /obj/item/rig_module/device/plasmacutter + +/datum/design/hardsuitmodules/jet_module + name = "hardsuit maneuvering jets" + desc = "A compact gas thruster system for a hardsuit." + id = "jet_module" + req_tech = list(TECH_ENGINEERING = 4, TECH_MATERIAL = 3, TECH_POWER = 2) + materials = list("glass" = 4250, DEFAULT_WALL_MATERIAL = 15000, "silver" = 4250,"uranium" = 5250) + build_path = /obj/item/rig_module/maneuvering_jets + +/datum/design/hardsuitmodules/drill_module + name = "hardsuit drill mount" + desc = "A very heavy diamond-tipped drill." + id = "drill_module" + req_tech = list(TECH_ENGINEERING = 5, TECH_MATERIAL = 5, TECH_POWER = 4, TECH_MAGNET = 4) + materials = list("glass" = 2250, DEFAULT_WALL_MATERIAL = 55000, "silver" = 5250, "diamond" = 3750) + build_path = /obj/item/rig_module/device/drill + +/datum/design/hardsuitmodules/rcd_module + name = "RCD mount" + desc = "A cell-powered rapid construction device for a hardsuit." + id = "rcd_module" + req_tech = list(TECH_ENGINEERING = 6, TECH_MATERIAL = 5, TECH_POWER = 5, TECH_BLUESPACE = 4) + materials = list(DEFAULT_WALL_MATERIAL= 30000, "phoron" = 12500, "silver" = 10000, "gold" = 10000) + build_path = /obj/item/rig_module/device/rcd + +/datum/design/hardsuitmodules/taser_module + name = "mounted taser" + desc = "A palm-mounted nonlethal energy projector." + id = "taser_module" + req_tech = list(TECH_MATERIAL = 2, TECH_POWER = 3, TECH_COMBAT = 3, TECH_MAGNET = 2) + materials = list(DEFAULT_WALL_MATERIAL = 7000, "glass" = 5250) + build_path = /obj/item/rig_module/mounted/taser + +/datum/design/hardsuitmodules/egun_module + name = "mounted taser" + desc = "A forearm-mounted energy projector." + id = "egun_module" + req_tech = list(TECH_MATERIAL = 3, TECH_POWER = 4, TECH_COMBAT = 4, TECH_MAGNET = 3) + materials = list(DEFAULT_WALL_MATERIAL= 7000, "glass"= 2250, "uranium"= 3250, "gold"= 2500) + build_path = /obj/item/rig_module/mounted/egun \ No newline at end of file diff --git a/icons/mob/feet.dmi b/icons/mob/feet.dmi index 366825c4122..d045d92babe 100644 Binary files a/icons/mob/feet.dmi and b/icons/mob/feet.dmi differ diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi index 4ad3a3cbf17..04f46a8df7e 100644 Binary files a/icons/mob/human_face.dmi and b/icons/mob/human_face.dmi differ diff --git a/icons/obj/clothing/shoes.dmi b/icons/obj/clothing/shoes.dmi index f1efd2f90e2..c5aefae272f 100644 Binary files a/icons/obj/clothing/shoes.dmi and b/icons/obj/clothing/shoes.dmi differ diff --git a/icons/obj/computer.dmi b/icons/obj/computer.dmi index 7c9c4e311e4..6f91a6a4098 100644 Binary files a/icons/obj/computer.dmi and b/icons/obj/computer.dmi differ diff --git a/icons/obj/structures.dmi b/icons/obj/structures.dmi index eeda221bcd9..c2fa9ddbc98 100644 Binary files a/icons/obj/structures.dmi and b/icons/obj/structures.dmi differ diff --git a/icons/obj/telescience.dmi b/icons/obj/telescience.dmi index a0491827924..0a95347b6b4 100644 Binary files a/icons/obj/telescience.dmi and b/icons/obj/telescience.dmi differ diff --git a/maps/exodus-1.dmm b/maps/exodus-1.dmm index f4bc20d1deb..3063e3f5e68 100644 --- a/maps/exodus-1.dmm +++ b/maps/exodus-1.dmm @@ -4325,7 +4325,7 @@ "bFi" = (/obj/machinery/message_server,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_server_room) "bFj" = (/obj/machinery/camera/network/command{c_tag = "AI - Messaging Server"; dir = 1},/obj/machinery/blackbox_recorder,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_server_room) "bFk" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor/tiled/white,/area/rnd/research) -"bFl" = (/obj/machinery/light{dir = 1},/mob/living/simple_animal/yithian,/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/hor) +"bFl" = (/obj/machinery/light{dir = 1},/obj/structure/lamarr,/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/hor) "bFm" = (/obj/machinery/recharge_station,/obj/machinery/camera/network/command{c_tag = "AI - Cyborg Station"; dir = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_cyborg_station) "bFn" = (/obj/machinery/recharge_station,/turf/simulated/floor/bluegrid,/area/turret_protected/ai_cyborg_station) "bFo" = (/obj/machinery/computer/teleporter,/turf/simulated/floor/plating,/area/teleporter) @@ -4708,7 +4708,7 @@ "bMB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/quartermaster/miningdock) "bMC" = (/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "acutesep"; name = "Acute Separation Shutters"; opacity = 0},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/effect/floor_decal/corner/paleblue{tag = "icon-corner_white (NORTHEAST)"; icon_state = "corner_white"; dir = 5},/obj/effect/floor_decal/corner/paleblue{tag = "icon-corner_white (SOUTHWEST)"; icon_state = "corner_white"; dir = 10},/turf/simulated/floor/tiled/white,/area/medical/sleeper) "bMD" = (/obj/machinery/door/airlock/external{name = "Toxins Test Chamber"},/turf/simulated/floor/airless,/area/rnd/test_area) -"bME" = (/obj/structure/closet/emcloset,/turf/simulated/floor/airless,/area/rnd/test_area) +"bME" = (/obj/structure/table/rack{dir = 1},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/cobweb2,/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/random/loot,/turf/simulated/floor/plating,/area/maintenance/research_port) "bMF" = (/obj/machinery/light{dir = 1},/obj/machinery/camera/network/research{c_tag = "Research - Toxins Test Chamber North"; network = list("Research","Toxins Test Area")},/turf/simulated/floor/tiled/airless,/area/rnd/test_area) "bMG" = (/obj/machinery/light/small{dir = 4; pixel_y = 8},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "mining_dock_airlock"; pixel_x = 25; pixel_y = -5; req_one_access = list(13,48); tag_airpump = "mining_dock_pump"; tag_chamber_sensor = "mining_dock_sensor"; tag_exterior_door = "mining_dock_outer"; tag_interior_door = "mining_dock_inner"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "mining_dock_sensor"; pixel_x = 25; pixel_y = 8},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/obj/effect/floor_decal/industrial/warning{tag = "icon-warning (NORTH)"; icon_state = "warning"; dir = 1},/turf/simulated/floor/tiled,/area/quartermaster/miningdock) "bMH" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "mining_dock_pump"},/obj/effect/floor_decal/industrial/warning{tag = "icon-warning (NORTHWEST)"; icon_state = "warning"; dir = 9},/turf/simulated/floor/tiled,/area/quartermaster/miningdock) @@ -5209,7 +5209,7 @@ "bWi" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/effect/floor_decal/corner/pink{tag = "icon-corner_white (NORTHEAST)"; icon_state = "corner_white"; dir = 5},/turf/simulated/floor/tiled/white,/area/medical/patient_wing) "bWj" = (/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/tiled/white,/area/rnd/misc_lab) "bWk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/research_starboard) -"bWl" = (/obj/structure/table/rack{dir = 1},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/cobweb2,/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/maintenance/research_port) +"bWl" = (/obj/structure/closet/emcloset,/obj/random/loot,/turf/simulated/floor/airless,/area/rnd/test_area) "bWm" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/tiled/white,/area/rnd/misc_lab) "bWn" = (/obj/machinery/button/remote/blast_door{id = "misclab"; name = "Test Chamber Blast Doors"; pixel_x = 6; pixel_y = 30; req_access = list(47)},/obj/item/weapon/stool/padded,/turf/simulated/floor/tiled/white,/area/rnd/misc_lab) "bWo" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/white,/area/rnd/misc_lab) @@ -7508,9 +7508,9 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtybtybtybtybtybtybtybENbEObENbDNbDKbDObDObDObDObDObDPbDRbDQbzfbDSbqlbDTbDVbDUbDYbDWbEWbEXbEYbEZbFabtNbDZbzlbEhbEabxUbvKbEkbEibElbBnbEmbvKbFibFjbDIbAraaaaaaaaabAwbEnbFmbFnbyUbFobFpbFqbFrbCQbCPbEpbelbwDaQyaLjbEqbEsbEobEtbErbEvbEubExbEwbxJbxMbxMbEEbxMbwpbEIbEFbEKbEJbEMbELbDXbEPbDnbEQbFLbFMbEdbFNbFObFPbESbERbDrbETbDsbEUbDrbDrbFbbEVbFcbEVbEVbFdbFfbFebFgbFhbFkbBVbGdbFsbFubFtbFvbFlbFwbGkbGlbGmbGnaafaafbzUbFybFxbFxbFzbFAbFBbFDbGuaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtybtybtybtybtybtybtybGAbGCbGBbqlbqlbKqbwXbwXbwXbKMbqlbqlbKNbNSbKObqlbGDbGDbGDbFEbGDbFabFFbFHbFGbFIbtNbBmbzlbFJbGKbtNbGLbGLbGLbGLbGLbFKbGLbGLbGLbFCbGLbGLbGLbGLbGLbFQbGLbGLbGLbGLbGLbGLbGLbelbelbelbelbwDaQyaLjbEqbFSbEobFTbFRbFVbFUbFXbFWbFZbFYbGabBLbGcbGbbGfbGebGhbGgbGjbGibGpbGobGrbGqbGsbHmbHnbGvbHpbGwbEbbGtbGxbwCbwCbwCbwCbwCbGybwCbwCbwCbzHbGEbzHbzHbGzbAJbGFbBVbGdbGHbGJbGIbGMbGGbGNbGkbGlbGmbHDaaaaaabzUbGPbGObDGbAZbHGbGRbGSbzUaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtybtybtybtybtybtybtyaaaaaaaaaaaaaaaaaaaafaaaaaaaaabHJaafaaaaaaaaaaaabGDbGUbGTbGWbGVbHObGXbGZbGYbHabtNbBmbzlbzmbuIbHcbHbbHebHdbHgbHfbHibHhbHkbHjbHobHlbHqbuIbuIbHrbHtbHsbuIbHubuIbHvbHgbHwbHybHxbHAbHzbwDaQybCUaIXbDHbIqbDHbGQbHBbxJbHEbHCbHHbHFbHKbHIbHMbHLbHPbHNbwrbHQbHSbHRbDXbHTbHVbHUbIJbIKbFObILbHYbHXbEbbIObIPbIQbIRbISbHZbIUbIabHWbIbbIYbIebIdbIfbJcbzHbIgbGFbBVbJebIhbIjbIibIlbIkbImbGkbGlbJlbEDbEDbEDbzUbzUbzUbJmbJnbzUbzUbHGbzUaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIfaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtybtybtybtybtybtybtyaaaaaaaaaaaaaaaaaabJoaaaaaaaaaaaaaaaaaaaaaaaaaaabGDbIobInbIrbIpbJtbIsbIubItbIvbtNbBmbIwbIybIxbIxbIzbIBbIAbIDbICbIBbIzbIxbIxbIFbIEbIHbIGbIMbIIbINbIxbIxbITbIBbIAbIDbICbIWbIVbIXbIVbJabIZbuVaIXbJdbIcbJbbIcbJfbJYbCXbJgbKabKbbxMbJhbKdbKebDgbJibwpbJkbJqbJpbDXbJjbJsbJrbKmbJvbFObKobHYbJvbEbbKpbWlbIQbJxbJwbJzbJubJAbJybJBbIYbJEbJDbJFbJFbzHbJGbJCbJHbJIbJJbJMbJLbJObJNbJPbGkbGlbKLbEDcbAcbGcbBbEDaafaafaafaafaafaafaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbJRbJQbJQbJSbKSbKSbKTbKTbKTbKTbKUaafaafaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtybtybtybtybtybtybtyaaaaaaaaaaaaaaaaaabJoaaaaaaaaaaaaaaaaaaaaaaaaaaabGDbIobInbIrbIpbJtbIsbIubItbIvbtNbBmbIwbIybIxbIxbIzbIBbIAbIDbICbIBbIzbIxbIxbIFbIEbIHbIGbIMbIIbINbIxbIxbITbIBbIAbIDbICbIWbIVbIXbIVbJabIZbuVaIXbJdbIcbJbbIcbJfbJYbCXbJgbKabKbbxMbJhbKdbKebDgbJibwpbJkbJqbJpbDXbJjbJsbJrbKmbJvbFObKobHYbJvbEbbKpbMEbIQbJxbJwbJzbJubJAbJybJBbIYbJEbJDbJFbJFbzHbJGbJCbJHbJIbJJbJMbJLbJObJNbJPbGkbGlbKLbEDcbAcbGcbBbEDaafaafaafaafaafaafaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbJRbJQbJQbJSbKSbKSbKTbKTbKTbKTbKUaafaafaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtybtybtybtybtyaaaaaaaaaaaaaaaaaaaaaaaabJUbJTbKXbJTbJVaaaaaaaaabGDbGDbJXbJWbIrbJWbLbbJZbKfbKcbKgbtNbKhbBmbKjbKibuIbKkbuIbzkbHgbHwbuIbKlbKrbKnbKtbKsbzmbuIbKvbKubHkbKwbHkbHkbKybKxbKAbKzbKCbKBbbLbKDaLjaLjaLjaIXbJKbEtbEvbKEbKGbKFbKIbKHbLFbKJbKPbKKbKQbLKbDgbHNbLLbLMbLNbDXbDXbLObLObLObEbbKVbLQbKWbLSbKYbEbbLUbLVbIQbLWbLXbHZbLYbKZbKRbLabIYbLebLdbJFbJFbzHbLfbLcbBVbwCbLhbLjbLibLlbLkbLmbGkbMmbMnbMobMobMobMpbGnaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbLnbMtbLobMtbKSbKTbKTbLpbLqbLpbKTbKTaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLrbMwbMxbMybLrbMzbMAbMBbGDbLsbLubLtbLwbLvbLybLxbLzbLzbLAbtNbtNbtNbMLbtNbtNbtNbtNbtNbtNbtNbtNbtNbtNbtNbtNbtNbLCbLBbLDbtNbtNbtNbtNbtNbLEbtNbtNbtNaIXaIXbMQaIXaKfaLibLgaIXbLHbLGbLIbIcbLJbxJbCXbLPbxJbLRbLZbLTbMabwpbMcbMbbNdbMebMgbMfbMibMhbNjbMjbHYbJvbFObFObMkbJvbEbbNmbNnbNnbNnbNnbNnbNnbNnbNnbNnbNnbMqbMlbMrbMrbzHbMsbMdbMvbwCbNubNubNubNvbNwbNxbNubNubNubNubNubNubNybNzaapaapaapaapaapaapaapaapaapaapaapaapaapaapaapaapaapaapaapaapaapaapaapbMDbMtbMtbMEbKTbKTbLpbLpbMFbLpbLpbKTbKTaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLrbMwbMxbMybLrbMzbMAbMBbGDbLsbLubLtbLwbLvbLybLxbLzbLzbLAbtNbtNbtNbMLbtNbtNbtNbtNbtNbtNbtNbtNbtNbtNbtNbtNbtNbLCbLBbLDbtNbtNbtNbtNbtNbLEbtNbtNbtNaIXaIXbMQaIXaKfaLibLgaIXbLHbLGbLIbIcbLJbxJbCXbLPbxJbLRbLZbLTbMabwpbMcbMbbNdbMebMgbMfbMibMhbNjbMjbHYbJvbFObFObMkbJvbEbbNmbNnbNnbNnbNnbNnbNnbNnbNnbNnbNnbMqbMlbMrbMrbzHbMsbMdbMvbwCbNubNubNubNvbNwbNxbNubNubNubNubNubNubNybNzaapaapaapaapaapaapaapaapaapaapaapaapaapaapaapaapaapaapaapaapaapaapaapbMDbMtbMtbWlbKTbKTbLpbLpbMFbLpbLpbKTbKTaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabKXbNEbNFbNEbKXbNGbMHbMGbNJbMIbMJbJWbMMbMKbFabMNbMPbMObMRbFacdyccRbNUbNVaaaaaaaaaaaabNWcqvbNYbNZbOabObbOcbOdbMTbMSbMUbOdbMWbMVbMYbMXbNabMZbNcbNbbNebOqbOrbOsbOsbOsbOsbDHbDHbDHbDHbMCbMCbxJbNfbCWbNgbLZbNibNhbNlbNkbNpbNobNqbNrbNAbNtbNCbNBbNjbOJbFObFObOKbJvbJvbOJbEbbNmbNnbNDbNIbNHbNLbNKbNNbNMbNObNnbNQbNPbNRbNRbzHbOebNsbBVbzPbOfbOhbOgbOkbOjbOmbOlbOobOnbOtbOpbNubPjbEDbPkbPkbPkbPkbPkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabPlbKTbMDbKTbKTbLpbLpbLpbLpbLpbLpbLpbKTbKTaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLrbNEbNEbNEbPmbPnbJWbOubOwbOvbJWbOxbOzbOybFabFabFabFabFabFabPubPvbPwbPxaaabPybPzbPzbPAbPBbPCbPDbPEbPCbPFbOdbOBbOAbOCbOdbOEbODbOGbOFbOIbOHbNcbPQbPQbOqbPRbPSbPTbPUbPVbDHbOibIcbOLbIcbIcbOMbCXbONbxJbOObOQbOPbORbwpbOTbOSbwpbOVbOXbOWbOZbOYbNjbEbbEbbEbbEbbEbbEbbEbbEbbBjbNnbPabPcbPbbNHbNHbNHbNHbPdbNnbPebLdbPfbPfbzHbAJbLcbBVbPgbOUbOUbPhbPobPibPpbPqbPtbPsbPtbPGbNubPHbPIbPkbPKbPJbPLbQHaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKSbKTbPNbPMbPMbLpbLpbLpbLpbLpbLpbLpbLpbKTbKTaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQbwQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabKXbNFbNFbNFbKXbQKbPPbPObQNbPWbJWbJWbPYbPXbQRbQSbQSbQSbQSbQSbQSbQTbQUbQVaaabQWbQabPZbQZbRabPCbRbbRcbRdbPCbOdbQcbQbbQdbOdbQfbQebQhbQgbQjbQibQkbPQbRobPUbRpbOsbPUbPUcgBbDHbPrbIcbQmbQlbIcbQnbCXbCWbRwbQobQqbQpbQrbRBbDgbHNbRCbOVbOWbOWbOZbQtbNjbQsbQvbQubRHbQwbQybQxbRLbBjbNnbNHbNHbQAbNHbQBbNHbNHbQCbNnbQDbLdbQEbQEbzHbLfbQzbQFbQIbQGbQLbQJbQObQMbQQbQPbQYbQXbRfbRebRgbRhbRkbRjbRmbRlbPLbSkaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKTbKTbRnbLpbLpbLpbLpbLpbLpbLpbLpbLpbLpbLpbKTbKTaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -7523,7 +7523,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaamcaBaamaamaamaamaamaaaaaaaaaaaaaaaaaaaafaafaaacaCcaDcaDcaDcaEcaDcaDbZBbZAbZrbZCbZDbZrbZLbZEbZNbZMbZPbZObZTbZSbZVbZUbZXbZWcaVbYabZGcaWcaXbZJcaYbVibWMbWMbWMbWMbWMcaZbOqbDHcaabZYcafcabcahbZucajcagbUlcamaAJcancaocbmcbncbocbpcaebYXbYVcapcaicarcaqcakcascaucatcakcawbnFbBjbIPcbxcbycbzcbxcbxbIPbIPbIPcFkcGucbCcbDcbEbwCbwCcavbwCbwCcKNcbHcazcbJcbKcbLcbMcbNcbOcbPcbQcbRcbScbTbUQbUQbUQbUQaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKSbKTbTzbTxbTxbLpbLpbLpbLpbLpbLpbLpbLpbKTbKTaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafcaAcaGcaFcaIcaHcbZcaJcaLcaKbZrcaMcaNbZrbZrcaOcaQcaPcaScaRcckcaTbYEbYDbYGcaUcbabYabYaccoccpbYaccqbVicbccbbbWMcbdbWMbUhccuccuccuccuccuccuccubUlcbecaxbUlcbfcbhcbgcbicbmccBccCccDcaebYXbYVcbjcaicblcbkcakcbqcbscbrcakcbubnFccLccMccNccOccPccQccNctcccSccTccUccVccWccXccUccYcbtcbwcbvcbUcbIcdhcbVcdgcdhcdicdjcdhcdkcdlcdmcdncdocdpcdqcbWbUQbUQbUQbUQaaaaafaaaaaaaaaaahaahaahaafaaaaaaaafaaaaaaaafaaaaaabPlbKTbMDbKTbKTbLpbLpbLpbLpbLpbLpbLpbKTbKTaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcbXcbXcaFccacbYcbZccbccccdxbZrccdccfccecchccgccjcciccmcclcdHccnccsccrccvcctccwcdOcdPcdQcdRcdScdTccxcczccyccEccAbWMbUhccuccFccHccGccJccIccZcbFcdaccKcdccdbcdecddcdfcbmcdtcdscducaebYXbYVcdrcaicdwcdvcakcdzcdBcdAcakcdDbnFbnFcexccNceycezceAccNceBceCceDceEceEceFceGceEceHcdCcdFcdEceHceLceMceNceOceLceLceLceLcePceNceOceLceLceQceRcdIceTcdKcdJceWcdLcdMcdMcdMcdMcdMcdMcdMcdMcdMcdMcdMcdMcdMcdMcdMcdMcdUcdNcdNcdVbKTbKTbLpbLpcdWbLpbLpbKTbKTaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfdcfdcfdcfdcfdcfdcfdcfecffbZrbZrbZrbZrbZrcfgcfhcficficficfjcdXbYEbYDbYGcdYbZFcdZcebceacedcecceebVicegcefcehcefbWMbUhccuceicejcejcejcekcelbUlcemcdGbUlcbfcbgcenceocbmcerceqcescaebYXbYVbUscaicetcepcakcakcakcakcakcevcewbnFcexccNcfKcfLccNccNceBcfMceDceEceIceuceuceJceHcfQceKcfSceHceSceUceUceUceVceZceYcfaceXcfccfbcfkceLcfncfmcfobUQbUQbUQbUQaaaaafaaaaaaaaaaahaahaahaafaaaaaaaafaaaaaaaafaafaafcfqcfpcfrbMEbKSbKTbKTbLpbLqbLpbKTbKTaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfdcfdcfdcfdcfdcfdcfdcfecffbZrbZrbZrbZrbZrcfgcfhcficficficfjcdXbYEbYDbYGcdYbZFcdZcebceacedcecceebVicegcefcehcefbWMbUhccuceicejcejcejcekcelbUlcemcdGbUlcbfcbgcenceocbmcerceqcescaebYXbYVbUscaicetcepcakcakcakcakcakcevcewbnFcexccNcfKcfLccNccNceBcfMceDceEceIceuceuceJceHcfQceKcfSceHceSceUceUceUceVceZceYcfaceXcfccfbcfkceLcfncfmcfobUQbUQbUQbUQaaaaafaaaaaaaaaaahaahaahaafaaaaaaaafaaaaaaaafaafaafcfqcfpcfrbWlbKSbKTbKTbLpbLqbLpbKTbKTaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafcfdcgjcgkcglcfscftcfdcfucgpcgqcfvcfxcfwcfycfycgvcfzcfzcfAcfBcaTbYEbYDbYGcfCcaVcfDcfFcfEcfHcfGcfIbVicefcefbWMcfJbWMbUhccucfNcfOcfOcfOcfPccucgKcfTcfRcgKcflcfVcfUcfWcbmcfYceqcfZcaecgacfXcgbcaicgdcgccaicgYbLVbVJcggcgfcghbnFchcchdchdchechfchfchfchfchgceEcgicgecgecgmchkcgncgrcgochocgscgtcgtcgtcgucgxcgxcgycgwcgAcgzcgCceLchychzchAchyaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafcgEbJQbJQbJSbKSbKSbKTbKTbKTbKTbKUaafaafaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaafaafaafchCchCchCchCchCchCchCchCchCchCchCchCchCaaaaaachDchEchFchFcgFcgGcfdcgIcgHcgLcgJcgNcgMcgPcgOcgRcgQcgTcgScgVcgUcgXcgWchacgZbVibVibVibVibVibVibVibVichhchbbWMchibWMbUhccuccucidciecifccuccuchjchmchlcgKcbmcbmcbmcbmcbmcaechnchpcaecilcgDcilcaichrchqcaicipceBbVJchtbVJchubnFcisbnFbnFcitciuciuciucivbnFceEchvchschschwchBchxchHchGchIchJchLchLchLchLchNchMchLchOchLchPchQceLciLciMciNchyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaachCchRchSchRchCchTchUchTchCchVchWchVchCaaaaaaciUchEchFcgFcgFchXcfdchZchYciYciaciccibcihcigcijciiciicikciicaTbYEcimbYGcincjjciocirciqcirciwcixcjpcjpcjqcjqcjqcjqbUhcjrchKciyciyciAcizciDciCciFciEciHciBciIciGciGciJcjFcaecaecaeciPciOciQcaicaicaicaiceBceBbVJciRbVJciSbnFcisbnFaaaaaaaaaaaaaaaaaaaaaceEciTciKciWciVcjaciXcjbciZcjecjdcjfcjdcjdcjgcjicjhcgxcjkcgxcjlcjmceLckcckdckechyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/maps/exodus-3.dmm b/maps/exodus-3.dmm index ed87a219590..40720548b51 100644 --- a/maps/exodus-3.dmm +++ b/maps/exodus-3.dmm @@ -301,7 +301,7 @@ "fO" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 6},/turf/simulated/floor/tiled/dark,/area/tcommsat/chamber) "fP" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 5},/turf/simulated/floor/tiled/dark,/area/tcommsat/chamber) "fQ" = (/obj/machinery/telecomms/server/presets/command,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark,/area/tcommsat/chamber) -"fR" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 10},/turf/simulated/floor/tiled/dark,/area/tcommsat/chamber) +"fR" = (/obj/machinery/atmospherics/pipe/simple/hidden/yellow{dir = 10},/obj/machinery/ntnet_relay,/turf/simulated/floor/tiled/dark,/area/tcommsat/chamber) "fS" = (/obj/machinery/telecomms/server/presets/security,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark,/area/tcommsat/chamber) "fT" = (/obj/machinery/porta_turret{dir = 6},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled,/area/turret_protected/tcomfoyer) "fU" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'LETHAL TURRETS'. Enter at your own risk!"; name = "LETHAL TURRETS"; pixel_x = -32; pixel_y = 0},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 9},/turf/simulated/floor/tiled,/area/turret_protected/tcomfoyer)