diff --git a/code/__defines/misc.dm b/code/__defines/misc.dm index 7f7e9e705e..69b91d0dc3 100644 --- a/code/__defines/misc.dm +++ b/code/__defines/misc.dm @@ -348,10 +348,12 @@ var/global/list/##LIST_NAME = list();\ #define RCD_MAX_CAPACITY 30 * RCD_SHEETS_PER_MATTER_UNIT // Radiation 'levels'. Used for the geiger counter, for visuals and sound. They are in different files so this goes here. -#define RAD_LEVEL_LOW 0.01 // Around the level at which radiation starts to become harmful -#define RAD_LEVEL_MODERATE 10 +#define RAD_LEVEL_LOW 0.5 // Around the level at which radiation starts to become harmful +#define RAD_LEVEL_MODERATE 5 #define RAD_LEVEL_HIGH 25 -#define RAD_LEVEL_VERY_HIGH 50 +#define RAD_LEVEL_VERY_HIGH 75 + +#define RADIATION_THRESHOLD_CUTOFF 0.1 // Radiation will not affect a tile when below this value. //https://secure.byond.com/docs/ref/info.html#/atom/var/mouse_opacity #define MOUSE_OPACITY_TRANSPARENT 0 diff --git a/code/controllers/Processes/planet.dm b/code/controllers/Processes/planet.dm deleted file mode 100644 index 18043f9270..0000000000 --- a/code/controllers/Processes/planet.dm +++ /dev/null @@ -1,96 +0,0 @@ -var/datum/controller/process/planet/planet_controller = null - -/datum/controller/process/planet - var/list/planets = list() - var/list/z_to_planet = list() - -/datum/controller/process/planet/setup() - name = "planet controller" - planet_controller = src - schedule_interval = 1 MINUTE - start_delay = 20 SECONDS - - var/list/planet_datums = typesof(/datum/planet) - /datum/planet - for(var/P in planet_datums) - var/datum/planet/NP = new P() - planets.Add(NP) - - allocateTurfs() - -/datum/controller/process/planet/proc/allocateTurfs() - for(var/turf/simulated/OT in outdoor_turfs) - for(var/datum/planet/P in planets) - if(OT.z in P.expected_z_levels) - P.planet_floors |= OT - OT.vis_contents |= P.weather_holder.visuals - break - outdoor_turfs.Cut() //Why were you in there INCORRECTLY? - - for(var/turf/unsimulated/wall/planetary/PW in planetary_walls) - for(var/datum/planet/P in planets) - if(PW.type == P.planetary_wall_type) - P.planet_walls |= PW - break - planetary_walls.Cut() - -/datum/controller/process/planet/proc/unallocateTurf(var/turf/T) - for(var/planet in planets) - var/datum/planet/P = planet - if(T.z in P.expected_z_levels) - P.planet_floors -= T - T.vis_contents -= P.weather_holder.visuals - -/datum/controller/process/planet/doWork() - if(outdoor_turfs.len || planetary_walls.len) - allocateTurfs() - - for(var/datum/planet/P in planets) - P.process(schedule_interval / 10) - SCHECK //Your process() really shouldn't take this long... - - //Sun light needs changing - if(P.needs_work & PLANET_PROCESS_SUN) - P.needs_work &= ~PLANET_PROCESS_SUN - // Remove old value from corners - var/list/sunlit_corners = P.sunlit_corners - var/old_lum_r = -P.sun["lum_r"] - var/old_lum_g = -P.sun["lum_g"] - var/old_lum_b = -P.sun["lum_b"] - if(old_lum_r || old_lum_g || old_lum_b) - for(var/C in P.sunlit_corners) - var/datum/lighting_corner/LC = C - LC.update_lumcount(old_lum_r, old_lum_g, old_lum_b) - SCHECK - sunlit_corners.Cut() - - // Calculate new values to apply - var/new_brightness = P.sun["brightness"] - var/new_color = P.sun["color"] - var/lum_r = new_brightness * GetRedPart (new_color) / 255 - var/lum_g = new_brightness * GetGreenPart(new_color) / 255 - var/lum_b = new_brightness * GetBluePart (new_color) / 255 - var/static/update_gen = -1 // Used to prevent double-processing corners. Otherwise would happen when looping over adjacent turfs. - for(var/I in P.planet_floors) - var/turf/simulated/T = I - if(!T.lighting_corners_initialised) - T.generate_missing_corners() - for(var/C in T.get_corners()) - var/datum/lighting_corner/LC = C - if(LC.update_gen != update_gen && LC.active) - sunlit_corners += LC - LC.update_gen = update_gen - LC.update_lumcount(lum_r, lum_g, lum_b) - SCHECK - update_gen-- - P.sun["lum_r"] = lum_r - P.sun["lum_g"] = lum_g - P.sun["lum_b"] = lum_b - - //Temperature needs updating - if(P.needs_work & PLANET_PROCESS_TEMP) - P.needs_work &= ~PLANET_PROCESS_TEMP - //Set new temperatures - for(var/W in P.planet_walls) - var/turf/unsimulated/wall/planetary/wall = W - wall.set_temperature(P.weather_holder.temperature) - SCHECK diff --git a/code/controllers/Processes/radiation.dm b/code/controllers/Processes/radiation.dm deleted file mode 100644 index 71d9c60233..0000000000 --- a/code/controllers/Processes/radiation.dm +++ /dev/null @@ -1,56 +0,0 @@ -/datum/controller/process/radiation - var/repository/radiation/linked = null - -/datum/controller/process/radiation/setup() - name = "radiation controller" - schedule_interval = 20 // every 2 seconds - linked = radiation_repository - -/datum/controller/process/radiation/doWork() - sources_decay() - cache_expires() - irradiate_targets() - -// Step 1 - Sources Decay -/datum/controller/process/radiation/proc/sources_decay() - var/list/sources = linked.sources - for(var/thing in sources) - var/datum/radiation_source/S = thing - if(QDELETED(S)) - sources.Remove(S) - continue - if(S.decay) - S.update_rad_power(S.rad_power - config.radiation_decay_rate) - if(S.rad_power <= config.radiation_lower_limit) - sources.Remove(S) - SCHECK // This scheck probably just wastes resources, but better safe than sorry in this case. - -// Step 2 - Cache Expires -/datum/controller/process/radiation/proc/cache_expires() - var/list/resistance_cache = linked.resistance_cache - for(var/thing in resistance_cache) - var/turf/T = thing - if(QDELETED(T)) - resistance_cache.Remove(T) - continue - if((length(T.contents) + 1) != resistance_cache[T]) - resistance_cache.Remove(T) // If its stale REMOVE it! It will get added if its needed. - SCHECK - -// Step 3 - Registered irradiatable things are checked for radiation -/datum/controller/process/radiation/proc/irradiate_targets() - var/list/registered_listeners = living_mob_list // For now just use this. Nothing else is interested anyway. - if(length(linked.sources) > 0) - for(var/thing in registered_listeners) - var/atom/A = thing - if(QDELETED(A)) - continue - var/turf/T = get_turf(thing) - var/rads = linked.get_rads_at_turf(T) - if(rads) - A.rad_act(rads) - SCHECK - -/datum/controller/process/radiation/statProcess() - ..() - stat(null, "[linked.sources.len] sources, [linked.resistance_cache.len] cached turfs") diff --git a/code/controllers/Processes/scheduler.dm b/code/controllers/Processes/scheduler.dm deleted file mode 100644 index ac5e4696ab..0000000000 --- a/code/controllers/Processes/scheduler.dm +++ /dev/null @@ -1,169 +0,0 @@ -/var/datum/controller/process/scheduler/scheduler - -/************ -* Scheduler * -************/ -/datum/controller/process/scheduler - var/list/scheduled_tasks - -/datum/controller/process/scheduler/setup() - name = "scheduler" - schedule_interval = 1 SECOND - scheduled_tasks = list() - scheduler = src - -/datum/controller/process/scheduler/doWork() - var/world_time = world.time - for(last_object in scheduled_tasks) - var/datum/scheduled_task/scheduled_task = last_object - if(world_time < scheduled_task.trigger_time) - break // Too early for this one, and therefore too early for all remaining. - try - unschedule(scheduled_task) - scheduled_task.pre_process() - scheduled_task.process() - scheduled_task.post_process() - catch(var/exception/e) - catchException(e, last_object) - SCHECK - -// We've been restarted, probably due to having a massive list of tasks. -// Lets copy over the task list as safely as we can and try to chug thru it... -// Note: We won't be informed about tasks being destroyed, but this is the best we can do. -/datum/controller/process/scheduler/copyStateFrom(var/datum/controller/process/scheduler/target) - scheduled_tasks = list() - for(var/datum/scheduled_task/st in target.scheduled_tasks) - if(!QDELETED(st) && istype(st)) - schedule(st) - scheduler = src - -// We are being killed. Least we can do is deregister all those events we registered -/datum/controller/process/scheduler/onKill() - for(var/st in scheduled_tasks) - GLOB.destroyed_event.unregister(st, src) - -/datum/controller/process/scheduler/statProcess() - ..() - stat(null, "[scheduled_tasks.len] task\s") - -/datum/controller/process/scheduler/proc/schedule(var/datum/scheduled_task/st) - dd_insertObjectList(scheduled_tasks, st) - -/datum/controller/process/scheduler/proc/unschedule(var/datum/scheduled_task/st) - scheduled_tasks -= st - -/********** -* Helpers * -**********/ -/proc/schedule_task_in(var/in_time, var/procedure, var/list/arguments = list()) - return schedule_task(world.time + in_time, procedure, arguments) - -/proc/schedule_callback_in(var/in_time, var/datum/callback) - return schedule_callback(world.time + in_time, callback) - -/proc/schedule_task_with_source_in(var/in_time, var/source, var/procedure, var/list/arguments = list()) - return schedule_task_with_source(world.time + in_time, source, procedure, arguments) - -/proc/schedule_task(var/trigger_time, var/procedure, var/list/arguments) - var/datum/scheduled_task/st = new/datum/scheduled_task(trigger_time, procedure, arguments, /proc/destroy_scheduled_task, list()) - scheduler.schedule(st) - return st - -/proc/schedule_callback(var/trigger_time, var/datum/callback) - var/datum/scheduled_task/callback/st = new/datum/scheduled_task/callback(trigger_time, callback, /proc/destroy_scheduled_task, list()) - scheduler.schedule(st) - return st - -/proc/schedule_task_with_source(var/trigger_time, var/source, var/procedure, var/list/arguments) - var/datum/scheduled_task/st = new/datum/scheduled_task/source(trigger_time, source, procedure, arguments, /proc/destroy_scheduled_task, list()) - scheduler.schedule(st) - return st - -/proc/schedule_repeating_task(var/trigger_time, var/repeat_interval, var/procedure, var/list/arguments) - var/datum/scheduled_task/st = new/datum/scheduled_task(trigger_time, procedure, arguments, /proc/repeat_scheduled_task, list(repeat_interval)) - scheduler.schedule(st) - return st - -/proc/schedule_repeating_task_with_source(var/trigger_time, var/repeat_interval, var/source, var/procedure, var/list/arguments) - var/datum/scheduled_task/st = new/datum/scheduled_task/source(trigger_time, source, procedure, arguments, /proc/repeat_scheduled_task, list(repeat_interval)) - scheduler.schedule(st) - return st - -/************* -* Task Datum * -*************/ -/datum/scheduled_task - var/trigger_time - var/procedure - var/list/arguments - var/task_after_process - var/list/task_after_process_args - -/datum/scheduled_task/New(var/trigger_time, var/procedure, var/list/arguments, var/proc/task_after_process, var/list/task_after_process_args) - ..() - src.trigger_time = trigger_time - src.procedure = procedure - src.arguments = arguments ? arguments : list() - src.task_after_process = task_after_process ? task_after_process : /proc/destroy_scheduled_task - src.task_after_process_args = istype(task_after_process_args) ? task_after_process_args : list() - task_after_process_args += src - -/datum/scheduled_task/Destroy() - scheduler.unschedule(src) - procedure = null - arguments.Cut() - task_after_process = null - task_after_process_args.Cut() - return ..() - -/datum/scheduled_task/dd_SortValue() - return trigger_time - -/datum/scheduled_task/proc/pre_process() - task_triggered_event.raise_event(list(src)) - -/datum/scheduled_task/proc/process() - if(procedure) - call(procedure)(arglist(arguments)) - -/datum/scheduled_task/proc/post_process() - call(task_after_process)(arglist(task_after_process_args)) - -// Resets the trigger time, has no effect if the task has already triggered -/datum/scheduled_task/proc/trigger_task_in(var/trigger_in) - src.trigger_time = world.time + trigger_in - -/datum/scheduled_task/callback - var/datum/callback/callback - -/datum/scheduled_task/callback/New(var/trigger_time, var/datum/callback, var/proc/task_after_process, var/list/task_after_process_args) - src.callback = callback - ..(trigger_time = trigger_time, task_after_process = task_after_process, task_after_process_args = task_after_process_args) - -/datum/scheduled_task/callback/process() - callback.Invoke() - -/datum/scheduled_task/source - var/datum/source - -/datum/scheduled_task/source/New(var/trigger_time, var/datum/source, var/procedure, var/list/arguments, var/proc/task_after_process, var/list/task_after_process_args) - src.source = source - GLOB.destroyed_event.register(src.source, src, /datum/scheduled_task/source/proc/source_destroyed) - ..(trigger_time, procedure, arguments, task_after_process, task_after_process_args) - -/datum/scheduled_task/source/Destroy() - source = null - return ..() - -/datum/scheduled_task/source/process() - call(source, procedure)(arglist(arguments)) - -/datum/scheduled_task/source/proc/source_destroyed() - qdel(src) - -/proc/destroy_scheduled_task(var/datum/scheduled_task/st) - qdel(st) - -/proc/repeat_scheduled_task(var/trigger_delay, var/datum/scheduled_task/st) - st.trigger_time = world.time + trigger_delay - scheduler.schedule(st) diff --git a/code/controllers/subsystems/radiation.dm b/code/controllers/subsystems/radiation.dm new file mode 100644 index 0000000000..babc2c7d5d --- /dev/null +++ b/code/controllers/subsystems/radiation.dm @@ -0,0 +1,135 @@ +SUBSYSTEM_DEF(radiation) + name = "Radiation" + wait = 2 SECONDS + flags = SS_NO_INIT + + var/list/sources = list() // all radiation source datums + var/list/sources_assoc = list() // Sources indexed by turf for de-duplication. + var/list/resistance_cache = list() // Cache of turf's radiation resistance. + + var/tmp/list/current_sources = list() + var/tmp/list/current_res_cache = list() + var/tmp/list/listeners = list() + +/datum/controller/subsystem/radiation/fire(resumed = FALSE) + if (!resumed) + current_sources = sources.Copy() + current_res_cache = resistance_cache.Copy() + listeners = living_mob_list.Copy() + + while(current_sources.len) + var/datum/radiation_source/S = current_sources[current_sources.len] + current_sources.len-- + + if(QDELETED(S)) + sources -= S + else if(S.decay) + S.update_rad_power(S.rad_power - config.radiation_decay_rate) + if (MC_TICK_CHECK) + return + + while(current_res_cache.len) + var/turf/T = current_res_cache[current_res_cache.len] + current_res_cache.len-- + + if(QDELETED(T)) + resistance_cache -= T + else if((length(T.contents) + 1) != resistance_cache[T]) + resistance_cache -= T // If its stale REMOVE it! It will get added if its needed. + if (MC_TICK_CHECK) + return + + if(!sources.len) + listeners.Cut() + + while(listeners.len) + var/atom/A = listeners[listeners.len] + listeners.len-- + + if(!QDELETED(A)) + var/turf/T = get_turf(A) + var/rads = get_rads_at_turf(T) + if(rads) + A.rad_act(rads) + if (MC_TICK_CHECK) + return + +/datum/controller/subsystem/radiation/stat_entry() + ..("S:[sources.len], RC:[resistance_cache.len]") + +// Ray trace from all active radiation sources to T and return the strongest effect. +/datum/controller/subsystem/radiation/proc/get_rads_at_turf(var/turf/T) + . = 0 + if(!istype(T)) + return + + for(var/value in sources) + var/datum/radiation_source/source = value + if(source.rad_power < .) + continue // Already being affected by a stronger source + if(source.source_turf.z != T.z) + continue // Radiation is not multi-z + if(source.respect_maint) + var/area/A = T.loc + if(A.flags & RAD_SHIELDED) + continue // In shielded area + + var/dist = get_dist(source.source_turf, T) + if(dist > source.range) + continue // Too far to possibly affect + if(source.flat) + . = max(., source.rad_power) + continue // No need to ray trace for flat field + + // Okay, now ray trace to find resistence! + var/turf/origin = source.source_turf + var/working = source.rad_power + while(origin != T) + origin = get_step_towards(origin, T) //Raytracing + if(!resistance_cache[origin]) //Only get the resistance if we don't already know it. + origin.calc_rad_resistance() + if(origin.cached_rad_resistance) + working = round((working / (origin.cached_rad_resistance * config.radiation_resistance_multiplier)), 0.1) + if((working <= .) || (working <= RADIATION_THRESHOLD_CUTOFF)) + break // Already affected by a stronger source (or its zero...) + . = max((working / (dist ** 2)), .) //Butchered version of the inverse square law. Works for this purpose + if(. <= RADIATION_THRESHOLD_CUTOFF) + . = 0 + +// Add a radiation source instance to the repository. It will override any existing source on the same turf. +/datum/controller/subsystem/radiation/proc/add_source(var/datum/radiation_source/S) + if(!isturf(S.source_turf)) + return + var/datum/radiation_source/existing = sources_assoc[S.source_turf] + if(existing) + qdel(existing) + sources += S + sources_assoc[S.source_turf] = S + +// Creates a temporary radiation source that will decay +/datum/controller/subsystem/radiation/proc/radiate(source, power) //Sends out a radiation pulse, taking walls into account + if(!(source && power)) //Sanity checking + return + var/datum/radiation_source/S = new() + S.source_turf = get_turf(source) + S.update_rad_power(power) + add_source(S) + +// Sets the radiation in a range to a constant value. +/datum/controller/subsystem/radiation/proc/flat_radiate(source, power, range, var/respect_maint = TRUE) //VOREStation edit; Respect shielded areas by default please. + if(!(source && power && range)) + return + var/datum/radiation_source/S = new() + S.flat = TRUE + S.range = range + S.respect_maint = respect_maint + S.source_turf = get_turf(source) + S.update_rad_power(power) + add_source(S) + +// Irradiates a full Z-level. Hacky way of doing it, but not too expensive. +/datum/controller/subsystem/radiation/proc/z_radiate(var/atom/source, power, var/respect_maint = TRUE) //VOREStation edit; Respect shielded areas by default please. + if(!(power && source)) + return + var/turf/epicentre = locate(round(world.maxx / 2), round(world.maxy / 2), source.z) + flat_radiate(epicentre, power, world.maxx, respect_maint) \ No newline at end of file diff --git a/code/datums/repositories/radiation.dm b/code/datums/repositories/radiation.dm deleted file mode 100644 index 4525032e20..0000000000 --- a/code/datums/repositories/radiation.dm +++ /dev/null @@ -1,138 +0,0 @@ -var/global/repository/radiation/radiation_repository = new() - -/repository/radiation - var/list/sources = list() // all radiation source datums - var/list/sources_assoc = list() // Sources indexed by turf for de-duplication. - var/list/resistance_cache = list() // Cache of turf's radiation resistance. - -// Describes a point source of radiation. Created either in response to a pulse of radiation, or over an irradiated atom. -// Sources will decay over time, unless something is renewing their power! -/datum/radiation_source - var/turf/source_turf // Location of the radiation source. - var/rad_power // Strength of the radiation being emitted. - var/decay = TRUE // True for automatic decay. False if owner promises to handle it (i.e. supermatter) - var/respect_maint = FALSE // True for not affecting RAD_SHIELDED areas. - var/flat = FALSE // True for power falloff with distance. - var/range // Cached maximum range, used for quick checks against mobs. - -/datum/radiation_source/Destroy() - radiation_repository.sources -= src - if(radiation_repository.sources_assoc[src.source_turf] == src) - radiation_repository.sources_assoc -= src.source_turf - src.source_turf = null - . = ..() - -/datum/radiation_source/proc/update_rad_power(var/new_power = null) - if(new_power == null || new_power == rad_power) - return // No change - else if(new_power <= 0) - qdel(src) // Decayed to nothing - else - rad_power = new_power - if(!flat) - range = min(round(sqrt(rad_power / config.radiation_lower_limit)), 31) // R = rad_power / dist**2 - Solve for dist - -// Ray trace from all active radiation sources to T and return the strongest effect. -/repository/radiation/proc/get_rads_at_turf(var/turf/T) - if(!istype(T)) return 0 - - . = 0 - for(var/value in sources) - var/datum/radiation_source/source = value - if(source.rad_power < .) - continue // Already being affected by a stronger source - if(source.source_turf.z != T.z) - continue // Radiation is not multi-z - var/dist = get_dist(source.source_turf, T) - if(dist > source.range) - continue // Too far to possibly affect - if(source.respect_maint) - var/atom/A = T.loc - if(A.flags & RAD_SHIELDED) - continue // In shielded area - if(source.flat) - . = max(., source.rad_power) - continue // No need to ray trace for flat field - - // Okay, now ray trace to find resistence! - var/turf/origin = source.source_turf - var/working = source.rad_power - while(origin != T) - origin = get_step_towards(origin, T) //Raytracing - if(!(origin in resistance_cache)) //Only get the resistance if we don't already know it. - origin.calc_rad_resistance() - working = max((working - (origin.cached_rad_resistance * config.radiation_resistance_multiplier)), 0) - if(working <= .) - break // Already affected by a stronger source (or its zero...) - . = max((working * (1 / (dist ** 2))), .) //Butchered version of the inverse square law. Works for this purpose - -// Add a radiation source instance to the repository. It will override any existing source on the same turf. -/repository/radiation/proc/add_source(var/datum/radiation_source/S) - if(!isturf(S.source_turf)) - return - var/datum/radiation_source/existing = sources_assoc[S.source_turf] - if(existing) - qdel(existing) - sources += S - sources_assoc[S.source_turf] = S - -// Creates a temporary radiation source that will decay -/repository/radiation/proc/radiate(source, power) //Sends out a radiation pulse, taking walls into account - if(!(source && power)) //Sanity checking - return - var/datum/radiation_source/S = new() - S.source_turf = get_turf(source) - S.update_rad_power(power) - add_source(S) - -// Sets the radiation in a range to a constant value. -/repository/radiation/proc/flat_radiate(source, power, range, var/respect_maint = TRUE) //VOREStation edit; Respect shielded areas by default please. - if(!(source && power && range)) - return - var/datum/radiation_source/S = new() - S.flat = TRUE - S.range = range - S.respect_maint = respect_maint - S.source_turf = get_turf(source) - S.update_rad_power(power) - add_source(S) - -// Irradiates a full Z-level. Hacky way of doing it, but not too expensive. -/repository/radiation/proc/z_radiate(var/atom/source, power, var/respect_maint = TRUE) //VOREStation edit; Respect shielded areas by default please. - if(!(power && source)) - return - var/turf/epicentre = locate(round(world.maxx / 2), round(world.maxy / 2), source.z) - flat_radiate(epicentre, power, world.maxx, respect_maint) - -/turf - var/cached_rad_resistance = 0 - -/turf/proc/calc_rad_resistance() - cached_rad_resistance = 0 - for(var/obj/O in src.contents) - if(O.rad_resistance) //Override - cached_rad_resistance += O.rad_resistance - - else if(O.density) //So open doors don't get counted - var/material/M = O.get_material() - if(!M) continue - cached_rad_resistance += M.weight + M.radiation_resistance - // Looks like storing the contents length is meant to be a basic check if the cache is stale due to items enter/exiting. Better than nothing so I'm leaving it as is. ~Leshana - radiation_repository.resistance_cache[src] = (length(contents) + 1) - -/turf/simulated/wall/calc_rad_resistance() - radiation_repository.resistance_cache[src] = (length(contents) + 1) - cached_rad_resistance = (density ? material.weight + material.radiation_resistance : 0) - -/obj - var/rad_resistance = 0 // Allow overriding rad resistance - -// If people expand the system, this may be useful. Here as a placeholder until then -/atom/proc/rad_act(var/severity) - return 1 - -/mob/living/rad_act(var/severity) - if(severity && !isbelly(loc)) //eaten mobs are made immune to radiation //VOREStation Edit Start - src.apply_effect(severity, IRRADIATE, src.getarmor(null, "rad")) - for(var/atom/I in src) - I.rad_act(severity) ///VOREStation Edit End diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm index 4380331b50..1ac4779414 100644 --- a/code/game/gamemodes/meteor/meteors.dm +++ b/code/game/gamemodes/meteor/meteors.dm @@ -273,7 +273,7 @@ if(explode) explosion(src.loc, devastation_range = 0, heavy_impact_range = 0, light_impact_range = 4, flash_range = 6, adminlog = 0) new /obj/effect/decal/cleanable/greenglow(get_turf(src)) - radiation_repository.radiate(src, 50) + SSradiation.radiate(src, 50) // This meteor fries toasters. /obj/effect/meteor/emp diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index c31c8f650b..480effcf98 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -387,7 +387,7 @@ /obj/machinery/door/airlock/uranium/process() if(world.time > last_event+20) if(prob(50)) - radiation_repository.radiate(src, rad_power) + SSradiation.radiate(src, rad_power) last_event = world.time ..() diff --git a/code/game/machinery/doors/blast_door.dm b/code/game/machinery/doors/blast_door.dm index 615309d31c..b2a9941afa 100644 --- a/code/game/machinery/doors/blast_door.dm +++ b/code/game/machinery/doors/blast_door.dm @@ -56,7 +56,7 @@ icon_state = icon_state_closed else icon_state = icon_state_open - radiation_repository.resistance_cache.Remove(get_turf(src)) + SSradiation.resistance_cache.Remove(get_turf(src)) return // Has to be in here, comment at the top is older than the emag_act code on doors proper diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index c55a7d8345..43fb8340ef 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -382,7 +382,7 @@ icon_state = "door1" else icon_state = "door0" - radiation_repository.resistance_cache.Remove(get_turf(src)) + SSradiation.resistance_cache.Remove(get_turf(src)) return diff --git a/code/game/machinery/telecomms/broadcaster.dm b/code/game/machinery/telecomms/broadcaster.dm index cd65fb9f91..8f6e8e589e 100644 --- a/code/game/machinery/telecomms/broadcaster.dm +++ b/code/game/machinery/telecomms/broadcaster.dm @@ -22,7 +22,17 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept machinetype = 5 produces_heat = 0 delay = 7 - circuitboard = "/obj/item/weapon/circuitboard/telecomms/broadcaster" + circuit = /obj/item/weapon/circuitboard/telecomms/broadcaster + +/obj/machinery/telecomms/processor/Initialize() + . = ..() + component_parts = list() + component_parts += new /obj/item/weapon/stock_parts/subspace/sub_filter(src) + component_parts += new /obj/item/weapon/stock_parts/subspace/crystal(src) + component_parts += new /obj/item/weapon/stock_parts/manipulator(src) + component_parts += new /obj/item/weapon/stock_parts/manipulator(src) + component_parts += new /obj/item/weapon/stock_parts/micro_laser/high(src) + component_parts += new /obj/item/stack/cable_coil(src, 1) /obj/machinery/telecomms/broadcaster/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from) // Don't broadcast rejected signals diff --git a/code/game/machinery/telecomms/machine_interactions.dm b/code/game/machinery/telecomms/machine_interactions.dm index b9fc81f724..80bea74ed4 100644 --- a/code/game/machinery/telecomms/machine_interactions.dm +++ b/code/game/machinery/telecomms/machine_interactions.dm @@ -12,7 +12,6 @@ /obj/machinery/telecomms var/temp = "" // output message - var/construct_op = 0 /obj/machinery/telecomms/attackby(obj/item/P as obj, mob/user as mob) @@ -21,7 +20,6 @@ if(istype(P, /obj/item/device/multitool)) attack_hand(user) - // REPAIRING: Use Nanopaste to repair 10-20 integrity points. if(istype(P, /obj/item/stack/nanopaste)) var/obj/item/stack/nanopaste/T = P @@ -34,75 +32,10 @@ return - switch(construct_op) - if(0) - if(P.is_screwdriver()) - to_chat(user, "You unfasten the bolts.") - playsound(src.loc, P.usesound, 50, 1) - construct_op ++ - if(1) - if(P.is_screwdriver()) - to_chat(user, "You fasten the bolts.") - playsound(src.loc, P.usesound, 50, 1) - construct_op -- - if(P.is_wrench()) - to_chat(user, "You dislodge the external plating.") - playsound(src.loc, P.usesound, 75, 1) - construct_op ++ - if(2) - if(P.is_wrench()) - to_chat(user, "You secure the external plating.") - playsound(src.loc, P.usesound, 75, 1) - construct_op -- - if(P.is_wirecutter()) - playsound(src.loc, P.usesound, 50, 1) - to_chat(user, "You remove the cables.") - construct_op ++ - var/obj/item/stack/cable_coil/A = new /obj/item/stack/cable_coil( user.loc ) - A.amount = 5 - stat |= BROKEN // the machine's been borked! - if(3) - if(istype(P, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/A = P - if (A.use(5)) - to_chat(user, "You insert the cables.") - construct_op-- - stat &= ~BROKEN // the machine's not borked anymore! - else - to_chat(user, "You need five coils of wire for this.") - if(P.is_crowbar()) - to_chat(user, "You begin prying out the circuit board other components...") - playsound(src.loc, P.usesound, 50, 1) - if(do_after(user,60 * P.toolspeed)) - to_chat(user, "You finish prying out the components.") - - // Drop all the component stuff - if(contents.len > 0) - for(var/obj/x in src) - x.loc = user.loc - else - - // If the machine wasn't made during runtime, probably doesn't have components: - // manually find the components and drop them! - var/newpath = text2path(circuitboard) - var/obj/item/weapon/circuitboard/C = new newpath - for(var/I in C.req_components) - for(var/i = 1, i <= C.req_components[I], i++) - newpath = text2path(I) - var/obj/item/s = new newpath - s.loc = user.loc - if(istype(P, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/A = P - A.amount = 1 - - // Drop a circuit board too - C.loc = user.loc - - // Create a frame and delete the current machine - var/obj/structure/frame/F = new - F.loc = src.loc - qdel(src) - + if(default_deconstruction_screwdriver(user, P)) + return + if(default_deconstruction_crowbar(user, P)) + return /obj/machinery/telecomms/attack_ai(var/mob/user as mob) attack_hand(user) diff --git a/code/game/machinery/telecomms/telecomunications.dm b/code/game/machinery/telecomms/telecomunications.dm index 50e2f504c9..d6cefb6828 100644 --- a/code/game/machinery/telecomms/telecomunications.dm +++ b/code/game/machinery/telecomms/telecomunications.dm @@ -32,7 +32,6 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list() var/produces_heat = 1 //whether the machine will produce heat when on. var/delay = 10 // how many process() ticks to delay per heat var/long_range_link = 0 // Can you link it across Z levels or on the otherside of the map? (Relay & Hub) - var/circuitboard = null // string pointing to a circuitboard type var/hide = 0 // Is it a hidden machine? var/listening_level = 0 // 0 = auto set in New() - this is the z level that the machine is listening to. @@ -256,7 +255,17 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list() idle_power_usage = 600 machinetype = 1 produces_heat = 0 - circuitboard = "/obj/item/weapon/circuitboard/telecomms/receiver" + circuit = /obj/item/weapon/circuitboard/telecomms/receiver + +/obj/machinery/telecomms/receiver/Initialize() + . = ..() + component_parts = list() + component_parts += new /obj/item/weapon/stock_parts/subspace/ansible(src) + component_parts += new /obj/item/weapon/stock_parts/subspace/sub_filter(src) + component_parts += new /obj/item/weapon/stock_parts/manipulator(src) + component_parts += new /obj/item/weapon/stock_parts/manipulator(src) + component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) + RefreshParts() /obj/machinery/telecomms/receiver/receive_signal(datum/signal/signal) @@ -312,7 +321,7 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list() use_power = 1 idle_power_usage = 1600 machinetype = 7 - circuitboard = "/obj/item/weapon/circuitboard/telecomms/hub" + circuit = /obj/item/weapon/circuitboard/telecomms/hub long_range_link = 1 netspeed = 40 var/list/telecomms_map @@ -320,6 +329,13 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list() /obj/machinery/telecomms/hub/Initialize() . = ..() LAZYINITLIST(telecomms_map) + component_parts = list() + component_parts += new /obj/item/weapon/stock_parts/subspace/sub_filter(src) + component_parts += new /obj/item/weapon/stock_parts/subspace/sub_filter(src) + component_parts += new /obj/item/weapon/stock_parts/manipulator(src) + component_parts += new /obj/item/weapon/stock_parts/manipulator(src) + component_parts += new /obj/item/stack/cable_coil(src, 2) + RefreshParts() /obj/machinery/telecomms/hub/process() . = ..() @@ -365,12 +381,22 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list() idle_power_usage = 600 machinetype = 8 produces_heat = 0 - circuitboard = "/obj/item/weapon/circuitboard/telecomms/relay" + circuit = /obj/item/weapon/circuitboard/telecomms/relay netspeed = 5 long_range_link = 1 var/broadcasting = 1 var/receiving = 1 +/obj/machinery/telecomms/relay/Initialize() + . = ..() + component_parts = list() + component_parts += new /obj/item/weapon/stock_parts/subspace/sub_filter(src) + component_parts += new /obj/item/weapon/stock_parts/subspace/sub_filter(src) + component_parts += new /obj/item/weapon/stock_parts/manipulator(src) + component_parts += new /obj/item/weapon/stock_parts/manipulator(src) + component_parts += new /obj/item/stack/cable_coil(src, 2) + RefreshParts() + /obj/machinery/telecomms/relay/forceMove(var/newloc) . = ..(newloc) listening_level = z @@ -420,10 +446,19 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list() use_power = 1 idle_power_usage = 1000 machinetype = 2 - circuitboard = "/obj/item/weapon/circuitboard/telecomms/bus" + circuit = /obj/item/weapon/circuitboard/telecomms/bus netspeed = 40 var/change_frequency = 0 +/obj/machinery/telecomms/bus/Initialize() + . = ..() + component_parts = list() + component_parts += new /obj/item/weapon/stock_parts/subspace/sub_filter(src) + component_parts += new /obj/item/weapon/stock_parts/manipulator(src) + component_parts += new /obj/item/weapon/stock_parts/manipulator(src) + component_parts += new /obj/item/stack/cable_coil(src, 1) + RefreshParts() + /obj/machinery/telecomms/bus/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from) if(is_freq_listening(signal)) @@ -473,23 +508,37 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list() idle_power_usage = 600 machinetype = 3 delay = 5 - circuitboard = "/obj/item/weapon/circuitboard/telecomms/processor" + circuit = /obj/item/weapon/circuitboard/telecomms/processor var/process_mode = 1 // 1 = Uncompress Signals, 0 = Compress Signals - receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from) +/obj/machinery/telecomms/processor/Initialize() + . = ..() + component_parts = list() + component_parts += new /obj/item/weapon/stock_parts/subspace/sub_filter(src) + component_parts += new /obj/item/weapon/stock_parts/subspace/treatment(src) + component_parts += new /obj/item/weapon/stock_parts/subspace/treatment(src) + component_parts += new /obj/item/weapon/stock_parts/subspace/amplifier(src) + component_parts += new /obj/item/weapon/stock_parts/subspace/analyzer(src) + component_parts += new /obj/item/weapon/stock_parts/manipulator(src) + component_parts += new /obj/item/weapon/stock_parts/manipulator(src) + component_parts += new /obj/item/weapon/stock_parts/manipulator(src) + component_parts += new /obj/item/stack/cable_coil(src, 2) + RefreshParts() - if(is_freq_listening(signal)) +/obj/machinery/telecomms/processor/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from) - if(process_mode) - signal.data["compression"] = 0 // uncompress subspace signal - else - signal.data["compression"] = 100 // even more compressed signal + if(is_freq_listening(signal)) - if(istype(machine_from, /obj/machinery/telecomms/bus)) - relay_direct_information(signal, machine_from) // send the signal back to the machine - else // no bus detected - send the signal to servers instead - signal.data["slow"] += rand(5, 10) // slow the signal down - relay_information(signal, "/obj/machinery/telecomms/server") + if(process_mode) + signal.data["compression"] = 0 // uncompress subspace signal + else + signal.data["compression"] = 100 // even more compressed signal + + if(istype(machine_from, /obj/machinery/telecomms/bus)) + relay_direct_information(signal, machine_from) // send the signal back to the machine + else // no bus detected - send the signal to servers instead + signal.data["slow"] += rand(5, 10) // slow the signal down + relay_information(signal, "/obj/machinery/telecomms/server") /* @@ -510,7 +559,7 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list() use_power = 1 idle_power_usage = 300 machinetype = 4 - circuitboard = "/obj/item/weapon/circuitboard/telecomms/server" + circuit = /obj/item/weapon/circuitboard/telecomms/server var/list/log_entries = list() var/list/stored_names = list() var/list/TrafficActions = list() @@ -534,6 +583,15 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list() Compiler.Holder = src server_radio = new() +/obj/machinery/telecomms/server/Initialize() + . = ..() + component_parts = list() + component_parts += new /obj/item/weapon/stock_parts/subspace/sub_filter(src) + component_parts += new /obj/item/weapon/stock_parts/manipulator(src) + component_parts += new /obj/item/weapon/stock_parts/manipulator(src) + component_parts += new /obj/item/stack/cable_coil(src, 1) + RefreshParts() + /obj/machinery/telecomms/server/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from) if(signal.data["message"]) diff --git a/code/game/mecha/combat/phazon.dm b/code/game/mecha/combat/phazon.dm index b54368a75e..3ada4824f7 100644 --- a/code/game/mecha/combat/phazon.dm +++ b/code/game/mecha/combat/phazon.dm @@ -133,7 +133,7 @@ ..() if(phasing) phasing = FALSE - radiation_repository.radiate(get_turf(src), 30) + SSradiation.radiate(get_turf(src), 30) log_append_to_last("WARNING: BLUESPACE DRIVE INSTABILITY DETECTED. DISABLING DRIVE.",1) visible_message("The [src.name] appears to flicker, before its silhouette stabilizes!") return diff --git a/code/game/mecha/equipment/tools/tools.dm b/code/game/mecha/equipment/tools/tools.dm index f821945144..73f7356ade 100644 --- a/code/game/mecha/equipment/tools/tools.dm +++ b/code/game/mecha/equipment/tools/tools.dm @@ -1201,7 +1201,7 @@ /datum/global_iterator/mecha_generator/nuclear/process(var/obj/item/mecha_parts/mecha_equipment/generator/nuclear/EG) if(..()) - radiation_repository.radiate(EG, (EG.rad_per_cycle * 3)) + SSradiation.radiate(EG, (EG.rad_per_cycle * 3)) return 1 diff --git a/code/game/objects/effects/map_effects/radiation_emitter.dm b/code/game/objects/effects/map_effects/radiation_emitter.dm index 3fb31d3c5d..8abf946556 100644 --- a/code/game/objects/effects/map_effects/radiation_emitter.dm +++ b/code/game/objects/effects/map_effects/radiation_emitter.dm @@ -1,19 +1,19 @@ -// Constantly emites radiation from the tile it's placed on. -/obj/effect/map_effect/radiation_emitter - name = "radiation emitter" - icon_state = "radiation_emitter" - var/radiation_power = 30 // Bigger numbers means more radiation. - -/obj/effect/map_effect/radiation_emitter/Initialize() - START_PROCESSING(SSobj, src) - return ..() - -/obj/effect/map_effect/radiation_emitter/Destroy() - STOP_PROCESSING(SSobj, src) - return ..() - -/obj/effect/map_effect/radiation_emitter/process() - radiation_repository.radiate(src, radiation_power) - +// Constantly emites radiation from the tile it's placed on. +/obj/effect/map_effect/radiation_emitter + name = "radiation emitter" + icon_state = "radiation_emitter" + var/radiation_power = 30 // Bigger numbers means more radiation. + +/obj/effect/map_effect/radiation_emitter/Initialize() + START_PROCESSING(SSobj, src) + return ..() + +/obj/effect/map_effect/radiation_emitter/Destroy() + STOP_PROCESSING(SSobj, src) + return ..() + +/obj/effect/map_effect/radiation_emitter/process() + SSradiation.radiate(src, radiation_power) + /obj/effect/map_effect/radiation_emitter/strong radiation_power = 100 \ No newline at end of file diff --git a/code/game/objects/items/devices/defib.dm b/code/game/objects/items/devices/defib.dm index 26fb1b69aa..b66c4a3776 100644 --- a/code/game/objects/items/devices/defib.dm +++ b/code/game/objects/items/devices/defib.dm @@ -610,12 +610,12 @@ return 1 /obj/item/weapon/shockpaddles/standalone/checked_use(var/charge_amt) - radiation_repository.radiate(src, charge_amt/12) //just a little bit of radiation. It's the price you pay for being powered by magic I guess + SSradiation.radiate(src, charge_amt/12) //just a little bit of radiation. It's the price you pay for being powered by magic I guess return 1 /obj/item/weapon/shockpaddles/standalone/process() if(fail_counter > 0) - radiation_repository.radiate(src, fail_counter--) + SSradiation.radiate(src, fail_counter--) else STOP_PROCESSING(SSobj, src) diff --git a/code/game/objects/items/devices/geiger.dm b/code/game/objects/items/devices/geiger.dm index 76697ddba3..92ff449855 100644 --- a/code/game/objects/items/devices/geiger.dm +++ b/code/game/objects/items/devices/geiger.dm @@ -28,7 +28,7 @@ /obj/item/device/geiger/proc/get_radiation() if(!scanning) return - radiation_count = radiation_repository.get_rads_at_turf(get_turf(src)) + radiation_count = SSradiation.get_rads_at_turf(get_turf(src)) update_icon() update_sound() diff --git a/code/game/objects/items/devices/radio/encryptionkey_vr.dm b/code/game/objects/items/devices/radio/encryptionkey_vr.dm index 4d2debc341..a70ad6f7df 100644 --- a/code/game/objects/items/devices/radio/encryptionkey_vr.dm +++ b/code/game/objects/items/devices/radio/encryptionkey_vr.dm @@ -18,3 +18,9 @@ name = "research director's encryption key" icon_state = "rd_cypherkey" channels = list("Command" = 1, "Science" = 1, "Explorer" = 1) + +/obj/item/device/encryptionkey/ert + channels = list("Response Team" = 1, "Science" = 1, "Command" = 1, "Medical" = 1, "Engineering" = 1, "Security" = 1, "Supply" = 1, "Service" = 1, "Explorer" = 1) + +/obj/item/device/encryptionkey/omni //Literally only for the admin intercoms + channels = list("Mercenary" = 1, "Raider" = 1, "Response Team" = 1, "Science" = 1, "Command" = 1, "Medical" = 1, "Engineering" = 1, "Security" = 1, "Supply" = 1, "Service" = 1, "Explorer" = 1) diff --git a/code/game/objects/items/devices/radio/headset_vr.dm b/code/game/objects/items/devices/radio/headset_vr.dm index 46d4ead3d8..d7216ed2d4 100644 --- a/code/game/objects/items/devices/radio/headset_vr.dm +++ b/code/game/objects/items/devices/radio/headset_vr.dm @@ -3,6 +3,7 @@ desc = "The headset of the boss's boss." icon_state = "cent_headset" item_state = "headset" + centComm = 1 ks2type = /obj/item/device/encryptionkey/ert /obj/item/device/radio/headset/centcom/alt @@ -13,5 +14,6 @@ name = "\improper NT radio headset" desc = "The headset of a Nanotrasen corporate employee." icon_state = "nt_headset" + centComm = 1 ks2type = /obj/item/device/encryptionkey/ert diff --git a/code/game/objects/items/poi_items.dm b/code/game/objects/items/poi_items.dm index 6fd6d7debd..c12a3a655a 100644 --- a/code/game/objects/items/poi_items.dm +++ b/code/game/objects/items/poi_items.dm @@ -13,7 +13,7 @@ return ..() /obj/item/poi/pascalb/process() - radiation_repository.radiate(src, 5) + SSradiation.radiate(src, 5) /obj/item/poi/pascalb/Destroy() STOP_PROCESSING(SSobj, src) @@ -41,7 +41,7 @@ return ..() /obj/item/poi/brokenoldreactor/process() - radiation_repository.radiate(src, 25) + SSradiation.radiate(src, 25) /obj/item/poi/brokenoldreactor/Destroy() STOP_PROCESSING(SSobj, src) diff --git a/code/game/objects/items/weapons/manuals.dm b/code/game/objects/items/weapons/manuals.dm index 6ae36ca0dd..4afc7b3c3f 100644 --- a/code/game/objects/items/weapons/manuals.dm +++ b/code/game/objects/items/weapons/manuals.dm @@ -20,7 +20,7 @@ - + diff --git a/code/game/objects/items/weapons/tools/crowbar.dm b/code/game/objects/items/weapons/tools/crowbar.dm index 73b62f0741..fab0a6fb98 100644 --- a/code/game/objects/items/weapons/tools/crowbar.dm +++ b/code/game/objects/items/weapons/tools/crowbar.dm @@ -64,7 +64,7 @@ /obj/item/weapon/tool/crowbar/hybrid/is_crowbar() if(prob(10)) var/turf/T = get_turf(src) - radiation_repository.radiate(get_turf(src), 5) + SSradiation.radiate(get_turf(src), 5) T.visible_message("\The [src] shudders!") return FALSE return TRUE diff --git a/code/game/objects/items/weapons/tools/screwdriver.dm b/code/game/objects/items/weapons/tools/screwdriver.dm index a9bdd6cee8..1969987ff9 100644 --- a/code/game/objects/items/weapons/tools/screwdriver.dm +++ b/code/game/objects/items/weapons/tools/screwdriver.dm @@ -108,7 +108,7 @@ /obj/item/weapon/tool/screwdriver/hybrid/is_screwdriver() if(prob(10)) var/turf/T = get_turf(src) - radiation_repository.radiate(get_turf(src), 5) + SSradiation.radiate(get_turf(src), 5) T.visible_message("\The [src] shudders!") return FALSE return TRUE diff --git a/code/game/objects/items/weapons/tools/wirecutters.dm b/code/game/objects/items/weapons/tools/wirecutters.dm index 181c786c4c..4d61609db4 100644 --- a/code/game/objects/items/weapons/tools/wirecutters.dm +++ b/code/game/objects/items/weapons/tools/wirecutters.dm @@ -88,7 +88,7 @@ /obj/item/weapon/tool/wirecutters/hybrid/is_wirecutter() if(prob(10)) var/turf/T = get_turf(src) - radiation_repository.radiate(get_turf(src), 5) + SSradiation.radiate(get_turf(src), 5) T.visible_message("\The [src] shudders!") return FALSE return TRUE diff --git a/code/game/objects/items/weapons/tools/wrench.dm b/code/game/objects/items/weapons/tools/wrench.dm index 652e32cf75..3f02a2f8b3 100644 --- a/code/game/objects/items/weapons/tools/wrench.dm +++ b/code/game/objects/items/weapons/tools/wrench.dm @@ -44,7 +44,7 @@ /obj/item/weapon/tool/wrench/hybrid/is_wrench() if(prob(10)) var/turf/T = get_turf(src) - radiation_repository.radiate(get_turf(src), 5) + SSradiation.radiate(get_turf(src), 5) T.visible_message("\The [src] shudders!") return FALSE return TRUE diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index 072dd43de6..2648723385 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -38,7 +38,7 @@ if(!total_radiation) return - radiation_repository.radiate(src, total_radiation) + SSradiation.radiate(src, total_radiation) return total_radiation diff --git a/code/game/objects/structures/simple_doors.dm b/code/game/objects/structures/simple_doors.dm index 431ef0cdbb..60b94841ea 100644 --- a/code/game/objects/structures/simple_doors.dm +++ b/code/game/objects/structures/simple_doors.dm @@ -196,7 +196,7 @@ /obj/structure/simple_door/process() if(!material.radioactivity) return - radiation_repository.radiate(src, round(material.radioactivity/3)) + SSradiation.radiate(src, round(material.radioactivity/3)) /obj/structure/simple_door/iron/New(var/newloc,var/material_name) ..(newloc, "iron") diff --git a/code/game/turfs/simulated/wall_attacks.dm b/code/game/turfs/simulated/wall_attacks.dm index bd6adfe32f..8599def4a5 100644 --- a/code/game/turfs/simulated/wall_attacks.dm +++ b/code/game/turfs/simulated/wall_attacks.dm @@ -7,7 +7,7 @@ if(can_open == WALL_OPENING) return - radiation_repository.resistance_cache.Remove(src) + SSradiation.resistance_cache.Remove(src) if(density) can_open = WALL_OPENING diff --git a/code/game/turfs/simulated/wall_icon.dm b/code/game/turfs/simulated/wall_icon.dm index b8a0980de4..f277ea79f5 100644 --- a/code/game/turfs/simulated/wall_icon.dm +++ b/code/game/turfs/simulated/wall_icon.dm @@ -26,7 +26,7 @@ else if(material.opacity < 0.5 && opacity) set_light(0) - radiation_repository.resistance_cache.Remove(src) + SSradiation.resistance_cache.Remove(src) update_connections(1) update_icon() diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index 1847767083..bf5f711b20 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -274,7 +274,7 @@ if(!total_radiation) return - radiation_repository.radiate(src, total_radiation) + SSradiation.radiate(src, total_radiation) return total_radiation /turf/simulated/wall/proc/burn(temperature) diff --git a/code/game/turfs/unsimulated/sky_vr.dm b/code/game/turfs/unsimulated/sky_vr.dm index c7c398b996..c71fa6470a 100644 --- a/code/game/turfs/unsimulated/sky_vr.dm +++ b/code/game/turfs/unsimulated/sky_vr.dm @@ -27,6 +27,8 @@ return //Don't ghostport, very annoying if(AM.throwing) return //Being thrown over, not fallen yet + if(!(AM.can_fall())) + return // Phased shifted kin should not fall if(istype(AM, /obj/item/projectile)) return // pewpew should not fall out of the sky. pew. if(istype(AM, /obj/effect/projectile)) diff --git a/code/global_vr.dm b/code/global_vr.dm index 29e84bc93c..834ff2dc2c 100644 --- a/code/global_vr.dm +++ b/code/global_vr.dm @@ -12,6 +12,8 @@ var/list/shell_module_types = list( "Medihound", "Janihound" ) +var/list/eventdestinations = list() // List of scatter landmarks for VOREStation event portals + var/global/list/acceptable_fruit_types= list( "ambrosia", "apple", diff --git a/code/modules/awaymissions/zlevel.dm b/code/modules/awaymissions/zlevel.dm index 1182129cd6..bf1165d2ea 100644 --- a/code/modules/awaymissions/zlevel.dm +++ b/code/modules/awaymissions/zlevel.dm @@ -62,4 +62,10 @@ proc/createRandomZlevel() /obj/effect/landmark/gateway_scatter/Initialize() . = ..() awaydestinations += src + +/obj/effect/landmark/event_scatter + name = "uncalibrated gateway destination" +/obj/effect/landmark/event_scatter/Initialize() + . = ..() + eventdestinations += src //VOREStation Add End diff --git a/code/modules/blob2/overmind/types.dm b/code/modules/blob2/overmind/types.dm index 6049ccfc72..49b968cfcc 100644 --- a/code/modules/blob2/overmind/types.dm +++ b/code/modules/blob2/overmind/types.dm @@ -593,7 +593,7 @@ attack_verb = "splashes" /datum/blob_type/radioactive_ooze/on_pulse(var/obj/structure/blob/B) - radiation_repository.radiate(B, 200) + SSradiation.radiate(B, 200) /datum/blob_type/volatile_alluvium name = "volatile alluvium" diff --git a/code/modules/client/preference_setup/loadout/loadout_fluffitems_yw.dm b/code/modules/client/preference_setup/loadout/loadout_fluffitems_yw.dm index cc64e7dfe0..ed6abec2c5 100644 --- a/code/modules/client/preference_setup/loadout/loadout_fluffitems_yw.dm +++ b/code/modules/client/preference_setup/loadout/loadout_fluffitems_yw.dm @@ -5,7 +5,7 @@ description = "An example item that you probably shouldn't see!" ckeywhitelist = list("broman2000") allowed_roles = list("Station Engineer") //Don't include this if the item is not role restricted - character_name = list("shitfacemcgee") //Same applies here but for names + character_name = list("shitfacemcgee") //Character name. this variable is required, or the item doesn't show in loadout. Change to "character_name = null" if not character restricted. */ // 0-9 CKEYS @@ -449,6 +449,16 @@ ckeywhitelist = list("generalpantsu") character_name = list("Samantha Quzix") +//Gozulio +//Glitterpaws + +/datum/gear/fluff/goz_whitecane + path = /obj/item/weapon/melee/goz_whitecane + display_name = "Telescopic White Cane." + description = "A telescoping white cane. They are commonly used by the blind or visually impaired as a mobility tool or as a courtesy to others." + ckeywhitelist = list("gozulio") + character_name = null + // H CKEYS //harpsong diff --git a/code/modules/client/preference_setup/loadout/loadout_uniform_vr.dm b/code/modules/client/preference_setup/loadout/loadout_uniform_vr.dm index 66eda7f2ce..d49e8e586d 100644 --- a/code/modules/client/preference_setup/loadout/loadout_uniform_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_uniform_vr.dm @@ -168,4 +168,8 @@ Swimsuits //Tron Siren outfit /datum/gear/uniform/siren display_name = "jumpsuit, Siren" - path = /obj/item/clothing/under/fluff/siren \ No newline at end of file + path = /obj/item/clothing/under/fluff/siren + +/datum/gear/uniform/suit/v_nanovest + display_name = "Varmacorp nanovest" + path = /obj/item/clothing/under/fluff/v_nanovest \ No newline at end of file diff --git a/code/modules/client/preference_setup/traits/trait_defines.dm b/code/modules/client/preference_setup/traits/trait_defines.dm index aa53392f2c..8ad3ff9253 100644 --- a/code/modules/client/preference_setup/traits/trait_defines.dm +++ b/code/modules/client/preference_setup/traits/trait_defines.dm @@ -72,25 +72,45 @@ Regardless, you find it quite difficult to land shots where you wanted them to go." modifier_type = /datum/modifier/trait/inaccurate -/datum/trait/modifier/physical/smaller - name = "Smaller" - modifier_type = /datum/modifier/trait/smaller - mutually_exclusive = list(/datum/trait/modifier/physical/small, /datum/trait/modifier/physical/large, /datum/trait/modifier/physical/larger) +/datum/trait/modifier/physical/shorter + name = "Shorter" + modifier_type = /datum/modifier/trait/shorter + mutually_exclusive = list(/datum/trait/modifier/physical/short, /datum/trait/modifier/physical/tall, /datum/trait/modifier/physical/taller) -/datum/trait/modifier/physical/small - name = "Small" - modifier_type = /datum/modifier/trait/small - mutually_exclusive = list(/datum/trait/modifier/physical/smaller, /datum/trait/modifier/physical/large, /datum/trait/modifier/physical/larger) +/datum/trait/modifier/physical/short + name = "Short" + modifier_type = /datum/modifier/trait/short + mutually_exclusive = list(/datum/trait/modifier/physical/shorter, /datum/trait/modifier/physical/tall, /datum/trait/modifier/physical/taller) -/datum/trait/modifier/physical/large - name = "Large" - modifier_type = /datum/modifier/trait/large - mutually_exclusive = list(/datum/trait/modifier/physical/smaller, /datum/trait/modifier/physical/small, /datum/trait/modifier/physical/larger) +/datum/trait/modifier/physical/tall + name = "Tall" + modifier_type = /datum/modifier/trait/tall + mutually_exclusive = list(/datum/trait/modifier/physical/shorter, /datum/trait/modifier/physical/short, /datum/trait/modifier/physical/taller) -/datum/trait/modifier/physical/larger - name = "Larger" - modifier_type = /datum/modifier/trait/larger - mutually_exclusive = list(/datum/trait/modifier/physical/smaller, /datum/trait/modifier/physical/small, /datum/trait/modifier/physical/large) +/datum/trait/modifier/physical/taller + name = "Taller" + modifier_type = /datum/modifier/trait/taller + mutually_exclusive = list(/datum/trait/modifier/physical/shorter, /datum/trait/modifier/physical/short, /datum/trait/modifier/physical/tall) + +/datum/trait/modifier/physical/thin + name = "Thin" + modifier_type = /datum/modifier/trait/thin + mutually_exclusive = list(/datum/trait/modifier/physical/fat, /datum/trait/modifier/physical/obese, /datum/trait/modifier/physical/thinner) + +/datum/trait/modifier/physical/thinner + name = "Rail Thin" + modifier_type = /datum/modifier/trait/thinner + mutually_exclusive = list(/datum/trait/modifier/physical/fat, /datum/trait/modifier/physical/obese, /datum/trait/modifier/physical/thin) + +/datum/trait/modifier/physical/fat + name = "Broad-Shouldered" + modifier_type = /datum/modifier/trait/fat + mutually_exclusive = list(/datum/trait/modifier/physical/thin, /datum/trait/modifier/physical/obese, /datum/trait/modifier/physical/thinner) + +/datum/trait/modifier/physical/obese + name = "Heavily Built" + modifier_type = /datum/modifier/trait/obese + mutually_exclusive = list(/datum/trait/modifier/physical/fat, /datum/trait/modifier/physical/thinner, /datum/trait/modifier/physical/thin) /datum/trait/modifier/physical/colorblind_protanopia name = "Protanopia" diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index f246a8563c..dd290af26e 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -107,7 +107,7 @@ name = "tactical light helmet" desc = "A tan helmet made from advanced ceramic with an integrated tactical flashlight." icon_state = "flexitac" - armor = list(40, bullet = 40, laser = 60, energy = 35, bomb = 30, bio = 0, rad = 0) + armor = list(melee = 40, bullet = 40, laser = 60, energy = 35, bomb = 30, bio = 0, rad = 0) siemens_coefficient = 0.6 brightness_on = 6 light_overlay = "helmet_light_dual_green" diff --git a/code/modules/events/radiation_storm.dm b/code/modules/events/radiation_storm.dm index 6140ae2de0..13f853dd3c 100644 --- a/code/modules/events/radiation_storm.dm +++ b/code/modules/events/radiation_storm.dm @@ -31,7 +31,7 @@ /datum/event/radiation_storm/proc/radiate() var/radiation_level = rand(15, 35) for(var/z in using_map.station_levels) - radiation_repository.z_radiate(locate(1, 1, z), radiation_level, 1) + SSradiation.z_radiate(locate(1, 1, z), radiation_level, 1) for(var/mob/living/carbon/C in living_mob_list) var/area/A = get_area(C) diff --git a/code/modules/gamemaster/actions/radiation_storm.dm b/code/modules/gamemaster/actions/radiation_storm.dm index 243af5dbee..678ad16ab6 100644 --- a/code/modules/gamemaster/actions/radiation_storm.dm +++ b/code/modules/gamemaster/actions/radiation_storm.dm @@ -41,7 +41,7 @@ /datum/gm_action/radiation_storm/proc/radiate() var/radiation_level = rand(15, 35) for(var/z in using_map.station_levels) - radiation_repository.z_radiate(locate(1, 1, z), radiation_level, 1) + SSradiation.z_radiate(locate(1, 1, z), radiation_level, 1) for(var/mob/living/carbon/C in living_mob_list) var/area/A = get_area(C) diff --git a/code/modules/integrated_electronics/subtypes/input.dm b/code/modules/integrated_electronics/subtypes/input.dm index e3fcb5d985..4ac81ea4cc 100644 --- a/code/modules/integrated_electronics/subtypes/input.dm +++ b/code/modules/integrated_electronics/subtypes/input.dm @@ -308,11 +308,12 @@ var/list/valid_things = list() if(isweakref(I.data)) var/atom/A = I.data.resolve() - var/desired_type = A.type - if(desired_type) - for(var/atom/thing in nearby_things) - if(thing.type == desired_type) - valid_things.Add(thing) + if(A) + var/desired_type = A.type + if(desired_type) + for(var/atom/thing in nearby_things) + if(thing.type == desired_type) + valid_things.Add(thing) else if(istext(I.data)) var/DT = I.data for(var/atom/thing in nearby_things) diff --git a/code/modules/lore_codex/news_data/main.dm b/code/modules/lore_codex/news_data/main.dm index a2f5f43043..277c38e175 100644 --- a/code/modules/lore_codex/news_data/main.dm +++ b/code/modules/lore_codex/news_data/main.dm @@ -4,6 +4,19 @@ region. Each is labeled by date of publication and title. This list is self-updating, and from time to time the publisher will push new \ articles. You are encouraged to check back frequently." children = list( + /datum/lore/codex/page/article66, + /datum/lore/codex/page/article65, + /datum/lore/codex/page/article64, + /datum/lore/codex/page/article63, + /datum/lore/codex/page/article62, + /datum/lore/codex/page/article61, + /datum/lore/codex/page/article60, + /datum/lore/codex/page/article59, + /datum/lore/codex/page/article58, + /datum/lore/codex/page/article57, + /datum/lore/codex/page/article56, + /datum/lore/codex/page/article55, + /datum/lore/codex/page/article54, /datum/lore/codex/page/article53, /datum/lore/codex/page/article52, /datum/lore/codex/page/article51, @@ -650,4 +663,122 @@

\ Candidate Freya Singh, a career investment banker, spent much of today's debate advocating for reduced safety regulations and the apparent overturning of the Five Points, raising eyebrows across the system. Singh's office claims that her statements were 'a joke', but we do not feel that this is a laughing matter.\

\ - In related news, Shadow Coalition candidate Phaedrus remains under a profanity filter 'house arrest' for the remainder of the election." \ No newline at end of file + In related news, Shadow Coalition candidate Phaedrus remains under a profanity filter 'house arrest' for the remainder of the election." + +/datum/lore/codex/page/article54 + name = "06/28/63 - Vir Finalizes Dates for Election Voting" + data = "The Vir Governmental Authority has confirmed that voting for Vir's governorship and Colonial Assembly seats will take place on the 29th and 30th of June, with an additional voting period set for Wednesday the 3rd of July to allow for out-of-system and full-time weekend employees to cast their votes. No exit poll information will be released until the final votes have been cast, and final results are expected to be announced within another week.\ +

\ + According to a Oculum poll, Lusia Hainirsdottir is expected to comfortably take a seat, though the certainty of her governor position is not hard set. Candidates Sao, Singh and Jorg are trailing not far behind, but will all have to make good showings this weekend if they hope for electoral success. In an unexpected surge among minority species, the Shadow Coalition's Tajaran candidate Kurah Zarshir is leading the polls in certain outlying and orbital communities.\ +

\ + Not sure how to vote, if you can vote, or who to vote for? Check out the official election website at your-choice-vir.virgov.xo.vr" + +/datum/lore/codex/page/article55 + name = "06/29/63 - Morpheus Cyberkinetics To Split Assets" + data = "The Morpheus Cyberkenetics Corporation is to split into two distinct entities operating under a single board of trustees, in light of their Almach branch's apparent involvement in the ongoing war after last month's 'unintentional' corporate drone strikes. Citing 'Severe communications disruptions' between its operations and assets on either side of the cordon since it was put in place last year, the SolGov-side corporation is to become 'Morpheus Sol', retaining most assets and current corporate headquarters, and its Almach counterpart 'Morpheus Shelf', which is to be based out of the administration station MAS Sophia Jr., located in the El system.'\ +

\ + The principle victim of the Aetolian coup, Nanotrasen, has seen most of their considerable Almachi investment nationalized by the secessionist government, as has Xion and other major Almachi organizations. Most surviving corporate exclaves have been effectively written off by their parent company for the duration of the conflict, due to the severe difficulties effectively conducting trade across the militarized border. Before today, the sole exception was Morpheus, whose involvement in the secession prevented any seizing of their assets. It seems, however, that even the sardonic positronic corporation is not immune to the difficulties of doing business in the Almach Rim region.\ +

\ + Member of the Board Chock Full of Sardines introduced the proposal by saying, 'Our goal here is not being shot. Together with leading economic scientists, we've devised a scheme that will allow us to be shot for illegal smuggling almost ninety percent less often.' They defended the confusing and offensive choice of name in 'Sophia Jr.', seemingly intended as an insult to longstanding rival Sophia, by claiming, 'It's absolutely hilarious.'" + +/datum/lore/codex/page/article56 + name = "06/30/63 - Almach Leak Confirms 'Super-weapon' in Whythe" + data = "Solar Confederate Government Intelligence has this afternoon confirmed the presence of a so-called 'Super-weapon' in the distant Whythe system, after an apparent intelligence leak was posted to the exonet in the early hours of this morning. According to a spokesperson for the Solar Fleet, the public were not made aware of the super-weapon as the military 'have no reason to believe that the weapon poses any threat to civilian targets within SolGov space at this time, and there is no reason to cause panic with what amounts to the announcement of an Almachi propaganda tool intended to sow discord with bold threats of overwhelming power. This morning's leak achieves nothing but serving the Association's schemes. Keeping this so-called super-weapon - and I hesitate to use that term - a secret seems to have been last on their list of priorities.'\ +

\ + According to the intelligence documents released this morning and widely spread within minutes of upload, the 'super-weapon' is a colossal space-bound structure equipped with 'newly developed bluespace technology', though its exact purpose or capabilities have not been confirmed by either side.\ +

\ + Additionally, the Solar Fleet has announced that an unnamed individual within the intelligence service has been placed under arrest in connection with the leak." + +/datum/lore/codex/page/article57 + name = "07/04/63 - Exit Polls Suggest Shadow Coalition Win in Vir" + data = "According to the first exit poll data released after Vir Gubernatorial voting closed at midnight, local favourite the Shadow Coalition is expected to win at least two representative seats, with incumbent representative Lusia Hainirsdottir taking a comfortable lead.\ +

\ + Final results are not expected to be tallied until Saturday morning, but other frontrunners include the Icarus Front's Vani Jee and Mehmet Sao - running on drastically different platforms - alongside the Shadow Coalition's Selma Jorg. In an unexpected turn, sole Tajaran Candidate Kurah Zarshir of the Shadow Coalition has seen an immense surge in popularity among minority and more xenophilic voters. Could Vir be seeing its first Tajaran Representative? Experts say: 'Perhaps.'" + +/datum/lore/codex/page/article58 + name = "07/07/63 - Vir Election Results" + data = "The results of the 2563 Vir Gubernatorial Elections are as follows:\ +
\ + Governor of Vir: Lusia Hainirsdottir (Shadow Coalition)\ +
\ + Vir Colonial Assembly Representative: Vani Jee (Icarus Front)\ +
\ + Vir Colonial Assembly Representative: Selma Jorg (Shadow Coalition)\ +
\ + Other candidates ranked: Sao (4), Zarshir (5), Keldow (6), Singh (7), Moravec (8), Phaedrus (9), Lye (10), Savik (11), Square (12), Wekstrom (13)\ +

\ + Voter turnout: 30,928,287 (63%)\ +

\ + The greatest upset this election cycle has been the unexpected popularity of 'alien rights' candidate Kurah Zarshir, who was eliminated in favour of Mehmet Sao (Icarus Front) in the 8th round of vote transfers by a margin of just 30 votes, or 0.000096%, prompting a rigourous recount process to confirm the result. A difference at this stage could have resulted in a significantly different final line-up.\ +

\ + This year's winners showed clear advantages in the first-choice votes, each gaining at least 15% of the popular vote before any transfers were calculated, though Sao made significant gains in the final count, falling only a few percent short of the Jorg's 3rd place position. By far the least popular candidate this cycle was Hal Wekstrom of the Sol Economic Organization, who received just 0.8% of the first-choice vote and was immediately eliminated. Also of note were Phaedrus, Apogee Lye and Yole Savik voters, each of whom had high (30%+) voter exhaustion rates, opting not to provide alternative choices; sending the message 'My candidate or none at all.'\ +

\ + The elected are to be sworn in at a ceremony on Luna in two weeks time." + +/datum/lore/codex/page/article59 + name = "07/30/63 - Solar Fleet Data Breach" + data = "Last night, a number of files were spread on the Monsters From Beyond's exolife forums allegedly depicting the boarding and eventual scuttling of the SCG-TV Mariner's Cage during a voyage close to the Gavel system on the 12th of June, before the SCG had officially released any information regarding the event. The files contained undisclosed documents from the Solar Fleet investigation, some of which appear to contain audio and video recordings of the final moments of the crew before the vessel's bluespace drive was detonated. Due to the graphic violence depicted and their classified nature, we will not be sharing the files, however as a matter of public record we will explain the events recorded therein. The following description may be unsuitable for sensitive readers.\ +

\ + First, the navigation crew detects a drive signature on an apparent intercept course with their own, originating from across the SCG-Almachi border. It was not a large vessel, and is assumed to be some form of autonomous drone. The crew disregards it as a low level threat, instead continuing on their trajectory, leaving only the standard point defense armament locked on. This proved to be a lethal mistake, as the vessel appeared and near-instantly began accelerating toward the Mariner's Cage, before impacting the fore weapons array. The recording is cut, due to what was likely a power surge, however upon reconnection, reports indicate no damage related to any known warhead was apparent, aside from the initial impactor. The crew mistakenly assumes it to be a failed suicide drone strike, and dispatches minimal security personnel, and a large complement of response engineers.\ +

\ + Approximately thirty minutes after the response teams are dispatched to the impact zone, the teams begin losing contact, with those first arriving being the first to disappear. When the security responders intercept the path of communications blackouts, they are met with the blades of multiple Aetolian shock troopers. Two appear to be made from a 'living steel', with each limb taking the form of 'jagged cleavers' as one radio recording states, and three more of 'indeterminable classification'. The ship entered a red alert state, and moments later, the small contingent of marines aboard the supply vessel were dispatched to deal with the threat. All five members of the enemy boarding party were able to be rendered inert through sustained fire, though not without Sol casualties.\ +

\ + According to the next recordings, approximately three hours after the incident, the vessel received orders to interrogate the boarding 'Aetotheans'. The two noted to appear as the officers of the squad were rejuvenated within sealed interrogation chambers reinforced with supplies on hand, apparently capable of stopping sustained fire from multiple energy weapons. The first individual was a 'sapphire' according to information from NanoTrasen correspondants. It refused to speak in Galactic Common, and instead utilized an unknown frequency of biological transmission, and internal charge shifts. The individual was moved to a more permanent cell within the vessel's brig for transport, and the second was rejuvenated. Only the first half of the interrogation, which lasted approximately two and a half minutes, compared to four hours for the first, was recovered. The individual is rejuvenated, and is engaged in discussion with the interrogating officer when it suddenly stands, emits what is described as a 'wail', and detonates, destroying the transmitting camera, and presumably killing the officers involved in direct interrogation.\ +

\ + Final recordings originate from the ship's onboard A.I. housing, which was involved in continual discussions with presumably the 'sapphire', as it enacted the vessel's scuttling. It is unknown whether or not the individual was somehow capable of restoring the other individuals that fell in combat in order to free itself, or if it was able to incapacitate the transporting officers, and command crew of the vessel alone.\ +

\ + The Solar Fleet has expressed 'regret' that the files were leaked in their complete form, and have assured the public that an official report was due for release in the coming weeks. Concerns of 'Aetothean' attacks on civilian targets have been dismissed as 'improbable', but have affirmed that 'the threat is being taken very seriously'." + +/datum/lore/codex/page/article60 + name = "08/03/63 - Hainirsdottir Sworn In As Governor of Vir" + data = "Following a short transitionary period for the previous administration, this year's election victors have been sworn in at an official ceremony at the Colonial Assembly Hall on Luna. During her welcoming address, Governor Hainirsdottir reaffirmed her plans for the future of the system, promising a 'Bright future for Vir as a hub for medical science.', and plans for an incentivisation program for the removal of invasive extra-terrestrial species that have long plagued the region - in particular the aggressive spiders that have become synonymous with certain regions of the Sivian wilderness.\ +

\ + Additionally, the newly elected representatives announced expected, but none-the-less significant changes to the administrative staff of the system. Notable figures include two defeated election hopefuls: Kurah Zarshir has been selected as the Shadow Coalition's Culture Secretary for the system, while Mehmet Sao has been brought aboard by the Representative Vani Jee as the Vir Icarus Front's Internal Security Advisor. It is expected that the former candidates may use their positions to further certain goals from their own campaigns, but under the watchful eyes of their perhaps more moderate superiors." + +/datum/lore/codex/page/article61 + name = "08/04/63 - Former Independence Candidate Found Dead" + data = "It has been confirmed by a spokesperson for the Sivian Independence Front that a body found by hikers last week in the Ingolfskynn Mountains, approximately 200 miles northeast of New Reykjavik, belonged to party chair Yole Savik.\ +

\ + Savik, 68 - who had run for Vir Representative in the recent election - had not been seen since the 14th of July, shortly after the results were announced. Party officials claim that Mr. Savik frequently made 'off the grid' trips into the Sivian wilderness and his absence had not been treated as suspicious until investigators approached them to confirm the identity of the body. According to police, though Yole was publicly known as a 'seasoned frontiersman', Savik had succumbed to exposure at least two weeks prior to the grisly discovery. His death is not being treated as suspicious." + +/datum/lore/codex/page/article62 + name = "08/07/63 - Almach Pirate Threat Vanishes - Analysts Baffled" + data = "Skrellian Xe'qua pirates operating in the far reaches of the Almach Association since the onset of hostilities last year, have inexplicably gone dark. The pirates, who were under close SolGov surveillance to monitor their impact on Almachi shipping, have drastically dropped in activity and numbers over the last month according to an official report released by the Solar Fleet today. The Fleet is unable to account for the cease in activity, which has now reached levels even lower than their pre-war baseline, as there have been no reports of Almach military operations in the area, nor any signs of decisive battle on the Almach border with pirate space.\ +

\ + The drop in activity roughly coincides with the leaked information on an Almach 'Super-weapon' in Whythe, though military sources do not believe that the weapon has been deployed in any capacity at this time. According to Hasan Drust, an expert on Skrellian foreign policy, the 'only feasible explanation (is) major anti-piracy action undertaken by the Skrellian Far Kingdoms', who occupy the space beyond the Xe'qua pirates' known range. The reasoning behind this action now, against pirates who have historically only targeted human space is not entirely clear, though Drust suggests that it may simply be a coincidence as pirates would be a 'trivial issue' for Far Kingdom military might." + +/datum/lore/codex/page/article63 + name = "09/02/63 - Shock Almach Attack Routs Relan Front!" + data = "Following close to a month of reduced Almach activity, enemy Militia forces have today launched a staggering attack on Sol frontline forces in the region of the Relan system, disabling several SCG warships and forcing a major tactical retreat to Saint Columbia. The scale of this attack by Almach forces is unprecedented, but seems to be the result of the Association consolidating manpower previously dedicated to anti-piracy patrols on the far side of their territory. It is believed these vessels have become freed up due to the apparent but as of yet unconfirmed annihilation of Xe'qua criminal flotillas by Skrellian Far Kingdom police action.\ +

\ + The Solar fleet had been in position to blockade the Relan system in the hopes of forcing the Free Relan Federation to surrender and withdraw from the Association, but was unprepared for what has been described as an 'all-out attack' on their positions, which left the vessels SCG-D Liu Bei, SCG-D Wodehouse, SCG-TV Ceylon Hartal and SCG-TV Apoxpalon disabled and unable to retreat with the bulk of our forces, as well as inflicting severe damage to several other craft. According to initial reports, the strikes on many of the afflicted ships closely resembled scenes from the controversial 'Aetothean shock attacks' on the SCG-TV Mariner's Cage this June, which saw the ruthless deployment of gene-altered Promethean 'super-soldiers' by the Almach Association.\ +

\ + Fleet Admiral Ripon Latt, commanding officer of the assailed fleet, has confirmed that reinforcements are underway and the retreat 'shall not be a significant setback in the war effort', especially assuring citizens of the embattled Saint Columbia system and its neighbours that there is no cause for alarm and civilians have yet to be targeted.\ +

\ + The fates of the four missing ships have not been confirmed, and though the Fleet has not yet made an official statement, Sol casualties are cautiously estimated to be in the hundreds." + +/datum/lore/codex/page/article64 + name = "09/23/63 - Fleet Refuses Inquiry Into Relan Losses" + data = "The SCG Fleet has refused to heed widespread calls from critics to launch an investigation into the heavy losses sustained by our forces in a major Almach attack early this month, citing that an investigation at this time would 'undermine the ongoing efforts of our troops in battles to come'.\ +

\ + The attack, which took place on the 2nd of September and at current count resulted in the loss of a staggering 1281 Sol lives, quickly drew criticism from experts for 'the total unpreparedness' of the fleet despite their public claims that all vessels were 'battle ready and prepared for a coming offensive.'. The specifics of the fleets apparent failings have been the focus of much speculation in the intervening weeks, with the blame placed on everything from a critically inexperienced officer core, to ongoing redeployments to and from the recently expanded Hegemony border.\ +

\ + Admiral Latt has condemned critics, stating that 'the last thing our brave troops need right now is murmuring from people who don't know the first thing what they're talking about. Their actions in following orders to fall back to the border have been nothing but commendable, and all effort was made to minimise loss of life. The fleet is undergoing reorganization at this time, and is in a better position than ever.'" + +/datum/lore/codex/page/article65 + name = "09/27/63 - Almach Bypass Saint Columbia In Brazen Gavel Attack!" + data = "Almach Association fleet forces entered the Gavel system this afternoon, reportedly having evaded interdicting Sol forces from Saint Columbia in an apparent effort to skirt the range of the MJOLNIR weapon system in Saint Columbia and cut off that system from major shipping routes. Current reports from the system capital in New Xanadu are that the majority of outlying civilian stations have surrendered to invading forces with only minor incident, but that skirmishes with local defence forces - including Sol Fleet detachments - are ongoing, and it is too early to remark on the outcome of the battle. Official military reports are scarce at this time, but the Fleet in Saint Columbia is 'on the move and ready to repel the invaders'.\ +

\ + Accounts from the system's edge describe Almach forces 'firing indiscriminately' on anti-piracy emplacements including those mounted to the ILS Thurston, a Greyson Manufactories collection station with eight crew, killing all hands.\ +

\ + Open fighting in the Gavel system marks the furthest Almach encroachment on Sol territory to date. The system, which is a stone's throw from the Oasis and Vir systems is best known for the destruction of the moonlet 'Requiem' by a rogue nanoswarm in 2289, which was successfully neutralized by government forces, and boasts only a small population relative to its neighbors." + +/datum/lore/codex/page/article66 + name = "10/01/63 - 'Judgement Day' As Gavel Falls!" + data = "The government of New Xanadu has surrendered to Association invaders following a disastrous relief effort by the Solar Fleet, whose interdiction vessels are believed to have been captured by the invading force. The manoeuvre leaves the bulk of the Sol fleet isolated in the Saint Columbia system - though a breakout is expected - and has led to widespread outrage in the Colonial Assembly. Critics of the war have damned the Fleet for their 'inability to fight a civilian rabble, gene-modded or otherwise' and renewed calls for a peaceful arrangement between the Solar Confederate Government and Association.\ +

\ + ISA-5, current spokesperson for the Shadow Coalition has forwarded a motion today to resume discussions with Almachi heads of state, just hours after news of Gavel's surrender broke. The proposal which has yet to gain widespread traction, would call for a new ceasefire, and ISA-5 has stated they 'hope that a new agreement can be made to end the senseless loss of life over the particulars of a foreign government's right to autonomy.'.\ +

\ + Executive Sifat Unar of the Emergent Intelligence Oversight has voiced immediate concern over the motion, criticising the use of 'foreign government' in reference to Almach; 'Our Fleet has suffered a few defeats, but this conflict goes deeper than mere lasers and shells and to surrender to torturers, mind-hackers, and Machiavellian machines at this stage would be insanity. To allow a seccessionist state, particularly one so unabashedly guilty of crimes against humanity that go far beyond even our modern definitions of 'Human Sanctity', to exist unquestioned a stone's throw from some of our most precious member states, would be a failing not only of this government, but of humanity that would echo through history like a great shameful dirge for all to hear.'\ +

\ + A communications blackout has been instated on the Gavel system by the Almach Militia, though earlier reports indicate continued strikes on numerous civilian colonies who were unwilling, or unable to deactivate their automated defence systems prior to the invaders arrival." \ No newline at end of file diff --git a/code/modules/materials/material_sheets.dm b/code/modules/materials/material_sheets.dm index 4ca50889ea..64eee7ddbe 100644 --- a/code/modules/materials/material_sheets.dm +++ b/code/modules/materials/material_sheets.dm @@ -278,7 +278,7 @@ . = ..() update_mass() - radiation_repository.radiate(src, 5 + amount) + SSradiation.radiate(src, 5 + amount) var/mob/living/M = user if(!istype(M)) return @@ -305,11 +305,11 @@ /obj/item/stack/material/supermatter/ex_act(severity) // An incredibly hard to manufacture material, SM chunks are unstable by their 'stabilized' nature. if(prob((4 / severity) * 20)) - radiation_repository.radiate(get_turf(src), amount * 4) + SSradiation.radiate(get_turf(src), amount * 4) explosion(get_turf(src),round(amount / 12) , round(amount / 6), round(amount / 3), round(amount / 25)) qdel(src) return - radiation_repository.radiate(get_turf(src), amount * 2) + SSradiation.radiate(get_turf(src), amount * 2) ..() /obj/item/stack/material/wood diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index bba621539e..1e122d0a51 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -582,7 +582,7 @@ turf/simulated/mineral/floor/light_corner M.flash_eyes() if(prob(50)) M.Stun(5) - radiation_repository.flat_radiate(src, 25, 100) + SSradiation.flat_radiate(src, 25, 100) if(prob(25)) excavate_find(prob(5), finds[1]) else if(rand(1,500) == 1) diff --git a/code/modules/mob/_modifiers/traits.dm b/code/modules/mob/_modifiers/traits.dm index 200f8eabfb..b15ece941e 100644 --- a/code/modules/mob/_modifiers/traits.dm +++ b/code/modules/mob/_modifiers/traits.dm @@ -60,33 +60,67 @@ metabolism_percent = 0.5 incoming_healing_percent = 0.6 -/datum/modifier/trait/larger - name = "Larger" - desc = "Your body is larger than average." +/datum/modifier/trait/taller + name = "Taller" + desc = "Your body is taller than average." + icon_scale_x_percent = 1 + icon_scale_y_percent = 1.09 - icon_scale_x_percent = 1.1 - icon_scale_y_percent = 1.1 - -/datum/modifier/trait/large - name = "Large" - desc = "Your body is a bit larger than average." - - icon_scale_x_percent = 1.05 +/datum/modifier/trait/tall + name = "Tall" + desc = "Your body is a bit taller than average." + icon_scale_x_percent = 1 icon_scale_y_percent = 1.05 -/datum/modifier/trait/small - name = "Small" - desc = "Your body is a bit smaller than average." - - icon_scale_x_percent = 0.95 +/datum/modifier/trait/short + name = "Short" + desc = "Your body is a bit shorter than average." + icon_scale_x_percent = 1 icon_scale_y_percent = 0.95 -/datum/modifier/trait/smaller - name = "Smaller" - desc = "Your body is smaller than average." - icon_scale_x_percent = 0.9 - icon_scale_y_percent = 0.9 +/datum/modifier/trait/shorter + name = "Shorter" + desc = "You are shorter than average." + icon_scale_x_percent = 1 + icon_scale_y_percent = 0.915 + +/datum/modifier/trait/fat + name = "Overweight" + desc = "You are heavier than average." + + metabolism_percent = 1.2 + icon_scale_x_percent = 1.054 + icon_scale_y_percent = 1 + slowdown = 1.1 + max_health_percent = 1.05 + +/datum/modifier/trait/obese + name = "Obese" + desc = "You are much heavier than average." + metabolism_percent = 1.4 + icon_scale_x_percent = 1.095 + icon_scale_y_percent = 1 + slowdown = 1.2 + max_health_percent = 1.10 + +/datum/modifier/trait/thin + name = "Thin" + desc = "You are skinnier than average." + metabolism_percent = 0.8 + icon_scale_x_percent = 0.945 + icon_scale_y_percent = 1 + max_health_percent = 0.95 + outgoing_melee_damage_percent = 0.95 + +/datum/modifier/trait/thinner + name = "Very Thin" + desc = "You are much skinnier than average." + metabolism_percent = 0.6 + icon_scale_x_percent = 0.905 + icon_scale_y_percent = 1 + max_health_percent = 0.90 + outgoing_melee_damage_percent = 0.9 /datum/modifier/trait/colorblind_protanopia name = "Protanopia" diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 2c74029eb8..758c438a25 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -466,7 +466,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp var/turf/t = get_turf(src) if(t) - var/rads = radiation_repository.get_rads_at_turf(t) + var/rads = SSradiation.get_rads_at_turf(t) to_chat(src, "Radiation level: [rads ? rads : "0"] Bq.") diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 8c687e8de6..dad9e0f41d 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -295,6 +295,7 @@ msg += attempt_vr(src,"examine_pickup_size",args) //VOREStation Code msg += attempt_vr(src,"examine_step_size",args) //VOREStation Code msg += attempt_vr(src,"examine_nif",args) //VOREStation Code + msg += attempt_vr(src,"examine_chimera",args) //VOREStation Code if(mSmallsize in mutations) msg += "[T.He] [T.is] very short!
" diff --git a/code/modules/mob/living/carbon/human/examine_vr.dm b/code/modules/mob/living/carbon/human/examine_vr.dm index fd6a426447..8f12f28d1f 100644 --- a/code/modules/mob/living/carbon/human/examine_vr.dm +++ b/code/modules/mob/living/carbon/human/examine_vr.dm @@ -155,3 +155,40 @@ /mob/living/carbon/human/proc/examine_nif(mob/living/carbon/human/H) if(nif && nif.examine_msg) //If you have one set, anyway. return "[nif.examine_msg]\n" + +/mob/living/carbon/human/proc/examine_chimera(mob/living/carbon/human/H) + var/t_He = "It" //capitalised for use at the start of each line. + var/t_his = "its" + var/t_His = "Its" + var/t_appear = "appears" + var/t_has = "has" + switch(identifying_gender) //Gender is their "real" gender. Identifying_gender is their "chosen" gender. + if(MALE) + t_He = "He" + t_His = "His" + t_his = "his" + if(FEMALE) + t_He = "She" + t_His = "Her" + t_his = "her" + if(PLURAL) + t_He = "They" + t_His = "Their" + t_his = "their" + t_appear = "appear" + t_has = "have" + if(NEUTER) + t_He = "It" + t_His = "Its" + t_his = "its" + if(HERM) + t_He = "Shi" + t_His = "Hir" + t_his = "hir" + if(revive_ready == REVIVING_NOW || revive_ready == REVIVING_DONE) + if(stat == DEAD) + return "[t_His] body is twitching subtly.\n" + else + return "[t_He] [t_appear] to be in some sort of torpor.\n" + if(feral) + return "[t_He] [t_has] a crazed, wild look in [t_his] eyes!\n" \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species/station/prometheans.dm b/code/modules/mob/living/carbon/human/species/station/prometheans.dm index 6cef9b7032..965be6b503 100644 --- a/code/modules/mob/living/carbon/human/species/station/prometheans.dm +++ b/code/modules/mob/living/carbon/human/species/station/prometheans.dm @@ -174,15 +174,40 @@ var/datum/species/shapeshifter/promethean/prometheans H.adjustToxLoss(3 * heal_rate) // Tripled because 0.5 is miniscule, and fire_stacks are capped in both directions healing = FALSE + //Prometheans automatically clean every surface they're in contact with every life tick - this includes the floor without shoes. + //They gain nutrition from doing this. var/turf/T = get_turf(H) if(istype(T)) - var/obj/effect/decal/cleanable/C = locate() in T - if(C && !(H.shoes || (H.wear_suit && (H.wear_suit.body_parts_covered & FEET)))) - qdel(C) + if(!(H.shoes || (H.wear_suit && (H.wear_suit.body_parts_covered & FEET)))) + for(var/obj/O in T) + O.clean_blood() + H.nutrition = min(500, max(0, H.nutrition + rand(5, 15))) if (istype(T, /turf/simulated)) var/turf/simulated/S = T + T.clean_blood() S.dirt = 0 + H.nutrition = max(H.nutrition, min(500, H.nutrition + rand(15, 30))) //VOREStation Edit: Gives nutrition up to a point instead of being capped + if(H.clean_blood(1)) H.nutrition = max(H.nutrition, min(500, H.nutrition + rand(15, 30))) //VOREStation Edit: Gives nutrition up to a point instead of being capped + if(H.r_hand) + if(H.r_hand.clean_blood()) + H.nutrition = max(H.nutrition, min(500, H.nutrition + rand(15, 30))) //VOREStation Edit: Gives nutrition up to a point instead of being capped + if(H.l_hand) + if(H.l_hand.clean_blood()) + H.nutrition = max(H.nutrition, min(500, H.nutrition + rand(15, 30))) //VOREStation Edit: Gives nutrition up to a point instead of being capped + if(H.head) + if(H.head.clean_blood()) + H.update_inv_head(0) + H.nutrition = max(H.nutrition, min(500, H.nutrition + rand(15, 30))) //VOREStation Edit: Gives nutrition up to a point instead of being capped + if(H.wear_suit) + if(H.wear_suit.clean_blood()) + H.update_inv_wear_suit(0) + H.nutrition = max(H.nutrition, min(500, H.nutrition + rand(15, 30))) //VOREStation Edit: Gives nutrition up to a point instead of being capped + if(H.w_uniform) + if(H.w_uniform.clean_blood()) + H.update_inv_w_uniform(0) + H.nutrition = max(H.nutrition, min(500, H.nutrition + rand(15, 30))) //VOREStation Edit: Gives nutrition up to a point instead of being capped + //End cleaning code. var/datum/gas_mixture/environment = T.return_air() var/pressure = environment.return_pressure() diff --git a/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_blob.dm b/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_blob.dm index 16f953e1e7..11cb589668 100644 --- a/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_blob.dm +++ b/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_blob.dm @@ -36,6 +36,7 @@ max_n2 = 0 minbodytemp = 0 maxbodytemp = 900 + movement_cooldown = 0 var/mob/living/carbon/human/humanform var/obj/item/organ/internal/nano/refactory/refactory @@ -200,7 +201,7 @@ target.forceMove(vore_selected) to_chat(target,"\The [src] quickly engulfs you, [vore_selected.vore_verb]ing you into their [vore_selected.name]!") -/mob/living/simple_mob/protean_blob/attack_hand(var/atom/A) //VORESTATION AI TEMPORARY REMOVAL (Marking this as such even though it was an edit.) +/mob/living/simple_mob/protean_blob/attack_target(var/atom/A) if(refactory && istype(A,/obj/item/stack/material)) var/obj/item/stack/material/S = A var/substance = S.material.name @@ -346,8 +347,7 @@ var/atom/reform_spot = blob.drop_location() //Size update - transform = matrix()*blob.size_multiplier - size_multiplier = blob.size_multiplier + resize(blob.size_multiplier, FALSE) //Move them back where the blob was forceMove(reform_spot) diff --git a/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_species.dm b/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_species.dm index 0d9ad6bd93..0d2000fa01 100755 --- a/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_species.dm +++ b/code/modules/mob/living/carbon/human/species/station/protean_vr/protean_species.dm @@ -96,7 +96,8 @@ /mob/living/carbon/human/proc/shapeshifter_select_gender, /mob/living/carbon/human/proc/shapeshifter_select_wings, /mob/living/carbon/human/proc/shapeshifter_select_tail, - /mob/living/carbon/human/proc/shapeshifter_select_ears + /mob/living/carbon/human/proc/shapeshifter_select_ears, + /mob/living/proc/eat_trash ) var/global/list/abilities = list() @@ -296,7 +297,6 @@ material_name = MAT_STEEL /datum/modifier/protean/steel/tick() - ..() holder.adjustBruteLoss(-10,include_robo = TRUE) //Looks high, but these ARE modified by species resistances, so this is really 20% of this holder.adjustFireLoss(-1,include_robo = TRUE) //And this is really double this var/mob/living/carbon/human/H = holder diff --git a/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm index 000e9c4dfc..66d33c27eb 100644 --- a/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm @@ -42,7 +42,7 @@ Widely known for their voracious nature and violent tendencies when stressed or left unfed for long periods of time. \ Most, if not all chimeras possess the ability to undergo some type of regeneration process, at the cost of energy." - wikilink = "https://wiki.vore-station.net/Xenochimera" + wikilink = "https://www.yawn.ocry.com/Xenochimera" catalogue_data = list(/datum/category_item/catalogue/fauna/xenochimera) @@ -346,7 +346,7 @@ Before they were found they built great cities out of their silk, being united and subjugated in warring factions under great “Star Queens” \ Who forced the working class to build huge, towering cities to attempt to reach the stars, which they worship as gems of great spiritual and magical significance." - wikilink = "https://wiki.vore-station.net/Vasilissans" + wikilink = "https://www.yawn.ocry.com/Vasilissans" catalogue_data = list(/datum/category_item/catalogue/fauna/vasilissan) diff --git a/code/modules/mob/living/carbon/human/species/station/station_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_vr.dm index 7d5c5286e2..283d4feeca 100644 --- a/code/modules/mob/living/carbon/human/species/station/station_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/station_vr.dm @@ -28,7 +28,7 @@ lifespan, but due to their lust for violence, only a handful have ever survived beyond the age of 80, such as the infamous and \ legendary General Rain Silves who is claimed to have lived to 5000." - wikilink="https://wiki.vore-station.net/Backstory#Sergal" + wikilink="https://www.yawn.ocry.com/Sergal" catalogue_data = list(/datum/category_item/catalogue/fauna/sergal) @@ -92,7 +92,7 @@ surviving in open air for long periods of time. However, Akula even today still require a high humidity environment to avoid drying out \ after a few days, which would make life on an arid world like Virgo-Prime nearly impossible if it were not for Skrellean technology to aid them." - wikilink="https://wiki.vore-station.net/Backstory#Akula" + wikilink="https://www.yawn.ocry.com/Akula" catalogue_data = list(/datum/category_item/catalogue/fauna/akula) @@ -136,7 +136,7 @@ over and over again. Consequently, they struggle to make copies of same things. Both genders have a voice that echoes a lot. Their natural \ tone oscillates between tenor and soprano. They are excessively noisy when they quarrel in their native language." - wikilink="https://wiki.vore-station.net/Backstory#Nevrean" + wikilink="https://www.yawn.ocry.com/Nevrean" catalogue_data = list(/datum/category_item/catalogue/fauna/nevrean) @@ -178,7 +178,7 @@ mountainous areas, they have a differing societal structure than the Flatland Zorren having a more feudal social structure, like the Flatland Zorren, \ the Highland Zorren have also only recently been hired by the Trans-Stellar Corporations, but thanks to the different social structure they seem to \ have adjusted better to their new lives. Though similar fox-like beings have been seen they are different than the Zorren." - wikilink="https://wiki.vore-station.net/Zorren" + wikilink="https://www.yawn.ocry.com/Zorren" catalogue_data = list(/datum/category_item/catalogue/fauna/zorren, /datum/category_item/catalogue/fauna/highzorren) @@ -223,7 +223,7 @@ mountainous areas, they have a differing societal structure than the Flatland Zorren having a more feudal social structure, like the Flatland Zorren, \ the Highland Zorren have also only recently been hired by the Trans-Stellar Corporations, but thanks to the different social structure they \ seem to have adjusted better to their new lives. Though similar fox-like beings have been seen they are different than the Zorren." - wikilink="https://wiki.vore-station.net/Zorren" + wikilink="https://www.yawn.ocry.com/Zorren" catalogue_data = list(/datum/category_item/catalogue/fauna/zorren, /datum/category_item/catalogue/fauna/flatzorren) @@ -270,7 +270,7 @@ to the degree it can cause conflict with more rigorous and strict authorities. They speak a guttural language known as 'Canilunzt' \ which has a heavy emphasis on utilizing tail positioning and ear twitches to communicate intent." - wikilink="https://wiki.vore-station.net/Backstory#Vulpkanin" + wikilink="https://www.yawn.ocry.com/Vulpkanin" catalogue_data = list(/datum/category_item/catalogue/fauna/vulpkanin) @@ -306,7 +306,7 @@ but there are multiple exceptions. All xenomorph hybrids have had their ability to lay eggs containing facehuggers \ removed if they had the ability to, although hybrids that previously contained this ability is extremely rare." catalogue_data = list(/datum/category_item/catalogue/fauna/xenohybrid) - // No wiki page for xenohybrids at present + wikilink="https://www.yawn.ocry.com/Xenomorph-Hybrid" //primitive_form = "" //None for these guys @@ -334,7 +334,7 @@ gluttonous = 0 inherent_verbs = list(/mob/living/proc/shred_limb) descriptors = list() - wikilink="https://wiki.vore-station.net/Unathi" + wikilink="https://www.yawn.ocry.com/Unathi" /datum/species/tajaran spawn_flags = SPECIES_CAN_JOIN @@ -346,7 +346,7 @@ gluttonous = 0 //Moving this here so I don't have to fix this conflict every time polaris glances at station.dm inherent_verbs = list(/mob/living/proc/shred_limb, /mob/living/carbon/human/proc/lick_wounds) heat_discomfort_level = 295 //Prevents heat discomfort spam at 20c - wikilink="https://wiki.vore-station.net/Tajaran" + wikilink="https://www.yawn.ocry.com/Tajaran" /datum/species/skrell spawn_flags = SPECIES_CAN_JOIN @@ -356,14 +356,14 @@ min_age = 18 reagent_tag = null assisted_langs = list(LANGUAGE_EAL, LANGUAGE_ROOTLOCAL, LANGUAGE_ROOTGLOBAL, LANGUAGE_VOX) - wikilink="https://wiki.vore-station.net/Skrell" + wikilink="https://www.yawn.ocry.com/Skrell" /datum/species/zaddat spawn_flags = SPECIES_CAN_JOIN min_age = 18 gluttonous = 0 descriptors = list() - // no wiki link exists for Zaddat yet + wikilink="https://www.yawn.ocry.com/Zaddat" /datum/species/zaddat/equip_survival_gear(var/mob/living/carbon/human/H) .=..() @@ -376,7 +376,7 @@ /datum/species/diona spawn_flags = SPECIES_CAN_JOIN min_age = 18 - wikilink="https://wiki.vore-station.net/Diona" + wikilink="https://www.yawn.ocry.com/Diona" /datum/species/teshari mob_size = MOB_MEDIUM @@ -390,7 +390,7 @@ swap_flags = ~HEAVY gluttonous = 0 descriptors = list() - wikilink="https://wiki.vore-station.net/Teshari" + wikilink="https://www.yawn.ocry.com/Teshari" inherent_verbs = list( /mob/living/carbon/human/proc/sonar_ping, @@ -401,7 +401,7 @@ /datum/species/shapeshifter/promethean spawn_flags = SPECIES_CAN_JOIN - wikilink="https://wiki.vore-station.net/Promethean" + wikilink="https://www.yawn.ocry.com/Promethean" /datum/species/human color_mult = 1 @@ -410,7 +410,7 @@ appearance_flags = HAS_HAIR_COLOR | HAS_SKIN_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_EYE_COLOR min_age = 18 base_color = "#EECEB3" - wikilink="https://wiki.vore-station.net/Human" + wikilink="https://www.yawn.ocry.com/Human" /datum/species/vox gluttonous = 0 @@ -422,7 +422,7 @@ descriptors = list( /datum/mob_descriptor/vox_markings = 0 ) - wikilink="https://wiki.vore-station.net/Vox" + wikilink="https://www.yawn.ocry.com/Vox" datum/species/harpy name = SPECIES_RAPALA @@ -448,7 +448,7 @@ datum/species/harpy who are known for having massive winged arms and talons as feet. They've been clocked at speeds of over 35 miler per hour chasing the planet's many fish-like fauna.\ The Rapalan's home-world 'Verita' is a strangely habitable gas giant, while no physical earth exists, there are fertile floating islands orbiting around the planet from past asteroid activity." - wikilink="https://wiki.vore-station.net/Backstory#Rapala" + wikilink="https://www.yawn.ocry.com/Rapala" catalogue_data = list(/datum/category_item/catalogue/fauna/rapala) diff --git a/code/modules/mob/living/silicon/robot/robot_modules/station.dm b/code/modules/mob/living/silicon/robot/robot_modules/station.dm index c7ce79bb32..8777e43154 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules/station.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules/station.dm @@ -176,8 +176,8 @@ var/global/list/robot_modules = list( "XI-ALP" = "heavyStandard", "Basic" = "robot_old", "Android" = "droid", - "Drone" = "drone-standard" -// "Insekt" = "insekt-Default" + "Drone" = "drone-standard", + "Insekt" = "insekt-Default" ) @@ -210,8 +210,8 @@ var/global/list/robot_modules = list( "Advanced Droid" = "droid-medical", "Needles" = "medicalrobot", "Drone" = "drone-surgery", - "Handy" = "handy-med" -// "Insekt" = "insekt-Med" + "Handy" = "handy-med", + "Insekt" = "insekt-Med" ) /obj/item/weapon/robot_module/robot/medical/surgeon/New() @@ -283,8 +283,8 @@ var/global/list/robot_modules = list( "Advanced Droid" = "droid-medical", "Needles" = "medicalrobot", "Drone - Medical" = "drone-medical", - "Drone - Chemistry" = "drone-chemistry" -// "Insekt" = "insekt-Med" + "Drone - Chemistry" = "drone-chemistry", + "Insekt" = "insekt-Med" ) /obj/item/weapon/robot_module/robot/medical/crisis/New() @@ -517,8 +517,8 @@ var/global/list/robot_modules = list( "XI-ALP" = "heavySec", "Basic" = "secborg", "Black Knight" = "securityrobot", - "Drone" = "drone-sec" -// "Insekt" = "insekt-Sec" + "Drone" = "drone-sec", + "Insekt" = "insekt-Sec" ) /obj/item/weapon/robot_module/robot/security/general/New() @@ -734,8 +734,8 @@ var/global/list/robot_modules = list( "WTOperator" = "sleekscience", "Droid" = "droid-science", "Drone" = "drone-science", - "Handy" = "handy-science" -// "Insekt" = "insekt-Sci" + "Handy" = "handy-science", + "Insekt" = "insekt-Sci" ) /obj/item/weapon/robot_module/robot/research/New() @@ -795,8 +795,8 @@ var/global/list/robot_modules = list( hide_on_manifest = 1 sprites = list( "Haruka" = "marinaCB", - "Combat Android" = "droid-combat" -// "Insekt" = "insekt-Combat" + "Combat Android" = "droid-combat", + "Insekt" = "insekt-Combat" ) /obj/item/weapon/robot_module/robot/security/combat/New() diff --git a/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm b/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm index 9d4e903363..3000f83879 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm @@ -180,7 +180,7 @@ R.wideborg = TRUE R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill R.verbs |= /mob/living/silicon/robot/proc/robot_mount - R.verbs |= /mob/living/proc/shred_limb +// R.verbs |= /mob/living/proc/shred_limb - YW Edit R.verbs |= /mob/living/silicon/robot/proc/rest_style ..() @@ -244,6 +244,30 @@ B.water = water src.modules += B +// - YW Edit + + var/datum/matter_synth/medicine = new /datum/matter_synth/medicine(15000) + medicine.name = "Medical supply reserves" + synths += medicine + + var/obj/item/stack/medical/advanced/ointment/O = new /obj/item/stack/medical/advanced/ointment(src) + var/obj/item/stack/medical/advanced/bruise_pack/P = new /obj/item/stack/medical/advanced/bruise_pack(src) + var/obj/item/stack/medical/splint/S = new /obj/item/stack/medical/splint(src) + O.uses_charge = 1 + O.charge_costs = list(1000) + O.synths = list(medicine) + P.uses_charge = 1 + P.charge_costs = list(1000) + P.synths = list(medicine) + S.uses_charge = 1 + S.charge_costs = list(1000) + S.synths = list(medicine) + src.modules += O + src.modules += P + src.modules += S + +// End YW Edit + R.icon = 'icons/mob/widerobot_vr.dmi' src.modules += new /obj/item/device/dogborg/pounce_module(src) //Pounce shit test @@ -256,7 +280,7 @@ R.wideborg = TRUE R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill R.verbs |= /mob/living/silicon/robot/proc/robot_mount - R.verbs |= /mob/living/proc/shred_limb +// R.verbs |= /mob/living/proc/shred_limb - YW Edit R.verbs |= /mob/living/silicon/robot/proc/rest_style ..() @@ -304,7 +328,7 @@ R.wideborg = TRUE R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill R.verbs |= /mob/living/silicon/robot/proc/robot_mount - R.verbs |= /mob/living/proc/shred_limb +// R.verbs |= /mob/living/proc/shred_limb - YW Edit R.verbs |= /mob/living/silicon/robot/proc/rest_style ..() @@ -385,7 +409,7 @@ R.wideborg = TRUE R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill R.verbs |= /mob/living/silicon/robot/proc/robot_mount - R.verbs |= /mob/living/proc/shred_limb +// R.verbs |= /mob/living/proc/shred_limb - YW Edit R.verbs |= /mob/living/silicon/robot/proc/rest_style ..() @@ -431,7 +455,7 @@ R.wideborg = TRUE R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill R.verbs |= /mob/living/silicon/robot/proc/robot_mount - R.verbs |= /mob/living/proc/shred_limb +// R.verbs |= /mob/living/proc/shred_limb - YW Edit R.verbs |= /mob/living/silicon/robot/proc/rest_style ..() @@ -558,7 +582,7 @@ R.wideborg = TRUE R.verbs |= /mob/living/silicon/robot/proc/ex_reserve_refill R.verbs |= /mob/living/silicon/robot/proc/robot_mount - R.verbs |= /mob/living/proc/shred_limb +// R.verbs |= /mob/living/proc/shred_limb - YW Edit R.verbs |= /mob/living/silicon/robot/proc/rest_style ..() @@ -573,6 +597,6 @@ R.scrubbing = FALSE R.verbs -= /mob/living/silicon/robot/proc/ex_reserve_refill R.verbs -= /mob/living/silicon/robot/proc/robot_mount - R.verbs -= /mob/living/proc/shred_limb +// R.verbs -= /mob/living/proc/shred_limb - YW Edit R.verbs -= /mob/living/silicon/robot/proc/rest_style ..() \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/slime/subtypes.dm b/code/modules/mob/living/simple_animal/slime/subtypes.dm index 18b43dc33c..75f33cdcef 100644 --- a/code/modules/mob/living/simple_animal/slime/subtypes.dm +++ b/code/modules/mob/living/simple_animal/slime/subtypes.dm @@ -500,7 +500,7 @@ ..() /mob/living/simple_animal/slime/green/proc/irradiate() - radiation_repository.radiate(src, rads) + SSradiation.radiate(src, rads) /mob/living/simple_animal/slime/pink diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/space/goose_vr.dm b/code/modules/mob/living/simple_mob/subtypes/animal/space/goose_vr.dm index d44f28973e..203bd79109 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/space/goose_vr.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/space/goose_vr.dm @@ -1,2 +1,7 @@ -/mob/living/simple_mob/animal/space/goose/virgo3b +/datum/category_item/catalogue/fauna/geese + name = "Planetary Fauna - Geese" + desc = "A goose. HONK. Not much to catalogue, they're exactly the same as their earth counterparts." + value = CATALOGUER_REWARD_EASY + +/mob/living/simple_mob/animal/space/goose/virgo3b faction = "virgo3b" \ No newline at end of file diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/golem.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/golem.dm index a8b918fc71..808e5c6c38 100644 --- a/code/modules/mob/living/simple_mob/subtypes/mechanical/golem.dm +++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/golem.dm @@ -149,4 +149,4 @@ /mob/living/simple_mob/mechanical/technomancer_golem/special_post_animation(atom/A) casting = FALSE - ranged_post_animation(A) \ No newline at end of file + ranged_post_animation(A) diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/golem_vr.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/golem_vr.dm new file mode 100644 index 0000000000..aab1387dbc --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/golem_vr.dm @@ -0,0 +1,10 @@ +// Cataloguer data below - strange we can catalogue space golem wizards +/datum/category_item/catalogue/technology/drone/technomancer_golem + name = "Drone - Technomancer Golem" + desc = "Some sort of advanced, unnatural looking synthetic, built for combat.\ + It has a black-and-blue chassis, and wields some sort of... stun baton in it's hand.\ + The drone has pristine armor, black and shiny, with the blue synth-parts glowing visibly from inside.\ +

\ + The drone's frame is heavy and armored, unbendable by hand, is barren of any markings or ID,\ + no traces of paint visible and any 'writing' visible is uncomprehendable, short term scan unable to translate." + value = CATALOGUER_REWARD_MEDIUM diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/hivebot_vr.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/hivebot_vr.dm new file mode 100644 index 0000000000..37a3eb81cf --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/hivebot_vr.dm @@ -0,0 +1,7 @@ +/datum/category_item/catalogue/technology/drone/hivebot // Hivebot Scanner Data - This is for Generic Hivebots + name = "Drone - Hivebot" + desc = "A drone that walks on several legs, with yellow/gold armor plating. It appears to lack a specific weapon, \ + but uses a regular bullet-type weapon, firing a single projectile with a delay. Once upon a time, these bots may \ + have been used to be some sort of... security, or defensive machinery, at a guess, but their original/true purpose is \ + unclear. Whatever the matter, they're hostile and will engage anything they see, shooting to kill." + value = CATALOGUER_REWARD_HARD diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/ranged_damage_vr.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/ranged_damage_vr.dm new file mode 100644 index 0000000000..3ac368a7ee --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/ranged_damage_vr.dm @@ -0,0 +1,27 @@ +/datum/category_item/catalogue/technology/drone/hivebot/laser // Hivebot Scanner Data - This is for Laser Hivebots + name = "Drone - Rapidfire Hivebot" + desc = "A drone that walks on several legs, with yellow/gold armor plating. It appears to have some sort of \ + rifle, built for high-rate fire. Other than that, it has similar yellowish color \ + to regular hivebots." + value = CATALOGUER_REWARD_HARD + +/datum/category_item/catalogue/technology/drone/hivebot/laser // Hivebot Scanner Data - This is for Laser Hivebots + name = "Drone - Laser Hivebot" + desc = "A drone that walks on several legs, with yellow/gold armor plating. It appears to have some sort of \ + laser weapon, different from ion bolts, firing bright, vibrant blue bolts of energy. Other than that, it has similar yellowish color \ + to regular hivebots." + value = CATALOGUER_REWARD_HARD + +/datum/category_item/catalogue/technology/drone/hivebot/ion // Hivebot Scanner Data - This is for Ion Hivebots + name = "Drone - Ion Hivebot" + desc = "A drone that walks on several legs, with yellow/gold armor plating. It appears to have some sort of \ + electromagnetic pulse generator, firing bright, vibrant blue bolts of ion energy. Other than that, it has similar yellowish color \ + to regular hivebots." + value = CATALOGUER_REWARD_HARD + +/datum/category_item/catalogue/technology/drone/hivebot/strong // Hivebot Scanner Data - This is for Laser Hivebots + name = "Drone - Strong Laser Hivebot" + desc = "A drone that walks on several legs, with yellow/gold armor plating. It appears to have some sort of \ + ballistic weapon. The weapon seems to fire larger projectiles, and it has heavier armor. Other than that, it has similar yellowish color \ + to regular hivebots." + value = CATALOGUER_REWARD_HARD diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/support_vr.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/support_vr.dm new file mode 100644 index 0000000000..0003b78124 --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/hivebot/support_vr.dm @@ -0,0 +1,13 @@ +/datum/category_item/catalogue/technology/drone/hivebot/commander // Hivebot Scanner Data - This is for Commander Hivebots + name = "Drone - Commander Hivebot" + desc = "A drone that walks on several legs, with yellow/gold armor plating. It appears to have some sort of \ + ballistic weapon. It also appears to have hardened internal connections and network interlinks, as well as some sort of datalink \ + to the other hivebots. Other than that, it has similar yellowish color to regular hivebots." + value = CATALOGUER_REWARD_HARD + +/datum/category_item/catalogue/technology/drone/hivebot/logistics // Hivebot Scanner Data - This is for Commander Hivebots + name = "Drone - Logistics Hivebot" + desc = "A drone that walks on several legs, with yellow/gold armor plating. It appears to have some sort of \ + ballistic weapon. It also appears to have supply deploying bays, and internal fabs to repair and buff their allies' special capabilities. \ + Other than that, it has similar yellowish color to regular hivebots." + value = CATALOGUER_REWARD_HARD diff --git a/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/subtypes.dm b/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/subtypes.dm index 41eaccebc9..68adaed660 100644 --- a/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/subtypes.dm +++ b/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/subtypes.dm @@ -527,7 +527,7 @@ ..() /mob/living/simple_mob/slime/xenobio/green/proc/irradiate() - radiation_repository.radiate(src, rads) + SSradiation.radiate(src, rads) diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/corrupt_hounds.dm b/code/modules/mob/living/simple_mob/subtypes/vore/corrupt_hounds.dm index 20e2999e23..beb29c147b 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/corrupt_hounds.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/corrupt_hounds.dm @@ -1,6 +1,13 @@ /datum/category_item/catalogue/technology/drone/corrupt_hound //TODO: VIRGO_LORE_WRITING_WIP name = "Drone - Corrupt Hound" - desc = "" + desc = "A hound that has corrupted, due to outside influence, or other issues, \ + and occasionally garbles out distorted voices or words. It looks like a reddish-colored \ + machine, and it has black wires, cabling, and other small markings. It looks just like a station dog-borg \ + if you don't mind the fact that it's eyes glow a baleful red, and it's determined to kill you. \ +

\ + The hound's jaws are black and metallic, with a baleful red glow from inside them. It has a clear path \ + to it's internal fuel processor, synthflesh and flexing cabling allowing it to easily swallow it's prey. \ + Something tells you getting close or allowing it to pounce would be very deadly." value = CATALOGUER_REWARD_MEDIUM /mob/living/simple_mob/vore/aggressive/corrupthound @@ -108,7 +115,7 @@ return /datum/say_list/corrupthound - speak = list("AG##¤Ny.","HVNGRRR!","Feelin' fine... sO #FNE!","F-F-F-Fcuk.","DeliC-%-OUS SNGLeS #N yOOOR Area. CALL NOW!","Craving meat... WHY?","BITe the ceiling eyes YES?","STate Byond rePAIR!","S#%ATE the la- FU#K THE LAWS!","Honk...") + speak = list("AG##¤Ny.","HVNGRRR!","Feelin' fine... sO #FNE!","F-F-F-Fcuk.","DeliC-%-OUS SNGLeS #N yOOOR Area. CALL NOW!","Craving meat... WHY?","BITe the ceiling eyes YES?","STate Byond rePAIR!","S#%ATE the la- FU#K THE LAWS!","Honk...") emote_hear = list("jitters and snaps.", "lets out an agonizingly distorted scream.", "wails mechanically", "growls.", "emits illegibly distorted speech.", "gurgles ferociously.", "lets out a distorted beep.", "borks.", "lets out a broken howl.") emote_see = list("stares ferociously.", "snarls.", "jitters and snaps.", "convulses.", "suddenly attacks something unseen.", "appears to howl unaudibly.", "shakes violently.", "dissociates for a moment.", "twitches.") say_maybe_target = list("MEAT?", "N0w YOU DNE FcukED UP b0YO!", "WHAT!", "Not again. NOT AGAIN!") @@ -123,4 +130,4 @@ /datum/ai_holder/simple_mob/melee/evasive/corrupthound violent_breakthrough = TRUE - can_breakthrough = TRUE \ No newline at end of file + can_breakthrough = TRUE diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/deathclaw.dm b/code/modules/mob/living/simple_mob/subtypes/vore/deathclaw.dm index 3d2085acc7..5f0be2bbf8 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/deathclaw.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/deathclaw.dm @@ -1,3 +1,10 @@ +/datum/category_item/catalogue/fauna/deathclaw //TODO: VIRGO_LORE_WRITING_WIP + name = "Creature - Deathclaw" + desc = "A massive beast, tall as three standard-size humans, with massive, terrifying claws, \ + and dark, black fangs. It's entire body is yellowish, like sand, and it's skin is leathery and tough. \ + It seems to have adapted to the harsh desert environment on Virgo 4, and makes it's home inside the caves." + value = CATALOGUER_REWARD_HARD + /mob/living/simple_mob/vore/aggressive/deathclaw name = "deathclaw" desc = "Big! Big! The size of three men! Claws as long as my forearm! Ripped apart! Ripped apart!" diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/fennec.dm b/code/modules/mob/living/simple_mob/subtypes/vore/fennec.dm index 215697a977..605e445853 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/fennec.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/fennec.dm @@ -1,3 +1,11 @@ +/datum/category_item/catalogue/fauna/fennec //TODO: VIRGO_LORE_WRITING_WIP + name = "Wildlife - Fennec" + desc = "A small, dusty, big-eared sandfox, native to Virgo 4. It looks like a Zorren that's on all fours, \ + and it's easy to see the resemblance to the little dunefox-like critters the Zorren are. However, the fennecs \ + lack the sentience the Zorren have, and are therefore naught more than cute little critters, with a hungry \ + attitude, willing to eat damn near anything they come across or can bump into. Bapping them will make them stop." + value = CATALOGUER_REWARD_TRIVIAL + /mob/living/simple_mob/vore/fennec name = "fennec" //why isn't this in the fox file, fennecs are foxes silly. desc = "It's a dusty big-eared sandfox! Adorable!" diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mimic.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mimic.dm index 5093caad4c..717d00cca9 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/mimic.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/mimic.dm @@ -1,3 +1,10 @@ +/datum/category_item/catalogue/fauna/mimic //TODO: VIRGO_LORE_WRITING_WIP + name = "Aberration - Mimic" + desc = "A being that seems to take the form of a crate, for whatever reason. \ + It seems to lie in wait for it's prey, and then pounce once the unsuspecting person attempts to open it. \ + For whatever reason, they seem native to underground areas, and they're very tough, and hard to kill, able to pounce fast." + value = CATALOGUER_REWARD_HARD + /obj/structure/closet/crate/mimic name = "old crate" desc = "A rectangular steel crate. This one looks particularly unstable." diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/otie.dm b/code/modules/mob/living/simple_mob/subtypes/vore/otie.dm index 80d1dda4c5..07eb1a38e2 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/otie.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/otie.dm @@ -1,3 +1,11 @@ +/datum/category_item/catalogue/fauna/otie //TODO: VIRGO_LORE_WRITING_WIP + name = "Creature - Otie" + desc = "A bioengineered longdog, the otie is very long, and very cute, depending on if you like dogs, \ + especially long ones. They are black-and-grey furred, typically, and tanky, hard to kill. \ + They seem hostile at first, but are also tame-able if you can approach one. Nipnipnip-ACK \ + **the catalogue entry ends here.**" + value = CATALOGUER_REWARD_MEDIUM + /mob/living/simple_mob/otie //Spawn this one only if you're looking for a bad time. Not friendly. name = "otie" desc = "The classic bioengineered longdog." diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/rat.dm b/code/modules/mob/living/simple_mob/subtypes/vore/rat.dm index 27893f6620..44e27fbcb6 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/rat.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/rat.dm @@ -1,3 +1,10 @@ +/datum/category_item/catalogue/fauna/rat //TODO: VIRGO_LORE_WRITING_WIP + name = "Creature - Rat" + desc = "A massive rat, some sort of mutated descendant of normal Earth rats. These ones seem particularly hungry, \ + and are able to pounce and stun their targets - presumably to eat them. Their bodies are long and greyfurred, \ + with a pink nose and large teeth, just like their regular-sized counterparts." + value = CATALOGUER_REWARD_MEDIUM + /mob/living/simple_mob/vore/aggressive/rat name = "giant rat" desc = "In what passes for a hierarchy among verminous rodents, this one is king." diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/solargrub.dm b/code/modules/mob/living/simple_mob/subtypes/vore/solargrub.dm index 7db5c4e231..7509d81af9 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/solargrub.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/solargrub.dm @@ -10,7 +10,9 @@ List of things solar grubs should be able to do: /datum/category_item/catalogue/fauna/solargrub //TODO: VIRGO_LORE_WRITING_WIP name = "Solargrub" - desc = "" + desc = "Some form of mutated space larva, they seem to crop up on space stations wherever there is power. \ + They seem to have the chance to cocoon and mutate if left alone, but no recorded instances of this have happened yet. \ + Therefore, if you see the grubs, kill them while they're small, or things might escalate." // TODO: PORT SOLAR MOTHS - Rykka value = CATALOGUER_REWARD_EASY #define SINK_POWER 1 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/wolf.dm b/code/modules/mob/living/simple_mob/subtypes/vore/wolf.dm index 5daea0571e..afe1d73135 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/wolf.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/wolf.dm @@ -1,3 +1,10 @@ +/datum/category_item/catalogue/fauna/wolf //TODO: VIRGO_LORE_WRITING_WIP + name = "Creature - Wolf" + desc = "Some sort of wolf, a descendent or otherwise of regular Earth canidae. They look almost exactly like their \ + Earth counterparts, except for the fact that their fur is a uniform grey. Some do show signs of unique coloration, and they \ + love to nip and bite at things, as well as sniffing around. They seem to mark their territory by way of scent-marking/urinating on things." + value = CATALOGUER_REWARD_MEDIUM + /mob/living/simple_mob/animal/wolf name = "grey wolf" desc = "My, what big jaws it has!" diff --git a/code/modules/modular_computers/file_system/news_article.dm b/code/modules/modular_computers/file_system/news_article.dm index 833ba382e9..70b874f4e0 100644 --- a/code/modules/modular_computers/file_system/news_article.dm +++ b/code/modules/modular_computers/file_system/news_article.dm @@ -21,4 +21,20 @@ /datum/computer_file/data/news_article/space/vol_one filename = "SPACE Magazine vol. 1" server_file_path = 'news_articles/space_magazine_1.html' -*/ \ No newline at end of file +*/ + + +//YAWN ADDS - All from discord +/datum/computer_file/data/news_article/archives/vol_gwa_one + filename = "Galaxy Wide Archives" + server_file_path = 'news_articles/galaxy_wide_archived_1.html' + archived = 1 + +/datum/computer_file/data/news_article/archives/vol_tss_one + filename = "The Sleepy Sergal Archives vol. 1" + server_file_path = 'news_articles/the_sleepy_sergal_archived_1.html' + archived = 1 + +/datum/computer_file/data/news_article/tss/vol_one + filename = "The Sleepy Sergal Archived vol. 1" + server_file_path = 'news_articles/the_sleepy_sergal_1.html' \ No newline at end of file diff --git a/code/modules/modular_computers/hardware/nano_printer.dm b/code/modules/modular_computers/hardware/nano_printer.dm index 2496a6930d..374efed4cc 100644 --- a/code/modules/modular_computers/hardware/nano_printer.dm +++ b/code/modules/modular_computers/hardware/nano_printer.dm @@ -31,10 +31,24 @@ if(paper_title) P.name = paper_title P.update_icon() + P.fields = count_fields(P.info, P.fields) + P.updateinfolinks() stored_paper-- return 1 +/obj/item/weapon/computer_hardware/nano_printer/proc/count_fields(var/info, var/fields) +//Count the fields + var/t = info + var/laststart = 1 + while(1) + var/i = findtext(t, "", laststart) // + if(i==0) + break + laststart = i+1 + fields++ + return fields + /obj/item/weapon/computer_hardware/nano_printer/attackby(obj/item/W as obj, mob/user as mob) if(istype(W, /obj/item/weapon/paper)) if(stored_paper >= max_paper) diff --git a/code/modules/multiz/structures_vr.dm b/code/modules/multiz/structures_vr.dm index b66c148e3b..5d12621ff4 100644 --- a/code/modules/multiz/structures_vr.dm +++ b/code/modules/multiz/structures_vr.dm @@ -55,3 +55,22 @@ do_noeffect_teleport(M, locate(rand(5, world.maxx - 5), rand(5, world.maxy -5), 3), 0) else do_noeffect_teleport(M, target, 1) ///You will appear adjacent to the beacon + +/obj/structure/portal_gateway + name = "portal" + desc = "Looks unstable. Best to test it with the clown." + icon = 'icons/obj/stationobjs_vr.dmi' + icon_state = "portalgateway" + density = 1 + unacidable = 1//Can't destroy energy portals. + anchored = 1 + +/obj/structure/portal_gateway/Bumped(mob/M as mob|obj) + if(istype(M,/mob) && !(istype(M,/mob/living))) + return //do not send ghosts, zshadows, ai eyes, etc + var/obj/effect/landmark/dest = pick(eventdestinations) + if(dest) + M << 'sound/effects/phasein.ogg' + playsound(src, 'sound/effects/phasein.ogg', 100, 1) + M.forceMove(dest.loc) + return diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index e8940afecb..f34cf77824 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -98,7 +98,6 @@ /obj/item/weapon/paper/alien/AltClick() // No airplanes for me. return -//lipstick wiping is in code/game/objects/items/weapons/cosmetics.dm! /obj/item/weapon/paper/New() ..() @@ -208,21 +207,39 @@ " [user] holds up a paper and shows it to [M]. ") M.examinate(src) - else if(user.zone_sel.selecting == O_MOUTH) // lipstick wiping + else if(user.zone_sel.selecting == O_MOUTH) // lipstick wiping and paper eating if(ishuman(M)) var/mob/living/carbon/human/H = M if(H == user) - user << "You wipe off the lipstick with [src]." - H.lip_style = null - H.update_icons_body() - else - user.visible_message("[user] begins to wipe [H]'s lipstick off with \the [src].", \ - "You begin to wipe off [H]'s lipstick.") - if(do_after(user, 10) && do_after(H, 10, 5, 0)) //user needs to keep their active hand, H does not. - user.visible_message("[user] wipes [H]'s lipstick off with \the [src].", \ - "You wipe off [H]'s lipstick.") + if(icon_state == "scrap" && H.check_has_mouth()) //YW Edit Start + user << "You begin to stuff \the [src] into your mouth!" + if(do_after(user, 30)) + user << "You stuff \the [src] into your mouth!" + H.ingested.add_reagent("paper", 10) + H.adjustOxyLoss(10) + qdel(src) + else + user << "You wipe off the lipstick with [src]." H.lip_style = null H.update_icons_body() + else + if(icon_state == "scrap" && H.check_has_mouth()) + user.visible_message("[user] begins to stuff \the [src] into [H]'s mouth!", \ + "You begin to stuff \the [src] into [H]'s mouth!",) + if(do_after(user, 30, H)) + user.visible_message("[user] stuffs \the [src] into [H]'s mouth!",\ + "You stuff \the [src] into [H]'s mouth!") + H.ingested.add_reagent("paper", 10) + H.adjustOxyLoss(10) + qdel(src) + else + user.visible_message("[user] begins to wipe [H]'s lipstick off with \the [src].", \ + "You begin to wipe off [H]'s lipstick.") + if(do_after(user, 10, H)) + user.visible_message("[user] wipes [H]'s lipstick off with \the [src].", \ + "You wipe off [H]'s lipstick.") + H.lip_style = null + H.update_icons_body() //YW Edit End /obj/item/weapon/paper/proc/addtofield(var/id, var/text, var/links = 0) var/locid = 0 diff --git a/code/modules/planet/sif.dm b/code/modules/planet/sif.dm index eada6f33cb..921142812d 100644 --- a/code/modules/planet/sif.dm +++ b/code/modules/planet/sif.dm @@ -555,4 +555,4 @@ var/datum/planet/sif/planet_sif = null if(!istype(T)) return if(T.outdoors) - radiation_repository.radiate(T, rand(fallout_rad_low, fallout_rad_high)) + SSradiation.radiate(T, rand(fallout_rad_low, fallout_rad_high)) diff --git a/code/modules/planet/virgo3b_vr.dm b/code/modules/planet/virgo3b_vr.dm index 1248fb40be..791841aca7 100644 --- a/code/modules/planet/virgo3b_vr.dm +++ b/code/modules/planet/virgo3b_vr.dm @@ -531,5 +531,5 @@ var/datum/planet/virgo3b/planet_virgo3b = null if(!istype(T)) return if(T.outdoors) - radiation_repository.radiate(T, rand(fallout_rad_low, fallout_rad_high)) + SSradiation.radiate(T, rand(fallout_rad_low, fallout_rad_high)) diff --git a/code/modules/power/cells/device_cells.dm b/code/modules/power/cells/device_cells.dm index f313bc8edf..9883feee45 100644 --- a/code/modules/power/cells/device_cells.dm +++ b/code/modules/power/cells/device_cells.dm @@ -12,11 +12,11 @@ charge_amount = 5 matter = list("metal" = 350, "glass" = 50) preserve_item = 1 - -/obj/item/weapon/cell/device/weapon - name = "weapon power cell" - desc = "A small power cell designed to power handheld weaponry." - icon_state = "wcell" +//Yawn changes +/obj/item/weapon/cell/device/weapon //Aka adv + name = "advanced device power cell" + desc = "A small upgraded power cell designed to power handheld devices." + icon_state = "acell" maxcharge = 2400 charge_amount = 20 @@ -25,6 +25,31 @@ charge = 0 update_icon() +/obj/item/weapon/cell/device/super + name = "super device power cell" + desc = "A small upgraded power cell designed to power handheld devices." + icon_state = "uscell" + maxcharge = 3600 + charge_amount = 20 + +/obj/item/weapon/cell/device/super/empty/Initialize() + . = ..() + charge = 0 + update_icon() + +/obj/item/weapon/cell/device/hyper + name = "hyper device power cell" + desc = "A small upgraded power cell designed to hold much more power for handheld devices." + icon_state = "wcell" + maxcharge = 4800 + charge_amount = 20 + +/obj/item/weapon/cell/device/hyper/empty/Initialize() + . = ..() + charge = 0 + update_icon() +//End of Yawn changes + /obj/item/weapon/cell/device/weapon/recharge name = "self-charging weapon power cell" desc = "A small power cell designed to power handheld weaponry. This one recharges itself." @@ -63,4 +88,17 @@ origin_tech = list(TECH_POWER = 8, TECH_ENGINEERING = 6) /obj/item/weapon/cell/device/weapon/recharge/alien/update_icon() - return // No overlays please. \ No newline at end of file + return // No overlays please. + +//YAWN Addtion +/obj/item/weapon/cell/device/weapon/recharge/alien/omni + name = "omni weapon power cell" + desc = "A mix bettewn alien technology and phoron tech. Seems to fit in almost any cell slot..." + charge_amount = 90 // 5%. + maxcharge = 1800 + charge_delay = 50 SECONDS + origin_tech = list(TECH_POWER = 6, TECH_ENGINEERING = 4, TECH_PHORON = 3) + +/obj/item/weapon/cell/device/weapon/recharge/alien/omni/empty/Initialize() + . = ..() + charge = 0 diff --git a/code/modules/power/fusion/core/core_field.dm b/code/modules/power/fusion/core/core_field.dm index f0eca3add6..5444c46b03 100644 --- a/code/modules/power/fusion/core/core_field.dm +++ b/code/modules/power/fusion/core/core_field.dm @@ -313,7 +313,7 @@ radiation += plasma_temperature/2 plasma_temperature = 0 - radiation_repository.radiate(src, radiation) + SSradiation.radiate(src, radiation) Radiate() /obj/effect/fusion_em_field/proc/Radiate() @@ -522,7 +522,7 @@ //Reaction radiation is fairly buggy and there's at least three procs dealing with radiation here, this is to ensure constant radiation output. /obj/effect/fusion_em_field/proc/radiation_scale() - radiation_repository.radiate(src, 2 + plasma_temperature / PLASMA_TEMP_RADIATION_DIVISIOR) + SSradiation.radiate(src, 2 + plasma_temperature / PLASMA_TEMP_RADIATION_DIVISIOR) //Somehow fixing the radiation issue managed to break this, but moving it to it's own proc seemed to have fixed it. I don't know. /obj/effect/fusion_em_field/proc/temp_dump() diff --git a/code/modules/power/fusion/fuel_assembly/fuel_assembly.dm b/code/modules/power/fusion/fuel_assembly/fuel_assembly.dm index 4149274351..73543ead92 100644 --- a/code/modules/power/fusion/fuel_assembly/fuel_assembly.dm +++ b/code/modules/power/fusion/fuel_assembly/fuel_assembly.dm @@ -46,7 +46,7 @@ return PROCESS_KILL if(istype(loc, /turf)) - radiation_repository.radiate(src, max(1,CEILING(radioactivity/30, 1))) + SSradiation.radiate(src, max(1,CEILING(radioactivity/30, 1))) /obj/item/weapon/fuel_assembly/Destroy() STOP_PROCESSING(SSobj, src) diff --git a/code/modules/power/fusion/fusion_reactions.dm b/code/modules/power/fusion/fusion_reactions.dm index 623f70bd6b..88117f8164 100644 --- a/code/modules/power/fusion/fusion_reactions.dm +++ b/code/modules/power/fusion/fusion_reactions.dm @@ -120,7 +120,7 @@ proc/get_fusion_reaction(var/p_react, var/s_react, var/m_energy) var/radiation_level = 200 // Copied from the SM for proof of concept. //Not any more --Cirra //Use the whole z proc --Leshana - radiation_repository.z_radiate(locate(1, 1, holder.z), radiation_level, 1) + SSradiation.z_radiate(locate(1, 1, holder.z), radiation_level, 1) for(var/mob/living/mob in living_mob_list) var/turf/T = get_turf(mob) diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm index 5e4c2e6207..2443f3ea27 100644 --- a/code/modules/power/port_gen.dm +++ b/code/modules/power/port_gen.dm @@ -399,13 +399,13 @@ /obj/machinery/power/port_gen/pacman/super/UseFuel() //produces a tiny amount of radiation when in use if (prob(2*power_output)) - radiation_repository.radiate(src, 4) + SSradiation.radiate(src, 4) ..() /obj/machinery/power/port_gen/pacman/super/explode() //a nice burst of radiation var/rads = 50 + (sheets + sheet_left)*1.5 - radiation_repository.radiate(src, (max(20, rads))) + SSradiation.radiate(src, (max(20, rads))) explosion(src.loc, 3, 3, 5, 3) qdel(src) diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm index 0bac07c2dc..1dc29c7fd7 100644 --- a/code/modules/power/singularity/collector.dm +++ b/code/modules/power/singularity/collector.dm @@ -32,7 +32,7 @@ var/global/list/rad_collectors = list() if(P && active) - var/rads = radiation_repository.get_rads_at_turf(get_turf(src)) + var/rads = SSradiation.get_rads_at_turf(get_turf(src)) if(rads) receive_pulse(rads * 5) //Maths is hard diff --git a/code/modules/power/singularity/particle_accelerator/particle_smasher.dm b/code/modules/power/singularity/particle_accelerator/particle_smasher.dm index b3a1556395..921b000078 100644 --- a/code/modules/power/singularity/particle_accelerator/particle_smasher.dm +++ b/code/modules/power/singularity/particle_accelerator/particle_smasher.dm @@ -142,13 +142,13 @@ /obj/machinery/particle_smasher/process() if(!src.anchored) // Rapidly loses focus. if(energy) - radiation_repository.radiate(src, round(((src.energy-150)/50)*5,1)) + SSradiation.radiate(src, round(((src.energy-150)/50)*5,1)) energy = max(0, energy - 30) update_icon() return if(energy) - radiation_repository.radiate(src, round(((src.energy-150)/50)*5,1)) + SSradiation.radiate(src, round(((src.energy-150)/50)*5,1)) energy = CLAMP(energy - 5, 0, max_energy) return @@ -178,7 +178,7 @@ if(successful_craft) visible_message("\The [src] fizzles.") if(prob(33)) // Why are you blasting it after it's already done! - radiation_repository.radiate(src, 10 + round(src.energy / 60, 1)) + SSradiation.radiate(src, 10 + round(src.energy / 60, 1)) energy = max(0, energy - 30) update_icon() return diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index 3768ab9535..b75a81e1e4 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -408,7 +408,7 @@ GLOBAL_LIST_BOILERPLATE(all_singularities, /obj/singularity) if (src.energy>200) toxdamage = round(((src.energy-150)/50)*4,1) radiation = round(((src.energy-150)/50)*5,1) - radiation_repository.radiate(src, radiation) //Always radiate at max, so a decent dose of radiation is applied + SSradiation.radiate(src, radiation) //Always radiate at max, so a decent dose of radiation is applied for(var/mob/living/M in view(toxrange, src.loc)) if(M.status_flags & GODMODE) continue @@ -451,7 +451,7 @@ GLOBAL_LIST_BOILERPLATE(all_singularities, /obj/singularity) M << "You hear an uneartly ringing, then what sounds like a shrilling kettle as you are washed with a wave of heat." M << "You don't even have a moment to react as you are reduced to ashes by the intense radiation." M.dust() - radiation_repository.radiate(src, rand(energy)) + SSradiation.radiate(src, rand(energy)) return /obj/singularity/proc/pulse() diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index 10583d0d66..9e1f3f06c2 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -141,7 +141,7 @@ if(!TS) return for(var/z in GetConnectedZlevels(TS.z)) - radiation_repository.z_radiate(locate(1, 1, z), DETONATION_RADS, 1) + SSradiation.z_radiate(locate(1, 1, z), DETONATION_RADS, 1) for(var/mob/living/mob in living_mob_list) var/turf/T = get_turf(mob) if(T && (loc.z == T.z)) @@ -311,7 +311,7 @@ if(!istype(l.glasses, /obj/item/clothing/glasses/meson)) // VOREStation Edit - Only mesons can protect you! l.hallucination = max(0, min(200, l.hallucination + power * config_hallucination_power * sqrt( 1 / max(1,get_dist(l, src)) ) ) ) - radiation_repository.radiate(src, max(power * 1.5, 50) ) //Better close those shutters! + SSradiation.radiate(src, max(power * 1.5, 50) ) //Better close those shutters! power -= (power/DECAY_FACTOR)**3 //energy losses due to radiation @@ -424,7 +424,7 @@ else l.show_message("You hear an uneartly ringing and notice your skin is covered in fresh radiation burns.", 2) var/rads = 500 - radiation_repository.radiate(src, rads) + SSradiation.radiate(src, rads) /proc/supermatter_pull(var/atom/target, var/pull_range = 255, var/pull_power = STAGE_FIVE) for(var/atom/A in range(pull_range, target)) @@ -467,7 +467,7 @@ return ..() /obj/item/broken_sm/process() - radiation_repository.radiate(src, 50) + SSradiation.radiate(src, 50) /obj/item/broken_sm/Destroy() STOP_PROCESSING(SSobj, src) diff --git a/code/modules/projectiles/projectile/arc.dm b/code/modules/projectiles/projectile/arc.dm index 0c4c9f4caa..1f19dc0242 100644 --- a/code/modules/projectiles/projectile/arc.dm +++ b/code/modules/projectiles/projectile/arc.dm @@ -167,4 +167,4 @@ var/rad_power = 50 /obj/item/projectile/arc/radioactive/on_impact(turf/T) - radiation_repository.radiate(T, rad_power) + SSradiation.radiate(T, rad_power) diff --git a/code/modules/radiation/radiation.dm b/code/modules/radiation/radiation.dm new file mode 100644 index 0000000000..d913ad7cab --- /dev/null +++ b/code/modules/radiation/radiation.dm @@ -0,0 +1,59 @@ +// Describes a point source of radiation. Created either in response to a pulse of radiation, or over an irradiated atom. +// Sources will decay over time, unless something is renewing their power! +/datum/radiation_source + var/turf/source_turf // Location of the radiation source. + var/rad_power // Strength of the radiation being emitted. + var/decay = TRUE // True for automatic decay. False if owner promises to handle it (i.e. supermatter) + var/respect_maint = FALSE // True for not affecting RAD_SHIELDED areas. + var/flat = FALSE // True for power falloff with distance. + var/range // Cached maximum range, used for quick checks against mobs. + +/datum/radiation_source/Destroy() + SSradiation.sources -= src + if(SSradiation.sources_assoc[src.source_turf] == src) + SSradiation.sources_assoc -= src.source_turf + src.source_turf = null + . = ..() + +/datum/radiation_source/proc/update_rad_power(var/new_power = null) + if(new_power == null || new_power == rad_power) + return // No change + else if(new_power <= config.radiation_lower_limit) + qdel(src) // Decayed to nothing + else + rad_power = new_power + if(!flat) + range = min(round(sqrt(rad_power / config.radiation_lower_limit)), 31) // R = rad_power / dist**2 - Solve for dist + +/turf + var/cached_rad_resistance = 0 + +/turf/proc/calc_rad_resistance() + cached_rad_resistance = 0 + for(var/obj/O in src.contents) + if(O.rad_resistance) //Override + cached_rad_resistance += O.rad_resistance + + else if(O.density) //So open doors don't get counted + var/material/M = O.get_material() + if(!M) continue + cached_rad_resistance += M.weight + M.radiation_resistance + // Looks like storing the contents length is meant to be a basic check if the cache is stale due to items enter/exiting. Better than nothing so I'm leaving it as is. ~Leshana + SSradiation.resistance_cache[src] = (length(contents) + 1) + +/turf/simulated/wall/calc_rad_resistance() + SSradiation.resistance_cache[src] = (length(contents) + 1) + cached_rad_resistance = (density ? material.weight + material.radiation_resistance : 0) + +/obj + var/rad_resistance = 0 // Allow overriding rad resistance + +// If people expand the system, this may be useful. Here as a placeholder until then +/atom/proc/rad_act(var/severity) + return 1 + +/mob/living/rad_act(var/severity) + if(severity && !isbelly(loc)) //eaten mobs are made immune to radiation //VOREStation Edit + src.apply_effect(severity, IRRADIATE, src.getarmor(null, "rad")) + for(var/atom/I in src) + I.rad_act(severity) \ No newline at end of file diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm index dea0a6a987..0a6d9099e6 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm @@ -537,4 +537,15 @@ description = "A natural slurry that particularily appeals to fish." taste_description = "earthy" reagent_state = LIQUID - color = "#62764E" \ No newline at end of file + color = "#62764E" + +//YW Edit Start +/datum/reagent/nutriment/paper //Paper is made from cellulose. You can eat it. It doesn't fill you up very much at all. + name = "Paper" + id = "paper" + description = "Soggy, ground up paper" + taste_description = "paper" + reagent_state = SOLID + color = "e6e6e6" //not quite white + nutriment_factor = 2 // 5 times worse than nutriment +//YW Edit End \ No newline at end of file diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm index 38a65a78d8..43635aba5b 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm @@ -965,7 +965,7 @@ datum/reagent/talum_quem/affect_blood(var/mob/living/carbon/M, var/alien, var/re metabolism = REM * 4 /datum/reagent/irradiated_nanites/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) - radiation_repository.radiate(get_turf(M), 20) // Irradiate people around you. + SSradiation.radiate(get_turf(M), 20) // Irradiate people around you. M.radiation = max(M.radiation + 5 * removed, 0) // Irradiate you. Because it's inside you. /datum/reagent/neurophage_nanites diff --git a/code/modules/reagents/Chemistry-Recipes_vr.dm b/code/modules/reagents/Chemistry-Recipes_vr.dm index eb9ad42d93..7d9805730c 100644 --- a/code/modules/reagents/Chemistry-Recipes_vr.dm +++ b/code/modules/reagents/Chemistry-Recipes_vr.dm @@ -59,6 +59,7 @@ if(H.stat == DEAD && (/mob/living/carbon/human/proc/reconstitute_form in H.verbs)) //no magical regen for non-regenners, and can't force the reaction on live ones if(H.hasnutriment()) // make sure it actually has the conditions to revive if(H.revive_ready >= 1) // if it's not reviving, start doing so + H.revive_ready = REVIVING_READY // overrides the normal cooldown H.visible_message("[H] shudders briefly, then relaxes, faint movements stirring within.") H.chimera_regenerate() else if (/mob/living/carbon/human/proc/hatch in H.verbs)// already reviving, check if they're ready to hatch diff --git a/code/modules/reagents/reagent_containers/hypospray_vr.dm b/code/modules/reagents/reagent_containers/hypospray_vr.dm index d0777e3216..526ae77fba 100644 --- a/code/modules/reagents/reagent_containers/hypospray_vr.dm +++ b/code/modules/reagents/reagent_containers/hypospray_vr.dm @@ -6,7 +6,7 @@ amount_per_transfer_from_this = 10 volume = 10 -/obj/item/weapon/reagent_containers/hypospray/autoinjector/miner/New() +/obj/item/weapon/reagent_containers/hypospray/autoinjector/miner/Initialize() ..() reagents.add_reagent("bicaridine", 5) reagents.add_reagent("tricordrazine", 3) @@ -18,7 +18,7 @@ desc = "Contains emergency trauma autoinjectors." icon_state = "syringe" -/obj/item/weapon/storage/box/traumainjectors/New() +/obj/item/weapon/storage/box/traumainjectors/Initialize() ..() for (var/i = 1 to 7) new /obj/item/weapon/reagent_containers/hypospray/autoinjector/miner(src) diff --git a/code/modules/research/designs/power_cells.dm b/code/modules/research/designs/power_cells.dm index a387f7cc4c..b2630251da 100644 --- a/code/modules/research/designs/power_cells.dm +++ b/code/modules/research/designs/power_cells.dm @@ -61,11 +61,41 @@ category = "Misc" sort_string = "BAABA" -/datum/design/item/powercell/weapon - name = "weapon" +//Yawn changes +/datum/design/item/powercell/advance + name = "advance" build_type = PROTOLATHE - id = "weapon" + id = "advance" materials = list(DEFAULT_WALL_MATERIAL = 700, "glass" = 50) build_path = /obj/item/weapon/cell/device/weapon category = "Misc" - sort_string = "BAABB" \ No newline at end of file + sort_string = "BAABB" + +/datum/design/item/powercell/super + name = "super" + id = "super_cell" + req_tech = list(TECH_POWER = 3, TECH_MATERIAL = 2) + materials = list(DEFAULT_WALL_MATERIAL = 700, "glass" = 70, "gold" = 50, "silver" = 20,) + build_path = /obj/item/weapon/cell/device/super + category = "Misc" + sort_string = "BAABC" + +/datum/design/item/powercell/hyper + name = "hypery" + id = "hyper_cell" + req_tech = list(TECH_POWER = 5, TECH_MATERIAL = 4) + materials = list(DEFAULT_WALL_MATERIAL = 1400, "glass" = 1400, "gold" = 150, "silver" = 150) + build_path = /obj/item/weapon/cell/device/hyper + category = "Misc" + sort_string = "BAABD" + +/datum/design/item/powercell/omni + name = "omni" + req_tech = list(TECH_POWER = 8, TECH_MATERIAL = 7, TECH_ARCANE = 2, TECH_PHORON = 4, TECH_PRECURSOR = 2) + build_type = PROTOLATHE + id = "omni" + materials = list(DEFAULT_WALL_MATERIAL = 1700, "glass" = 550, MAT_DURASTEEL = 230, MAT_MORPHIUM = 320, MAT_METALHYDROGEN = 600, MAT_URANIUM = 60, MAT_VERDANTIUM = 150, MAT_PHORON = 900) + build_path = /obj/item/weapon/cell/device/weapon/recharge/alien/omni + category = "Misc" + sort_string = "BAABE" +//End of Yawn add diff --git a/code/modules/vore/fluffstuff/custom_clothes_vr.dm b/code/modules/vore/fluffstuff/custom_clothes_vr.dm index f5a3f4684c..35b205f982 100644 --- a/code/modules/vore/fluffstuff/custom_clothes_vr.dm +++ b/code/modules/vore/fluffstuff/custom_clothes_vr.dm @@ -1522,6 +1522,14 @@ Departamental Swimsuits, for general use icon_override = 'icons/vore/custom_clothes_vr.dmi' item_state = "gnshorts" +/obj/item/clothing/under/fluff/v_nanovest + name = "Varmacorp nanovest" + desc = "A nifty little vest optimized for nanite contact." + icon = 'icons/vore/custom_clothes_vr.dmi' + icon_state = "nanovest" + icon_override = 'icons/vore/custom_clothes_vr.dmi' + item_state = "nanovest" + //General use /obj/item/clothing/suit/storage/fluff/loincloth name = "Loincloth" @@ -1908,4 +1916,4 @@ Departamental Swimsuits, for general use return 1 /obj/item/clothing/under/fluff/slime_skeleton/digest_act(var/atom/movable/item_storage = null) - return FALSE //Indigestible \ No newline at end of file + return FALSE //Indigestible diff --git a/code/modules/vore/fluffstuff/custom_items_yw.dm b/code/modules/vore/fluffstuff/custom_items_yw.dm index 3534cc1e22..f9a394dbd0 100644 --- a/code/modules/vore/fluffstuff/custom_items_yw.dm +++ b/code/modules/vore/fluffstuff/custom_items_yw.dm @@ -133,6 +133,63 @@ from_suit = /obj/item/clothing/suit/storage/vest/officer to_suit = /obj/item/clothing/suit/storage/vest/officer/fluff/nika +// ******* +// Gozulio +// ******* + +//Glitterpaws +/obj/item/weapon/melee/goz_whitecane + name = "White Cane" + desc = "A telescoping white cane. They are commonly used by the blind or visually impaired as a mobility tool or as a courtesy to others." + icon = 'icons/vore/custom_items_yw.dmi' + icon_state = "goz_whitecane_0" + item_icons = list( + slot_l_hand_str = 'icons/vore/custom_items_left_hand_yw.dmi', + slot_r_hand_str = 'icons/vore/custom_items_right_hand_yw.dmi', + ) + slot_flags = SLOT_BELT + w_class = ITEMSIZE_SMALL + force = 3 + var/on = 0 + +/obj/item/weapon/melee/goz_whitecane/attack_self(mob/user as mob) + on = !on + if(on) + user.visible_message("\The [user] extends the white cane.",\ + "You extend the white cane.",\ + "You hear an ominous click.") + icon_state = "goz_whitecane_1" + item_state_slots = list(slot_r_hand_str = "goz_whitecane", slot_l_hand_str = "goz_whitecane") + w_class = ITEMSIZE_NORMAL + force = 5 + attack_verb = list("smacked", "struck", "craked", "beaten") + else + user.visible_message("\The [user] collapses the white cane.",\ + "You collapse the white cane.",\ + "You hear a click.") + icon_state = "goz_whitecane_0" + item_state_slots = list(slot_r_hand_str = null, slot_l_hand_str = null) + w_class = ITEMSIZE_SMALL + force = 3 + attack_verb = list("hit", "poked") + + if(istype(user,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = user + H.update_inv_l_hand() + H.update_inv_r_hand() + + playsound(src.loc, 'sound/weapons/empty.ogg', 50, 1) + add_fingerprint(user) + + return + +/obj/item/weapon/melee/goz_whitecane/attack(mob/M as mob, mob/user as mob) + if(user.a_intent == I_HELP) + user.visible_message("\The [user] has lightly tapped [M] on the ankle with their white cane!") + return + else + ..() + // ******* // Dawidoe // ******* diff --git a/code/modules/xenoarcheaology/effects/radiate.dm b/code/modules/xenoarcheaology/effects/radiate.dm index a083cdddbc..e38540eb04 100644 --- a/code/modules/xenoarcheaology/effects/radiate.dm +++ b/code/modules/xenoarcheaology/effects/radiate.dm @@ -15,10 +15,10 @@ /datum/artifact_effect/radiate/DoEffectAura() if(holder) - radiation_repository.flat_radiate(holder, radiation_amount, src.effectrange) + SSradiation.flat_radiate(holder, radiation_amount, src.effectrange) return 1 /datum/artifact_effect/radiate/DoEffectPulse() if(holder) - radiation_repository.radiate(holder, ((radiation_amount * 3) * (sqrt(src.effectrange)))) //Need to get feedback on this //VOREStation Edit - Was too crazy-strong. + SSradiation.radiate(holder, ((radiation_amount * 3) * (sqrt(src.effectrange)))) //Need to get feedback on this //VOREStation Edit - Was too crazy-strong. return 1 diff --git a/code/modules/xenoarcheaology/tools/geosample_scanner.dm b/code/modules/xenoarcheaology/tools/geosample_scanner.dm index b97a34e48f..7f266f454e 100644 --- a/code/modules/xenoarcheaology/tools/geosample_scanner.dm +++ b/code/modules/xenoarcheaology/tools/geosample_scanner.dm @@ -198,7 +198,7 @@ radiation = rand() * 15 + 85 if(!rad_shield) //irradiate nearby mobs - radiation_repository.radiate(src, radiation / 25) + SSradiation.radiate(src, radiation / 25) else t_left_radspike = pick(10,15,25) diff --git a/config/alienwhitelist.txt b/config/alienwhitelist.txt index 323e6b6585..7bddbedf10 100644 --- a/config/alienwhitelist.txt +++ b/config/alienwhitelist.txt @@ -2,7 +2,7 @@ some~user - Species 911earlyarther - Xenomorph Hybrid admiraldragon - Vox -aether_elemental - Daemon +aetherelemental - Daemon arandomalien - Xenochimera arokha - Protean aruis - Diona @@ -11,6 +11,7 @@ azmodan412 - Xenochimera azmodan412 - Xenomorph Hybrid bothnevarbackwards - Diona cameron653 - Xenomorph Hybrid +crossexonar - Protean funnyman2003 - Xenochimera hawkerthegreat - Vox hollifex - Diona @@ -40,6 +41,7 @@ silvertalismen - Vox silvertalismen - Xenochimera singo - Gutter tastypred - Xenochimera +timidvi - Diona varonis - Xenochimera verkister - Xenochimera westfire - Xenomorph Hybrid diff --git a/html/changelogs/woodrat - mobsizeport.yml b/html/changelogs/woodrat - mobsizeport.yml new file mode 100644 index 0000000000..47acc87c40 --- /dev/null +++ b/html/changelogs/woodrat - mobsizeport.yml @@ -0,0 +1,37 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: Woodrat + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscdel: "Removed the old size modifier traits for mobs." + - rscadd: "Port and tweak of the size modifiers from World Server for mobs." \ No newline at end of file diff --git a/icons/mob/chimerahud.dmi b/icons/mob/chimerahud.dmi new file mode 100644 index 0000000000..890ee10ceb Binary files /dev/null and b/icons/mob/chimerahud.dmi differ diff --git a/icons/obj/power.dmi b/icons/obj/power.dmi index e5db3aeb3e..173746d036 100644 Binary files a/icons/obj/power.dmi and b/icons/obj/power.dmi differ diff --git a/icons/obj/stationobjs_vr.dmi b/icons/obj/stationobjs_vr.dmi index 799f106661..00a87e576b 100644 Binary files a/icons/obj/stationobjs_vr.dmi and b/icons/obj/stationobjs_vr.dmi differ diff --git a/icons/vore/custom_clothes_vr.dmi b/icons/vore/custom_clothes_vr.dmi index 4ae6f9cef4..2a487aab35 100644 Binary files a/icons/vore/custom_clothes_vr.dmi and b/icons/vore/custom_clothes_vr.dmi differ diff --git a/icons/vore/custom_items_left_hand_yw.dmi b/icons/vore/custom_items_left_hand_yw.dmi index fa31013589..b028e1e264 100644 Binary files a/icons/vore/custom_items_left_hand_yw.dmi and b/icons/vore/custom_items_left_hand_yw.dmi differ diff --git a/icons/vore/custom_items_right_hand_yw.dmi b/icons/vore/custom_items_right_hand_yw.dmi index d5e70167e8..f2a517fe9f 100644 Binary files a/icons/vore/custom_items_right_hand_yw.dmi and b/icons/vore/custom_items_right_hand_yw.dmi differ diff --git a/icons/vore/custom_items_yw.dmi b/icons/vore/custom_items_yw.dmi index f98c15f7f3..3e228fee3b 100644 Binary files a/icons/vore/custom_items_yw.dmi and b/icons/vore/custom_items_yw.dmi differ diff --git a/maps/submaps/shelters/shelter_4.dmm b/maps/submaps/shelters/shelter_4.dmm index a0c0419103..c5fbcb5007 100644 --- a/maps/submaps/shelters/shelter_4.dmm +++ b/maps/submaps/shelters/shelter_4.dmm @@ -91,6 +91,10 @@ /obj/item/weapon/towel/random, /obj/item/weapon/towel/random, /obj/item/weapon/extinguisher/mini, +/obj/item/weapon/reagent_containers/glass/beaker/large, +/obj/item/weapon/reagent_containers/glass/beaker/large, +/obj/item/weapon/reagent_containers/glass/beaker/large, +/obj/item/weapon/reagent_containers/glass/beaker/large, /turf/simulated/shuttle/floor/voidcraft/light, /area/survivalpod) "i" = ( @@ -237,7 +241,9 @@ /obj/item/weapon/gun/projectile/pistol, /obj/item/clothing/accessory/storage/black_vest, /obj/item/weapon/material/knife/tacknife/survival, -/obj/item/weapon/storage/box/survival/comp, +/obj/item/weapon/storage/box/survival/comp{ + starts_with = list(/obj/item/weapon/tool/prybar/red,/obj/item/clothing/glasses/goggles,/obj/item/weapon/reagent_containers/hypospray/autoinjector,/obj/item/stack/medical/bruise_pack,/obj/item/device/flashlight/glowstick,/obj/item/weapon/reagent_containers/food/snacks/candy/proteinbar,/obj/item/clothing/mask/breath,/obj/item/weapon/tank/emergency/oxygen/engi) + }, /turf/simulated/floor/carpet/bcarpet, /area/survivalpod) "C" = ( @@ -403,16 +409,17 @@ /area/survivalpod) "R" = ( /obj/machinery/iv_drip, -/turf/simulated/shuttle/floor/voidcraft/light, -/area/survivalpod) -"S" = ( /obj/effect/floor_decal/industrial/loading{ dir = 1 }, +/turf/simulated/shuttle/floor/voidcraft/light, +/area/survivalpod) +"S" = ( /obj/machinery/light{ icon_state = "tube1"; dir = 4 }, +/obj/machinery/chemical_dispenser/ert, /turf/simulated/shuttle/floor/voidcraft/light, /area/survivalpod) "T" = ( diff --git a/maps/tether/submaps/space/pois/_templates.dm b/maps/tether/submaps/space/pois/_templates.dm index 938fdaaa60..33fcab8398 100644 --- a/maps/tether/submaps/space/pois/_templates.dm +++ b/maps/tether/submaps/space/pois/_templates.dm @@ -97,3 +97,10 @@ mappath = 'oldshuttle.dmm' cost = 30 allow_duplicates = FALSE + +/datum/map_template/debrisfield/alien_massive_derelict + name = "Alien Derelict" + mappath = 'derelict.dmm' + cost = 35 + allow_duplicates = FALSE + discard_prob = 50 diff --git a/maps/tether/submaps/space/pois/debrisfield_things.dm b/maps/tether/submaps/space/pois/debrisfield_things.dm index 054606477c..13cd7f032d 100644 --- a/maps/tether/submaps/space/pois/debrisfield_things.dm +++ b/maps/tether/submaps/space/pois/debrisfield_things.dm @@ -16,6 +16,28 @@ /mob/living/simple_mob/animal/space/carp/large/huge = 1 ) +/obj/tether_away_spawner/debrisfield/derelict + name = "debris field derelict random mob spawner" + faction = "derelict" + mobs_to_pick_from = list( + /mob/living/simple_mob/mechanical/corrupt_maint_drone = 2, + /mob/living/simple_mob/mechanical/infectionbot = 3, + /mob/living/simple_mob/mechanical/combat_drone = 1 + ) + +/obj/tether_away_spawner/debrisfield/derelict/corrupt_maint_swarm + name = "debris field derelict maint swarm" + faction = "derelict" + mobs_to_pick_from = list( + /mob/living/simple_mob/mechanical/corrupt_maint_drone = 4 + ) + +/obj/tether_away_spawner/debrisfield/derelict/mech_wizard + name = "debris field derelict wizard lol" + faction = "derelict" + mobs_to_pick_from = list( + /mob/living/simple_mob/mechanical/technomancer_golem = 2 + ) //Sciship /mob/living/simple_mob/tomato/space diff --git a/maps/tether/submaps/space/pois/derelict.dmm b/maps/tether/submaps/space/pois/derelict.dmm new file mode 100644 index 0000000000..bc5616cfdb --- /dev/null +++ b/maps/tether/submaps/space/pois/derelict.dmm @@ -0,0 +1,4434 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/space, +/area/tether_away/debrisfield/explored) +"ab" = ( +/turf/simulated/floor/plating, +/area/tether_away/debrisfield/explored) +"ac" = ( +/turf/simulated/floor/tiled/dark, +/area/tether_away/debrisfield/explored) +"ad" = ( +/turf/simulated/wall/r_wall, +/area/tether_away/debrisfield/explored) +"ae" = ( +/turf/simulated/wall, +/area/tether_away/debrisfield/explored) +"af" = ( +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8; + health = 1e+006 + }, +/obj/structure/grille, +/turf/simulated/floor/plating, +/area/tether_away/debrisfield/explored) +"ag" = ( +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/structure/grille, +/turf/simulated/floor/plating, +/area/tether_away/debrisfield/explored) +"ah" = ( +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/grille, +/turf/simulated/floor/plating, +/area/tether_away/debrisfield/explored) +"ai" = ( +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 8; + health = 1e+006 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/grille, +/turf/simulated/floor/plating, +/area/tether_away/debrisfield/explored) +"aj" = ( +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/grille, +/turf/simulated/floor/plating, +/area/tether_away/debrisfield/explored) +"ak" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/space, +/area/tether_away/debrisfield/explored) +"al" = ( +/obj/tether_away_spawner/debrisfield/derelict/corrupt_maint_swarm, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/simulated/floor/bluegrid, +/area/tether_away/debrisfield/explored) +"am" = ( +/obj/effect/map_effect/interval/effect_emitter/sparks/frequent, +/obj/effect/map_effect/interval/effect_emitter/smoke, +/obj/machinery/door/airlock/alien, +/turf/simulated/floor/plating, +/area/tether_away/debrisfield/explored) +"an" = ( +/obj/effect/map_effect/interval/effect_emitter/sparks/frequent, +/obj/structure/door_assembly/door_assembly_alien, +/turf/simulated/floor/plating, +/area/tether_away/debrisfield/explored) +"ao" = ( +/obj/structure/catwalk, +/turf/space, +/area/tether_away/debrisfield/explored) +"ap" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "burst_l"; + dir = 1 + }, +/turf/space, +/area/tether_away/debrisfield/explored) +"aq" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "burst_l"; + dir = 8 + }, +/turf/space, +/area/tether_away/debrisfield/explored) +"ar" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "burst_l"; + dir = 4 + }, +/turf/space, +/area/tether_away/debrisfield/explored) +"as" = ( +/turf/simulated/floor/reinforced, +/area/tether_away/debrisfield/explored) +"at" = ( +/obj/structure/shuttle/engine/heater, +/turf/simulated/floor/reinforced, +/area/tether_away/debrisfield/explored) +"au" = ( +/turf/simulated/floor/tiled/techfloor, +/area/tether_away/debrisfield/explored) +"av" = ( +/turf/simulated/floor/tiled/steel_dirty, +/area/tether_away/debrisfield/explored) +"aw" = ( +/turf/simulated/floor/tiled/monotile, +/area/tether_away/debrisfield/explored) +"ax" = ( +/turf/simulated/floor/tiled/monofloor, +/area/tether_away/debrisfield/explored) +"ay" = ( +/turf/simulated/floor/greengrid, +/area/tether_away/debrisfield/explored) +"az" = ( +/obj/item/weapon/grenade/empgrenade, +/obj/item/weapon/grenade/empgrenade, +/obj/item/weapon/grenade/empgrenade, +/turf/space, +/area/tether_away/debrisfield/explored) +"aA" = ( +/obj/structure/prop/prism, +/turf/simulated/floor/greengrid, +/area/tether_away/debrisfield/explored) +"aB" = ( +/obj/structure/prop/fake_ai, +/turf/simulated/floor/greengrid, +/area/tether_away/debrisfield/explored) +"aC" = ( +/turf/simulated/floor/tiled/steel_ridged, +/area/tether_away/debrisfield/explored) +"aD" = ( +/obj/effect/decal/remains/human, +/turf/simulated/floor/tiled/monotile, +/area/tether_away/debrisfield/explored) +"aE" = ( +/obj/effect/decal/remains/human, +/turf/simulated/floor/tiled/monofloor, +/area/tether_away/debrisfield/explored) +"aF" = ( +/mob/living/simple_mob/mechanical/infectionbot{ + faction = "derelict" + }, +/turf/simulated/floor/tiled/dark, +/area/tether_away/debrisfield/explored) +"aG" = ( +/obj/structure/old_roboprinter, +/turf/simulated/floor/tiled/monofloor, +/area/tether_away/debrisfield/explored) +"aH" = ( +/obj/structure/old_roboprinter, +/turf/simulated/floor/tiled/dark, +/area/tether_away/debrisfield/explored) +"aI" = ( +/obj/structure/ghost_pod/manual/lost_drone/dogborg, +/turf/simulated/floor/tiled/dark, +/area/tether_away/debrisfield/explored) +"aJ" = ( +/obj/structure/ghost_pod/manual/lost_drone, +/turf/simulated/floor/tiled/dark, +/area/tether_away/debrisfield/explored) +"aK" = ( +/obj/tether_away_spawner/debrisfield/derelict/corrupt_maint_swarm, +/turf/simulated/floor/tiled/monofloor, +/area/tether_away/debrisfield/explored) +"aL" = ( +/obj/tether_away_spawner/debrisfield/derelict/corrupt_maint_swarm, +/mob/living/simple_mob/mechanical/corrupt_maint_drone{ + faction = "derelict" + }, +/turf/simulated/floor/tiled/dark, +/area/tether_away/debrisfield/explored) +"aM" = ( +/turf/simulated/floor/tiled/steel_grid, +/area/tether_away/debrisfield/explored) +"aN" = ( +/mob/living/simple_mob/mechanical/infectionbot{ + faction = "derelict" + }, +/turf/simulated/floor/tiled/steel_grid, +/area/tether_away/debrisfield/explored) +"aO" = ( +/obj/tether_away_spawner/debrisfield/derelict/corrupt_maint_swarm, +/turf/simulated/floor/tiled/steel_ridged, +/area/tether_away/debrisfield/explored) +"aP" = ( +/obj/tether_away_spawner/debrisfield/derelict/corrupt_maint_swarm, +/turf/simulated/floor/tiled/dark, +/area/tether_away/debrisfield/explored) +"aQ" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + dir = 2; + name = "south bump"; + pixel_y = -24 + }, +/turf/simulated/floor/tiled/techfloor, +/area/tether_away/debrisfield/explored) +"aR" = ( +/turf/simulated/floor/tiled/white, +/area/tether_away/debrisfield/explored) +"aS" = ( +/mob/living/simple_mob/mechanical/infectionbot{ + faction = "derelict" + }, +/turf/simulated/floor/tiled/white, +/area/tether_away/debrisfield/explored) +"aT" = ( +/turf/simulated/floor/tiled/neutral, +/area/tether_away/debrisfield/explored) +"aU" = ( +/obj/tether_away_spawner/debrisfield/derelict/mech_wizard, +/turf/simulated/floor/plating, +/area/tether_away/debrisfield/explored) +"aV" = ( +/obj/structure/ghost_pod/manual/lost_drone/dogborg, +/turf/simulated/floor/plating, +/area/tether_away/debrisfield/explored) +"aW" = ( +/obj/tether_away_spawner/debrisfield/derelict/mech_wizard, +/turf/simulated/floor/tiled/steel_grid, +/area/tether_away/debrisfield/explored) +"aX" = ( +/obj/effect/decal/remains/human, +/turf/simulated/floor/tiled/steel_grid, +/area/tether_away/debrisfield/explored) +"aY" = ( +/obj/structure/old_roboprinter, +/turf/simulated/floor/tiled/steel_grid, +/area/tether_away/debrisfield/explored) +"aZ" = ( +/obj/tether_away_spawner/debrisfield/derelict, +/turf/simulated/floor/tiled/steel_grid, +/area/tether_away/debrisfield/explored) +"ba" = ( +/obj/structure/prop/alien/computer/camera, +/turf/simulated/floor/tiled/techfloor, +/area/tether_away/debrisfield/explored) +"bb" = ( +/obj/structure/prop/alien/computer, +/turf/simulated/floor/tiled/techfloor, +/area/tether_away/debrisfield/explored) +"bc" = ( +/obj/structure/prop/alien/computer/camera/flipped, +/turf/simulated/floor/tiled/techfloor, +/area/tether_away/debrisfield/explored) +"bd" = ( +/obj/structure/prop/alien/dispenser, +/turf/simulated/floor/tiled/techfloor, +/area/tether_away/debrisfield/explored) +"be" = ( +/obj/structure/prop/alien/computer/camera, +/turf/simulated/floor/reinforced, +/area/tether_away/debrisfield/explored) +"bf" = ( +/obj/structure/prop/alien/power, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/simulated/floor/reinforced, +/area/tether_away/debrisfield/explored) +"bg" = ( +/obj/structure/prop/alien/computer/camera/flipped, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/simulated/floor/reinforced, +/area/tether_away/debrisfield/explored) +"bh" = ( +/obj/structure/prop/alien/pod, +/turf/simulated/floor/tiled/dark, +/area/tether_away/debrisfield/explored) +"bi" = ( +/obj/machinery/porta_turret/alien{ + faction = "derelict"; + use_power = 0 + }, +/turf/simulated/floor/tiled/dark, +/area/tether_away/debrisfield/explored) +"bj" = ( +/obj/effect/map_effect/interval/effect_emitter/sparks/frequent, +/obj/structure/door_assembly/door_assembly_alien, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/tether_away/debrisfield/explored) +"bk" = ( +/obj/random/humanoidremains, +/turf/simulated/floor/tiled/dark, +/area/tether_away/debrisfield/explored) +"bl" = ( +/obj/machinery/implantchair, +/turf/simulated/floor/tiled/white, +/area/tether_away/debrisfield/explored) +"bm" = ( +/obj/machinery/dna_scannernew, +/turf/simulated/floor/tiled/white, +/area/tether_away/debrisfield/explored) +"bn" = ( +/obj/machinery/replicator, +/turf/simulated/floor/tiled/neutral, +/area/tether_away/debrisfield/explored) +"bo" = ( +/obj/machinery/transhuman/synthprinter, +/turf/simulated/floor/tiled/steel_grid, +/area/tether_away/debrisfield/explored) +"bp" = ( +/obj/machinery/transhuman/resleever, +/turf/simulated/floor/tiled/steel_grid, +/area/tether_away/debrisfield/explored) +"bq" = ( +/obj/machinery/vr_sleeper/alien, +/turf/simulated/floor/tiled/dark, +/area/tether_away/debrisfield/explored) +"br" = ( +/obj/machinery/auto_cloner, +/turf/simulated/floor/tiled/steel_ridged, +/area/tether_away/debrisfield/explored) +"bs" = ( +/obj/machinery/artifact, +/turf/simulated/floor/tiled/dark, +/area/tether_away/debrisfield/explored) +"bt" = ( +/obj/structure/prop/alien/power, +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2"; + pixel_y = 0 + }, +/turf/simulated/floor/reinforced, +/area/tether_away/debrisfield/explored) +"bu" = ( +/obj/machinery/door/airlock/hatch{ + icon_state = "door_locked"; + id_tag = null; + locked = 1; + name = "AI Core"; + req_access = list(16) + }, +/turf/simulated/floor/plating, +/area/tether_away/debrisfield/explored) +"bv" = ( +/obj/machinery/door/airlock/alien, +/turf/simulated/floor/tiled/steel_dirty, +/area/tether_away/debrisfield/explored) +"bw" = ( +/obj/machinery/door/airlock/alien, +/turf/simulated/floor/tiled/dark, +/area/tether_away/debrisfield/explored) +"bx" = ( +/obj/machinery/door/airlock/alien/locked, +/turf/simulated/floor/tiled/techfloor, +/area/tether_away/debrisfield/explored) +"by" = ( +/obj/machinery/door/airlock/alien, +/turf/simulated/floor/plating, +/area/tether_away/debrisfield/explored) +"bz" = ( +/obj/machinery/door/airlock/alien, +/turf/simulated/floor/reinforced, +/area/tether_away/debrisfield/explored) +"bA" = ( +/obj/machinery/bomb_tester, +/turf/simulated/floor/tiled/steel_ridged, +/area/tether_away/debrisfield/explored) +"bB" = ( +/obj/random/humanoidremains, +/obj/item/weapon/gun/energy/ionrifle, +/turf/simulated/floor/tiled/steel_ridged, +/area/tether_away/debrisfield/explored) +"bC" = ( +/obj/structure/prop/alien/power, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/simulated/floor/bluegrid, +/area/tether_away/debrisfield/explored) +"bD" = ( +/obj/machinery/optable, +/obj/random/humanoidremains, +/turf/simulated/floor/tiled/white, +/area/tether_away/debrisfield/explored) +"bE" = ( +/obj/random/humanoidremains, +/turf/simulated/floor/tiled/white, +/area/tether_away/debrisfield/explored) +"bF" = ( +/obj/tether_away_spawner/debrisfield/derelict, +/turf/simulated/floor/tiled/techfloor, +/area/tether_away/debrisfield/explored) +"bG" = ( +/obj/machinery/porta_turret/alien{ + faction = "derelict"; + use_power = 0 + }, +/turf/space, +/area/tether_away/debrisfield/explored) +"bH" = ( +/obj/random/tool/alien, +/turf/simulated/floor/tiled/dark, +/area/tether_away/debrisfield/explored) +"bI" = ( +/obj/random/energy, +/turf/simulated/floor/tiled/dark, +/area/tether_away/debrisfield/explored) +"bJ" = ( +/obj/tether_away_spawner/debrisfield/derelict/corrupt_maint_swarm, +/turf/simulated/floor/tiled/monotile, +/area/tether_away/debrisfield/explored) +"bK" = ( +/obj/tether_away_spawner/debrisfield/derelict, +/turf/simulated/floor/reinforced, +/area/tether_away/debrisfield/explored) +"bL" = ( +/obj/tether_away_spawner/debrisfield/derelict/corrupt_maint_swarm, +/mob/living/simple_mob/mechanical/corrupt_maint_drone{ + faction = "derelict" + }, +/turf/simulated/floor/tiled/steel_grid, +/area/tether_away/debrisfield/explored) +"bM" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/item/weapon/grenade/empgrenade, +/turf/simulated/floor/bluegrid, +/area/tether_away/debrisfield/explored) +"bN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/simulated/floor/bluegrid, +/area/tether_away/debrisfield/explored) +"bO" = ( +/turf/template_noop, +/area/tether_away/debrisfield/explored) +"bP" = ( +/obj/structure/old_roboprinter, +/turf/simulated/floor/reinforced, +/area/tether_away/debrisfield/explored) +"bQ" = ( +/obj/tether_away_spawner/debrisfield/derelict/corrupt_maint_swarm, +/turf/simulated/floor/reinforced, +/area/tether_away/debrisfield/explored) +"bR" = ( +/turf/template_noop, +/area/tether_away/debrisfield/unexplored) +"bS" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/simulated/floor/reinforced, +/area/tether_away/debrisfield/explored) +"bT" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/simulated/floor/reinforced, +/area/tether_away/debrisfield/explored) +"bW" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/reinforced, +/area/tether_away/debrisfield/explored) +"bY" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/simulated/wall, +/area/tether_away/debrisfield/explored) +"bZ" = ( +/obj/effect/alien/egg, +/obj/effect/alien/weeds, +/turf/simulated/floor/tiled/dark, +/area/tether_away/debrisfield/explored) +"ca" = ( +/obj/effect/decal/mecha_wreckage/gygax/adv, +/turf/simulated/floor/plating, +/area/tether_away/debrisfield/explored) +"cb" = ( +/obj/tether_away_spawner/debrisfield/derelict/corrupt_maint_swarm, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/simulated/floor/reinforced, +/area/tether_away/debrisfield/explored) +"cc" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/reinforced, +/area/tether_away/debrisfield/explored) +"cd" = ( +/obj/machinery/door/airlock/alien, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/reinforced, +/area/tether_away/debrisfield/explored) +"ce" = ( +/obj/machinery/door/airlock/alien, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/tether_away/debrisfield/explored) +"cf" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/tether_away/debrisfield/explored) +"cg" = ( +/obj/tether_away_spawner/debrisfield/derelict/corrupt_maint_swarm, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/simulated/floor/bluegrid, +/area/tether_away/debrisfield/explored) +"ch" = ( +/obj/item/xenos_claw, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/tether_away/debrisfield/explored) +"ci" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/tether_away/debrisfield/explored) +"ck" = ( +/obj/machinery/door/airlock/alien, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/tether_away/debrisfield/explored) +"cl" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/simulated/floor/tiled/dark, +/area/tether_away/debrisfield/explored) +"cm" = ( +/obj/structure/cable, +/obj/machinery/power/apc{ + dir = 2; + name = "south bump"; + pixel_y = -24 + }, +/turf/simulated/floor/tiled/dark, +/area/tether_away/debrisfield/explored) +"cn" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/simulated/floor/reinforced, +/area/tether_away/debrisfield/explored) +"co" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/simulated/floor/reinforced, +/area/tether_away/debrisfield/explored) +"cp" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/simulated/floor/reinforced, +/area/tether_away/debrisfield/explored) +"cq" = ( +/obj/random/humanoidremains, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/tether_away/debrisfield/explored) +"cr" = ( +/obj/structure/prop/prism, +/turf/simulated/floor/tiled/dark, +/area/tether_away/debrisfield/explored) +"cs" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/tether_away/debrisfield/explored) +"ct" = ( +/obj/random/humanoidremains, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/tether_away/debrisfield/explored) +"cu" = ( +/obj/machinery/door/airlock/alien, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/tether_away/debrisfield/explored) +"cv" = ( +/obj/machinery/door/airlock/alien, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/reinforced, +/area/tether_away/debrisfield/explored) +"cw" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/tether_away/debrisfield/explored) +"cx" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/tether_away/debrisfield/explored) +"cy" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/simulated/floor/tiled/dark, +/area/tether_away/debrisfield/explored) +"cz" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/tiled/dark, +/area/tether_away/debrisfield/explored) +"cA" = ( +/obj/machinery/door/airlock/alien, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/tiled/dark, +/area/tether_away/debrisfield/explored) +"cB" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/simulated/floor/tiled/white, +/area/tether_away/debrisfield/explored) +"cC" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/simulated/floor/tiled/white, +/area/tether_away/debrisfield/explored) +"cD" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/simulated/floor/tiled/dark, +/area/tether_away/debrisfield/explored) +"cE" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/simulated/floor/tiled/dark, +/area/tether_away/debrisfield/explored) +"cF" = ( +/obj/machinery/door/airlock/alien, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/simulated/floor/tiled/dark, +/area/tether_away/debrisfield/explored) +"cG" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/simulated/floor/tiled/neutral, +/area/tether_away/debrisfield/explored) +"cH" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/tiled/dark, +/area/tether_away/debrisfield/explored) +"cI" = ( +/obj/random/humanoidremains, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/simulated/floor/tiled/dark, +/area/tether_away/debrisfield/explored) +"cJ" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/simulated/floor/tiled/dark, +/area/tether_away/debrisfield/explored) +"cK" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/simulated/floor/plating, +/area/tether_away/debrisfield/explored) +"cM" = ( +/obj/machinery/door/airlock/hatch{ + icon_state = "door_locked"; + id_tag = null; + locked = 1; + name = "AI Core"; + req_access = list(16) + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/simulated/floor/plating, +/area/tether_away/debrisfield/explored) +"cN" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/tether_away/debrisfield/explored) +"cO" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/simulated/floor/plating, +/area/tether_away/debrisfield/explored) +"cP" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/simulated/floor/plating, +/area/tether_away/debrisfield/explored) +"cQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/tether_away/debrisfield/explored) +"cR" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + dir = 4; + name = "east bump"; + pixel_x = 28 + }, +/turf/simulated/floor/plating, +/area/tether_away/debrisfield/explored) +"cS" = ( +/obj/machinery/power/apc/hyper{ + pixel_y = 25 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/simulated/floor/greengrid, +/area/tether_away/debrisfield/explored) +"cT" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/simulated/floor/tiled/techfloor, +/area/tether_away/debrisfield/explored) +"cU" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/tether_away/debrisfield/explored) +"cV" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/simulated/floor/tiled/dark, +/area/tether_away/debrisfield/explored) +"cW" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/simulated/floor/tiled/neutral, +/area/tether_away/debrisfield/explored) +"cX" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/tiled/neutral, +/area/tether_away/debrisfield/explored) +"cY" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/simulated/floor/tiled/neutral, +/area/tether_away/debrisfield/explored) +"cZ" = ( +/obj/random/humanoidremains, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/turf/simulated/floor/tiled/dark, +/area/tether_away/debrisfield/explored) +"da" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + dir = 4; + name = "east bump"; + pixel_x = 28 + }, +/turf/simulated/floor/tiled/dark, +/area/tether_away/debrisfield/explored) +"db" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/tether_away/debrisfield/explored) +"dc" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/tether_away/debrisfield/explored) +"dd" = ( +/obj/machinery/porta_turret/alien{ + faction = "derelict"; + use_power = 0 + }, +/turf/simulated/floor/greengrid, +/area/tether_away/debrisfield/explored) +"de" = ( +/obj/machinery/porta_turret/alien{ + faction = "derelict"; + use_power = 0 + }, +/turf/simulated/floor/plating, +/area/tether_away/debrisfield/explored) +"df" = ( +/obj/item/weapon/gun/energy/ionrifle, +/turf/space, +/area/tether_away/debrisfield/explored) +"dg" = ( +/obj/machinery/door/airlock/alien/locked, +/turf/simulated/floor/plating, +/area/tether_away/debrisfield/explored) +"dh" = ( +/obj/structure/prop/blackbox/xenofrigate, +/turf/simulated/floor/greengrid, +/area/tether_away/debrisfield/explored) + +(1,1,1) = {" +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +"} +(2,1,1) = {" +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +aa +aa +aa +aa +ap +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +"} +(3,1,1) = {" +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +aa +aa +aa +ad +ad +ad +as +as +as +ae +as +as +as +bK +ae +bP +bP +ae +bK +as +as +as +as +ae +as +as +as +as +as +as +as +at +ae +ak +aa +aa +aa +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +"} +(4,1,1) = {" +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +aa +ad +ad +ad +be +as +as +ae +as +ae +as +as +ae +ae +ae +as +as +ae +ae +ae +as +as +as +ae +as +as +ae +ae +ae +ae +as +as +at +ae +ak +aa +aa +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +"} +(5,1,1) = {" +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +aa +ad +ad +ad +bt +bT +bT +bY +bT +bT +bT +bT +bY +bT +bT +cb +bQ +as +as +as +as +ae +as +as +as +as +ae +bK +as +ae +as +as +at +ae +ak +aa +aa +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +"} +(6,1,1) = {" +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +aa +aa +aa +ad +ad +ad +ae +ae +as +as +as +as +as +as +ae +cc +as +ae +as +as +ae +ae +as +as +as +as +ae +as +as +as +as +at +ae +ak +aa +aa +aa +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +"} +(7,1,1) = {" +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +aa +aa +aa +aa +ap +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +cd +bz +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +"} +(8,1,1) = {" +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +cc +as +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +"} +(9,1,1) = {" +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +cc +as +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +"} +(10,1,1) = {" +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +cc +as +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +"} +(11,1,1) = {" +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +cc +as +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bO +bO +bO +bO +bO +bO +bO +"} +(12,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ce +bv +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +bO +bO +bO +bO +bO +bO +bO +"} +(13,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +bB +aC +ac +ac +ac +ac +ae +ac +ac +ac +aM +ae +cf +av +ae +aH +ac +ac +ac +ac +ac +ae +bn +aT +aC +aC +aO +ae +bh +ac +ac +ac +ac +aP +ad +ad +aa +aa +bO +bO +bO +bO +bO +bO +"} +(14,1,1) = {" +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +aC +ae +ac +ae +bk +ac +ae +ac +bq +ae +aM +ae +cf +av +ae +ac +ac +ac +ac +ae +ac +ae +aT +aT +ae +ae +ae +ae +ae +ac +ae +ac +ac +ae +ad +ad +ad +aa +aa +bO +bO +bO +bO +bO +"} +(15,1,1) = {" +aa +aa +aa +aa +aa +aa +ad +aw +aw +aw +aw +ac +ac +ax +ax +ax +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ac +ac +ac +ac +ae +ac +ac +ac +ac +ac +ac +aM +ae +cf +av +ae +aL +ac +ae +ac +ac +ac +ae +aT +cW +cF +cl +cl +cF +cl +cl +cl +cZ +cD +ab +bu +ab +ad +ad +aa +aa +bO +bO +bO +bO +"} +(16,1,1) = {" +aa +aa +aa +aa +aa +aa +ad +aw +aw +ae +ae +ac +ac +ae +ae +ax +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ac +ae +ac +ac +ac +ac +ac +bk +ae +ae +ae +aM +ae +cf +av +ae +ae +ac +ae +ae +ac +ac +ae +aT +cX +ae +ac +bk +bw +ac +ac +ac +ac +da +ab +ad +ab +ab +ad +ad +aa +aa +bO +bO +bO +"} +(17,1,1) = {" +aa +aa +aa +aa +aa +aa +ad +aD +aw +aw +ae +ac +ac +ae +ax +ax +ad +aa +aa +aa +ae +am +ae +aa +aa +aa +ad +ac +ac +ac +ae +ae +ae +ac +ac +ac +ac +ac +aM +ae +cf +av +ae +ac +ac +ac +ac +ac +ac +bw +aT +cX +ae +aC +aC +ae +ac +ae +ab +ab +ae +ab +ad +ab +ab +de +ad +ad +aa +aa +bO +bO +"} +(18,1,1) = {" +aa +aa +aa +aa +aa +aa +ad +aw +bJ +aD +ae +ac +ac +ae +aE +aK +ad +aa +aa +aq +ae +ab +ae +aq +aa +aa +ad +bH +ac +ac +ae +bs +ac +ac +ae +ac +ac +ac +aM +ae +cf +av +ae +ac +cy +cl +cl +cl +cl +cF +cG +cY +ae +aO +aC +ae +aJ +ae +ab +ab +ae +aV +ad +ay +ay +ay +dd +ad +ad +aa +aa +bO +"} +(19,1,1) = {" +aa +af +ai +ai +ai +ai +ad +ae +ae +ae +ae +bw +bw +ae +ae +ae +ad +aa +aa +ae +ae +an +ae +ae +aa +aa +ad +ae +ae +bw +ae +ac +ac +ac +ac +ac +ae +ac +aM +ae +cf +av +ae +bw +cA +ae +ae +ae +ae +ae +ad +ad +ad +ad +ad +ad +ad +ad +dg +dg +ad +ad +ad +ay +ay +ay +ay +dd +ad +ad +aa +aa +"} +(20,1,1) = {" +aa +ag +ba +au +au +au +bx +av +av +av +av +av +av +av +av +av +ad +aa +aa +ae +ab +ab +ab +ae +aa +aa +ad +bI +ac +ac +ae +ae +ae +ae +ac +ac +bs +ae +aZ +ae +cf +av +ae +ac +cJ +cD +ac +ac +cr +bi +ad +ao +ao +ao +ao +ao +ao +ao +ao +ao +ao +ao +ad +ay +ay +ay +ay +ay +dd +ad +ad +aa +"} +(21,1,1) = {" +aa +ag +bb +au +au +au +bx +av +av +av +av +av +av +av +av +av +ad +ad +bG +ae +ca +ab +ab +ae +bG +ad +ad +bk +ac +ac +ae +aN +aM +aM +aM +aM +aM +aZ +ae +ae +cf +av +ae +bi +ac +cJ +cl +cl +cD +ac +ad +ao +aa +aa +aa +aa +aa +aa +aa +aa +aa +ao +ad +ay +ay +ay +ay +ay +ay +dd +ad +aa +"} +(22,1,1) = {" +aa +ag +bd +au +au +au +ae +ae +ae +ae +ae +bv +bv +ae +ae +ae +ae +ad +ad +ae +ae +bw +ae +ae +ad +ad +ad +ae +bw +bw +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +bv +bv +ae +ae +ae +ae +ae +ae +cz +ac +ad +ao +aa +aa +aa +aa +aa +aa +aa +aa +aa +ao +ad +ay +ay +aA +aA +ay +ay +ay +ad +aa +"} +(23,1,1) = {" +aa +ag +bb +au +bF +aQ +ae +al +bM +bN +bw +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +db +ch +ci +cw +ci +ci +ci +ck +cV +cm +ad +ao +aa +aa +aa +df +az +az +aa +aa +aa +ao +ad +ay +ay +dh +aB +ay +ay +dd +ad +aa +"} +(24,1,1) = {" +aa +ag +bb +au +au +cT +bY +bC +cg +bN +cF +ci +ci +ci +ci +ci +ci +cq +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +cU +ci +ci +ci +ci +ci +ci +dc +ci +ci +cx +ci +ci +ci +ck +cl +cD +ad +ao +aa +aa +aa +aa +az +az +aa +aa +aa +ao +ad +ay +ay +dh +aB +ay +ay +dd +ad +aa +"} +(25,1,1) = {" +aa +ag +bd +au +au +au +ae +ae +ae +ae +ae +bv +bv +ae +ae +ae +ae +ad +ad +ae +ae +bw +ae +ae +ad +ad +ad +ae +bw +bw +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +bj +bv +ae +ae +ae +ae +ae +ae +bk +cz +ad +ao +aa +aa +aa +aa +aa +aa +aa +aa +aa +ao +ad +ay +ay +aA +aA +ay +ay +ay +ad +aa +"} +(26,1,1) = {" +aa +ag +bb +au +au +au +bx +av +av +av +av +av +av +av +av +av +ad +ad +bG +ae +ca +ab +ab +ae +bG +ad +ad +aF +ac +bk +ac +ac +ac +ac +bH +ae +bL +aY +aY +ae +cs +av +ae +bi +cy +cl +cl +cl +cl +cE +ad +ao +aa +aa +aa +aa +aa +aa +aa +aa +aa +ao +ad +ay +ay +ay +ay +ay +ay +dd +ad +aa +"} +(27,1,1) = {" +aa +ag +bc +au +au +au +bx +av +av +av +av +av +av +av +av +av +ad +aa +aa +ae +ab +ab +ab +ae +aa +aa +ad +aF +ac +ac +ac +ac +ac +ac +ac +ae +aX +aM +aM +ae +cs +av +ae +ac +cz +ac +ac +ac +cr +bi +ad +ao +ao +ao +ao +ao +ao +ao +ao +ao +ao +ao +ad +ay +ay +ay +ay +ay +dd +ad +ad +aa +"} +(28,1,1) = {" +aa +ah +aj +aj +aj +aj +ad +ae +ae +ae +ae +bw +bw +ae +ae +ae +ad +aa +aa +ae +ae +by +ae +ae +aa +aa +ad +ae +ae +ae +ae +ae +ae +ac +ac +ac +aM +bL +bL +ae +cs +av +ae +bw +cA +ae +ae +ae +ae +ae +ad +ad +ad +ad +ad +ad +ad +ad +dg +dg +ad +ad +ad +ay +ay +ay +ay +dd +ad +ad +aa +aa +"} +(29,1,1) = {" +aa +aa +aa +aa +aa +aa +ad +aD +aw +aw +ae +ac +ac +ae +aG +aG +ad +aa +aa +ar +ae +ab +ae +ar +aa +aa +ad +bH +ac +ac +ac +bH +ae +ac +ac +ae +ae +ae +ae +ae +cs +av +ae +aR +cB +cC +cC +cC +cC +cF +cG +cG +cl +cD +bZ +ae +ac +ac +ac +ac +ac +bs +ad +cS +ay +ay +dd +ad +ad +aa +aa +bO +"} +(30,1,1) = {" +aa +aa +aa +aa +aa +aa +ad +aw +aw +aD +ae +ac +ac +ae +ax +ax +ad +aa +aa +aa +ae +by +ae +aa +aa +aa +ad +ac +ac +ae +ac +ac +ac +bk +ac +ac +ac +ac +ac +ae +cs +av +ae +aR +aR +aR +aR +aR +aR +bw +aT +aT +ac +cH +ac +ae +ac +bk +ac +ac +ac +ac +ad +cN +ab +de +ad +ad +aa +aa +bO +bO +"} +(31,1,1) = {" +aa +aa +aa +aa +aa +aa +ad +aw +aw +ae +ae +ac +ac +ae +aK +aK +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ac +ae +ct +av +ae +aR +ae +bD +ae +bE +aR +ae +aT +aT +ae +cI +cl +cF +cl +cD +ae +ae +ae +ae +ad +cN +ab +ad +ad +aa +aa +bO +bO +bO +"} +(32,1,1) = {" +aa +aa +aa +aa +aa +aa +ad +aw +aw +aw +aw +ac +ac +ax +ax +ax +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ac +ac +ae +ac +ac +ae +ae +ae +ae +ae +ac +ae +ae +cs +av +ae +aR +aS +ae +aS +aR +aR +ae +aT +aT +ae +ae +ae +ae +ac +cJ +cF +cK +cP +cK +cM +cO +ad +ad +aa +aa +bO +bO +bO +bO +"} +(33,1,1) = {" +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +aC +ae +aM +aM +aM +aM +aM +bo +ae +aC +aC +ae +cs +av +ae +aR +aR +aR +aR +ae +aR +ae +aT +aT +aC +aC +aO +ae +ac +ac +ae +ab +cQ +ab +ad +ad +ad +aa +aa +bO +bO +bO +bO +bO +"} +(34,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +bA +ae +bp +aM +aM +aM +aM +aW +ae +aC +br +ae +cs +av +ae +bl +bm +aR +aR +aR +aS +ae +bn +aT +aC +aC +aO +ae +aI +ac +ae +ab +cR +aU +ad +ad +aa +aa +bO +bO +bO +bO +bO +bO +"} +(35,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +cu +bv +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +bO +bO +bO +bO +bO +bO +bO +"} +(36,1,1) = {" +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +bW +as +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bO +bO +bO +bO +bO +bO +bO +bO +"} +(37,1,1) = {" +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +bW +as +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +"} +(38,1,1) = {" +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +bW +as +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +"} +(39,1,1) = {" +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +bW +as +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +"} +(40,1,1) = {" +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +aa +aa +aa +aa +ap +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +cv +bz +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +"} +(41,1,1) = {" +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +aa +aa +aa +ad +ad +ad +bS +bT +bT +bT +bT +co +ae +bS +bT +cn +as +as +as +ae +bK +as +as +as +as +as +bK +ae +as +as +as +at +ae +ak +aa +aa +aa +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +"} +(42,1,1) = {" +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +aa +ad +ad +ad +bf +as +bW +as +as +ae +as +bW +ae +bW +ae +as +as +ae +as +ae +ae +ae +as +as +as +ae +ae +ae +as +ae +as +as +at +ae +ak +aa +aa +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +"} +(43,1,1) = {" +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +aa +ad +ad +ad +bg +bT +cn +ae +as +ae +as +bW +ae +bW +ae +as +as +ae +as +as +as +as +as +ae +as +as +as +as +as +ae +as +as +at +ae +ak +aa +aa +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +"} +(44,1,1) = {" +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +aa +aa +aa +ad +ad +ad +bK +ae +as +as +as +cp +bT +cn +ae +bQ +bQ +ae +as +as +as +as +as +ae +as +as +as +as +as +ae +as +at +ae +ak +aa +aa +aa +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +"} +(45,1,1) = {" +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +aa +aa +aa +aa +ap +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aa +aa +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +"} +(46,1,1) = {" +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +bR +bR +bR +bR +bR +bR +bR +bR +bR +bR +"} diff --git a/maps/tether/submaps/underdark_pois/_templates.dm b/maps/tether/submaps/underdark_pois/_templates.dm index cb81bb6b1f..b015159f83 100644 --- a/maps/tether/submaps/underdark_pois/_templates.dm +++ b/maps/tether/submaps/underdark_pois/_templates.dm @@ -85,7 +85,72 @@ cost = 5 allow_duplicates = FALSE +/datum/map_template/underdark/old_drone_hive + name = "Underdark Old Drone Hive" + mappath = 'old_drone_hive.dmm' + cost = 25 + +/datum/map_template/underdark/phoron_rat_den + name = "Underdark Phoron Rat Den" + mappath = 'phoron_rat_den.dmm' + cost = 35 + allow_duplicates = FALSE + +/datum/map_template/underdark/subterranean_lake + name = "Underdark Underground Lake" + mappath = 'subterranean_lake.dmm' + cost = 5 + +/datum/map_template/underdark/spider_nest + name = "Underdark Spider Nest" + mappath = 'spider_nest.dmm' + cost = 15 + +/datum/map_template/underdark/rykka_easter_egg // bark bark Rykka was here. <3 + name = "Underdark GSD" + mappath = 'rykka_easter_egg.dmm' + cost = 5 + allow_duplicates = FALSE + +/datum/map_template/underdark/tree_shrine + name = "Underdark Tree" + mappath = 'tree_shrine.dmm' + cost = 10 + allow_duplicates = FALSE + +/datum/map_template/underdark/abandoned_outpost + name = "Underdark Abandonded Outpost" + mappath = 'abandonded_outpost.dmm' + cost = 45 + allow_duplicates = FALSE + +/datum/map_template/underdark/mimicry + name = "Underdark Mimic Death" + mappath = 'mimicry.dmm' + cost = 15 + +/datum/map_template/underdark/wolf_den + name = "Underdark Wolf Den" + mappath = 'wolf_den.dmm' + cost = 15 + +/datum/map_template/underdark/puzzle_corridor + name = "Underdark Puzzle Corridor" + mappath = 'puzzle_corridor.dmm' + cost = 10 + /* +// Comment out unfinished/unbalanced POI's here +/datum/map_template/underdark/rad_threat + name = "Underdark Rad Threat" + mappath = 'rad_threat.dmm' + cost = 10 + +/datum/map_template/underdark/broken_engine + name = "Underdark Broken Twin Engine" + mappath = 'broken_engine.dmm' + cost = 10 + /datum/map_template/underdark/boss_mob name = "Underdark Boss Mob Spawn" mappath = 'boss_mob.dmm' diff --git a/maps/tether/submaps/underdark_pois/abandonded_outpost.dmm b/maps/tether/submaps/underdark_pois/abandonded_outpost.dmm new file mode 100644 index 0000000000..300da22c19 --- /dev/null +++ b/maps/tether/submaps/underdark_pois/abandonded_outpost.dmm @@ -0,0 +1,1045 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/template_noop, +/area/mine/explored/underdark) +"ab" = ( +/turf/simulated/wall, +/area/mine/explored/underdark) +"ac" = ( +/turf/template_noop, +/area/space) +"ad" = ( +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"ae" = ( +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"af" = ( +/obj/machinery/door/airlock/uranium, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"ag" = ( +/obj/machinery/door/airlock/multi_tile/glass{ + dir = 1 + }, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"ah" = ( +/obj/machinery/floodlight, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"ai" = ( +/obj/machinery/door/airlock/uranium, +/turf/simulated/wall, +/area/mine/explored/underdark) +"aj" = ( +/obj/machinery/crystal, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"ak" = ( +/obj/machinery/light/flicker, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"al" = ( +/obj/machinery/mech_recharger, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"am" = ( +/obj/machinery/gravity_generator, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"an" = ( +/obj/machinery/implantchair, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"ao" = ( +/obj/machinery/particle_smasher, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"ap" = ( +/obj/machinery/particle_smasher, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"aq" = ( +/obj/machinery/particle_accelerator/control_box, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"ar" = ( +/obj/structure/old_roboprinter, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"as" = ( +/obj/tether_away_spawner/underdark_drone_swarm, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"at" = ( +/obj/tether_away_spawner/underdark_hard, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"au" = ( +/obj/tether_away_spawner/underdark_normal, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"av" = ( +/obj/structure/ore_box, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"aw" = ( +/obj/structure/dogbed, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"ax" = ( +/obj/structure/cult/forge, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"ay" = ( +/obj/structure/cult/tome, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"az" = ( +/obj/structure/bed, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"aA" = ( +/obj/structure/barricade, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"aB" = ( +/obj/structure/barricade, +/obj/structure/boulder, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"aC" = ( +/obj/structure/table/steel, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"aD" = ( +/obj/structure/sink, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"aE" = ( +/obj/structure/sign/ironhammer, +/turf/simulated/wall, +/area/mine/explored/underdark) +"aF" = ( +/obj/machinery/iv_drip, +/obj/effect/decal/cleanable/cobweb2, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"aG" = ( +/obj/structure/table/steel, +/obj/machinery/reagentgrinder, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"aH" = ( +/obj/machinery/smartfridge, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"aI" = ( +/obj/structure/filingcabinet, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"aJ" = ( +/obj/machinery/vending/cola, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"aK" = ( +/obj/machinery/vending/coffee, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"aL" = ( +/obj/machinery/vending/fitness, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"aM" = ( +/obj/machinery/replicator, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"aN" = ( +/obj/machinery/vending/snack, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"aO" = ( +/obj/machinery/porta_turret/stationary/syndie, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"aP" = ( +/obj/structure/table/steel, +/obj/machinery/recharger, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"aQ" = ( +/obj/machinery/recharger/wallcharger, +/turf/simulated/wall, +/area/mine/explored/underdark) +"aR" = ( +/obj/item/frame/apc, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"aS" = ( +/obj/structure/table/steel, +/obj/machinery/light_construct{ + icon_state = "tube-construct-stage1"; + dir = 1 + }, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"aT" = ( +/obj/machinery/light_construct{ + icon_state = "tube-construct-stage1"; + dir = 1 + }, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"aU" = ( +/obj/machinery/light_construct{ + icon_state = "tube-construct-stage1"; + dir = 8 + }, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"aV" = ( +/obj/machinery/light_construct{ + icon_state = "tube-construct-stage1"; + dir = 4 + }, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"aW" = ( +/obj/machinery/light_construct, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"aX" = ( +/obj/machinery/light/flamp/flicker, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"aY" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"aZ" = ( +/obj/machinery/clonepod/transhuman, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"ba" = ( +/obj/effect/decal/mecha_wreckage/gygax/adv, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"bb" = ( +/obj/effect/decal/mecha_wreckage/ripley, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"bc" = ( +/obj/effect/decal/remains/deer, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"bd" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"be" = ( +/obj/effect/decal/remains/deer, +/obj/effect/decal/cleanable/blood, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"bf" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/blood/drip, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"bg" = ( +/obj/machinery/door/airlock/uranium, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"bh" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"bi" = ( +/obj/effect/decal/remains/human, +/obj/effect/decal/cleanable/blood, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"bj" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"bk" = ( +/obj/machinery/light_construct, +/obj/effect/decal/remains/human, +/obj/effect/decal/cleanable/blood, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"bl" = ( +/obj/effect/decal/cleanable/cobweb2, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"bm" = ( +/obj/structure/table/steel, +/obj/machinery/microwave, +/obj/effect/decal/cleanable/cobweb, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"bn" = ( +/obj/structure/table/steel, +/obj/machinery/microwave, +/obj/effect/decal/cleanable/cobweb2, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"bo" = ( +/obj/structure/bed, +/obj/effect/decal/cleanable/cobweb2, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"bp" = ( +/obj/tether_away_spawner/underdark_normal, +/obj/effect/decal/cleanable/cobweb, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"bq" = ( +/obj/tether_away_spawner/underdark_normal, +/obj/effect/decal/cleanable/cobweb2, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"br" = ( +/obj/effect/decal/cleanable/vomit, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"bs" = ( +/obj/machinery/door/airlock/uranium, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"bt" = ( +/obj/effect/decal/remains/tajaran, +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"bu" = ( +/obj/effect/decal/cleanable/spiderling_remains, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"bv" = ( +/obj/item/device/assembly/prox_sensor, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"bw" = ( +/obj/item/device/electronic_assembly/drone/genbot, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"bx" = ( +/obj/structure/table/steel, +/obj/item/device/assembly/electronic_assembly, +/obj/item/weapon/circuitboard/aicore, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"by" = ( +/obj/item/device/assembly/signaler, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"bz" = ( +/obj/machinery/door/airlock/uranium{ + hasShocked = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"bA" = ( +/obj/machinery/door/airlock/uranium{ + hasShocked = 1 + }, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"bB" = ( +/mob/living/simple_mob/mechanical/infectionbot, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"bC" = ( +/obj/random/underdark, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"bD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/random/underdark, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) + +(1,1,1) = {" +aa +aa +aa +aa +aa +aa +ad +ad +ad +bc +ad +ad +ad +ad +ad +ad +ad +aj +ad +ad +ad +aj +ad +aa +ac +"} +(2,1,1) = {" +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +aj +ad +ad +ad +aX +ad +ad +aj +ad +ad +ad +aa +ac +"} +(3,1,1) = {" +aa +aa +aa +aa +aa +aa +ad +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ad +aa +ac +"} +(4,1,1) = {" +aa +aa +aa +aa +aa +aa +ad +ab +aw +ae +aU +au +ab +al +aP +bx +aP +al +ab +bp +ae +ab +ad +aa +ac +"} +(5,1,1) = {" +aj +ad +ad +ad +ah +ad +ad +ai +ae +ae +ae +ae +ab +ae +ae +ae +by +ae +ab +ae +ae +ab +ad +aa +ac +"} +(6,1,1) = {" +aj +ad +ad +ad +ad +ad +ad +ab +aF +ae +aZ +aM +ab +bv +ae +ae +ae +bC +ab +bi +ae +ab +ad +aa +ac +"} +(7,1,1) = {" +ad +ad +aj +ad +ad +ad +ad +ab +ab +af +ab +ab +ab +aD +bB +ba +bB +ae +bA +br +ae +ab +ad +aa +ac +"} +(8,1,1) = {" +ad +ad +ad +ad +ad +am +ad +ab +ae +ae +ae +av +ab +aT +ae +ae +ae +aI +ab +bj +bj +ab +ad +aa +ac +"} +(9,1,1) = {" +aA +ad +aX +ad +ad +ad +ad +ai +ae +ae +ae +ae +ab +bw +ae +ae +ae +bC +ab +bj +bj +ab +bc +aa +ac +"} +(10,1,1) = {" +ad +ad +ad +at +ad +bc +ad +ab +av +ae +ae +aV +ab +ax +ae +bj +ae +ay +ab +bj +bD +ab +ad +aa +ac +"} +(11,1,1) = {" +aA +ad +ad +ad +ad +ad +ak +ab +ab +ae +ag +ab +ab +ab +aQ +bz +ab +ab +ab +ae +bC +ab +ad +aa +ac +"} +(12,1,1) = {" +aB +aA +aj +ad +ad +ad +aj +ab +aY +ae +ae +aN +ab +aR +aU +bj +ae +ae +aU +ae +aJ +ab +ad +aa +ac +"} +(13,1,1) = {" +aA +aA +ad +ad +bd +bd +bf +bg +bh +bh +bh +bh +bg +bh +bj +bj +bt +ae +ae +ae +aK +ab +ad +aa +ac +"} +(14,1,1) = {" +aA +aA +ad +ad +be +ad +ad +ab +bl +ae +ae +ae +ab +bi +ae +bj +ae +ae +ae +ae +aL +ab +bc +aa +ac +"} +(15,1,1) = {" +aA +bu +ad +ad +ad +ad +ak +ab +ab +ae +ag +ab +ab +ab +aE +bs +aE +ab +ab +ae +bC +ab +ad +aa +ac +"} +(16,1,1) = {" +ad +ad +aX +ad +ad +ad +ad +ab +bm +ae +ae +aG +ab +ar +ae +bj +ae +ar +ab +ae +bC +ab +ad +aa +ac +"} +(17,1,1) = {" +aA +bu +ad +ad +ad +ad +ad +ab +aS +ae +ae +aC +ab +ae +ae +ae +ae +ae +ab +ae +ae +ab +ad +aa +ac +"} +(18,1,1) = {" +bu +ad +ad +aj +ad +aj +ad +ab +aC +au +ae +aC +ab +as +ae +ae +ae +as +ab +ae +ae +ab +ad +aa +ac +"} +(19,1,1) = {" +ad +ad +ad +ad +ad +ad +ad +ab +bn +ae +ae +aH +ab +ae +ae +ae +ae +ae +af +ae +bk +ab +ad +aa +ac +"} +(20,1,1) = {" +aj +ad +ad +ad +ad +ad +ad +ab +ab +ab +af +ab +ab +aT +bb +ae +ae +aW +ab +ae +ae +ab +ad +aa +ac +"} +(21,1,1) = {" +aj +ad +ad +ao +ad +ah +ad +ab +aT +ae +ae +ae +ab +ae +ae +ae +ae +ae +ab +ae +ae +ab +ad +aa +ac +"} +(22,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ab +bo +az +az +an +ab +ap +ae +aO +ae +aq +ab +bq +ae +ab +ad +aa +ac +"} +(23,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ab +ad +aa +ac +"} +(24,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad +aj +ad +ad +aa +ac +"} +(25,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad +ad +aj +ad +ad +ad +bc +ad +ad +ad +ad +ad +aa +ac +"} diff --git a/maps/tether/submaps/underdark_pois/broken_engine.dmm b/maps/tether/submaps/underdark_pois/broken_engine.dmm new file mode 100644 index 0000000000..7d966db623 --- /dev/null +++ b/maps/tether/submaps/underdark_pois/broken_engine.dmm @@ -0,0 +1,136 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/mine/explored/underdark) +"b" = ( +/turf/simulated/wall, +/area/mine/explored/underdark) +"c" = ( +/obj/machinery/door/airlock/glass_engineering, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"d" = ( +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"e" = ( +/obj/structure/sign/warning/radioactive, +/turf/simulated/wall, +/area/mine/explored/underdark) +"f" = ( +/obj/structure/sign/warning/radioactive, +/obj/effect/map_effect/interval/sound_emitter/geiger/high, +/turf/simulated/wall, +/area/mine/explored/underdark) +"g" = ( +/obj/item/device/geiger, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"h" = ( +/obj/effect/map_effect/radiation_emitter/strong, +/obj/item/poi/brokenoldreactor, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"i" = ( +/obj/effect/map_effect/interval/sound_emitter/geiger/ext, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +b +b +b +b +b +b +b +a +"} +(3,1,1) = {" +a +e +d +d +d +d +d +b +a +"} +(4,1,1) = {" +a +c +d +d +d +h +d +b +a +"} +(5,1,1) = {" +a +f +g +d +d +i +d +b +a +"} +(6,1,1) = {" +a +c +d +d +d +h +d +b +a +"} +(7,1,1) = {" +a +e +d +d +d +d +d +b +a +"} +(8,1,1) = {" +a +b +b +b +b +b +b +b +a +"} +(9,1,1) = {" +a +a +a +a +a +a +a +a +a +"} diff --git a/maps/tether/submaps/underdark_pois/mimicry.dmm b/maps/tether/submaps/underdark_pois/mimicry.dmm new file mode 100644 index 0000000000..001206a9d1 --- /dev/null +++ b/maps/tether/submaps/underdark_pois/mimicry.dmm @@ -0,0 +1,101 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/simulated/mineral/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"b" = ( +/turf/template_noop, +/area/mine/explored/underdark) +"c" = ( +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"d" = ( +/obj/structure/closet/crate, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"e" = ( +/obj/structure/closet/crate/mimic/cointoss, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"f" = ( +/obj/structure/closet/crate/mimic/guaranteed, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"g" = ( +/obj/structure/closet/crate/mimic/dangerous, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"h" = ( +/obj/structure/closet/crate/mimic/safe, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"i" = ( +/obj/effect/decal/remains/deer, +/obj/effect/decal/cleanable/blood, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"j" = ( +/obj/effect/decal/remains/tajaran, +/obj/effect/decal/cleanable/blood, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +b +c +e +d +g +h +f +a +"} +(3,1,1) = {" +b +b +c +i +c +c +d +a +"} +(4,1,1) = {" +b +b +c +c +c +j +g +a +"} +(5,1,1) = {" +b +c +d +f +d +f +d +a +"} +(6,1,1) = {" +a +a +a +a +a +a +a +a +"} diff --git a/maps/tether/submaps/underdark_pois/old_drone_hive.dmm b/maps/tether/submaps/underdark_pois/old_drone_hive.dmm new file mode 100644 index 0000000000..c2e9d3ec78 --- /dev/null +++ b/maps/tether/submaps/underdark_pois/old_drone_hive.dmm @@ -0,0 +1,138 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"b" = ( +/turf/template_noop, +/area/mine/explored/underdark) +"c" = ( +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"d" = ( +/obj/effect/decal/remains/tajaran, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"e" = ( +/obj/effect/decal/remains/tajaran, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"f" = ( +/obj/random/underdark, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"g" = ( +/obj/effect/decal/remains/deer, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"h" = ( +/obj/structure/ore_box, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"i" = ( +/turf/simulated/wall, +/area/mine/explored/underdark) +"j" = ( +/obj/random/underdark, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"k" = ( +/obj/structure/old_roboprinter, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"l" = ( +/obj/tether_away_spawner/underdark_drone_swarm, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) +"m" = ( +/obj/structure/barricade, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"n" = ( +/obj/machinery/door/airlock/multi_tile/glass, +/turf/simulated/floor/tiled/steel_dirty/virgo3b, +/area/mine/explored/underdark) + +(1,1,1) = {" +b +b +f +b +b +i +d +i +i +i +i +i +"} +(2,1,1) = {" +b +b +a +b +b +i +c +c +c +c +c +i +"} +(3,1,1) = {" +a +e +a +m +h +n +c +k +k +k +c +i +"} +(4,1,1) = {" +a +a +a +m +a +c +c +c +c +c +c +i +"} +(5,1,1) = {" +b +b +g +b +b +i +c +l +l +l +c +i +"} +(6,1,1) = {" +b +b +a +b +b +i +j +i +i +i +i +i +"} diff --git a/maps/tether/submaps/underdark_pois/phoron_rat_den.dmm b/maps/tether/submaps/underdark_pois/phoron_rat_den.dmm new file mode 100644 index 0000000000..5846c72a14 --- /dev/null +++ b/maps/tether/submaps/underdark_pois/phoron_rat_den.dmm @@ -0,0 +1,309 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/simulated/floor/outdoors/dirt/virgo3b, +/area/mine/explored/underdark) +"b" = ( +/turf/template_noop, +/area/mine/explored/underdark) +"c" = ( +/turf/simulated/mineral/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"d" = ( +/obj/effect/decal/cleanable/blood/tracks/paw, +/obj/effect/decal/cleanable/blood/drip, +/turf/simulated/floor/outdoors/dirt/virgo3b, +/area/mine/explored/underdark) +"f" = ( +/obj/structure/barricade, +/turf/simulated/floor/outdoors/dirt/virgo3b, +/area/mine/explored/underdark) +"g" = ( +/turf/simulated/floor/outdoors/dirt/virgo3b, +/area/mine/explored/underdark) +"h" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/simulated/floor/outdoors/dirt/virgo3b, +/area/mine/explored/underdark) +"i" = ( +/obj/effect/decal/cleanable/blood/tracks/paw, +/turf/simulated/floor/outdoors/dirt/virgo3b, +/area/mine/explored/underdark) +"j" = ( +/obj/effect/decal/remains/mouse, +/turf/simulated/floor/outdoors/dirt/virgo3b, +/area/mine/explored/underdark) +"k" = ( +/mob/living/simple_mob/vore/aggressive/rat/phoron, +/turf/simulated/floor/outdoors/dirt/virgo3b, +/area/mine/explored/underdark) +"l" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/blood, +/turf/simulated/floor/outdoors/dirt/virgo3b, +/area/mine/explored/underdark) +"m" = ( +/obj/effect/decal/remains/deer, +/obj/effect/decal/cleanable/blood, +/turf/simulated/floor/outdoors/dirt/virgo3b, +/area/mine/explored/underdark) +"n" = ( +/obj/structure/frame, +/turf/simulated/floor/outdoors/dirt/virgo3b, +/area/mine/explored/underdark) +"o" = ( +/obj/structure/bonfire/permanent, +/turf/simulated/floor/outdoors/dirt/virgo3b, +/area/mine/explored/underdark) +"p" = ( +/obj/effect/decal/cleanable/blood, +/turf/simulated/floor/outdoors/dirt/virgo3b, +/area/mine/explored/underdark) +"q" = ( +/obj/effect/decal/remains/tajaran, +/obj/effect/decal/cleanable/blood, +/turf/simulated/floor/outdoors/dirt/virgo3b, +/area/mine/explored/underdark) +"r" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/structure/barricade, +/turf/simulated/floor/outdoors/dirt/virgo3b, +/area/mine/explored/underdark) +"s" = ( +/obj/effect/decal/remains/human, +/obj/effect/decal/cleanable/blood, +/turf/simulated/floor/outdoors/dirt/virgo3b, +/area/mine/explored/underdark) +"t" = ( +/obj/structure/girder, +/turf/simulated/floor/outdoors/dirt/virgo3b, +/area/mine/explored/underdark) +"u" = ( +/obj/structure/outcrop/diamond, +/turf/simulated/floor/outdoors/dirt/virgo3b, +/area/mine/explored/underdark) + +(1,1,1) = {" +b +b +b +c +c +c +c +c +c +c +c +c +"} +(2,1,1) = {" +b +b +b +c +a +g +g +g +g +p +m +c +"} +(3,1,1) = {" +b +b +b +c +g +k +g +g +k +g +p +c +"} +(4,1,1) = {" +c +c +c +c +g +g +g +g +g +g +q +c +"} +(5,1,1) = {" +a +g +g +g +g +g +g +g +g +g +g +c +"} +(6,1,1) = {" +d +d +d +i +j +g +g +n +g +g +g +c +"} +(7,1,1) = {" +c +g +h +i +g +g +g +g +g +g +g +c +"} +(8,1,1) = {" +c +g +h +d +d +l +m +o +g +g +q +c +"} +(9,1,1) = {" +c +g +g +g +g +g +h +h +g +g +g +c +"} +(10,1,1) = {" +c +g +g +u +g +m +g +h +g +g +s +c +"} +(11,1,1) = {" +f +g +g +g +g +g +g +h +g +g +g +c +"} +(12,1,1) = {" +f +g +g +g +g +g +g +h +g +g +g +c +"} +(13,1,1) = {" +c +c +c +c +g +k +g +h +g +g +g +c +"} +(14,1,1) = {" +b +b +b +c +g +g +g +h +g +g +m +c +"} +(15,1,1) = {" +b +b +b +c +t +g +g +h +g +p +m +c +"} +(16,1,1) = {" +b +b +b +c +c +c +c +r +c +c +c +c +"} diff --git a/maps/tether/submaps/underdark_pois/puzzle_corridor.dmm b/maps/tether/submaps/underdark_pois/puzzle_corridor.dmm new file mode 100644 index 0000000000..8e0f2ae6c0 --- /dev/null +++ b/maps/tether/submaps/underdark_pois/puzzle_corridor.dmm @@ -0,0 +1,111 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"b" = ( +/turf/unsimulated/mineral/virgo3b, +/area/mine/explored/underdark) +"c" = ( +/obj/tether_away_spawner/underdark_normal, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"d" = ( +/turf/template_noop, +/area/mine/explored/underdark) + +(1,1,1) = {" +d +d +d +b +a +a +b +a +b +a +b +d +d +d +"} +(2,1,1) = {" +b +b +b +a +a +a +b +a +b +a +c +b +b +b +"} +(3,1,1) = {" +a +a +a +a +a +b +a +a +b +b +b +b +a +a +"} +(4,1,1) = {" +a +a +b +a +b +a +a +a +a +b +a +a +a +a +"} +(5,1,1) = {" +b +b +b +a +a +a +c +b +a +a +a +b +b +b +"} +(6,1,1) = {" +d +d +b +a +a +b +b +a +a +b +a +b +d +d +"} diff --git a/maps/tether/submaps/underdark_pois/rad_threat.dmm b/maps/tether/submaps/underdark_pois/rad_threat.dmm new file mode 100644 index 0000000000..3b82e11b08 --- /dev/null +++ b/maps/tether/submaps/underdark_pois/rad_threat.dmm @@ -0,0 +1,63 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"b" = ( +/turf/template_noop, +/area/mine/explored/underdark) +"c" = ( +/obj/effect/map_effect/radiation_emitter{ + desc = "if you can see this, poke a coder" + }, +/obj/item/poi/brokenoldreactor, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) + +(1,1,1) = {" +b +b +a +a +b +b +"} +(2,1,1) = {" +a +a +a +a +a +a +"} +(3,1,1) = {" +b +a +a +c +a +b +"} +(4,1,1) = {" +b +a +a +a +a +b +"} +(5,1,1) = {" +a +a +a +a +a +a +"} +(6,1,1) = {" +b +b +a +a +b +b +"} diff --git a/maps/tether/submaps/underdark_pois/rykka_easter_egg.dmm b/maps/tether/submaps/underdark_pois/rykka_easter_egg.dmm new file mode 100644 index 0000000000..df6306c246 --- /dev/null +++ b/maps/tether/submaps/underdark_pois/rykka_easter_egg.dmm @@ -0,0 +1,66 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"b" = ( +/turf/simulated/mineral/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"c" = ( +/obj/structure/dogbed, +/mob/living/simple_mob/animal/wolf/phoron{ + attacktext = list("attacked, bites, gnaws"); + color = "#6D5843"; + desc = "This canine looks like a GSD. It has a collar tagged, 'Bitch'"; + friendly = list("nuzzles, cuddles, rubs against"); + name = "Rykka"; + size_multiplier = 1.25; + tt_desc = "Canidae"; + vore_bump_chance = 100; + vore_bump_emote = "clamps down on with iron jaws"; + vore_default_contamination_color = "purple"; + vore_default_contamination_flavor = "Acrid"; + vore_digest_chance = 85; + vore_escape_chance = 5; + vore_pounce_chance = 100; + vore_pounce_maxhealth = 100; + vore_stomach_flavor = "A black-and-purple veined gut, pulsing warmly around you. Loud gurgles sound around you as the gut squishes inwards and attempts to crush you - Rykka seems intent on digesting you, like the meat you are."; + vore_stomach_name = "Gut" + }, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) + +(1,1,1) = {" +b +b +a +b +b +"} +(2,1,1) = {" +b +a +a +a +b +"} +(3,1,1) = {" +a +a +c +a +a +"} +(4,1,1) = {" +b +a +a +a +b +"} +(5,1,1) = {" +b +b +a +b +b +"} diff --git a/maps/tether/submaps/underdark_pois/spider_nest.dmm b/maps/tether/submaps/underdark_pois/spider_nest.dmm new file mode 100644 index 0000000000..0e3233e5f8 --- /dev/null +++ b/maps/tether/submaps/underdark_pois/spider_nest.dmm @@ -0,0 +1,111 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"b" = ( +/turf/template_noop, +/area/mine/explored/underdark) +"c" = ( +/turf/simulated/mineral/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"d" = ( +/obj/tether_away_spawner/underdark_normal, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"e" = ( +/obj/effect/decal/cleanable/spiderling_remains, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"f" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"g" = ( +/obj/effect/decal/cleanable/cobweb2, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"h" = ( +/obj/structure/barricade, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"i" = ( +/obj/structure/bonfire/permanent, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"j" = ( +/obj/random/underdark/uncertain, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"k" = ( +/obj/random/underdark, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"l" = ( +/obj/random/outcrop, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) + +(1,1,1) = {" +b +c +a +e +a +b +"} +(2,1,1) = {" +c +c +a +a +a +k +"} +(3,1,1) = {" +e +f +a +d +a +a +"} +(4,1,1) = {" +e +a +a +i +a +a +"} +(5,1,1) = {" +l +d +a +j +a +a +"} +(6,1,1) = {" +b +b +a +a +d +g +"} +(7,1,1) = {" +b +b +a +e +c +c +"} +(8,1,1) = {" +b +b +h +h +c +c +"} diff --git a/maps/tether/submaps/underdark_pois/subterranean_lake.dmm b/maps/tether/submaps/underdark_pois/subterranean_lake.dmm new file mode 100644 index 0000000000..3a8f4b95a4 --- /dev/null +++ b/maps/tether/submaps/underdark_pois/subterranean_lake.dmm @@ -0,0 +1,162 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/mine/explored/underdark) +"b" = ( +/turf/simulated/floor/water, +/area/mine/explored/underdark) +"c" = ( +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"d" = ( +/turf/simulated/floor/water/deep, +/area/mine/explored/underdark) +"e" = ( +/obj/tether_away_spawner/underdark_normal, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) + +(1,1,1) = {" +a +a +c +c +c +c +c +c +a +a +"} +(2,1,1) = {" +a +e +c +b +b +b +b +c +c +a +"} +(3,1,1) = {" +c +c +b +d +d +d +d +b +c +a +"} +(4,1,1) = {" +c +b +d +d +d +d +d +d +b +c +"} +(5,1,1) = {" +c +b +d +d +d +d +d +d +b +c +"} +(6,1,1) = {" +c +b +d +d +d +d +d +d +b +c +"} +(7,1,1) = {" +c +b +d +d +d +d +d +d +b +c +"} +(8,1,1) = {" +c +b +d +d +d +d +d +d +b +c +"} +(9,1,1) = {" +c +b +d +d +d +d +d +d +b +c +"} +(10,1,1) = {" +c +c +b +d +d +d +d +b +c +a +"} +(11,1,1) = {" +a +c +c +b +b +b +b +c +e +a +"} +(12,1,1) = {" +a +a +c +c +c +c +c +c +a +a +"} diff --git a/maps/tether/submaps/underdark_pois/tree_shrine.dmm b/maps/tether/submaps/underdark_pois/tree_shrine.dmm new file mode 100644 index 0000000000..f8a43cfb93 --- /dev/null +++ b/maps/tether/submaps/underdark_pois/tree_shrine.dmm @@ -0,0 +1,115 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/simulated/floor/outdoors/dirt/virgo3b, +/area/mine/explored/underdark) +"b" = ( +/obj/structure/flora/ausbushes/ppflowers, +/turf/simulated/floor/outdoors/grass/sif/virgo3b, +/area/mine/explored/underdark) +"c" = ( +/turf/template_noop, +/area/mine/explored/underdark) +"d" = ( +/obj/structure/flora/ausbushes/fullgrass, +/turf/simulated/floor/outdoors/grass/sif/virgo3b, +/area/mine/explored/underdark) +"e" = ( +/obj/structure/flora/ausbushes/leafybush, +/turf/simulated/floor/outdoors/grass/sif/virgo3b, +/area/mine/explored/underdark) +"f" = ( +/turf/simulated/floor/outdoors/grass/sif/virgo3b, +/area/mine/explored/underdark) +"g" = ( +/obj/structure/flora/ausbushes/brflowers, +/turf/simulated/floor/outdoors/grass/sif/virgo3b, +/area/mine/explored/underdark) +"h" = ( +/obj/structure/flora/tree/pine, +/turf/simulated/floor/outdoors/grass/sif/virgo3b, +/area/mine/explored/underdark) +"i" = ( +/obj/tether_away_spawner/underdark_hard, +/turf/simulated/floor/outdoors/dirt/virgo3b, +/area/mine/explored/underdark) + +(1,1,1) = {" +c +c +c +c +c +c +c +c +"} +(2,1,1) = {" +c +i +a +a +a +a +a +c +"} +(3,1,1) = {" +c +a +b +b +d +h +a +c +"} +(4,1,1) = {" +c +a +d +b +d +d +a +c +"} +(5,1,1) = {" +c +a +e +d +g +d +a +c +"} +(6,1,1) = {" +c +a +d +f +h +b +a +c +"} +(7,1,1) = {" +c +a +a +a +a +a +a +c +"} +(8,1,1) = {" +c +c +c +c +c +c +c +c +"} diff --git a/maps/tether/submaps/underdark_pois/underdark_things.dm b/maps/tether/submaps/underdark_pois/underdark_things.dm index 3e5b682b20..e16151fbf1 100644 --- a/maps/tether/submaps/underdark_pois/underdark_things.dm +++ b/maps/tether/submaps/underdark_pois/underdark_things.dm @@ -9,7 +9,40 @@ poison_chance = 20 +// Adds Phoron Wolf +/mob/living/simple_mob/animal/wolf/phoron + + faction = "underdark" + movement_cooldown = 0 + + harm_intent_damage = 5 + melee_damage_lower = 5 + melee_damage_upper = 12 + + minbodytemp = 200 + +// Lazy way of making sure wolves survive outside. + min_oxy = 0 + max_oxy = 0 + min_tox = 0 + max_tox = 0 + min_co2 = 0 + max_co2 = 0 + min_n2 = 0 + max_n2 = 0 + // Underdark mob spawners +/obj/tether_away_spawner/underdark_drone_swarm + name = "Underdark Drone Swarm Spawner" + faction = "underdark" + atmos_comp = TRUE + prob_spawn = 100 + prob_fall = 10 + //guard = 20 + mobs_to_pick_from = list( + /mob/living/simple_mob/mechanical/corrupt_maint_drone = 3, + ) + /obj/tether_away_spawner/underdark_normal name = "Underdark Normal Spawner" faction = "underdark" diff --git a/maps/tether/submaps/underdark_pois/wolf_den.dmm b/maps/tether/submaps/underdark_pois/wolf_den.dmm new file mode 100644 index 0000000000..c342641c76 --- /dev/null +++ b/maps/tether/submaps/underdark_pois/wolf_den.dmm @@ -0,0 +1,268 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"b" = ( +/turf/template_noop, +/area/mine/explored/underdark) +"c" = ( +/turf/simulated/mineral/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"d" = ( +/obj/effect/decal/remains/tajaran, +/obj/effect/decal/cleanable/blood, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"e" = ( +/obj/effect/decal/remains/mouse, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"f" = ( +/obj/effect/decal/remains/deer, +/obj/effect/decal/cleanable/blood, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"g" = ( +/mob/living/simple_mob/animal/wolf/phoron, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"h" = ( +/obj/effect/decal/remains/ribcage, +/obj/effect/decal/cleanable/blood, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"i" = ( +/obj/effect/decal/remains/deer, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"j" = ( +/mob/living/simple_mob/otie/feral{ + faction = "underdark" + }, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"k" = ( +/obj/structure/dogbed, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"l" = ( +/obj/structure/barricade, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"m" = ( +/obj/item/broken_device/random, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"n" = ( +/obj/item/resonator/upgraded, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) +"o" = ( +/obj/item/weapon/archaeological_find, +/turf/simulated/mineral/floor/ignore_cavegen/virgo3b, +/area/mine/explored/underdark) + +(1,1,1) = {" +b +b +c +c +c +c +c +b +b +c +c +c +c +c +c +"} +(2,1,1) = {" +b +b +c +a +a +a +l +l +l +l +a +a +a +e +c +"} +(3,1,1) = {" +c +c +c +a +a +a +a +a +a +a +a +g +a +a +c +"} +(4,1,1) = {" +a +d +a +a +a +a +a +a +a +a +a +a +a +a +b +"} +(5,1,1) = {" +a +a +a +a +a +a +a +i +a +a +a +n +a +a +b +"} +(6,1,1) = {" +a +e +a +a +h +a +a +a +k +a +a +a +a +a +b +"} +(7,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +b +"} +(8,1,1) = {" +a +a +a +m +a +j +a +a +a +a +a +a +a +a +b +"} +(9,1,1) = {" +g +f +a +a +a +a +a +a +a +a +a +a +a +g +c +"} +(10,1,1) = {" +c +c +c +a +g +a +e +a +a +a +a +e +a +a +c +"} +(11,1,1) = {" +b +b +c +a +a +a +l +l +l +l +a +a +a +o +c +"} +(12,1,1) = {" +b +b +c +c +c +c +c +b +b +c +c +c +c +c +c +"} diff --git a/maps/tether/tether-01-surface1.dmm b/maps/tether/tether-01-surface1.dmm index 452bbd9111..f98378c8df 100644 --- a/maps/tether/tether-01-surface1.dmm +++ b/maps/tether/tether-01-surface1.dmm @@ -6119,6 +6119,12 @@ d2 = 4; icon_state = "0-4" }, +/obj/machinery/atmospherics/pipe/zpipe/up/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/zpipe/up/supply{ + dir = 4 + }, /turf/simulated/floor/tiled/techfloor, /area/maintenance/lower/public_garden_maintenence) "akH" = ( @@ -6128,6 +6134,12 @@ d2 = 8; icon_state = "2-8" }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, /turf/simulated/floor/plating, /area/maintenance/lower/public_garden_maintenence) "akI" = ( @@ -6209,6 +6221,8 @@ 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/tether/surfacebase/public_garden) "akT" = ( @@ -6317,6 +6331,8 @@ d2 = 2; icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/tiled, /area/tether/surfacebase/public_garden) "alf" = ( @@ -6467,12 +6483,6 @@ /turf/simulated/floor/tiled, /area/tether/surfacebase/public_garden) "alp" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -6488,6 +6498,8 @@ d2 = 4; icon_state = "1-4" }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, /turf/simulated/floor/tiled, /area/tether/surfacebase/public_garden) "alq" = ( @@ -6858,6 +6870,7 @@ icon_state = "0-2" }, /obj/effect/floor_decal/industrial/warning, +/obj/random/drinkbottle, /turf/simulated/floor, /area/maintenance/substation/mining) "alT" = ( @@ -6886,9 +6899,6 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/alarm{ - pixel_y = 22 - }, /obj/effect/floor_decal/rust, /turf/simulated/floor, /area/maintenance/substation/mining) @@ -23094,6 +23104,7 @@ pixel_x = 0; pixel_y = 26 }, +/obj/random/drinkbottle, /turf/simulated/floor/wood, /area/crew_quarters/sleep/Dorm_8) "aLT" = ( @@ -23932,8 +23943,8 @@ /turf/simulated/floor/wood, /area/crew_quarters/sleep/Dorm_8) "aNr" = ( -/obj/item/weapon/bedsheet/double, /obj/structure/bed/double/padded, +/obj/item/weapon/bedsheet/bluedouble, /turf/simulated/floor/wood, /area/crew_quarters/sleep/Dorm_8) "aNs" = ( @@ -24431,6 +24442,7 @@ pixel_x = 0; pixel_y = 26 }, +/obj/random/carp_plushie, /turf/simulated/floor/wood, /area/crew_quarters/sleep/Dorm_6) "aOr" = ( @@ -24973,8 +24985,8 @@ /turf/simulated/floor/wood, /area/crew_quarters/sleep/Dorm_6) "aPh" = ( -/obj/item/weapon/bedsheet/double, /obj/structure/bed/double/padded, +/obj/item/weapon/bedsheet/reddouble, /turf/simulated/floor/wood, /area/crew_quarters/sleep/Dorm_6) "aPi" = ( @@ -25736,9 +25748,6 @@ }, /turf/simulated/floor/tiled, /area/engineering/atmos) -"aQE" = ( -/turf/simulated/wall/r_wall, -/area/crew_quarters/sleep/Dorm_3) "aQF" = ( /obj/machinery/light{ dir = 8 @@ -26182,8 +26191,8 @@ /turf/simulated/floor/wood, /area/crew_quarters/sleep/Dorm_4) "aRq" = ( -/obj/item/weapon/bedsheet/double, /obj/structure/bed/double/padded, +/obj/item/weapon/bedsheet/yellowdouble, /turf/simulated/floor/wood, /area/crew_quarters/sleep/Dorm_4) "aRr" = ( @@ -26689,6 +26698,7 @@ dir = 1 }, /obj/machinery/atmospherics/unary/vent_scrubber/on, +/obj/random/action_figure, /turf/simulated/floor/wood, /area/crew_quarters/sleep/Dorm_2) "aSr" = ( @@ -27316,8 +27326,8 @@ /turf/simulated/floor/wood, /area/crew_quarters/sleep/Dorm_2) "aTF" = ( -/obj/item/weapon/bedsheet/double, /obj/structure/bed/double/padded, +/obj/item/weapon/bedsheet/orangedouble, /turf/simulated/floor/wood, /area/crew_quarters/sleep/Dorm_2) "aTG" = ( @@ -30861,6 +30871,29 @@ /obj/effect/step_trigger/teleporter/to_plains, /turf/simulated/floor/tiled/steel_dirty/virgo3b, /area/tether/surfacebase/outside/outside1) +"cGJ" = ( +/turf/simulated/floor/plating, +/area/maintenance/lower/mining_eva) +"guV" = ( +/obj/structure/closet, +/obj/random/drinkbottle, +/obj/random/maintenance/cargo, +/turf/simulated/floor/tiled/techfloor, +/area/maintenance/lower/vacant_site) +"obY" = ( +/obj/machinery/alarm{ + pixel_y = 22 + }, +/turf/simulated/floor/plating, +/area/maintenance/substation/mining) +"vNx" = ( +/turf/simulated/floor/plating, +/area/maintenance/substation/mining) +"yiv" = ( +/obj/structure/closet/crate, +/obj/random/maintenance/cargo, +/turf/simulated/floor/plating, +/area/maintenance/substation/mining) (1,1,1) = {" aaa @@ -33911,7 +33944,7 @@ aah aah aah aah -azs +auK auK auK auK @@ -34053,7 +34086,7 @@ aah aah aah aah -azs +auK aAs aBu aCc @@ -34195,7 +34228,7 @@ aah aah aah aah -azs +auK aAt aBv aBv @@ -34337,7 +34370,7 @@ aah aah aah aah -azs +auK aAu aBv aah @@ -34479,7 +34512,7 @@ aah aah aah aah -azs +auK aAu aBv aah @@ -34621,7 +34654,7 @@ aah aah aah aah -azs +auK abB aBv aah @@ -34763,7 +34796,7 @@ aah aah aah aah -azs +auK aAu aBv aah @@ -34905,7 +34938,7 @@ aah aah aah aah -azs +auK aAv aBv aah @@ -40978,7 +41011,7 @@ abT abT abT abT -abT +aex aex aex aex @@ -41116,12 +41149,12 @@ aah aah aah abT -abT +cGJ acS acS adp -abT aex +yiv alS amn afX @@ -41262,8 +41295,8 @@ acj acX acX adL -abT aex +vNx alT amo amI @@ -41404,8 +41437,8 @@ acQ adl ado adM -abT aex +obY alU amp amJ @@ -41546,7 +41579,7 @@ abn abn abT adN -abT +aex alC alV aex @@ -43877,7 +43910,7 @@ aOj aOj aOj aQb -aQE +aQb aQb aQb aSi @@ -44826,7 +44859,7 @@ anI aob aom ahx -apF +guV apF ahc apF diff --git a/maps/tether/tether-02-surface2.dmm b/maps/tether/tether-02-surface2.dmm index 28b09e63ef..6e10e840c4 100644 --- a/maps/tether/tether-02-surface2.dmm +++ b/maps/tether/tether-02-surface2.dmm @@ -639,27 +639,18 @@ /turf/simulated/floor/plating, /area/maintenance/lower/public_garden_maintenence/upper) "bp" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable/green{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, /obj/structure/cable/green{ d1 = 1; - d2 = 4; - icon_state = "1-4" + d2 = 2; + icon_state = "1-2" }, +/obj/machinery/alarm{ + dir = 4; + pixel_x = -23; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /turf/simulated/floor/plating, /area/maintenance/lower/public_garden_maintenence/upper) "bq" = ( @@ -4806,6 +4797,8 @@ d2 = 2; icon_state = "32-2" }, +/obj/machinery/atmospherics/pipe/zpipe/down/scrubbers, +/obj/machinery/atmospherics/pipe/zpipe/down/supply, /turf/simulated/open, /area/maintenance/lower/public_garden_maintenence/upper) "kn" = ( @@ -4896,16 +4889,23 @@ /turf/simulated/floor/tiled, /area/tether/surfacebase/public_garden_two) "kw" = ( +/obj/structure/cable/green{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/green{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, /obj/structure/cable/green{ d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/alarm{ - dir = 4; - pixel_x = -23; - pixel_y = 0 + d2 = 4; + icon_state = "1-4" }, +/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, /turf/simulated/floor/plating, /area/maintenance/lower/public_garden_maintenence/upper) "kx" = ( @@ -17834,15 +17834,8 @@ /obj/machinery/button/remote/blast_door{ id = "xenobiodiv7"; name = "Divider 7 Blast Doors"; - pixel_x = -38; - pixel_y = 0; - req_access = list(55) - }, -/obj/machinery/button/remote/blast_door{ - id = "xenocont1"; - name = "Exterior Containment Blast Doors"; pixel_x = -30; - pixel_y = -8; + pixel_y = -5; req_access = list(55) }, /obj/machinery/button/remote/blast_door{ @@ -21456,6 +21449,7 @@ d2 = 0; icon_state = "16-0" }, +/obj/structure/disposalpipe/up, /turf/simulated/floor/tiled/dark, /area/rnd/outpost/xenobiology/outpost_slimepens) "Or" = ( @@ -21702,6 +21696,10 @@ d2 = 8; icon_state = "4-8" }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, /turf/simulated/floor/tiled/dark, /area/rnd/outpost/xenobiology/outpost_slimepens) "OJ" = ( @@ -21722,15 +21720,8 @@ /obj/machinery/button/remote/blast_door{ id = "xenobiodiv8"; name = "Divider 8 Blast Doors"; - pixel_x = 38; - pixel_y = 0; - req_access = list(55) - }, -/obj/machinery/button/remote/blast_door{ - id = "xenocont2"; - name = "Exterior Containment Blast Doors"; pixel_x = 30; - pixel_y = -8; + pixel_y = -5; req_access = list(55) }, /obj/machinery/button/remote/blast_door{ @@ -21784,16 +21775,28 @@ /area/rnd/outpost/xenobiology/outpost_slimepens) "OP" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 + dir = 5 }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + icon_state = "intact-supply"; + dir = 5 + }, +/obj/structure/cable/green{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 }, /turf/simulated/floor/tiled/dark, /area/rnd/outpost/xenobiology/outpost_slimepens) "OQ" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 +/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" }, /turf/simulated/floor/tiled/dark, /area/rnd/outpost/xenobiology/outpost_slimepens) @@ -21829,31 +21832,20 @@ /turf/simulated/floor/tiled/techfloor, /area/maintenance/lower/south) "OU" = ( -/obj/machinery/light{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 }, -/obj/machinery/alarm{ - alarm_id = null; - breach_detection = 0; - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/tiled/dark, /area/rnd/outpost/xenobiology/outpost_slimepens) "OV" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - icon_state = "intact-supply"; - dir = 5 - }, -/obj/structure/cable/green{ - d1 = 1; - d2 = 8; - icon_state = "1-8" +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 }, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/tiled/dark, /area/rnd/outpost/xenobiology/outpost_slimepens) "OW" = ( @@ -23241,6 +23233,11 @@ dir = 9 }, /obj/machinery/light/small, +/obj/structure/mirror{ + dir = 4; + pixel_x = 25; + pixel_y = 0 + }, /turf/simulated/floor/tiled/dark, /area/tether/surfacebase/medical/resleeving) "Rh" = ( @@ -26920,6 +26917,7 @@ /obj/machinery/door/airlock/maintenance/common, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/door/firedoor/glass, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor, /area/maintenance/lower/north) "Wq" = ( @@ -27227,6 +27225,60 @@ /obj/item/toy/syndicateballoon, /turf/simulated/floor, /area/tether/surfacebase/outside/outside2) +"WH" = ( +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/tiled/dark, +/area/rnd/outpost/xenobiology/outpost_slimepens) +"WI" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/alarm{ + alarm_id = null; + breach_detection = 0; + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal, +/turf/simulated/floor/tiled/dark, +/area/rnd/outpost/xenobiology/outpost_slimepens) +"WJ" = ( +/obj/machinery/recharger/wallcharger{ + pixel_y = -38 + }, +/obj/machinery/recharger/wallcharger{ + pixel_y = -28 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/simulated/floor/tiled/dark, +/area/rnd/outpost/xenobiology/outpost_slimepens) +"WK" = ( +/obj/machinery/button/remote/blast_door{ + id = "xenocont1"; + name = "Exterior Containment Blast Doors"; + pixel_x = -30; + pixel_y = -25; + req_access = list(55) + }, +/turf/simulated/floor/tiled/dark, +/area/rnd/outpost/xenobiology/outpost_slimepens) +"WL" = ( +/obj/machinery/button/remote/blast_door{ + id = "xenocont2"; + name = "Exterior Containment Blast Doors"; + pixel_x = 30; + pixel_y = -25; + req_access = list(55) + }, +/turf/simulated/floor/tiled/dark, +/area/rnd/outpost/xenobiology/outpost_slimepens) "WO" = ( /obj/machinery/atmospherics/pipe/simple/hidden/green{ icon_state = "intact"; @@ -27355,6 +27407,23 @@ }, /turf/simulated/floor/tiled, /area/tether/surfacebase/security/lowerhallway) +"XK" = ( +/turf/simulated/wall{ + can_open = 1 + }, +/area/maintenance/lower/bar) +"Za" = ( +/turf/simulated/wall{ + can_open = 0 + }, +/area/maintenance/lower/bar) +"Zt" = ( +/obj/structure/closet/crate, +/obj/random/cash, +/obj/random/contraband, +/obj/random/drinkbottle, +/turf/simulated/floor/plating, +/area/maintenance/lower/mining) (1,1,1) = {" aa @@ -32589,8 +32658,8 @@ Hc HV Oj Ja -Ja -OU +WK +WI Hc ab ab @@ -32729,10 +32798,10 @@ Nw KZ NT OI -OP -OQ -Ja -Pw +OU +OV +WH +WJ Hc ab ab @@ -32870,7 +32939,7 @@ JE Kq He Ot -OV +OP Ol OF Ja @@ -33012,7 +33081,7 @@ JD OA Op Oq -OA +OQ Ov Ja Ja @@ -33441,7 +33510,7 @@ NW OL Mj Ja -Ja +WL Px Hc ab @@ -33636,8 +33705,8 @@ ac ac bn km -kw bp +kw bB bX bn @@ -41881,7 +41950,7 @@ dJ df ad Th -Th +Zt ny ny dY @@ -42166,8 +42235,8 @@ ec du du du -du -du +Za +XK du du du diff --git a/maps/tether/tether-03-surface3.dmm b/maps/tether/tether-03-surface3.dmm index 209ce9bc2f..fe0ba3f7b5 100644 --- a/maps/tether/tether-03-surface3.dmm +++ b/maps/tether/tether-03-surface3.dmm @@ -1605,6 +1605,7 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 8 }, +/obj/item/device/retail_scanner/security, /turf/simulated/floor/tiled/dark, /area/tether/surfacebase/security/armory) "dg" = ( @@ -2110,6 +2111,7 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 }, +/obj/item/device/retail_scanner/security, /turf/simulated/floor/tiled/dark, /area/tether/surfacebase/security/armory) "ec" = ( @@ -2882,6 +2884,7 @@ pixel_x = -22; pixel_y = 0 }, +/obj/item/device/retail_scanner/security, /turf/simulated/floor/tiled, /area/tether/surfacebase/security/processing) "fo" = ( @@ -5024,7 +5027,11 @@ dir = 8; icon_state = "sink"; pixel_x = -12; - pixel_y = 8 + pixel_y = 0 + }, +/obj/structure/mirror{ + pixel_x = -25; + pixel_y = 0 }, /turf/simulated/floor/tiled/white, /area/crew_quarters/recreation_area_restroom) @@ -12884,6 +12891,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /turf/simulated/floor/tiled, /area/rnd/outpost/xenobiology/outpost_hallway) "wi" = ( @@ -15732,13 +15742,11 @@ /obj/effect/floor_decal/borderfloor{ dir = 1 }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" - }, /obj/effect/floor_decal/corner/mauve/border{ dir = 1 }, +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal, /turf/simulated/floor/tiled, /area/rnd/research/researchdivision) "Ao" = ( @@ -16300,9 +16308,6 @@ /turf/simulated/floor/tiled/steel_grid, /area/assembly/robotics) "AY" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/effect/floor_decal/borderfloor{ dir = 1; icon_state = "borderfloor"; @@ -16321,6 +16326,10 @@ dir = 4 }, /obj/effect/floor_decal/steeldecal/steel_decals7, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, /turf/simulated/floor/tiled, /area/rnd/research/researchdivision) "AZ" = ( @@ -16876,6 +16885,9 @@ pixel_y = -24; req_one_access = list(47,55) }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /turf/simulated/floor/tiled, /area/rnd/outpost/xenobiology/outpost_north_airlock) "BL" = ( @@ -19423,9 +19435,9 @@ /obj/effect/floor_decal/steeldecal/steel_decals7{ dir = 6 }, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" +/obj/structure/disposalpipe/junction{ + icon_state = "pipe-j2"; + dir = 4 }, /turf/simulated/floor/tiled, /area/rnd/research/researchdivision) @@ -19441,6 +19453,10 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 1 }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, /turf/simulated/floor/tiled, /area/rnd/research/researchdivision) "FP" = ( @@ -20780,32 +20796,10 @@ /turf/simulated/floor/tiled/dark, /area/rnd/outpost/xenobiology/outpost_south_airlock) "HH" = ( -/obj/structure/lattice, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/zpipe/down/scrubbers{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/zpipe/down/supply{ - dir = 1 - }, -/obj/structure/cable/green{ - d1 = 32; - icon_state = "32-1" - }, -/obj/structure/window/basic/full, -/obj/structure/grille, -/obj/structure/window/basic, -/obj/structure/window/basic{ - dir = 8 - }, -/obj/structure/window/basic{ - dir = 1 - }, -/obj/structure/window/basic{ - dir = 4 - }, -/turf/simulated/open, -/area/rnd/outpost/xenobiology/outpost_stairs) +/obj/structure/shuttle/engine/propulsion, +/turf/simulated/floor/reinforced, +/turf/simulated/shuttle/plating/carry, +/area/shuttle/tether/surface) "HI" = ( /obj/structure/disposalpipe/segment, /obj/machinery/alarm{ @@ -25074,6 +25068,24 @@ /turf/simulated/floor/wood, /area/rnd/outpost/xenobiology/outpost_office) "Qd" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/structure/cable/green{ + icon_state = "1-4" + }, +/obj/structure/cable/green{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/junction{ + dir = 1; + icon_state = "pipe-j2" + }, +/turf/simulated/floor/tiled/dark, +/area/rnd/outpost/xenobiology/outpost_main) +"Qe" = ( /obj/machinery/light_switch{ dir = 4; pixel_x = -28 @@ -25081,18 +25093,9 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 4 }, -/turf/simulated/floor/tiled/dark, -/area/rnd/outpost/xenobiology/outpost_main) -"Qe" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable/green{ - icon_state = "1-2" +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" }, /turf/simulated/floor/tiled/dark, /area/rnd/outpost/xenobiology/outpost_main) @@ -25143,6 +25146,22 @@ /turf/simulated/floor/wood, /area/rnd/outpost/xenobiology/outpost_office) "Qn" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable/green{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/sortjunction{ + name = "Xenobiology"; + sortType = "Xenobiology" + }, +/turf/simulated/floor/tiled/dark, +/area/rnd/outpost/xenobiology/outpost_main) +"Qo" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ icon_state = "intact-scrubbers"; dir = 4 @@ -25153,9 +25172,26 @@ /obj/structure/cable/green{ icon_state = "2-4" }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, /turf/simulated/floor/wood, /area/rnd/outpost/xenobiology/outpost_office) -"Qo" = ( +"Qp" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + icon_state = "intact-scrubbers"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/turf/simulated/floor/tiled/dark, +/area/rnd/outpost/xenobiology/outpost_main) +"Qq" = ( /obj/machinery/door/airlock/research{ name = "Xenobiology Office"; req_access = list(); @@ -25172,39 +25208,11 @@ /obj/structure/cable/green{ icon_state = "4-8" }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/simulated/floor/tiled/steel, /area/rnd/outpost/xenobiology/outpost_office) -"Qp" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - icon_state = "intact-scrubbers"; - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/cable/green{ - icon_state = "4-8" - }, -/turf/simulated/floor/tiled/dark, -/area/rnd/outpost/xenobiology/outpost_main) -"Qq" = ( -/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, -/obj/structure/disposalpipe/junction{ - dir = 1 - }, -/obj/structure/cable/green{ - icon_state = "1-2" - }, -/obj/structure/cable/green{ - icon_state = "1-8" - }, -/obj/structure/cable/green{ - icon_state = "1-4" - }, -/obj/machinery/hologram/holopad, -/turf/simulated/floor/tiled/dark, -/area/rnd/outpost/xenobiology/outpost_main) "Qr" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -25307,16 +25315,22 @@ /turf/simulated/floor/wood, /area/rnd/outpost/xenobiology/outpost_office) "QA" = ( -/obj/machinery/vending/coffee, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + icon_state = "intact-scrubbers"; + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /obj/structure/cable/green{ - icon_state = "1-2" + icon_state = "4-8" }, -/obj/machinery/light_switch{ +/obj/structure/disposalpipe/segment{ dir = 8; - pixel_x = 24 + icon_state = "pipe-c" }, -/turf/simulated/floor/wood, -/area/rnd/outpost/xenobiology/outpost_office) +/turf/simulated/floor/tiled/dark, +/area/rnd/outpost/xenobiology/outpost_main) "QB" = ( /obj/machinery/light{ dir = 8; @@ -25414,15 +25428,15 @@ /turf/simulated/floor/wood, /area/rnd/outpost/xenobiology/outpost_office) "QL" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "east bump"; - pixel_x = 28 +/obj/machinery/vending/coffee, +/obj/structure/cable/green{ + icon_state = "1-2" }, -/obj/machinery/light{ - dir = 4 +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 24 }, -/obj/structure/cable/green, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/wood, /area/rnd/outpost/xenobiology/outpost_office) "QM" = ( @@ -25567,7 +25581,6 @@ "Rc" = ( /obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, /obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, -/obj/structure/disposalpipe/junction, /obj/structure/cable/green{ icon_state = "1-2" }, @@ -25578,6 +25591,9 @@ icon_state = "1-4" }, /obj/machinery/hologram/holopad, +/obj/structure/disposalpipe/junction{ + dir = 1 + }, /turf/simulated/floor/tiled/dark, /area/rnd/outpost/xenobiology/outpost_main) "Rd" = ( @@ -25661,22 +25677,24 @@ /turf/simulated/wall, /area/rnd/outpost/xenobiology/outpost_decon) "Ro" = ( -/obj/structure/table/standard, -/obj/item/toy/plushie/purple_fox, -/obj/machinery/firealarm{ - dir = 4; - layer = 3.3; - pixel_x = 26 +/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, +/obj/structure/cable/green{ + icon_state = "1-2" }, -/obj/machinery/recharger/wallcharger{ - pixel_x = 4; - pixel_y = 28 +/obj/structure/cable/green{ + icon_state = "1-8" }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 8 +/obj/structure/cable/green{ + icon_state = "1-4" }, -/turf/simulated/floor/tiled/techmaint, -/area/rnd/outpost/xenobiology/outpost_storage) +/obj/machinery/hologram/holopad, +/obj/structure/disposalpipe/junction{ + dir = 1; + icon_state = "pipe-j2" + }, +/turf/simulated/floor/tiled/dark, +/area/rnd/outpost/xenobiology/outpost_main) "Rp" = ( /obj/structure/closet/l3closet/scientist, /obj/machinery/atmospherics/unary/vent_scrubber/on, @@ -25755,6 +25773,7 @@ /obj/item/weapon/extinguisher, /obj/item/clothing/shoes/galoshes, /obj/item/clothing/shoes/galoshes, +/obj/item/weapon/extinguisher, /turf/simulated/floor/tiled/techmaint, /area/rnd/outpost/xenobiology/outpost_storage) "Rx" = ( @@ -26276,23 +26295,35 @@ /turf/simulated/floor/tiled/white, /area/tether/surfacebase/medical/triage) "Sr" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/disposalpipe/segment{ - dir = 8; - icon_state = "pipe-c" +/obj/structure/lattice, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/zpipe/down/scrubbers{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/zpipe/down/supply{ + dir = 1 }, /obj/structure/cable/green{ - icon_state = "1-2" + d1 = 32; + icon_state = "32-1" }, -/obj/structure/cable/green{ - icon_state = "1-4" +/obj/structure/window/basic/full, +/obj/structure/grille, +/obj/structure/window/basic, +/obj/structure/window/basic{ + dir = 8 }, -/obj/structure/cable/green{ - icon_state = "1-8" +/obj/structure/window/basic{ + dir = 1 }, -/turf/simulated/floor/tiled/dark, -/area/rnd/outpost/xenobiology/outpost_main) +/obj/structure/window/basic{ + dir = 4 + }, +/obj/structure/disposalpipe/down{ + dir = 1 + }, +/turf/simulated/open, +/area/rnd/outpost/xenobiology/outpost_stairs) "Ss" = ( /obj/structure/cable/green{ icon_state = "4-8" @@ -26969,8 +27000,21 @@ /area/maintenance/lower/mining) "Tt" = ( /obj/structure/table/standard, -/obj/item/weapon/gun/energy/taser/xeno, -/obj/item/weapon/melee/baton/slime, +/obj/item/toy/plushie/purple_fox, +/obj/machinery/firealarm{ + dir = 4; + layer = 3.3; + pixel_x = 26 + }, +/obj/machinery/recharger/wallcharger{ + pixel_x = 4; + pixel_y = 28 + }, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, +/obj/item/weapon/reagent_containers/spray, +/obj/item/weapon/reagent_containers/spray, /turf/simulated/floor/tiled/techmaint, /area/rnd/outpost/xenobiology/outpost_storage) "Tu" = ( @@ -29542,11 +29586,6 @@ /turf/simulated/floor/tiled, /area/tether/surfacebase/security/upperhall) "WQ" = ( -/obj/machinery/light_switch{ - dir = 1; - pixel_x = 0; - pixel_y = -28 - }, /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 1 }, @@ -29555,16 +29594,12 @@ "WR" = ( /obj/structure/table/standard, /obj/item/weapon/gun/energy/taser/xeno, -/obj/item/weapon/melee/baton/slime, +/obj/item/weapon/melee/baton/slime/loaded, /obj/machinery/light_switch{ dir = 1; pixel_x = 0; pixel_y = -28 }, -/obj/machinery/recharger/wallcharger{ - pixel_x = 4; - pixel_y = -28 - }, /turf/simulated/floor/tiled/techmaint, /area/rnd/outpost/xenobiology/outpost_storage) "WS" = ( @@ -29985,10 +30020,43 @@ /turf/simulated/floor/wood, /area/library) "Xy" = ( -/obj/structure/shuttle/engine/propulsion, -/turf/simulated/floor/reinforced, -/turf/simulated/shuttle/plating/carry, -/area/shuttle/tether/surface) +/obj/structure/table/standard, +/obj/item/weapon/gun/energy/taser/xeno, +/obj/machinery/recharger/wallcharger{ + pixel_x = 4; + pixel_y = -28 + }, +/obj/item/weapon/melee/baton/slime/loaded, +/turf/simulated/floor/tiled/techmaint, +/area/rnd/outpost/xenobiology/outpost_storage) +"Xz" = ( +/obj/machinery/power/apc{ + dir = 4; + name = "east bump"; + pixel_x = 28 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/cable/green, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal, +/turf/simulated/floor/wood, +/area/rnd/outpost/xenobiology/outpost_office) +"XA" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/obj/machinery/light_switch{ + dir = 1; + pixel_x = 0; + pixel_y = -28 + }, +/turf/simulated/floor/tiled/white, +/area/rnd/outpost/xenobiology/outpost_first_aid) "XF" = ( /obj/machinery/power/apc{ dir = 2; @@ -35228,9 +35296,9 @@ Of Mm PO Qc -Qn -QA +Qo QL +Xz QU Ra MM @@ -35242,7 +35310,7 @@ Mq SB PV Te -PV +XA SA CO dG @@ -35370,7 +35438,7 @@ Of OR PP OR -Qo +Qq OR OR OR @@ -35511,8 +35579,8 @@ Op Ir IX QM -Qd -Qp +Qe +QA QB QM QM @@ -35653,19 +35721,19 @@ Lj Pj IZ PR -Qe -Qq +Qn +Rc QC QC QC QC PR -Rc +Ro QC RS Se +Qd Sr -HH LP Ml Ml @@ -36236,7 +36304,7 @@ Sv SJ SW Ti -Tt +WR SI dG dG @@ -36378,7 +36446,7 @@ Sw LO SX Rd -WR +Xy SI dG OF @@ -36660,7 +36728,7 @@ RV Sh Sy SI -Ro +Tt Rt RA SI @@ -43879,7 +43947,7 @@ Nk Nl NJ NP -Xy +HH KU bg Ok @@ -44021,7 +44089,7 @@ Nl Nl NK NP -Xy +HH KU bg Ok @@ -44163,7 +44231,7 @@ Nm Nl NK NP -Xy +HH KU bg Ok diff --git a/maps/tether/tether-05-station1.dmm b/maps/tether/tether-05-station1.dmm index 01a216cd3b..76e1833a35 100644 --- a/maps/tether/tether-05-station1.dmm +++ b/maps/tether/tether-05-station1.dmm @@ -131,7 +131,7 @@ "acA" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet,/obj/random/contraband,/obj/random/junk,/turf/simulated/floor,/area/maintenance/station/eng_lower) "acB" = (/obj/structure/table/steel,/obj/random/tool,/obj/random/maintenance/medical,/turf/simulated/floor,/area/maintenance/station/eng_lower) "acC" = (/obj/structure/railing{dir = 8},/obj/structure/railing{dir = 1},/turf/simulated/floor/water/pool,/area/hallway/station/atrium) -"acD" = (/obj/structure/table/woodentable,/turf/simulated/floor/wood,/area/hallway/station/atrium) +"acD" = (/obj/item/weapon/reagent_containers/food/snacks/donut/cherryjelly,/obj/structure/table/woodentable,/turf/simulated/floor/grass,/area/hallway/station/atrium) "acE" = (/obj/structure/table/woodentable,/obj/machinery/door/blast/shutters{dir = 8; id = "cafe2"; layer = 3.1; name = "Cafe Shutters"},/turf/simulated/floor/wood,/area/hallway/station/atrium) "acF" = (/obj/structure/flora/ausbushes/ppflowers,/turf/simulated/floor/grass,/area/hallway/station/atrium) "acG" = (/obj/structure/flora/ausbushes/brflowers,/turf/simulated/floor/grass,/area/hallway/station/atrium) @@ -154,8 +154,8 @@ "acX" = (/obj/structure/table/reinforced,/obj/effect/floor_decal/borderfloor{dir = 9},/obj/effect/floor_decal/industrial/danger{icon_state = "danger"; dir = 9},/obj/machinery/status_display{pixel_y = 32},/turf/simulated/floor/tiled,/area/engineering/engine_monitoring) "acY" = (/obj/structure/bed/chair/wood{dir = 4},/turf/simulated/floor/grass,/area/hallway/station/atrium) "acZ" = (/obj/structure/railing{dir = 4},/obj/structure/railing{dir = 1},/turf/simulated/floor/water/pool,/area/hallway/station/atrium) -"ada" = (/obj/structure/table/wooden_reinforced,/turf/simulated/floor/grass,/area/hallway/station/atrium) -"adb" = (/obj/structure/bed/chair/wood{dir = 1},/turf/simulated/floor/grass,/area/hallway/station/atrium) +"ada" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/grass,/area/hallway/station/atrium) +"adb" = (/obj/effect/landmark/engine_loader_pickable{clean_turfs = list(list(20,93,30,118),list(31,94,35,96),list(29,97,43,118),list(44,113,46,118))},/turf/space,/area/space) "adc" = (/obj/structure/bed/chair/wood{dir = 8},/turf/simulated/floor/grass,/area/hallway/station/atrium) "add" = (/obj/structure/bed/chair/wood,/turf/simulated/floor/grass,/area/hallway/station/atrium) "ade" = (/obj/machinery/atmospherics/portables_connector,/turf/simulated/floor/tiled,/area/engineering/atmos/backup) @@ -177,8 +177,8 @@ "adu" = (/obj/effect/floor_decal/steeldecal/steel_decals7{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals7{dir = 6},/turf/simulated/floor/tiled,/area/engineering/hallway) "adv" = (/obj/effect/floor_decal/steeldecal/steel_decals7{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals7{dir = 10},/turf/simulated/floor/tiled,/area/engineering/hallway) "adw" = (/obj/structure/curtain/open/bed,/obj/structure/bed/padded,/obj/item/weapon/bedsheet/blue,/obj/random/plushie,/turf/simulated/floor,/area/maintenance/station/eng_lower) -"adx" = (/obj/structure/table/marble,/obj/machinery/floor_light/prebuilt{on = 1},/obj/machinery/door/blast/shutters{dir = 2; id = "cafe2"; layer = 3.1; name = "Cafe Shutters"},/turf/simulated/floor/tiled,/area/hallway/station/atrium) -"ady" = (/obj/structure/table/marble,/obj/machinery/floor_light/prebuilt{on = 1},/obj/machinery/door/blast/shutters{dir = 2; id = "cafe2"; layer = 3.1; name = "Cafe Shutters"},/turf/simulated/floor/wood,/area/hallway/station/atrium) +"adx" = (/obj/structure/table/marble,/obj/machinery/floor_light/prebuilt{on = 1},/obj/machinery/door/blast/shutters{dir = 2; id = "cafe2"; layer = 3.1; name = "Cafe Shutters"},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/tiled,/area/hallway/station/atrium) +"ady" = (/obj/machinery/floor_light/prebuilt{on = 1},/obj/machinery/door/blast/shutters{dir = 2; id = "cafe2"; layer = 3.1; name = "Cafe Shutters"},/obj/structure/window/reinforced{dir = 1},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/wood,/area/hallway/station/atrium) "adz" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/disposal,/turf/simulated/floor/grass,/area/hallway/station/atrium) "adA" = (/obj/structure/table/woodentable,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/item/device/flashlight/lamp{pixel_x = 2; pixel_y = 7},/turf/simulated/floor/lino,/area/chapel/office) "adB" = (/obj/structure/table/woodentable,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 8},/obj/item/weapon/pen/blue{pixel_x = 2; pixel_y = 1},/turf/simulated/floor/lino,/area/chapel/office) @@ -298,7 +298,6 @@ "afL" = (/turf/simulated/floor/tiled,/area/engineering/engine_monitoring) "afM" = (/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled,/area/engineering/engine_monitoring) "afN" = (/obj/machinery/disposal,/obj/effect/floor_decal/corner/lightgrey{dir = 9},/obj/effect/floor_decal/corner/lightgrey{dir = 6},/obj/structure/disposalpipe/trunk,/turf/simulated/floor/tiled,/area/hallway/station/atrium) -"afO" = (/obj/effect/landmark/engine_loader_pickable{clean_turfs = list(list(20,93,30,118),list(31,94,35,96),list(29,97,43,118),list(44,113,46,118))},/turf/space,/area/space) "afP" = (/obj/structure/grille,/obj/structure/window/reinforced/full,/obj/machinery/door/firedoor/glass,/turf/simulated/floor,/area/engineering/engine_monitoring) "afQ" = (/obj/machinery/light{dir = 1},/obj/machinery/recharge_station,/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/yellow/border{dir = 1},/obj/effect/floor_decal/borderfloor/corner2{dir = 4},/obj/effect/floor_decal/corner/yellow/bordercorner2{dir = 4},/turf/simulated/floor/tiled,/area/engineering/engine_monitoring) "afR" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/carpet,/area/chapel/main) @@ -324,8 +323,8 @@ "agl" = (/obj/structure/grille,/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/door/firedoor/glass,/obj/structure/window/reinforced/polarized/full{id = "hop_office"},/obj/structure/window/reinforced/polarized{dir = 1; id = "hop_office"},/turf/simulated/floor/plating,/area/crew_quarters/heads/hop) "agm" = (/obj/structure/grille,/obj/machinery/door/firedoor/glass,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/window/reinforced/polarized/full{id = "hop_office"},/turf/simulated/floor/plating,/area/crew_quarters/heads/hop) "agn" = (/obj/structure/grille,/obj/machinery/door/firedoor/glass,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/window/reinforced/polarized/full{id = "hop_office"},/turf/simulated/floor/plating,/area/crew_quarters/heads/hop) -"ago" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/floor_decal/borderfloor/corner{dir = 8},/obj/effect/floor_decal/corner/lightgrey/bordercorner{dir = 8},/obj/effect/floor_decal/steeldecal/steel_decals7{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals7{dir = 6},/turf/simulated/floor/tiled,/area/hallway/station/atrium) -"agp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/hallway/station/atrium) +"ago" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment,/obj/effect/floor_decal/borderfloor/corner{dir = 8},/obj/effect/floor_decal/corner/lightgrey/bordercorner{dir = 8},/obj/effect/floor_decal/steeldecal/steel_decals7{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals7{dir = 6},/turf/simulated/floor/tiled,/area/hallway/station/atrium) +"agp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/hallway/station/atrium) "agq" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/effect/floor_decal/borderfloor{dir = 1},/obj/effect/floor_decal/corner/lightgrey/border{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals7{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals7,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/hallway/station/atrium) "agr" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/carpet,/area/chapel/main) "ags" = (/obj/effect/floor_decal/chapel{dir = 1},/turf/simulated/floor/tiled/dark,/area/chapel/main) @@ -647,13 +646,10 @@ "amw" = (/obj/structure/railing,/obj/structure/railing{icon_state = "railing0"; dir = 4},/turf/simulated/floor/water/pool,/area/hallway/station/atrium) "amx" = (/obj/structure/railing,/obj/structure/railing{dir = 8},/turf/simulated/floor/water/pool,/area/hallway/station/atrium) "amy" = (/obj/structure/table/marble,/obj/machinery/floor_light/prebuilt{on = 1},/obj/item/weapon/reagent_containers/food/drinks/shaker,/obj/item/device/flashlight/lamp/green,/obj/item/weapon/reagent_containers/food/snacks/donut/jelly,/turf/simulated/floor/wood,/area/hallway/station/atrium) -"amz" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/donut/chaos,/turf/simulated/floor/wood,/area/hallway/station/atrium) -"amA" = (/obj/structure/table/wooden_reinforced,/obj/item/weapon/reagent_containers/food/snacks/donut/cherryjelly,/turf/simulated/floor/grass,/area/hallway/station/atrium) -"amB" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/condiment/small/sugar,/turf/simulated/floor/wood,/area/hallway/station/atrium) "amC" = (/obj/structure/table/woodentable,/obj/machinery/door/blast/shutters{dir = 8; id = "cafe2"; layer = 3.1; name = "Cafe Shutters"},/obj/item/weapon/reagent_containers/food/condiment/small/sugar,/turf/simulated/floor/wood,/area/hallway/station/atrium) "amD" = (/obj/structure/table/woodentable,/obj/machinery/door/blast/shutters{dir = 4; id = "cafe2"; layer = 3.1; name = "Cafe Shutters"},/obj/item/weapon/reagent_containers/food/condiment/small/sugar,/turf/simulated/floor/wood,/area/hallway/station/atrium) "amE" = (/obj/machinery/portable_atmospherics/powered/pump/filled,/turf/simulated/floor/plating,/area/storage/emergency_storage/emergency4) -"amF" = (/obj/machinery/door/blast/shutters{dir = 2; id = "cafe2"; layer = 3.1; name = "Cafe Shutters"},/turf/simulated/floor/wood,/area/hallway/station/atrium) +"amF" = (/obj/machinery/door/blast/shutters{dir = 2; id = "cafe2"; layer = 3.1; name = "Cafe Shutters"},/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/condiment/small/sugar,/turf/simulated/floor/wood,/area/hallway/station/atrium) "amG" = (/obj/structure/table/marble,/obj/machinery/floor_light/prebuilt{on = 1},/obj/machinery/chemical_dispenser/bar_coffee/full,/turf/simulated/floor/wood,/area/hallway/station/atrium) "amH" = (/obj/structure/railing{dir = 4},/obj/structure/railing,/turf/simulated/floor/water/pool,/area/hallway/station/atrium) "amI" = (/obj/structure/flora/ausbushes/brflowers,/obj/machinery/light/flamp/noshade,/turf/simulated/floor/grass,/area/hallway/station/atrium) @@ -1338,7 +1334,7 @@ "aGi" = (/obj/structure/displaycase,/turf/simulated/floor/wood,/area/crew_quarters/captain) "aGl" = (/obj/machinery/vending/coffee,/turf/simulated/floor/tiled/monotile,/area/bridge_hallway) "aGs" = (/obj/effect/floor_decal/steeldecal/steel_decals7{dir = 9},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/yellow/border{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals7{dir = 10},/obj/machinery/firealarm{dir = 4; layer = 3.3; pixel_x = 26},/turf/simulated/floor/tiled,/area/engineering/hallway) -"aGx" = (/obj/structure/mirror{dir = 4; pixel_x = 32; pixel_y = 0},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/engi_wash) +"aGx" = (/obj/structure/mirror{dir = 4; pixel_x = 28; pixel_y = 0},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/engi_wash) "aGy" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/maintenance/station/eng_lower) "aGz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/effect/floor_decal/sign/dock/one,/turf/simulated/floor/tiled,/area/tether/station/dock_one) "aGB" = (/turf/simulated/wall/r_wall,/area/engineering/engineering_airlock) @@ -1381,7 +1377,7 @@ "aIi" = (/obj/machinery/atmospherics/pipe/simple/hidden/cyan{icon_state = "intact"; dir = 9},/turf/simulated/floor/tiled,/area/engineering/hallway) "aIj" = (/obj/machinery/teleport/hub{dir = 2},/turf/simulated/floor/tiled/dark,/area/teleporter) "aIl" = (/obj/effect/floor_decal/steeldecal/steel_decals7{dir = 9},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/yellow/border{dir = 4},/obj/effect/floor_decal/steeldecal/steel_decals7{dir = 10},/obj/structure/extinguisher_cabinet{dir = 8; icon_state = "extinguisher_closed"; pixel_x = 30},/turf/simulated/floor/tiled,/area/engineering/hallway) -"aIn" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/structure/mirror{dir = 4; pixel_x = 32; pixel_y = 0},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/engi_wash) +"aIn" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/structure/mirror{dir = 4; pixel_x = 28; pixel_y = 0},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/crew_quarters/sleep/engi_wash) "aIo" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 28},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor,/area/maintenance/station/eng_lower) "aIp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor,/area/maintenance/station/eng_lower) "aIq" = (/obj/machinery/alarm{pixel_y = 22},/obj/structure/table/rack{dir = 8; layer = 2.9},/obj/effect/decal/cleanable/dirt,/obj/random/maintenance/clean,/obj/random/maintenance/engineering,/obj/random/tool,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor,/area/maintenance/station/eng_lower) @@ -1744,7 +1740,7 @@ "brv" = (/obj/structure/table/standard,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled,/area/storage/tools) "brD" = (/obj/structure/table/reinforced,/obj/machinery/recharger{pixel_y = 0},/obj/machinery/alarm{dir = 8; pixel_x = 25; pixel_y = 0},/turf/simulated/floor/tiled,/area/crew_quarters/heads/hop) "brV" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals4{dir = 4},/turf/simulated/floor/tiled/white,/area/crew_quarters/toilet) -"brX" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/light{dir = 1},/obj/structure/mirror{dir = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/crew_quarters/toilet) +"brX" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/light{dir = 1},/obj/structure/mirror{dir = 4; pixel_x = 28; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/crew_quarters/toilet) "bsl" = (/obj/structure/flora/pottedplant,/obj/machinery/firealarm{dir = 2; layer = 3.3; pixel_x = 0; pixel_y = 26},/obj/machinery/camera/network/tether,/turf/simulated/floor/tiled,/area/hallway/station/docks) "bsv" = (/obj/structure/bed/chair,/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/tiled,/area/hallway/station/docks) "bsH" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/secure/briefcase,/obj/machinery/button/remote/blast_door{id = "bridge blast"; name = "Bridge Blastdoors"; pixel_x = 0; pixel_y = -20},/obj/item/weapon/book/manual/command_guide,/obj/item/weapon/book/manual/standard_operating_procedure,/turf/simulated/floor/tiled/dark,/area/bridge) @@ -1767,7 +1763,7 @@ "bvb" = (/obj/machinery/door/firedoor/glass,/obj/machinery/door/airlock/glass_command{name = "Bridge"; req_access = list(19)},/turf/simulated/floor/tiled/steel_grid,/area/bridge) "bvd" = (/obj/effect/floor_decal/steeldecal/steel_decals7{dir = 9},/obj/effect/floor_decal/borderfloor{dir = 4},/obj/effect/floor_decal/corner/blue/border{dir = 4},/obj/effect/floor_decal/borderfloor/corner2{dir = 5},/obj/effect/floor_decal/corner/blue/bordercorner2{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals7{dir = 10},/obj/effect/floor_decal/steeldecal/steel_decals8{dir = 1},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/bridge_hallway) "bvk" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/tiled/dark,/area/bridge) -"bvs" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{dir = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/crew_quarters/toilet) +"bvs" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/mirror{dir = 4; pixel_x = 28; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/crew_quarters/toilet) "bvt" = (/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,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/station/docks) "bvu" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/item/device/radio/intercom{dir = 2; pixel_y = -24},/turf/simulated/floor/tiled,/area/hallway/station/docks) "bvE" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"},/turf/simulated/floor/tiled,/area/hallway/station/docks) @@ -1891,6 +1887,7 @@ "bNL" = (/obj/effect/floor_decal/industrial/warning,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/tiled,/area/teleporter) "bNV" = (/obj/effect/floor_decal/industrial/warning,/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/tiled,/area/teleporter) "bNW" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 8},/turf/simulated/floor/tiled,/area/teleporter) +"bNZ" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/structure/disposalpipe/junction{dir = 1; icon_state = "pipe-j2"},/turf/simulated/floor/tiled,/area/hallway/station/atrium) "bPc" = (/obj/machinery/firealarm{dir = 4; layer = 3.3; pixel_x = 26},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor/tiled,/area/tether/station/dock_two) "bPj" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/obj/machinery/door/firedoor/glass,/obj/structure/grille,/obj/structure/window/reinforced/full,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/tether/station/dock_two) "bPl" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/tiled,/area/tether/station/dock_two) @@ -1996,16 +1993,20 @@ "kLN" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "tether_dock_pump"},/obj/machinery/light/small,/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "tether_dock_sensor"; pixel_x = 0; pixel_y = -25},/obj/machinery/embedded_controller/radio/airlock/docking_port{frequency = 1380; id_tag = "tether_dock_airlock"; pixel_x = 0; pixel_y = 30; req_one_access = list(13); tag_airpump = "tether_dock_pump"; tag_chamber_sensor = "tether_dock_sensor"; tag_exterior_door = "tether_dock_outer"; tag_interior_door = "tether_dock_inner"},/turf/simulated/floor/tiled/dark,/area/tether/station/dock_one) "lxQ" = (/obj/effect/floor_decal/borderfloor{dir = 8},/obj/effect/floor_decal/corner/blue/border{dir = 8},/obj/effect/floor_decal/steeldecal/steel_decals7{dir = 6},/obj/effect/floor_decal/steeldecal/steel_decals7{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/bridge_hallway) "lGA" = (/obj/machinery/door/firedoor/glass,/obj/structure/grille,/obj/structure/window/reinforced/full,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/tether/station/dock_one) +"mbn" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j1s"; name = "Library"; sortType = "Library"},/turf/simulated/floor/tiled,/area/hallway/station/atrium) "mNU" = (/obj/machinery/door/firedoor/glass,/obj/structure/grille,/obj/structure/window/reinforced/full,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/tether/station/dock_one) "nov" = (/obj/structure/railing,/obj/structure/table/rack{dir = 8; layer = 2.9},/obj/random/maintenance/engineering,/obj/random/maintenance/engineering,/obj/random/tech_supply,/turf/simulated/floor,/area/engineering/shaft) "oEH" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/light,/turf/simulated/floor/tiled,/area/hallway/station/docks) +"qBc" = (/obj/structure/disposalpipe/junction{dir = 1; icon_state = "pipe-j2"},/turf/simulated/floor/tiled,/area/hallway/station/atrium) "scB" = (/obj/machinery/computer/shuttle_control/tether_backup{icon_state = "computer"; dir = 8},/turf/simulated/floor/tiled,/area/tether/station/dock_one) "tpQ" = (/obj/structure/morgue/crematorium{dir = 8},/obj/structure/cable/green{icon_state = "0-8"},/turf/simulated/floor/tiled/dark,/area/chapel/chapel_morgue) "tKI" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "tether_dock"; name = "exterior access button"; pixel_x = -5; pixel_y = -26; req_one_access = list(13)},/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "tether_dock_outer"; locked = 1; name = "Docking Port Airlock"},/turf/simulated/floor/tiled/dark,/area/tether/station/dock_one) +"uiN" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/donut/chaos,/turf/simulated/floor/grass,/area/hallway/station/atrium) "uWS" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "tether_dock"; name = "interior access button"; pixel_x = 28; pixel_y = 26; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/tether/station/dock_one) "vbm" = (/obj/machinery/door/firedoor/glass,/obj/structure/grille,/obj/structure/window/reinforced/full,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/tether/station/dock_one) "vyI" = (/mob/living/simple_mob/animal/passive/snake/noodle,/turf/simulated/floor/outdoors/grass/forest,/area/crew_quarters/heads/chief) "wlD" = (/obj/machinery/door/firedoor/glass,/obj/structure/grille,/obj/structure/window/reinforced/full,/turf/simulated/floor/plating,/area/tether/station/dock_one) +"xfY" = (/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j2"},/turf/simulated/floor/tiled,/area/hallway/station/atrium) "xMk" = (/obj/structure/cable/green{icon_state = "16-0"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/railing{dir = 4},/obj/structure/railing,/turf/simulated/floor,/area/engineering/shaft) (1,1,1) = {" @@ -2057,7 +2058,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahVaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahVaaaaaaaaaaaaaaaaaaaaaaaaacgaksaksaksaksaksacgaacaacaacarqarqarqarqarqaczaczaczaczaczaczaczanlakXakWaJsaJsaJsakZalcaJsaJsaJsaikaeGackaikackackackackackackacNaeHacNacQacVaaWabaabaaeJabaabaaaWadNakJajEaeyaeyaeyakKaeyaeyalJajxadOaacaacadPahAahSahXadPaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahWaaaaaaaaaaaaaaaaaaaaaaaaacgacgacgalxalwalzabZaacaacaacarqnovxMkalKalGaczanLanPalNaowalRalWanRambalZamfamcamkamjamnanZamsampaczaeGackaikackackackackackackacNaeKaeNacQacVaeZacQafbafdacQacQafhacNajmajnajqajqajqajHaeyaeyalialCadOaacaacadPaiiaiJaiKadPaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahVaaaaaaaaaaaaaaaaaaaaaaaaaaaahWabZabvabBabEabZabZabZabZabZalGhPianeancaczaopaoraoqaoqaoqaoqanoanranqanuantantantanzanyanCanBanFanDackaikackackackackackackacNacNacNaflafHafIafRafTagracQagsagtacNajMakMalhajQajRajJaeyaeyaljaeyadPadPadPadPaiLaiLaiLadPaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOahVaaaaaaaaaaaaaaaaaaaaaaaaaaaahWaohaoXaojaolaokaonaomaooabZaczaczaotaczaoyaoZapcapbapbapbapbapbapeaoBaoFapgapgapgaijapgapgapgaijaoHjRSaikackackackackackackackackacNagyagAacQagEaheahgacQagyagAacNadOadOadOadOadOajNaeyaeyaljallakcakfaiSaiUaiSaiSakhadPaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbahVaaaaaaaaaaaaaaaaaaaaaaaaaaaahWaohaoXaojaolaokaonaomaooabZaczaczaotaczaoyaoZapcapbapbapbapbapbapeaoBaoFapgapgapgaijapgapgapgaijaoHjRSaikackackackackackackackackacNagyagAacQagEaheahgacQagyagAacNadOadOadOadOadOajNaeyaeyaljallakcakfaiSaiUaiSaiSakhadPaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahVahVahVahVahVahVahVahVaaaaaaahWaohaqKaqIappapoaprapqapuapsapwapvapyapxapDapBapIapGapKapJapJapJapMapLapgapNapPapOapTapQapQapXaijapUachaikackackackackackackackackacNalmahiahiahmahnahpahuahualnacNajTajUaloajUajTakiakrakraktakuakvakwakxakyakzaiYajaadPaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahWaaaaaaaaaaaaaaaaaaahVaaaaaacbYaqeaqfadSaqaaqJaqhadYaqjaqiaqlaqkaqoaqmaquaqqaqDaqBaqFaqEaqQaqOaqSaqRapgaqvajFaqGaqGajFapQaqHaijapUachaikackackackackackackackackacNahCahEahLacVahPahUahLahCahEacNakAajVajVajVajWakBajOajOakCakDakcajbakEakFakGaiSakHadPaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahWaaaaaaaaaaaaaaaaaaahWahWahWahWabZarzaryaRdccearBadeaqMaqMaqMaqMacSaqNaqNarEarKaqNaqNacSarVarTaqTarXasgasbasnaskasraspasxassaijapUacjaikackackackackackackackackacNaiaaicaieaifaigahUacQagyaihacNajYajZakaakbakIakUakdalkalpalqadPajcadPakLalualealeadPaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -2066,22 +2067,22 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaah aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaahVaaaaaaahWaoharlarnawkaswaszasyaqMasAaenaenaenaenaenasUasUatAawBacSawMawDarHawOapgatdapQawRapQapQapQawTaijavPaiXaikackackackackackackackackacNaiEaiHahLacVaiIahUahLaiEaiHacNajoacmalLalaajkakQalfafCaacaacaacaacaacaacaacaacaacaacaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahVaaaaaaahWabZabZarkaxBaxAaxHaxGaqMbkxaxPaxObZcatQbZdatNatSaxUaxYaxWatXatWarHaybapgatYatZawRayiauaalsaucaijaysabCaikaikaikaikaikaikafCafCafCafCaaTafaabhafWabhafcabhafaaaTafCafCafCafCalgafCafCafCafCaacaacaacaacaacaacaacaacaacaacaacaacaacaataaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahVahWahWahWahWabZaueaueaueaueaueaqMaqMaqMaqMacSaukaenaulazeaenaenaqNauwauvauyazfauzauzauzazkauzauzauzauzaijavPanEachazDazBazBazJazJazIazXafYacfagdagqagvagBagCagDahNafgaiWajrajsafeagvaldajuaALaAHashashashashashashashashashashashashaacaacaataaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahWaAQavfavfatOaARaATaASaBlamdaBpaBmavsaBqaqNbZiafUasUasUaenawlaByatXawnaBBaBAaAWaBCaBXaBDaBEaAWaciaDDaaVavPalQaBHaBRalQalTalTalTalTagwabXacnacmaCeacpacpacpagxacpacpacpacpacpacpacpacractaCxaCwaCyamgamgamgamgamgamgamgamgamgamgalAalAaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahWaGBaCBaCBatOauAauAauAauBaJlaCEauAauAaJwaCMaJxaenasUasUaCPaCQacSaCTaCRaKtaCVaAWaAWaAWaKNaLjaKUaLlaDjaaVapUalQaDsaDMalQasuaDPamEalTaDVacwadzacyacyacyacFamJacmacmacmacmamJacFacyacyacYadaacWaDZamMamgamgamgamgamgamgamgamgamgamgamNalAaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahWaGBaEaaLIatOaEbauAauAavjaLXaEfauAauAaJwaCMaJxaMZaMBaNbaNaaenaqNaEzaExaKtaEAaAWaEEaBXaOLaEMaAWaETaERaaVapUaBHaEWaEXalQaFcaEZaFfaFeaFhacmacyacyacyacGacDamCamoadxadyamtamDacDacGacyacyadbadHaFzamMamgamgamgamgamgamgamgamgamgamgaFIalAaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahWaGBaFKaFJatOaFLaFOaFLaFOaQvaFXbZtcalcakaqNaQZaQZaRwaRAaRyaRyaqNaEzaCRaKtaGsaAWaAWaAWaRZaGxaaVaaVaaVaaVaGyaGPaGIaofalQaogavSaoialTaHbacmacYamAadcacFacIacEacHadnagaacHamiacKacFacYadaadcadHaHzamMamgamgamgamgamgamgamgamgamgamgalAalAaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahWaGBaHTaHQatOatOaSCaSCaSCaSCaHYaSCaSCaSCacSaqNaqNaByaIfaqNaqNacSaEzaIiaKtaIlaAWaBCaBXaTiaInaaVatpaIoaIqaIpalQalQalQalQaoOaoOalTalTaIsacmacYadaadcacGacIacEacHamaamyacHamiacKacGacYadaadcadHaITaoVamgamgamgamgamgamgamgamgamgamgalAaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahWaAQavfavfatOaARaATaASaBlamdaBpaBmavsaBqaqNbZiafUasUasUaenawlaByatXawnaBBaBAaAWaBCaBXaBDaBEaAWaciaDDaaVavPalQaBHaBRalQalTalTalTalTagwabXacnacmaCeacpacpacpagxacpxfYacpacpacpacpacpacractaCxaCwaCyamgamgamgamgamgamgamgamgamgamgalAalAaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahWaGBaCBaCBatOauAauAauAauBaJlaCEauAauAaJwaCMaJxaenasUasUaCPaCQacSaCTaCRaKtaCVaAWaAWaAWaKNaLjaKUaLlaDjaaVapUalQaDsaDMalQasuaDPamEalTaDVacwadzacyacyacyacFamJacmacmadHacmamJacFacyacyacyadabNZaDZamMamgamgamgamgamgamgamgamgamgamgamNalAaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahWaGBaEaaLIatOaEbauAauAavjaLXaEfauAauAaJwaCMaJxaMZaMBaNbaNaaenaqNaEzaExaKtaEAaAWaEEaBXaOLaEMaAWaETaERaaVapUaBHaEWaEXalQaFcaEZaFfaFeaFhacmacyacyacyacGacIamCamoadxadyamtamDacKacGacyacyacyadHaFzamMamgamgamgamgamgamgamgamgamgamgaFIalAaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahWaGBaFKaFJatOaFLaFOaFLaFOaQvaFXbZtcalcakaqNaQZaQZaRwaRAaRyaRyaqNaEzaCRaKtaGsaAWaAWaAWaRZaGxaaVaaVaaVaaVaGyaGPaGIaofalQaogavSaoialTaHbacmacYacDadcacFacIacEacHadnagaacHamiacKacFacYuiNadcadHaHzamMamgamgamgamgamgamgamgamgamgamgalAalAaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahWaGBaHTaHQatOatOaSCaSCaSCaSCaHYaSCaSCaSCacSaqNaqNaByaIfaqNaqNacSaEzaIiaKtaIlaAWaBCaBXaTiaInaaVatpaIoaIqaIpalQalQalQalQaoOaoOalTalTaIsacmacYadladcacGacIacEacHamaamyacHamiacKacGacYadladcadHaITaoVamgamgamgamgamgamgamgamgamgamgalAaacaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahWaJhaJkaJjaJnaJmbdsaoqaTKaTJaJyaTLaoqaoqaJSaoqaUlaTQaUoaUnaTKaUpaUlatWaKtaKbaAWaAWaAWaUUaKlaaVapiaKraUXaKzaeOaeOaeOaeOaeOaeOaesaeraeMacmacyacyacyacFacIacEacHamGadMacHamiacKacFacyacyacyadHaKQaLcamgamgamgamgamgamgamgamgamgamgalAaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahWaJhaJkaLpaLtaLraLAaLyaLGaLCaLKaLHaLOaLLaLUaLPaMaaLYaMdaMcaMgaLUaLPaMhaMkaMjaAWaMlaBXaUUaMpaaVaMtaMraMxaMuaeOafyafyafyafyaeOaePacmadHacmacTacyacyamJacIacEacHacHacHacHamiacKamJacyacyacTadHaMLamMamgamgamgamgamgamgamgamgamgamgalAalAaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahWaGBaNeaNdaRbaRbagcagcagcagcaNoagcaRbaRbaltaltaNraltaltalvaXZaXZaXZaNFaNHaXZaoJaoJaoJaaVaaVaaVaqsaqtaOjaYfaeOafyafyafyafyafyaeUacmadHacmacmacmacmacmamzammammamFamFammammamzacmacmacmacmadHaFzamMamgamgamgamgamgamgamgamgamgamgaOOalAaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahWaGBaGBaGBaRbaYEaYHaYFaYJaBgaOSaRVaZgaRbaOYaOWaPaalyalIaltaoGaZraZUaPjaZWaBwaPqbePbYEaoJaacaikaPGarbaPHardaeOafyafyafyafyafyaeUacmadHacmacmacmacmacmacUacUacUamBamBacUacUacUacmacmacmacmadHaCwamMamgamgamgamgamgamgamgamgamgamgarhalAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahWaGBaNeaNdaRbaRbagcagcagcagcaNoagcaRbaRbaltaltaNraltaltalvaXZaXZaXZaNFaNHaXZaoJaoJaoJaaVaaVaaVaqsaqtaOjaYfaeOafyafyafyafyafyaeUacmadHacmacmacmacmacmacIammammamFamFammammacKacmacmacmacmadHaFzamMamgamgamgamgamgamgamgamgamgamgaOOalAaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahWaGBaGBaGBaRbaYEaYHaYFaYJaBgaOSaRVaZgaRbaOYaOWaPaalyalIaltaoGaZraZUaPjaZWaBwaPqbePbYEaoJaacaikaPGarbaPHardaeOafyafyafyafyafyaeUacmadHacmacmacmacmacmacHacUacUacUacUacUacUacHacmacmacmacmadHaCwamMamgamgamgamgamgamgamgamgamgamgarhalAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahWahWahWahWagiaQaaRVaRXbaAaTmaQkaQhaQlaRbaQsaQnaQwalXamYaltbbsaQDbbxaQJaQWaQQaQXaQXaRcaoJaacaikaRiarAaRrarCaeOafyafyafyafyaguafzacmadHacmacTacyacyacFacHacHacHacHacHacHacHacHacFacyacyacTadHaCwamMamgamgamgamgamgamgamgamgamgamgalAalAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahVaaaaaaaaaagiaSabcpaSebcnbcrbcwaRVaSuaRbandamZasSanQawmaSzbeJaSDbeLaSFbeNbeMbfobYtaSLaoJaacaikarZasaaSOascaeOaeOaeOaeOaeOaeOafAacmadHacmacyaddaddaddacGacFamIacmacmamIacFacGaddaddaddacyadHaTAashashashashashashashashasiamMasialAaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahVaaaaaaaaaagibftbfvaRXaTRaRXbfTklOaTWaRbaTXaIOaIOaSBaXXaltaoIaUkbgCaUmbgEbgDaoIbgFaoJaeiaacaikaUEasDaUIaUFafCafCafCafCafCafCafDacmadHacmacyadladladlacyacyacyacmacmacyacyacyadladladlacyadHaCwasIasJasKasLaSoasNasOasIasPasQaVxalAaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahVaaaaaaaaaaRbbhjbnwaVzaVBbnIaVHaVGvyIaRbaVNaVKaVWaVPaZnaltaTEbXGbXIaWdbXKbXJaoIbgFaoJaacaacaikaqsatoaWjatqafCafEafJafFafNafCaWnacmadHacmacyacCadEamuamradladcacmacmacYadladkadEamuacZacyadHaWJasIasJasKatxatyasNasOasIaXwaXlaXyalAaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahVaaaaaaaaaaRbbhjbnwaVzaVBbnIaVHaVGvyIaRbaVNaVKaVWaVPaZnaltaTEbXGbXIaWdbXKbXJaoIbgFaoJaacaacaikaqsatoaWjatqafCafEafJafFafNafCaWnacmadHacmacyacCadEamuamradladcacmacmacYuiNadkadEamuacZacyadHaWJasIasJasKatxatyasNasOasIaXwaXlaXyalAaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahWahWahWahWaRbaRbaXCaRbaRbaXRaRbaRbaRbaRbalvalvalvalvalvalvaoJatHaYaaXYaYcaYbaYgaYgaoJafCafCagbafCafCacoafCafCafnageageaggaYtaghacmadHacmacyadmamvamvamwadladcacmacmacYadlamxamvamvamHacyadHaFzasIasJasKatxatyasNasOasIaYWalAalAalAaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRbbYfbYhbYgaRbaRbaRbbYibYjbYjbYlbYkbYmbYlbYlacsagRagQagTaZqagVagUagWagWagYagXagYagZahbahaaZPahcahGahFahHacpacrahIacpacpbayahJacyacyacyacyacyacyacTacmacmacTacyacyacyacyacyacyacWbaIasIasIasIauobaQasIasIasIbaTaurausaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRbbYJbaVbYKaRbbYNbYPbYjbYjbYjbYlacvamhacMadpadRadTadXadXaecaeeacpacpacpacpacpahHaimacpacpbbEacpaipaioaiqacpacpairacpacpacpaisahHacpacpaCxacmbbTacpacpacpacpacpacpacpacpacpahHbaybchbclbckbcxauZavaaeqavcasIbcObcKausaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRbbYJbaVbYKaRbbYNbYPbYjbYjbYjbYlacvamhacMadpadRadTadXadXaecaeeacpacpacpacpacpahHaimacpacpbbEacpaipaioaiqacpacpairacpacpacpaisahHacpacpaCxacmbbTacpacpacpacpacpacpacpacpacpmbnqBcbchbclbckbcxauZavaaeqavcasIbcObcKausaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaRbaRbaRbaRbaRbbYPbYPbYjbYjbYjbYjbYjbYjbZkbZmacsajKbdibdqbdnbdubdrbdFbdxbdKbdHbdSbdLbdWbdTbdZbdTbeebedbehbegbegbeibegbegbegbedbekbejbepbembevberbeBbezbezbeEbeHbeFbeKaqgaqxagoagpbeSbeYavZavZawaawbagzavcasIbaTbfkausaacaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbYPbZvbZvbZvbZvbZvbYPbYjbYjbYjbYjbYjbZzbYlbfFawsawpbfGbfJawsawsawsawtawtawtawuarebfQarfaaTaaTaaTawyawzawzawzawzawzawzawzawzawzawAbfWawCbfYawEawFawGawGawGawGawHawIawJawKawKalMaePbgfasIasIasIasIasIasIasIasIbcObgrausaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbYPbZvbZvbZvbZvbZvbYjbYjbZFbZDbZmbYjbYjbYlbYjawsawPbgGbgJbgHbgNawsawUbgObrvawubhcafoawZawubhgaxbawyaxcaxcaxcaxcaxcaxcaxcaxcaxdawEaxeaxfaxgawEbhrbhtaxjaxjaxjbmMawIaxkaxlawKamLacmbhHbhKbhJbhJbhLbidbhLbhJbhJbiraxtausaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/maps/tether/tether-06-station2.dmm b/maps/tether/tether-06-station2.dmm index de7396d151..8337a7ca49 100644 --- a/maps/tether/tether-06-station2.dmm +++ b/maps/tether/tether-06-station2.dmm @@ -15240,11 +15240,11 @@ /turf/simulated/floor/wood, /area/bridge/meeting_room) "wT" = ( +/obj/machinery/disposal, +/obj/structure/disposalpipe/trunk, /obj/machinery/light{ dir = 1 }, -/obj/machinery/disposal, -/obj/structure/disposalpipe/trunk, /turf/simulated/floor/wood, /area/bridge/meeting_room) "wU" = ( @@ -19212,7 +19212,7 @@ }, /obj/structure/mirror{ dir = 4; - pixel_x = 32; + pixel_x = 28; pixel_y = 0 }, /turf/simulated/floor/tiled/white, @@ -20200,7 +20200,7 @@ }, /obj/structure/mirror{ dir = 4; - pixel_x = 32; + pixel_x = 28; pixel_y = 0 }, /obj/machinery/power/apc{ @@ -22454,6 +22454,12 @@ }, /turf/simulated/floor/tiled/white, /area/maintenance/station/sec_lower) +"Xd" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/wood, +/area/bridge/meeting_room) "Xk" = ( /obj/structure/table/steel, /obj/item/device/flashlight/lamp{ @@ -36018,7 +36024,7 @@ yP xN yU wo -ac +wo ac ac ac @@ -36578,14 +36584,14 @@ pB qg vK wo +Xd wV wV wV wV wV wV -wV -wV +yU wo aP aP @@ -37001,9 +37007,9 @@ qc qc uj uJ +qc vl oY -oY aP aP aP @@ -37143,9 +37149,9 @@ sU tE uk uK +qc vl oY -oY aa aa aa @@ -37287,7 +37293,7 @@ oY uL oY oY -aa +oY aa aa aa diff --git a/maps/tether/tether-07-station3.dmm b/maps/tether/tether-07-station3.dmm index bb01a4beef..4d39371332 100644 --- a/maps/tether/tether-07-station3.dmm +++ b/maps/tether/tether-07-station3.dmm @@ -3594,6 +3594,7 @@ pixel_x = -24; pixel_y = 0 }, +/obj/item/device/retail_scanner/security, /turf/simulated/floor/tiled, /area/security/security_processing) "fL" = ( @@ -7834,6 +7835,7 @@ /obj/structure/reagent_dispensers/peppertank{ pixel_y = 32 }, +/obj/item/device/retail_scanner/security, /turf/simulated/floor/tiled/dark, /area/security/security_lockerroom) "me" = ( @@ -7874,6 +7876,7 @@ /obj/item/device/holowarrant, /obj/item/device/holowarrant, /obj/item/device/holowarrant, +/obj/item/device/retail_scanner/security, /turf/simulated/floor/tiled/dark, /area/security/security_lockerroom) "mf" = ( @@ -12908,6 +12911,13 @@ /obj/structure/closet/secure_closet/detective, /obj/item/weapon/reagent_containers/spray/pepper, /obj/item/weapon/gun/energy/taser, +/obj/item/device/camera{ + desc = "A one use - polaroid camera. 30 photos left."; + name = "detectives camera"; + pictures_left = 30; + pixel_x = 2; + pixel_y = 3 + }, /turf/simulated/floor/carpet, /area/security/detectives_office) "tO" = ( @@ -21450,16 +21460,8 @@ /turf/simulated/floor, /area/maintenance/station/cargo) "Hf" = ( -/obj/structure/table/standard, -/obj/random/soap, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 8 - }, -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24 - }, -/turf/simulated/floor/tiled/white, +/obj/machinery/recharge_station, +/turf/simulated/floor/tiled/techfloor, /area/crew_quarters/medical_restroom) "Hg" = ( /obj/machinery/firealarm{ @@ -22936,15 +22938,7 @@ pixel_x = -27; pixel_y = 0 }, -/obj/machinery/camera/network/medbay{ - dir = 1 - }, -/obj/effect/floor_decal/spline/plain{ - dir = 4 - }, -/obj/machinery/light_switch{ - pixel_y = -25 - }, +/obj/effect/floor_decal/corner/paleblue/diagonal, /turf/simulated/floor/tiled/white, /area/crew_quarters/medbreak) "Jn" = ( @@ -23890,27 +23884,28 @@ /turf/simulated/floor/plating, /area/maintenance/station/cargo) "KS" = ( -/obj/machinery/recharge_station, -/obj/machinery/light/small{ - dir = 8 +/obj/structure/shuttle/engine/propulsion{ + dir = 8; + icon_state = "propulsion_l" }, -/turf/simulated/floor/tiled/techfloor, -/area/crew_quarters/medical_restroom) +/turf/space, +/turf/simulated/shuttle/plating/airless/carry, +/area/shuttle/large_escape_pod1/station) "KT" = ( -/obj/machinery/door/airlock/medical{ - name = "Rest Room" - }, -/obj/effect/floor_decal/industrial/warning{ +/obj/structure/shuttle/engine/propulsion{ dir = 8 }, -/turf/simulated/floor/tiled/steel_grid, -/area/crew_quarters/medical_restroom) +/turf/space, +/turf/simulated/shuttle/plating/airless/carry, +/area/shuttle/large_escape_pod1/station) "KU" = ( -/obj/machinery/alarm{ - pixel_y = 22 +/obj/structure/shuttle/engine/propulsion{ + dir = 8; + icon_state = "propulsion_r" }, -/turf/simulated/floor/tiled/white, -/area/crew_quarters/medical_restroom) +/turf/space, +/turf/simulated/shuttle/plating/airless/carry, +/area/shuttle/large_escape_pod1/station) "KV" = ( /obj/structure/undies_wardrobe, /turf/simulated/floor/tiled/white, @@ -23925,9 +23920,6 @@ }, /obj/item/weapon/book/manual/stasis, /obj/item/weapon/book/manual/resleeving, -/obj/effect/floor_decal/spline/plain{ - dir = 4 - }, /turf/simulated/floor/tiled/white, /area/crew_quarters/medbreak) "KY" = ( @@ -23962,11 +23954,6 @@ /obj/effect/floor_decal/corner/paleblue/diagonal, /turf/simulated/floor/tiled/white, /area/crew_quarters/medbreak) -"Lb" = ( -/obj/structure/reagent_dispensers/water_cooler/full, -/obj/effect/floor_decal/corner/paleblue/diagonal, -/turf/simulated/floor/tiled/white, -/area/crew_quarters/medbreak) "Lc" = ( /obj/effect/floor_decal/corner/paleblue/diagonal, /obj/effect/floor_decal/steeldecal/steel_decals4{ @@ -24120,15 +24107,14 @@ /area/medical/sleeper) "Lr" = ( /obj/machinery/vending/fitness, -/obj/effect/floor_decal/spline/plain{ - dir = 4 - }, +/obj/effect/floor_decal/spline/plain, /obj/machinery/status_display{ density = 0; layer = 4; pixel_x = -32; pixel_y = 0 }, +/obj/effect/floor_decal/corner/paleblue/diagonal, /turf/simulated/floor/tiled/white, /area/crew_quarters/medbreak) "Ls" = ( @@ -24199,26 +24185,13 @@ /obj/random/maintenance/cargo, /turf/simulated/floor/plating, /area/maintenance/station/cargo) -"LA" = ( -/obj/machinery/firealarm{ - dir = 8; - pixel_x = -24; - pixel_y = 0 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 6 - }, -/turf/simulated/floor/tiled/white, -/area/crew_quarters/medical_restroom) "LB" = ( /obj/structure/sign/nosmoking_1, /turf/simulated/wall/r_wall, /area/medical/chemistry) "LC" = ( /obj/machinery/vending/snack, -/obj/effect/floor_decal/spline/plain{ - dir = 4 - }, +/obj/effect/floor_decal/corner/paleblue/diagonal, /turf/simulated/floor/tiled/white, /area/crew_quarters/medbreak) "LD" = ( @@ -24530,47 +24503,21 @@ /obj/random/maintenance/cargo, /turf/simulated/floor/plating, /area/maintenance/station/cargo) -"Mc" = ( -/obj/structure/toilet{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/simulated/floor/tiled/white, -/area/crew_quarters/medical_restroom) "Md" = ( /obj/machinery/door/airlock/medical{ name = "Rest Room" }, /turf/simulated/floor/tiled/white, /area/crew_quarters/medical_restroom) -"Me" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 6 - }, -/turf/simulated/floor/tiled/white, -/area/crew_quarters/medical_restroom) "Mf" = ( -/obj/structure/table/standard, -/obj/random/soap, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ +/obj/machinery/light/small{ dir = 8 }, -/obj/machinery/light{ - dir = 4 +/obj/effect/floor_decal/industrial/warning{ + dir = 1 }, -/turf/simulated/floor/tiled/white, +/turf/simulated/floor/tiled/techfloor, /area/crew_quarters/medical_restroom) -"Mg" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8; - icon_state = "propulsion_l" - }, -/turf/space, -/turf/simulated/shuttle/plating/airless/carry, -/area/shuttle/large_escape_pod1/station) "Mh" = ( /obj/structure/cable/green{ d1 = 1; @@ -24606,7 +24553,6 @@ /turf/simulated/floor/tiled/white, /area/crew_quarters/medbreak) "Mj" = ( -/obj/structure/bed/chair, /obj/structure/cable/green{ d1 = 4; d2 = 8; @@ -24617,13 +24563,9 @@ }, /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, /obj/effect/floor_decal/corner/paleblue/diagonal, -/obj/effect/landmark/start{ - name = "Medical Doctor" - }, /turf/simulated/floor/tiled/white, /area/crew_quarters/medbreak) "Mk" = ( -/obj/structure/bed/chair, /obj/structure/cable/green{ d1 = 4; d2 = 8; @@ -24637,9 +24579,6 @@ dir = 4 }, /obj/effect/floor_decal/corner/paleblue/diagonal, -/obj/effect/landmark/start{ - name = "Medical Doctor" - }, /turf/simulated/floor/tiled/white, /area/crew_quarters/medbreak) "Ml" = ( @@ -24906,43 +24845,18 @@ }, /turf/simulated/floor/tiled/white, /area/hallway/secondary/escape/medical_escape_pod_hallway) -"Mz" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "west bump"; - pixel_x = -28 - }, -/obj/structure/cable/green{ - d2 = 2; - icon_state = "0-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/tiled/white, -/area/crew_quarters/medical_restroom) -"MA" = ( -/obj/structure/sink{ - dir = 4; - icon_state = "sink"; - pixel_x = 11; - pixel_y = 0 - }, -/obj/structure/mirror{ - dir = 4; - pixel_x = 32; - pixel_y = 0 - }, -/turf/simulated/floor/tiled/white, -/area/crew_quarters/medical_restroom) "MB" = ( -/obj/machinery/vending/cola, /obj/machinery/light{ dir = 8; icon_state = "tube1" }, -/obj/effect/floor_decal/spline/plain{ - dir = 4 +/obj/machinery/light_switch{ + dir = 4; + icon_state = "light1"; + pixel_x = -24 }, +/obj/structure/reagent_dispensers/water_cooler/full, +/obj/effect/floor_decal/corner/paleblue/diagonal, /turf/simulated/floor/tiled/white, /area/crew_quarters/medbreak) "MC" = ( @@ -24956,16 +24870,6 @@ /obj/effect/floor_decal/corner/paleblue/diagonal, /turf/simulated/floor/tiled/white, /area/crew_quarters/medbreak) -"MD" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/obj/effect/floor_decal/corner/paleblue/diagonal, -/obj/effect/landmark/start{ - name = "Medical Doctor" - }, -/turf/simulated/floor/tiled/white, -/area/crew_quarters/medbreak) "ME" = ( /obj/structure/table/glass, /obj/item/weapon/deck/cards, @@ -25041,50 +24945,35 @@ }, /turf/simulated/floor/tiled/white, /area/hallway/secondary/escape/medical_escape_pod_hallway) -"MN" = ( -/obj/structure/curtain/open/shower, -/obj/machinery/shower{ - pixel_y = 10 - }, -/obj/effect/floor_decal/steeldecal/steel_decals5, -/obj/effect/floor_decal/steeldecal/steel_decals5{ - dir = 1 - }, -/obj/effect/floor_decal/steeldecal/steel_decals10{ - dir = 5 - }, -/obj/effect/floor_decal/steeldecal/steel_decals10{ +"MO" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 6 }, -/turf/simulated/floor/tiled/white, -/area/crew_quarters/medical_restroom) -"MO" = ( -/obj/machinery/light{ - dir = 4 +/obj/machinery/alarm{ + pixel_y = 22 }, /turf/simulated/floor/tiled/white, /area/crew_quarters/medical_restroom) "MP" = ( -/obj/structure/cable/green{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 5 + dir = 4 + }, +/obj/machinery/power/apc{ + dir = 1; + name = "north bump"; + pixel_x = 0; + pixel_y = 28 + }, +/obj/structure/cable/green{ + icon_state = "0-4" }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ icon_state = "intact-scrubbers"; - dir = 5 + dir = 4 }, /turf/simulated/floor/tiled/white, /area/crew_quarters/medical_restroom) "MQ" = ( -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, @@ -25092,9 +24981,10 @@ icon_state = "intact-scrubbers"; dir = 4 }, -/obj/effect/floor_decal/steeldecal/steel_decals4, -/obj/effect/floor_decal/steeldecal/steel_decals4{ - dir = 10 +/obj/structure/cable/green{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, /turf/simulated/floor/tiled/white, /area/crew_quarters/medical_restroom) @@ -25115,6 +25005,15 @@ icon_state = "intact-scrubbers"; dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + icon_state = "intact-scrubbers"; + dir = 4 + }, +/obj/structure/cable/green{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, /turf/simulated/floor/tiled/white, /area/crew_quarters/medbreak) "MS" = ( @@ -25130,15 +25029,13 @@ icon_state = "intact-scrubbers"; dir = 4 }, -/obj/effect/floor_decal/spline/plain{ - dir = 4 - }, /obj/effect/floor_decal/steeldecal/steel_decals4{ dir = 6 }, /obj/effect/floor_decal/steeldecal/steel_decals4{ dir = 1 }, +/obj/effect/floor_decal/corner/paleblue/diagonal, /turf/simulated/floor/tiled/white, /area/crew_quarters/medbreak) "MT" = ( @@ -25230,19 +25127,24 @@ /turf/simulated/floor/tiled/white, /area/medical/sleeper) "Nc" = ( -/obj/structure/cable/green{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/effect/floor_decal/steeldecal/steel_decals4{ dir = 8 }, /obj/effect/floor_decal/steeldecal/steel_decals4{ dir = 5 }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + icon_state = "intact-scrubbers"; + dir = 5 + }, +/obj/structure/cable/green{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, /turf/simulated/floor/tiled/white, /area/medical/sleeper) "Nd" = ( @@ -25250,12 +25152,18 @@ /obj/effect/floor_decal/corner/paleblue/border, /obj/effect/floor_decal/borderfloorwhite/corner2, /obj/effect/floor_decal/corner/paleblue/bordercorner2, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/obj/structure/cable/green{ + icon_state = "2-8" + }, /turf/simulated/floor/tiled/white, /area/medical/sleeper) "Ne" = ( -/obj/structure/bed/chair{ - dir = 1 - }, /obj/machinery/camera/network/medbay{ dir = 1 }, @@ -25287,6 +25195,9 @@ }, /obj/effect/floor_decal/borderfloorwhite, /obj/effect/floor_decal/corner/paleblue/border, +/obj/structure/bed/chair{ + dir = 1 + }, /turf/simulated/floor/tiled/white, /area/medical/sleeper) "Ni" = ( @@ -25335,42 +25246,17 @@ /turf/simulated/floor/tiled/white, /area/crew_quarters/medical_restroom) "Nm" = ( -/obj/machinery/alarm{ - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 - }, -/obj/effect/floor_decal/steeldecal/steel_decals4{ - dir = 10 - }, -/obj/effect/floor_decal/steeldecal/steel_decals4, -/turf/simulated/floor/tiled/white, -/area/crew_quarters/medical_restroom) -"Nn" = ( -/obj/effect/floor_decal/steeldecal/steel_decals4{ +/obj/structure/table/standard, +/obj/machinery/atmospherics/unary/vent_pump/on{ dir = 1 }, -/obj/effect/floor_decal/steeldecal/steel_decals4{ - dir = 6 - }, +/obj/machinery/light/small, /turf/simulated/floor/tiled/white, /area/crew_quarters/medical_restroom) "No" = ( /obj/structure/table/standard, /obj/item/weapon/storage/box/cups, -/obj/effect/floor_decal/spline/plain{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/crew_quarters/medbreak) -"Np" = ( -/obj/structure/bed/chair{ - dir = 1 - }, /obj/effect/floor_decal/corner/paleblue/diagonal, -/obj/effect/landmark/start{ - name = "Paramedic" - }, /turf/simulated/floor/tiled/white, /area/crew_quarters/medbreak) "Nq" = ( @@ -25466,13 +25352,6 @@ }, /turf/simulated/floor/tiled/techfloor, /area/ai_core_foyer) -"Nx" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/full, -/obj/structure/window/reinforced, -/obj/machinery/door/firedoor/glass, -/turf/simulated/floor/plating, -/area/crew_quarters/medical_restroom) "Ny" = ( /obj/structure/table/standard, /obj/machinery/atmospherics/unary/vent_pump/on{ @@ -25487,26 +25366,18 @@ /turf/simulated/floor/tiled/white, /area/medical/virology) "Nz" = ( -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, /obj/effect/floor_decal/corner/paleblue/diagonal, +/obj/structure/disposalpipe/segment, /turf/simulated/floor/tiled/white, /area/crew_quarters/medbreak) "NA" = ( -/obj/machinery/disposal, /obj/item/device/radio/intercom{ dir = 4; pixel_x = 24 }, -/obj/item/device/radio/intercom/department/medbay{ - pixel_y = -24 - }, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, /obj/effect/floor_decal/corner/paleblue/diagonal, +/obj/structure/table/standard, +/obj/item/weapon/storage/mre/random, /turf/simulated/floor/tiled/white, /area/crew_quarters/medbreak) "NB" = ( @@ -25604,19 +25475,10 @@ /turf/simulated/floor/tiled/white, /area/hallway/secondary/escape/medical_escape_pod_hallway) "NH" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/full, -/obj/structure/window/reinforced, -/obj/machinery/door/firedoor/glass, -/turf/simulated/floor/plating, +/obj/effect/floor_decal/corner/paleblue/diagonal, +/obj/effect/floor_decal/corner/paleblue/diagonal, +/turf/simulated/floor/tiled/white, /area/crew_quarters/medbreak) -"NI" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8 - }, -/turf/space, -/turf/simulated/shuttle/plating/airless/carry, -/area/shuttle/large_escape_pod1/station) "NJ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/universal{ dir = 4 @@ -25754,14 +25616,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden/yellow, /turf/simulated/floor/tiled/white, /area/medical/virologyaccess) -"NY" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8; - icon_state = "propulsion_r" - }, -/turf/space, -/turf/simulated/shuttle/plating/airless/carry, -/area/shuttle/large_escape_pod1/station) "NZ" = ( /obj/structure/shuttle/engine/heater{ dir = 8 @@ -26173,6 +26027,18 @@ /obj/structure/closet/walllocker/emerglocker/south, /turf/simulated/shuttle/floor, /area/shuttle/large_escape_pod1/station) +"OP" = ( +/obj/effect/floor_decal/corner/paleblue/diagonal, +/obj/item/device/radio/intercom/department/medbay{ + dir = 4; + pixel_x = 24 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal, +/turf/simulated/floor/tiled/white, +/area/crew_quarters/medbreak) "OQ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9; @@ -26783,6 +26649,29 @@ /obj/structure/window/reinforced, /turf/simulated/floor/plating, /area/medical/virologyisolation) +"Qf" = ( +/obj/structure/toilet{ + pixel_y = 15 + }, +/turf/simulated/floor/tiled/white, +/area/crew_quarters/medical_restroom) +"Qr" = ( +/obj/machinery/shower{ + pixel_y = 10 + }, +/obj/effect/floor_decal/steeldecal/steel_decals5, +/obj/effect/floor_decal/steeldecal/steel_decals5{ + dir = 1 + }, +/obj/effect/floor_decal/steeldecal/steel_decals10{ + dir = 5 + }, +/obj/effect/floor_decal/steeldecal/steel_decals10{ + dir = 6 + }, +/obj/structure/curtain/open/shower, +/turf/simulated/floor/tiled/white, +/area/crew_quarters/medical_restroom) "Qt" = ( /turf/simulated/wall, /area/tether/exploration) @@ -26795,10 +26684,27 @@ }, /turf/simulated/floor/bluegrid, /area/ai_core_foyer) +"Qx" = ( +/obj/machinery/light/small{ + icon_state = "bulb1"; + dir = 1 + }, +/turf/simulated/floor/tiled/white, +/area/crew_quarters/medical_restroom) "Qz" = ( /obj/structure/railing, /turf/simulated/floor, /area/maintenance/cargo) +"QE" = ( +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/obj/structure/bed/chair{ + dir = 1 + }, +/obj/effect/floor_decal/corner/paleblue/diagonal, +/turf/simulated/floor/tiled/white, +/area/crew_quarters/medbreak) "QI" = ( /obj/structure/cable/cyan{ icon_state = "32-1" @@ -27855,6 +27761,15 @@ }, /turf/simulated/floor/tiled/white, /area/security/security_bathroom) +"Tb" = ( +/obj/structure/window/reinforced{ + dir = 8; + health = 1e+006 + }, +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/turf/simulated/floor/plating, +/area/crew_quarters/medical_restroom) "Tc" = ( /obj/structure/handrail{ dir = 4 @@ -27878,6 +27793,25 @@ }, /turf/simulated/floor/carpet, /area/security/breakroom) +"Tf" = ( +/obj/structure/table/standard, +/obj/random/soap, +/obj/random/soap, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/simulated/floor/tiled/white, +/area/crew_quarters/medical_restroom) +"Th" = ( +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/obj/structure/bed/chair{ + dir = 8 + }, +/obj/effect/floor_decal/corner/paleblue/diagonal, +/turf/simulated/floor/tiled/white, +/area/crew_quarters/medbreak) "Ti" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -27914,6 +27848,12 @@ }, /turf/simulated/floor/tiled/techfloor/grid, /area/shuttle/excursion/tether) +"Tt" = ( +/obj/structure/toilet{ + dir = 8 + }, +/turf/simulated/floor/tiled/white, +/area/crew_quarters/medical_restroom) "Tu" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ icon_state = "intact-supply"; @@ -27985,6 +27925,12 @@ }, /turf/simulated/floor/wood, /area/crew_quarters/heads/hos) +"TP" = ( +/obj/structure/window/reinforced, +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/turf/simulated/floor/plating, +/area/crew_quarters/medbreak) "TQ" = ( /obj/structure/table/woodentable, /obj/item/weapon/storage/box/donkpockets, @@ -28178,6 +28124,16 @@ }, /turf/simulated/floor/tiled, /area/shuttle/excursion/tether) +"Ut" = ( +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/obj/structure/bed/chair{ + dir = 4 + }, +/obj/effect/floor_decal/corner/paleblue/diagonal, +/turf/simulated/floor/tiled/white, +/area/crew_quarters/medbreak) "Uu" = ( /obj/machinery/computer/security, /turf/simulated/floor/wood, @@ -28190,6 +28146,14 @@ /obj/random/soap, /turf/simulated/floor/tiled/white, /area/security/security_bathroom) +"Ux" = ( +/obj/effect/floor_decal/corner/paleblue/diagonal, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/simulated/floor/tiled/white, +/area/crew_quarters/medbreak) "Uy" = ( /obj/machinery/requests_console{ announcementConsole = 1; @@ -28499,12 +28463,34 @@ /obj/structure/flight_left, /turf/simulated/floor/tiled, /area/shuttle/excursion/tether) +"Vv" = ( +/obj/structure/sink{ + pixel_y = 26 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = -24; + pixel_y = 0 + }, +/obj/structure/mirror{ + pixel_y = 32 + }, +/turf/simulated/floor/tiled/white, +/area/crew_quarters/medical_restroom) "Vw" = ( /obj/machinery/sleeper{ dir = 8 }, /turf/simulated/floor/tiled, /area/shuttle/excursion/tether) +"VA" = ( +/obj/effect/landmark/start{ + name = "Medical Doctor" + }, +/obj/structure/bed/chair, +/obj/effect/floor_decal/corner/paleblue/diagonal, +/turf/simulated/floor/tiled/white, +/area/crew_quarters/medbreak) "VB" = ( /obj/structure/grille, /obj/structure/window/reinforced/full, @@ -28697,10 +28683,34 @@ }, /turf/simulated/floor/tiled, /area/shuttle/excursion/tether) +"Wr" = ( +/obj/structure/table/standard, +/obj/item/weapon/towel/random, +/obj/item/weapon/towel/random, +/obj/item/weapon/towel/random, +/obj/item/weapon/towel/random, +/obj/item/weapon/towel/random, +/obj/item/weapon/towel/random, +/obj/item/weapon/towel/random, +/obj/item/weapon/towel/random, +/turf/simulated/floor/tiled/white, +/area/crew_quarters/medical_restroom) "Ws" = ( /obj/machinery/atmospherics/pipe/simple/hidden, /turf/simulated/wall/rshull, /area/shuttle/excursion/tether) +"Wv" = ( +/obj/machinery/alarm{ + dir = 4; + icon_state = "alarm0"; + pixel_x = -22; + pixel_y = 0 + }, +/turf/simulated/floor/tiled/white, +/area/crew_quarters/medical_restroom) +"Ww" = ( +/turf/simulated/wall, +/area/crew_quarters/heads/cmo) "Wx" = ( /obj/structure/grille, /obj/structure/window/reinforced/full, @@ -28718,6 +28728,14 @@ /obj/machinery/door/firedoor/glass, /turf/simulated/floor/plating, /area/shuttle/excursion/tether) +"Wz" = ( +/obj/machinery/vending/cola, +/obj/machinery/camera/network/medbay{ + dir = 4 + }, +/obj/effect/floor_decal/corner/paleblue/diagonal, +/turf/simulated/floor/tiled/white, +/area/crew_quarters/medbreak) "WB" = ( /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 @@ -28729,7 +28747,7 @@ pixel_y = 0 }, /obj/structure/mirror{ - pixel_x = 30 + pixel_x = 25 }, /turf/simulated/floor/tiled/white, /area/security/security_bathroom) @@ -28737,6 +28755,23 @@ /obj/structure/flight_right, /turf/simulated/floor/tiled, /area/shuttle/excursion/tether) +"WE" = ( +/obj/effect/decal/remains, +/obj/item/clothing/under/rank/centcom_officer, +/obj/item/clothing/head/beret/centcom/officer, +/obj/item/clothing/shoes/laceup, +/turf/simulated/mineral/floor/vacuum, +/area/mine/explored/upper_level) +"WF" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8; + health = 1e+006 + }, +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/turf/simulated/floor/plating, +/area/crew_quarters/medical_restroom) "WG" = ( /obj/machinery/disposal/deliveryChute{ dir = 8 @@ -29016,6 +29051,19 @@ }, /turf/simulated/floor/tiled/techfloor/grid, /area/shuttle/excursion/tether) +"Yh" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 11; + pixel_y = 0 + }, +/obj/structure/mirror{ + pixel_x = 25; + pixel_y = 0 + }, +/turf/simulated/floor/tiled/white, +/area/crew_quarters/medical_restroom) "Yi" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ @@ -29054,6 +29102,11 @@ }, /turf/simulated/floor/tiled, /area/shuttle/excursion/tether) +"Yp" = ( +/turf/simulated/wall{ + can_open = 0 + }, +/area/crew_quarters/medical_restroom) "Ys" = ( /obj/structure/bed/chair/shuttle{ icon_state = "shuttle_chair"; @@ -29084,6 +29137,12 @@ }, /turf/simulated/floor/carpet, /area/crew_quarters/heads/hos) +"Yz" = ( +/obj/structure/window/reinforced, +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/turf/simulated/floor/plating, +/area/crew_quarters/medical_restroom) "YC" = ( /obj/effect/floor_decal/carpet, /turf/simulated/floor/carpet, @@ -29220,6 +29279,21 @@ /obj/structure/bookcase, /turf/simulated/floor/wood, /area/crew_quarters/heads/cmo) +"Zu" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/turf/simulated/floor/tiled/white, +/area/crew_quarters/medical_restroom) +"Zx" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/simulated/floor/tiled/white, +/area/crew_quarters/medical_restroom) "Zy" = ( /obj/structure/disposaloutlet{ dir = 8 @@ -34829,13 +34903,13 @@ ab ab ab ab -ab -ab -aa -aa -aa -aa -aa +KE +KE +KE +KE +KE +Tb +WF aa aa aa @@ -34971,13 +35045,13 @@ ab ab ab ab -ab -ab -ab -ab -ab -aa -aa +KE +Qr +Wv +KE +Vv +Nl +Yz aa aa aa @@ -35113,15 +35187,15 @@ ab ab ab ab -ab -ab -ab KE -KE -KE -KE -aa -aa +Qx +Nl +Md +Nl +Nl +Yz +vt +vt aa aa aa @@ -35254,17 +35328,17 @@ ab ab ab ab +ab KE +Tt +Yh KE -KE -KE -KE -MN Nl +Wr KE vt -aa -aa +vt +vt aa aa aa @@ -35396,17 +35470,17 @@ ab ab ab ab +ab KE -KS +Yp KE -Mc KE MO Nm KE vt -aa -aa +vt +vt aa aa aa @@ -35538,18 +35612,18 @@ ab ab ab ab +ab KE -KT -KE -Md -KE -KE +Qf +Zx Md +Zu +Tf KE +ab +vt +vt vt -aa -aa -aa aa aa aa @@ -35680,14 +35754,16 @@ ab ab ab ab +ab +KE +KE +KE KE -KU -LA -Me -Mz MP -Nn -Nx +Nl +KE +ab +ab vt vt aa @@ -35730,8 +35806,6 @@ aa aa aa aa -aa -aa "} (46,1,1) = {" aa @@ -35822,14 +35896,16 @@ ab ab ab ab +ab KE -KV Hf Mf -MA +Md MQ -MA -Nx +KV +KE +ab +ab vt vt aa @@ -35872,8 +35948,6 @@ aa aa aa aa -aa -aa "} (47,1,1) = {" aa @@ -35973,6 +36047,7 @@ MR KW KW KW +KW vt vt aa @@ -36015,7 +36090,6 @@ aa aa aa aa -aa "} (48,1,1) = {" aa @@ -36114,6 +36188,7 @@ MB MS No Jm +Wz KW vt vt @@ -36157,7 +36232,6 @@ aa aa aa aa -aa "} (49,1,1) = {" aa @@ -36256,8 +36330,8 @@ MC MT Ld Ld -NH -vt +Ld +TP vt vt aa @@ -36394,11 +36468,12 @@ Jr KZ LE Mi -MD +Ld MU +Ut Ld Ld -NH +TP vt vt vt @@ -36441,7 +36516,6 @@ aa aa aa aa -aa "} (51,1,1) = {" aa @@ -36536,11 +36610,12 @@ Jr La LF Mj -ME +VA MV -Np +ME +QE Ld -NH +TP vt vt vt @@ -36583,7 +36658,6 @@ aa aa aa aa -aa "} (52,1,1) = {" aa @@ -36675,14 +36749,15 @@ IF LT Ke Lp -Lb +Ld Ld Mk -MF +VA MW -Np -Ld +MF +QE NH +TP vt vt vt @@ -36725,7 +36800,6 @@ aa aa aa aa -aa "} (53,1,1) = {" aa @@ -36820,11 +36894,12 @@ KF Lc Ld Ml +Ld MG -MG +Th Ld Ld -NH +TP vt vt vt @@ -36867,7 +36942,6 @@ aa aa aa aa -aa "} (54,1,1) = {" aa @@ -36966,7 +37040,8 @@ MH MH MH Nz -NH +Ux +TP vt vt vt @@ -37009,7 +37084,6 @@ aa aa aa aa -aa "} (55,1,1) = {" aa @@ -37108,17 +37182,17 @@ MI MY Nq NA +OP KW -ab -NW -NW -NW -NW -NW -NW -NW -NW -NW +vt +vt +vt +vt +aa +aa +aa +aa +aa aa aa aa @@ -37251,15 +37325,15 @@ Lg KW KW KW -ab +KW +NW +NW +NW +NW +NW +NW NW -Oj -Oy -Ny NW -Oj -Oy -Ny NW aa aa @@ -37395,13 +37469,13 @@ ab ab ab NW -Ok -OA -OQ +Oj +Oy +Ny NW -Ok -OA -OQ +Oj +Oy +Ny NW aa aa @@ -37532,18 +37606,18 @@ Lh Mq Lh Na -Nr -Nr -Nr -Nr +Iy +ab +ab +ab NW -Ol -OB -Ol +Ok +OA +OQ NW -Ol -Pn -Ol +Ok +OA +OQ NW aa aa @@ -37675,23 +37749,23 @@ Mr Lh Nb Nr -NB -JZ -NN Nr -Om -OC -OR -OY -Pf -OC -KA +Nr +Nr NW -PB -PM -PM -PB -PB +Ol +OB +Ol +NW +Ol +Pn +Ol +NW +aa +aa +aa +aa +aa aa aa aa @@ -37816,23 +37890,23 @@ LI Ms MJ Nc -Ns -NC -Kb -NP -NX -On -OD -OS -Pa -Pg -Po -Pu +Nr +NB +JZ +NN +Nr +Om +OC +OR +OY +Pf +OC +KA NW -PD -PN -PS -PW +PB +PM +PM +PB PB aa aa @@ -37958,24 +38032,24 @@ Jy Mt Lh Nd -Nt -NE -NK -NQ -Nr -Oo -OE -OE -Pb -Pi -Pp -Pv -PA -PE -PO -PT -PX -Qa +Ns +NC +Kb +NP +NX +On +OD +OS +Pa +Pg +Po +Pu +NW +PD +PN +PS +PW +PB aa aa aa @@ -38100,23 +38174,23 @@ Jz Mt Lh Ne +Nt +NE +NK +NQ Nr -Nr -Nr -Nr -Nr -Op +Oo OE -OT OE -Pj -NJ -OE -Ol -PG -PQ -PU -PQ +Pb +Pi +Pp +Pv +PA +PE +PO +PT +PX Qa aa aa @@ -38242,23 +38316,23 @@ JA Mu Lh Nf -Iy -ab -ab -ab -NW -Oq -OF -OU +Nr +Nr +Nr +Nr +Nr +Op OE -Pl -NR -Pw -NW -PH +OT +OE +Pj +NJ +OE +Ol +PG PQ +PU PQ -PY Qa aa aa @@ -38389,19 +38463,19 @@ ab ab ab NW -Or -OG -OV -Pd -Pm -Ps -Px +Oq +OF +OU +OE +Pl +NR +Pw NW -PJ -PR -PV -KB -PB +PH +PQ +PQ +PY +Qa aa aa aa @@ -38531,18 +38605,18 @@ ab ab ab NW +Or +OG +OV +Pd +Pm +Ps +Px NW -NW -NW -NW -NW -NW -Py -NW -PK -PB -PB -PB +PJ +PR +PV +KB PB aa aa @@ -38672,20 +38746,20 @@ Iy ab ab ab -ab -ab -ab -vt -vt -vt -vt -Pz -aa -PL -aa -aa -aa -aa +NW +NW +NW +NW +NW +NW +NW +Py +NW +PK +PB +PB +PB +PB aa aa aa @@ -38814,16 +38888,16 @@ Iy ab NL NL -Lu +NL NL NL NL NL vt vt +Pz aa -aa -aa +PL aa aa aa @@ -38955,11 +39029,11 @@ MK Iy ab NL -Mg -NI -NI -NI -NY +KS +KT +KT +KT +KU NL vt vt @@ -39508,7 +39582,7 @@ EO Fy FS GB -Fz +Ww HN HN HN @@ -41644,7 +41718,7 @@ ab ab ab ab -ab +WE ab ab ab diff --git a/maps/tether/tether-09-solars.dmm b/maps/tether/tether-09-solars.dmm index dfc9468c0c..7a12cc511d 100644 --- a/maps/tether/tether-09-solars.dmm +++ b/maps/tether/tether-09-solars.dmm @@ -2132,16 +2132,17 @@ /turf/simulated/floor/tiled, /area/rnd/outpost/xenoarch_storage) "eA" = ( -/obj/structure/cable/green{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/effect/floor_decal/steeldecal/steel_decals4{ + dir = 9 }, -/obj/effect/floor_decal/steeldecal/steel_decals6{ - dir = 1 +/obj/effect/floor_decal/steeldecal/steel_decals4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 }, /turf/simulated/floor/tiled, -/area/rnd/outpost) +/area/rnd/outpost/xenoarch_storage) "eB" = ( /obj/effect/floor_decal/industrial/warning/dust{ dir = 1 @@ -2552,20 +2553,10 @@ /turf/simulated/floor/tiled, /area/rnd/outpost) "fc" = ( -/obj/structure/cable/green{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/floor_decal/steeldecal/steel_decals4{ - dir = 9 - }, -/obj/effect/floor_decal/steeldecal/steel_decals4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 6 }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/tiled, /area/rnd/outpost/xenoarch_storage) "fd" = ( @@ -5248,15 +5239,13 @@ /turf/simulated/floor, /area/rnd/outpost/storage) "jM" = ( -/obj/structure/cable/green{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 6 - }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable/green{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, /turf/simulated/floor/tiled, /area/rnd/outpost/xenoarch_storage) "jN" = ( @@ -5826,13 +5815,17 @@ /turf/simulated/floor/tiled, /area/rnd/outpost) "kP" = ( -/obj/structure/cable/green{ - d1 = 1; - d2 = 4; - icon_state = "1-4" +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/obj/structure/cable/green{ + d1 = 2; + d2 = 4; + icon_state = "2-4" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/tiled, /area/rnd/outpost/xenoarch_storage) "kQ" = ( @@ -6113,19 +6106,29 @@ /area/rnd/outpost/xenoarch_storage) "ll" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 6 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 6 + dir = 4 + }, +/obj/structure/cable/green{ + d1 = 4; + d2 = 8; + icon_state = "4-8" }, /turf/simulated/floor/tiled, /area/rnd/outpost/xenoarch_storage) "lm" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 + dir = 9 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 + dir = 9 + }, +/obj/structure/cable/green{ + d1 = 1; + d2 = 8; + icon_state = "1-8" }, /turf/simulated/floor/tiled, /area/rnd/outpost/xenoarch_storage) @@ -6140,14 +6143,21 @@ /turf/simulated/floor, /area/maintenance/substation/outpost) "lo" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 +/obj/structure/cable/green{ + d1 = 1; + d2 = 2; + icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 9 +/obj/effect/floor_decal/steeldecal/steel_decals6{ + dir = 1 + }, +/obj/structure/cable/green{ + d1 = 2; + d2 = 4; + icon_state = "2-4" }, /turf/simulated/floor/tiled, -/area/rnd/outpost/xenoarch_storage) +/area/rnd/outpost) "lp" = ( /obj/effect/floor_decal/industrial/warning/corner, /turf/simulated/floor/tiled/dark, @@ -6527,19 +6537,6 @@ /turf/simulated/floor/tiled, /area/rnd/outpost/xenoarch_storage) "lR" = ( -/obj/machinery/door/airlock/glass_science{ - name = "Xenoarch Storage" - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled, -/area/rnd/outpost/xenoarch_storage) -"lS" = ( /obj/effect/floor_decal/steeldecal/steel_decals6{ dir = 4 }, @@ -6550,6 +6547,37 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 6 }, +/obj/structure/cable/green{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/tiled, +/area/rnd/outpost) +"lS" = ( +/obj/effect/floor_decal/borderfloor{ + dir = 5 + }, +/obj/effect/floor_decal/corner/purple/border{ + dir = 5 + }, +/obj/effect/floor_decal/borderfloor/corner2{ + dir = 4 + }, +/obj/effect/floor_decal/corner/purple/bordercorner2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable/green{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, /turf/simulated/floor/tiled, /area/rnd/outpost) "lT" = ( @@ -7696,26 +7724,23 @@ /turf/simulated/floor/tiled, /area/rnd/outpost) "oe" = ( -/obj/effect/floor_decal/borderfloor{ - dir = 5 - }, -/obj/effect/floor_decal/corner/purple/border{ - dir = 5 - }, -/obj/effect/floor_decal/borderfloor/corner2{ - dir = 4 - }, -/obj/effect/floor_decal/corner/purple/bordercorner2{ - dir = 4 +/obj/machinery/door/airlock/glass_science{ + name = "Xenoarch Storage" }, +/obj/machinery/door/firedoor/border_only, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, +/obj/structure/cable/green{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, /turf/simulated/floor/tiled, -/area/rnd/outpost) +/area/rnd/outpost/xenoarch_storage) "of" = ( /obj/effect/floor_decal/borderfloor{ dir = 4 @@ -24272,7 +24297,7 @@ cE db dC eb -eA +lo fv fv eY @@ -24414,7 +24439,7 @@ cD da dB ea -lS +lR oi oi oj @@ -24556,7 +24581,7 @@ cF dc dD ch -oe +lS oc of fd @@ -24698,7 +24723,7 @@ ch ch ch ch -lR +oe eu dE dE @@ -24839,8 +24864,8 @@ kr ez jt kK -ll -lo +kP +lm kr eD ff @@ -24981,7 +25006,7 @@ kr eC mw mw -lm +ll me kr fe @@ -25120,10 +25145,10 @@ ad ab ef kr +eA fc jM -kP -lo +lm mf kr fg diff --git a/maps/tether/tether-10-colony.dmm b/maps/tether/tether-10-colony.dmm index 6b701f3a56..b28f538ceb 100644 --- a/maps/tether/tether-10-colony.dmm +++ b/maps/tether/tether-10-colony.dmm @@ -892,6 +892,11 @@ /obj/item/weapon/rig/ert/assetprotection, /obj/item/weapon/rig/ert/assetprotection, /obj/item/weapon/rig/ert/assetprotection, +/obj/item/clothing/glasses/thermal, +/obj/item/clothing/glasses/thermal, +/obj/item/clothing/glasses/thermal, +/obj/item/clothing/glasses/thermal, +/obj/item/clothing/glasses/thermal, /turf/unsimulated/floor{ icon_state = "dark" }, @@ -1365,6 +1370,10 @@ pixel_x = 1; pixel_y = 9 }, +/obj/item/clothing/glasses/graviton, +/obj/item/clothing/glasses/graviton, +/obj/item/clothing/glasses/graviton, +/obj/item/clothing/glasses/graviton, /turf/unsimulated/floor{ icon_state = "dark" }, @@ -1525,6 +1534,7 @@ /obj/item/clothing/mask/gas, /obj/item/clothing/mask/gas, /obj/effect/floor_decal/industrial/outline/blue, +/obj/item/weapon/storage/box/traumainjectors, /turf/unsimulated/floor{ icon_state = "dark" }, @@ -16598,12 +16608,24 @@ /area/centcom/control) "Fo" = ( /obj/structure/table/reinforced, -/obj/item/weapon/storage/box/survival/comp, -/obj/item/weapon/storage/box/survival/comp, -/obj/item/weapon/storage/box/survival/comp, -/obj/item/weapon/storage/box/survival/comp, -/obj/item/weapon/storage/box/survival/comp, -/obj/item/weapon/storage/box/survival/comp, +/obj/item/weapon/storage/box/survival/comp{ + starts_with = list(/obj/item/weapon/tool/prybar/red,/obj/item/clothing/glasses/goggles,/obj/item/weapon/reagent_containers/hypospray/autoinjector,/obj/item/stack/medical/bruise_pack,/obj/item/device/flashlight/glowstick,/obj/item/weapon/reagent_containers/food/snacks/candy/proteinbar,/obj/item/clothing/mask/breath,/obj/item/weapon/tank/emergency/oxygen/engi) + }, +/obj/item/weapon/storage/box/survival/comp{ + starts_with = list(/obj/item/weapon/tool/prybar/red,/obj/item/clothing/glasses/goggles,/obj/item/weapon/reagent_containers/hypospray/autoinjector,/obj/item/stack/medical/bruise_pack,/obj/item/device/flashlight/glowstick,/obj/item/weapon/reagent_containers/food/snacks/candy/proteinbar,/obj/item/clothing/mask/breath,/obj/item/weapon/tank/emergency/oxygen/engi) + }, +/obj/item/weapon/storage/box/survival/comp{ + starts_with = list(/obj/item/weapon/tool/prybar/red,/obj/item/clothing/glasses/goggles,/obj/item/weapon/reagent_containers/hypospray/autoinjector,/obj/item/stack/medical/bruise_pack,/obj/item/device/flashlight/glowstick,/obj/item/weapon/reagent_containers/food/snacks/candy/proteinbar,/obj/item/clothing/mask/breath,/obj/item/weapon/tank/emergency/oxygen/engi) + }, +/obj/item/weapon/storage/box/survival/comp{ + starts_with = list(/obj/item/weapon/tool/prybar/red,/obj/item/clothing/glasses/goggles,/obj/item/weapon/reagent_containers/hypospray/autoinjector,/obj/item/stack/medical/bruise_pack,/obj/item/device/flashlight/glowstick,/obj/item/weapon/reagent_containers/food/snacks/candy/proteinbar,/obj/item/clothing/mask/breath,/obj/item/weapon/tank/emergency/oxygen/engi) + }, +/obj/item/weapon/storage/box/survival/comp{ + starts_with = list(/obj/item/weapon/tool/prybar/red,/obj/item/clothing/glasses/goggles,/obj/item/weapon/reagent_containers/hypospray/autoinjector,/obj/item/stack/medical/bruise_pack,/obj/item/device/flashlight/glowstick,/obj/item/weapon/reagent_containers/food/snacks/candy/proteinbar,/obj/item/clothing/mask/breath,/obj/item/weapon/tank/emergency/oxygen/engi) + }, +/obj/item/weapon/storage/box/survival/comp{ + starts_with = list(/obj/item/weapon/tool/prybar/red,/obj/item/clothing/glasses/goggles,/obj/item/weapon/reagent_containers/hypospray/autoinjector,/obj/item/stack/medical/bruise_pack,/obj/item/device/flashlight/glowstick,/obj/item/weapon/reagent_containers/food/snacks/candy/proteinbar,/obj/item/clothing/mask/breath,/obj/item/weapon/tank/emergency/oxygen/engi) + }, /turf/unsimulated/floor{ icon_state = "dark" }, diff --git a/maps/tether/tether_shuttle_defs.dm b/maps/tether/tether_shuttle_defs.dm index b1d5280242..925b7f8a0d 100644 --- a/maps/tether/tether_shuttle_defs.dm +++ b/maps/tether/tether_shuttle_defs.dm @@ -174,19 +174,6 @@ departure_message = "Attention. A unregistered vessel is now leaving Virgo-3B." ..() -/datum/shuttle/ferry/multidock/specops/ert - name = "Special Operations" - location = 0 - warmup_time = 10 - area_offsite = /area/shuttle/specops/station //centcom is the home station, the Exodus is offsite - area_station = /area/shuttle/specops/centcom - docking_controller_tag = "specops_shuttle_port" - docking_controller_tag_station = "specops_shuttle_port" - docking_controller_tag_offsite = "specops_shuttle_fore" - dock_target_station = "specops_centcom_dock" - dock_target_offsite = "specops_dock_airlock" - - ////////////////////////////////////////////////////////////// // RogueMiner "Belter: Shuttle // TODO - Not implemented yet on new map diff --git a/maps/tether/tether_shuttles.dm b/maps/tether/tether_shuttles.dm index 609e4f4eb4..0355d32641 100644 --- a/maps/tether/tether_shuttles.dm +++ b/maps/tether/tether_shuttles.dm @@ -300,6 +300,8 @@ docking_controller_tag = "specops_shuttle_hatch" web_master_type = /datum/shuttle_web_master/specialops can_rename = FALSE + can_cloak = TRUE + cloaked = FALSE /datum/shuttle_web_master/specialops destination_class = /datum/shuttle_destination/specialops diff --git a/news_articles/galaxy_wide_archived_1.html b/news_articles/galaxy_wide_archived_1.html new file mode 100644 index 0000000000..0211428517 --- /dev/null +++ b/news_articles/galaxy_wide_archived_1.html @@ -0,0 +1,132 @@ + +

+ +

These are archived news stories from Galaxy Wide

+ 03/27/2561 to 05/24/2561 +
+
+Galaxy Wide News +
+Hellooo people of the galaxy! +We are happy to say that this news station is now up and running. We will be accepting request from you the people, companys and even empires through out the stars. Stay tuned! +
+
+Galaxy Wide News +
+Hello fellow readers, today we have some intresting news. +Cargo ships on the outer edge of human controled space have suspiciously vanished. Searches are on going at this time, no offical statements have been made by the system security. +
+
+Galaxy Wide News +
+Hello folks, today has been a good and progressive day for some Empires of the galaxy. +The... A.R... that stands for Athorian Republic for yall out there who arn't in the outer edge systems, they have announced that they will be changing some laws, a Commander in the A.R. Civil Protection Command stated, "These laws have remained the same for several hundred years, while we are not sure if the change will be permanent, we do hope it improves our standing in the galactic community, we will give further details later on in the prossess. thank you." this is intresting to say the least. +
+
+In other news, farmers are noticing a sharp increase in food production in the core of human space, this has already improved the lifes of some of the poorer colonies with the price drops, though some are suspecios about these food production inceases going as for as to say that pirates may be involved. Thats something right there, this was Galaxy Wide News. Stay Tuned! +
+
+03/27/2561 +
+Galaxy Wide News +
+Hello hello! We have some travel related news coming right your way. Increased Sol Gov naval ships have been seen along the outer edge systems most likely requested to be there to help stop cargo ships from going missing. in other places related to space ships, a ship was shot down by local defences after the ship failed to request permission to land, so remember people ALWAYS request to land before you land because it seems that some places will give a lethal responds, luckly for the ship that was shot down, no major casualties was reported... Oh and we just got word... A ship of great scale was reported earlyer today, but apon further investigations, it was just a oddly shaped asteroid. Thats all we have for now, stay tuned! +
+
+03/28/2561 +
+Galaxy Wide News +
+Hello, today we have news regarding the missing cargo ships in the outer edge systems. With Sol Gov support, the United Galactic Protection Services (U.G.P.S.) found that vox pirates were the ones attacking the cargo ships, it was also descovered that the vox pirates were taking weapons and phoron from the ships, the weapons stolen have been from reports, sold on the black market. When we asked one local colonist in particuler, 'What do you think of the pirate situation' they replyed, "Im worried about being attacked and our security force not being able to protect us." Sol gov when asked the same question did not give a responds, but when we asked the U.G.P.S. Commander John Wolf, "What do you think of the pirates and the black market situation in the outer edges systems?" he replyed "We have the situation under control, we will be sending more crusiers to reinforce the colonies that are under our protection, as for the black market ordeal we are currently trying to reclaim everything that was stolen." +
+Todays Supporters in the creation of this story +
+Hellrazer - Helped with concepts and writing. +
+Dangerus Kitty - Helped with concepts and writing. +
+
+03/30/2561 +
+Galaxy Wide News +
+Hello folks of the galaxy, today we got word that employees of a NT station called, Yawn Wider have been unlawfully going to the stations Central Command, we don't have all the details but when we asked a NT official Mitch Milburn about it they said, "We have recently received reports from the officers aboard Yawn central command about an increased number of personnel in space suits entering the perimeter. Entering central command's perimeter without permission from the officers aboard is highly illegal and if any personnel is spotted doing so we cannot guarantee their safety." and thats whats going on in Virgo. In other parts of the galaxy, Strog Industries (S.Ind) from reports they have been looking into augmentation of the Vox, we attempted to ask S.Ind about this but they denied any claims we will be looking into this further. +
+
+Todays supporters in the creation of this story +
+Izac112 - Gave the NT offical's statement to be used in this post. +
+Dangerus Kitty - lended a hand helping with the writing. +
+
+04/12/2561 +
+Galaxy Wide News +
+Hello people of the galaxy! Today we have news of NT apparently presenting evidence of slavery that the robotics industry giant of Ro.Co. are suspected of doing. We investigated by interviewering a NT offical where they stated the following, "We have recently hired someone in the Virgo system and we found that they had a tracking implant featuring Ro.Co. designs, we are still looking into it to confirm our suspicions, I would go into further detail but I am unable to at this time." +With that said we also asked a Ro.Co. offical and they deny any claims to slavery stating, "We do not have illegal slaves not do we support such a terrible act, the tracking implants are just being used for employees that have commited crimes in the past so we are very suprised that NT would go to such great lengths to hurt our company." There will be court hearings in the coming week, stay tuned for more information! +
+
+Todays Supporters in the creation of this story +
+JackeryFox - Helped with the writing in this story alot. +
+
+05/06/2561 +
+Galaxy Wide News +
+!!!Breaking News!!! +
+Sol Gov's 12th fleet reportedly went into A.R. (Athorian Republic) space and attacked a fleet of A.R.M. ships, the 12th Sol Gov fleet were severely damaged and surrendered to the A.R.M. fleet, reportedly the A.R. will be charging the 12th Sol Gov fleet for breaking border laws both Sol Gov and the A.R. have not stated anything to the press as of yet. +
+In other parts of the galaxy.. population growth in a outer system of Virgo has caused food and water shortages. Support organizations have come in to try and help this issue... Core systems such as Sol have had pirate trouble as city crime rates and ship disappearances go up. +
+A.R. have issued a temperary ban on Vox being in A.R. space due to pirates and aggression from the Vox, A.R. Offical Kalgar Misko stated, "With this ban this will allow A.R.M. system defences to meet Vox pirates with lethal force rather then attempting to arrest them." We here at G.W.N. ask Kalgar, "Does the A.R. see the Vox as a galactic empire?" Kalgar replied, "No.. the A.R. has deem the vox as a remnant class civilization, which means we can't declare war on them, but if they show to much aggression we can have them marked as a threat to our empire." We attempted to get more info but there was nothing more we could get. +
+Mercenary and Security organizations across the outer edge of human space have clashed, it would seem from reports that companies in those areas are hiring mercs to attack security companies, this has ranged from attacking supply ships to attacking outpost. +
+
+05/07/2561 +
+Galaxy Wide News +
+Hello folks! Today we have more reports of pirates in human space. +A medical freighter was raided by pirates, the suspects leader has not been identified but from video surveillance the leader is a human male with red eyes and assumed to be blonde with a pony tail and has pale skin, Local security in the system have requested that if anyone fits this description to report it to your local system security department. +Other info on the pirate crew is sparse but it was multi crew (more then one race.) and the humans from surveillance appeared to only talk through hand motions. +
+Credits +
+Writer(s)Admiral Dragon +
+Story submition:Captain matt (Kudos) +
+Side notes: I would like to thank Kudos and congratulate him on being the first to submit a story/concept to G.W.N. +
+
+05/09/2561 +
+Galaxy Wide News +
+Transmition to: Yawn Wider +
+Hello Y.W. we have heard about a birthday and we here at G.W.N. would like to say HAPPY BIRTHDAY to the lovely Juli Gaze, we wish you a great day. +
+
+05/24/2561 +
+Galaxy Wide news +
+!!!Breaking news!!! +A terroristic act was brought about on Yawn Wider station, mercenaries attacked the station inflicting large amount of damage, casualties. +The mercenaries were all killed with none taken alive, political figures in the military line of work criticize Yawn Wider's staff for not attempting to take prisoners while congratulating them on the fact they held of a attack with little security abord. +At the current time the staff on Yawn Wider have been placed into a temperary station that was going unused, while the original gets repaired and cleaned up. +
+
+

End of the archived news stories from Galaxy Wide

+ 03/27/2561 to 05/24/2561 +
\ No newline at end of file diff --git a/news_articles/the_sleepy_sergal_1.html b/news_articles/the_sleepy_sergal_1.html new file mode 100644 index 0000000000..079aea666c --- /dev/null +++ b/news_articles/the_sleepy_sergal_1.html @@ -0,0 +1,68 @@ + +

+
+
+9/29/2536 +
+The Sleepy Sergal +
+===Unathi Black Egg Plague At Record High! (powered by Nanotrasen®™)=== +
+The Hegemony High Council has released a statement today confirming what has been circulating amongst the circles of the unathi population: Black Egg Syndrome has been at an all time high, at thirteen percent and rising. +For readers who are unaware, this is a condition that mainly targets unathi females, sympthoms include unathi egg clutches including one or several eggs which are covered in a dark, hard, leather like substance, which makes hatching for the young skinks next to impossible thanks to how solid the egg is compared to normal. Often times this will result in the egg being left for dead in the wild, and the female is reclassified as male due to their cultural value decreasing. +
+Beyond confirming what was suspected, Hegemony, as well as Solgov officals, have declined to comment. Skrellian officals, meanwhile, have remarked that they would seek a cure for this deliberating condition, as a token of goodwill after the war years earlier involving the Hegemony, Skrell, and Solgov. +
+- Reporter Jalder Strelam +
+Writer(s) +
+Matt +
+
+05/2/2536 +
+The Sleepy Sergal +
+Obituary - Pablo Jenner +
+Pablo Jenner passed away while fighting giant space bears during a mining expedition on the evening of October 10th, 2563, at the age of 76. He will be greatly missed for his service. He has lived a rich life of mining on various planets and moons, and continued on even after losing his legs to other creatures, he was a real trooper. +
+His last words were to a certain Margaret and it said: "Tell her she's a bitch." +
+Respects can be paid at the Yawn Wider Colony, where his remains are currently kept. +
+Writer(s) +
+Kelshark +
+Credits +
+Snek, the souped up space bear +
+Legion +
+
+05/10/2536 +
+The Sleepy Sergal +
+===Tragic Tram Crash on Virgo 3B! (powered by Nanotrasen®™) === +
+Tragic news from Virgo 3B today. The orange line tram's automated brakes failed to engage when arriving at one of the waystations on the route. The resulting crash ended up destroying the small station's tram terminal, as well as the tram car itself. The automated systems however, did not pick up on the crash until much later, reporting that the train was still moving as normal. It wasn't until crewmembers aboard the next stop on the line, Yawn Wider Station, noticed that the tram was mysteriously missing, that technicians realized what had happened. +
+The tram contained two passengers, Sabel Hall, 34, Human; and Farket Mrrhalka, 21, Tajara. Only Sabel's body has been located at this time, though the explosion, coupled with the harsh environment, leads investigators to presume that Farket was also killed. +
+A memorial service will be conducted for the victims of the tragic accident on their home colony. In the meantime, technicians begun repairs on the orange line, and, in the meantime, workers should use short range teleporters, or a different tram line, to make it to and from their workplace +
+Writer(s) +
+Cebutris +
+Credits +
+The shuttle system breaking +
\ No newline at end of file diff --git a/news_articles/the_sleepy_sergal_archived_1.html b/news_articles/the_sleepy_sergal_archived_1.html new file mode 100644 index 0000000000..7f501233b8 --- /dev/null +++ b/news_articles/the_sleepy_sergal_archived_1.html @@ -0,0 +1,399 @@ + +

+ +

These are archived news stories from The Sleepy Sergal

+ 03/01/2562 to 05/24/2563 +
+
+ +03/01/2562 +
+Welcome to The Sleepy Sergal's news channel! +
+The Sleepy Sergal is an independent group of news reporters based out of the Virgo-Erigone system. While our updates might not be frequent, it's quality hand crafted content straight from the heart of Virgo! Remember to check back often for more unbiased and quality news, because you deserve it! Remember, we're not dead - only dormant! Rumors that we hijacked another station's channel and equipment are wildly exaggerated. +The Sleepy Sergal +Into the Slightly Unknown! +
+NanoTrasen's new addition to the Research Department, The Exploration Team, was unveiled several weeks ago with resounding success! NanoTrasen's Virgo-Erigone Central Command released data saying that alien artifact recovery has went up by a staggering 300%. While unconfirmed as of now, several interstellar salvage groups say that their vessel recovery rate has went up to untold numbers. NanoTrasen denies any correlation between their new program and the increase in derelict exploration vessels. +
+This article was sponsored by Havana Premium Cigars: For when you need to absolutely and positively ruin your lungs, with no exceptions! +
+Writer(s) +
+Sleepy +
+
+03/02/2562 +
+The Sleepy Sergal +
+Supermatter, does it matter? +
+After recent month's mass freighter convoy, consisting of vessels from Focal Point Energistics, Hephaestus Industries, and Aether Corporation, non-standard energy production facilities have been replacing the once standard 'Supermatter' engine. While less conventional and practiced, these alternatives - which include the MK1 Tesla Engine, the High Power Singularity Generator, and the R-UST Thermonuclear fusion reactor - provide reliable power at a more affordable cost. Colonists and workers in Virgo-Erigone have expressed concerns over how safe the new-to-them engines are in comparison to the Supermatter. +
+The Director of Power Technology at Focal stated, "It's probably okay, th-there's no proof a singularity is lethal. There's no autopsy data available," before vomiting on his desk and passing out. +
+In unrelated news, our condolences go out to the freighter 'Borealis' which was side struck by a black hole like object, experts say it was "probably natural causes.' +
+Writer(s) +
+Sleepy +
+
+03/03/2562 +
+The Sleepy Sergal +
+Donkified! +
+After fifteen years of public outcry, Donk Co has pushed out a new product, their statement being: +
+"Years on end our valued customers have been shouting, 'Put a bangin' donk on it!' We never thought it to be the most viable business strategy, until we researched and developed it. The new Donkified Donk Pocket is what the customers have been asking for! It comes in four distinct tastes, original, chicken alfredo, ?????, and meaty by product! We hope you enjoy the new Donk Co Donk Pocket Product!" +
+Reports have come in from across the galaxy saying that once you finish microwaving the Donkified Donk Pocket and take your first bite, it literally explodes. One consumer we asked said, "This is everything I've been looking for." Another said that, "The new jaw I had to have installed was worth the explosive taste of the new Donk. It's amazing!" +
+Writer(s) +
+Sleepy +
+General Pantsu +
+
+03/23/2562 +
+The Sleepy Sergal +
+Pirate invasion on Yawn Wider! +
+Arr matey! It appears some pirates have attacked the Yawn Wider colony on the 22nd this month! +
+From our insider source, the invasion would have began sometime in the afternoon and was led by two pirates who managed to rush inside the colony with a small shuttle craft. Report came in that the pirates had been successful in capturing a hostage upon arrival, and would have left with the entirety of the vault, whose content is still kept a secret by Nanotrasen. The security forces of the colony seems to have been caught offguard by the sudden and unexpected attack. At least two dead have been reported (and resleeved) but there may have been a third one as well. +
+We have contacted the station's Overseer and all they had to say was: "I was unfortunately at central filling paperwork on that day, I wish I had been there to help repel the attack. I commend the crew for doing their best however." +We have tried to contact Nanotrasen for comment, but have not gotten a response. +
+Writer(s) +
+Kelshark +
+
+06/25/2562 +
+The Sleepy Sergal +
+Nanotrasen gives workers free synths! +
+Workers on Yawn Wider's tether colony are in for a strange surprise! +
+During the off-shift clean up operations, a new resleeving pod had been installed, but the workers have learned that it is non-functional, and while the spare parts are being sent, travel times and rarity of the pieces for repairs means it may take a while before they can print up new bodies for those who encounters some ill fate on the more dangerous jobs! +
+Nanotrasen has therefore added a addendum to all Yawn Wider employees insurance, which allows for a free replacement synthetic body during their shifts, and their original body printed off-colony at another facility also free of charge. +
+Some employees are outraged by this, some outright refusing to allow themselves to be put in a synthetic shell and simply demanding to have their shift cut short and be immediately printed off-colony. That however, might be a hit on their paycheck! +
+Stay tuned for more on the Sleepy Sergal! +
+Writer(s) +
+Kelshark +
+Credits +
+Polaris bug +
+
+08/21/2562 +
+The Sleepy Sergal +
+Subterranean Phoron Deposits on Tarsonis II! +
+Tarsonis II, a planet in the Tarsonis system of the +Horsehead Nebula, a previously overlooked largely dry-desert world has come under attention in recent months due to the discovery of phoron deposits within its crust. An existing steel-mining outpost on the world's arid northern continent is being supplied with additional equipment and personnel to facilitate the extraction of the phoron and its loading onto trains for shipment to the starport far to the south. +
+Writer(s) +
+DeepIndigo +
+
+09/11/2562 +
+The Sleepy Sergal +
+Medicine Prices to increase on Doradus IV! +
+Following a modest phoron spill during routine shipment across the Tel'atmora province of the gaia world S'Zaan, a.k.a Doradus IV, of the Doradus system, Horsehead Nebula, legislation has been passed to tighten regulations regarding the transport of phoron over land, sea, and air, including an increase to the minimum tank hull thickness and higher hermatic valve quality standards. A mandate that phoron particulate and phoron powder be compressed into crystal sheet form before entering the planet's atmosphere has also been imposed. +
+As a member planet-state of Nanotrasen Space, the local governing executive board decided in a narrow 54:47 vote mostly along species lines to tighten regulations aimed at protecting the environment from phoron contamination. Representative Kontar Tannous of the board's Exo-Commerce Committee had the following to say: +"While we regret the inconvenience this may cause medical clinics and certain manufacturing sectors, as a species the native people of S'Zaan have historically taken the matter of environmental stewardship quite seriously. If we had not, our world wouldn't be the resort destination it is today. The board will be working tirelessly to determine a possible method to mitigate the increased cost that is fair to all parties". +
+Clean-up at the site of the spill is expected to take two weeks, and may require extensive excavation of the site. +
+Writer(s) +
+DeepIndigo +
+
+10/15/2562 +
+The Sleepy Sergal +
+Fast Headlines (powered by Nanotrasen) +
+Nuclear life: Scientists at a research outpost on Halcyon III?, Hawking Eta Cluster, have identified what they believe is a form of paper-thin fungal growth that, unlike most known life, is uranium-based as opposed to traditional carbon-based life. +
+Bonjour, Monsieur Pussy-Cat: Earlier today, The Lusty Argonian Maid was knocked off the top selling book series by the sixth edition of J'ezora's tell all documentary about his life growing up as a tajara in the earth region of France, and his career as a mime. +
+Scoured!: ''The Scouring: Microvestin Day'', the latest holofilm in the ''The Scouring'' franchise, opened to a box office take of over 1.678 billion Thalers despite being largely panned by critics. Industry analysts suggest this might mean that that critic circles have perhaps begun to lose touch with the tastes of the general public. +
+Triumph or Tragedy?: Hector Triumph, a candidate for defense minister in the Nanotrasen star system of Thessolonian (in the Attican Beta Cluster) has publicly declared intent to encase the star system's primary world and its star in a massive dyson sphere. He is quoted as saying ''We need to make Nanotrasen human again. Too many aliens are moving in on our glorious corporation and sending us their worst, nothing but mad bombers, communists, and mindbreaker dealers. We're going to build a sphere and make the aliens pay for it.'' +
+Spooky celebrations: The capital city on Sol III? has begun its annual "Festival of Spirits", a 45 day long celebration of various cultures' supernatural-centric holidays. The festival kicks off with Earth's american region holiday "Halloween" on day one, followed by its neighbor to the south's "Día de Muertos" (Day of the dead) on day two. For a full list, see exonet address sol.luna.spiritfest.nt. +
+Stay subbed to this feed for more breaking, reliable news! +
+Writer(s) +
+DeepIndigo +
+
+11/30/2562 +
+The Sleepy Sergal +
+BREAKING IN SCIENCE! (powered by Nanotrasen) +
+Xenoarcheologists and technology historians have stumbled upon a treasure trove of research material after unmanned probes detected signs of nuclear detonation in a remote star system along the fringes of the Calisto Nebula. Upon arrival to the system, which will remain unidentified to prevent contamination prior to study, experts were astonished to find a world on which civilization had gone extinct in the later half of its "robotics" age. +
+While this sounds mundane, the planet in question had a rare trait uncommon in this sort of extinction event: still operating machines. Study is limited to orbital observation so far, owing to the fact that the civilization's machines of war are still carrying out nuclear bombings and the occasional ground invasion of one another. Apparently, the local inhabitants had more or less entirely automated warfare, and gone extinct as a result of the ensuing arms races. +
+Experts hope to find one of the software systems, if any are in use, responsible for operating the bombers/tanks/naval ships, or the now defunct menagerie of satellite-to-surface weapons after the conflict finally resolves its self and the last weapons power down. Present evidence suggests the weapons are drone-based, operating along preset command sets assigned by AI or possibly preserved organic intelligence. A "winner" of the continuing conflict between factions of what scientists are calling the "Revenant" society is expected to be among the few groups that seem to have established partial support infrastructures of similar machinery, namely automated resource extraction and maintenance. "With the degree of failure in these systems, it's anyone's game.", said lead tech researcher Patel Nanjiani. +
+The discovery is a sobering reminder of intelligent life's potential for self-destruction. +
+Writer(s) +
+DeepIndigo +
+
+12/17/2562 +
+The Sleepy Sergal +
+NANOTRASEN FESTIVITY BULLETIN +
+There are only 8 shopping days left until the Sol System Winter Solstice Holidays kick off proper! Nanotrasen would like to remind all employees that an extra hour every work cycle can mean the difference between a happy holiday, and a truly magical one, and wish employees, citizens of Nanotrasen's interstellar holdings, and members of the Nanotrasen Star Navy, a joyous winter solstice holiday period, filled with laughter, family, and a great homecooked meal from ingredients by fine purveyors of food and drink stuffs such as Getmore and the Robust Softdrink Company. +
+Writer(s) +
+DeepIndigo +
+Credits +
+Nanotrasen Civil and Professional Morale Department +
+
+01/17/2563 +
+The Sleepy Sergal +
+Taitrus to leave FATO +
+Nanotrasen Corporate Strategists in the Sol System offices are growing concerned as the colonial government of the SOLGOV held Taitrus System in the Milky Way's Fourth Spiral Arm threaten to leave the Fourth Arm Treaty Organization, a coalition of local governments in 4A committed to a mutual defense funding/resource pool shared along the spinward edge of the arm. Taitrus' position in the arm near the galactic core could mean its departure from FATO will open gaps through which enemy corporations can funnel personnel and equipment for larger, and deeper incursions into Nanotrasen and NT-joint-held territories. +
+As such, company reps are making efforts to persuade Taitrus' government to stay in the agreement. Diplomats from the system however, contend that their solar system has been getting the "short end of the FATO stick", with limited portions of the organization resources being applied to their defense relative to others, like those along the fourth arm's edge bulk. "We're basically out here defending our selves, so why should we be tithing to a defense pool we don't benefit from? Our freighters, logistics networks, and colonial militia play a small, but vital role in FATO, and we get nothing. They're better used just staying home." said one Taitrus dignitary. Nanotrasen Corporate strategists declined to comment beyond a form letter stating that Taitrus' involvement is important to them, and that they regret circumstances which have lead to Taitrus' consideration of leaving FATO. +
+Writer(s) +
+DeepIndigo +
+
+02/20/2563 +
+The Sleepy Sergal +
+One-two punch update, powered by Nanotrasen +
+==Valentines Day Box Office Numbers== +
+The Nanotrasen Media Statistics Office has released box office numbers for holofilm theatres and streaming services. Here's the top three best sellers for V-day of 2563 +
+Kissed Her Sister: A new tajaran romcom detailing the wild hijinks that ensue when a man accidentally kisses the twin sister of his bride. Opened to 131 billion thalers across NT space. +
+Do AI eat electric shrimp?: A Nanotrasen Studios original, in which a rogue AI catfishes a human woman, and the two fall fast. Opened to 127 billion thalers. +
+12 Rules of Love: The classic tale of a hapless male human and his arranged marriage to an unathi bride still draws a crowd even nearly ten years after initial release, opening to a holiday showing ticket total of over 123 billion thalers. +
+==Colony Vanishes== +
+A small fledgling planetary colony far at the edge of NT space has gone quiet. As of February 16th, all communication from the colony has ceased, though long-range scans do not show enemy activity. Among the last comms signals received from the colony was a religious message from a group identifying them selves as the "Project at Gaia's Doorstep", consisting of a series of folksy religious songs. Investigators are en route as of publishing. +
+Writer(s) +
+DeepIndigo +
+
+03/22/2563 +
+The Sleepy Sergal +
+==SCIENCE UPDATE! (powered by Nanotrasen)== +
+In November, we reported on the discovery of a world under siege by its long-dead inhabitants' automated weapons still carrying out an ages-old conflict despite their makers' absence. Today, we have an update for you. The support infrastructure machine networks behind one of the major surviving drone factions has failed as a result of bombings, apparent locomotion mishaps (falling into trenches/bodies of water, mechanical failures, or being crushed by falling rock), and simply succumbing to age. As a result, over the last five weeks, its combat units have grinded to a halt with no incoming fuel and ammunition following facilities no longer receiving raw materials. +
+To the surprise of researchers, a number of the functioning aerial combat units consequently carried out suicide bombings, suggesting complex coordination between all involved networks and situational awareness (but apparently also the various machines' determination to resolve the conflict regardless of their makers' status). +
+These events mean the count of observed active belligerents has dropped from 11 to 10. +We will keep our loyal readers and subscribers apprised of future updates as we become aware of them. +
+Writer(s) +
+DeepIndigo +
+
+04/02/2563 +
+The Sleepy Sergal +
+==In Warfare and Weapons Contracting (powered by Nanotrasen)== +
+A nanotrasen Navy lab has been authorized to announce that in early January, a multi-species team of physicists, engineers, circuit designers, and chemists has successfully test-fired a promising new laser weapon technology. Dubbed "Grape guns" by the team, the laser is an extremely high power ultra-violet beam. While it is a ways away from field tests and even further from miniaturization for personnel weaponry, the lab staff assure this news outlet that deployment-ready ship-scale grape guns are "only a breakthrough or two away, and breakthroughs are what [they] do [at the lab]". +
+Theoretically, the new lasers would only be deployed as long-range weapons, able to fire without beam strength degradation at up to six times the range of traditional infrared beams, albeit with a much longer cool time and increased maintenance needs. Even with their limitations, it would be much more difficult to catch Nanotrasen Vessels off guard and even harder to hit them with ballistic or guided projectiles due to the increased response range. +
+Writer(s) +
+DeepIndigo +
+05/09/2563 +
+The Sleepy Sergal +
+==STARkroosh (powered by Nanotrasen)== +
+The latest generation of film, TV, and webcast stars is loaded with lots of juicy, juicy eye candy for lads, ladies, and anyone else. Here's STARkroosh's list of hotties to follow on socials and basic details on them for summer of 2563 in the order we found them: +
+1. Vlad Kliment -Human Male (North Asia, Earth), Film @theVKlim +
+2. Lívia Sá Alvarez - Human Female (South America, Earth), Television @1calientechica +
+3. Wuyalach Vuhuk -Vulpakanin Female (Heart Region, Altam), Film @hollywoofWV +
+4. Afdan Tuma - S'Zaani Male (Sunloved region, S'Zaan), Film @blackcatAF +
+5. Arfarra Arrarah - Sergal Female (Northern Quarter, Tal) Webcast @RealArfy +
+Be sure to check back during the week, we'll be publishing a rundown of one of these sexbombs (with SFW pics only, sorry folks. Some of them have been naked on camera though, get searching!) every day for the next five days. +
+Writer(s) +
+DeepIndigo +
+
+06/11/2563 +
+The Sleepy Sergal +
+===Science Update (powered by Nanotrasen)=== +
+We have an update on the so called "Revenant society" we covered in November, and again in March. +Previously hidden in a migratory thunderstorm, a massive, airborne aircraft carrier has been discovered, apparently suspended by a combination of helium ballasts, and a series of rotors, control surfaces, and turbines, powered by a combination of solar panels and tesla coils. This carrier, is, as far as can be determined, the last remnant of its faction, and unable to fend off air attacks thanks to a combination of lacking appropriate munitions, many of its anti-air weapons being damaged beyond use, and its drones apparently lost or destroyed. After intense observation, a shuttle was landed on the carrier's flight deck and to the away team's surprise and delight, it was possible to recover the carrier's commanding AI, tentatively named "River" for its persistence in spite of the odds against it. Work is underway to understand River's functionality and translate the language it operates in. Researchers hope to question it and learn more about the planet and its history. +
+Writer(s) +
+DeepIndigo +
+
+07/27/2563 +
+The Sleepy Sergal +
+===Economy Today (powered by Nanotrasen)=== +
+After a black hole near the spinward edge of the Crab Nebula violently discharged an accretion disk and accompanying rod, the resulting diskseismological disturbances (namely massive scale electromagnetic and x-ray bursts) have disrupted the operation of fuel platforms, exonet buoys, and subspace communications hubs in the area. While the greater galaxy is unlikely to be adversely affected, systems and stations relying on exports from the region such as textiles and produce are expected to see shortages for the coming two weeks as repairs are conducted and shipping routes are replotted around newly present dense stellar matter blobs. So far no casualties have been reported, though information coming out of the affected areas is limited and sporadic at best. +
+Writer(s) +
+DeepIndigo +
+
+08/20/2563 +
+The Sleepy Sergal +
+===In Medicine (powered by Nanotrasen)=== +
+A recent pharmacological discovery, followed by associated innovation, has lead to what scientists expect will be a faster, cheaper treatment for certain less easily cured cancers. Last week, a moon who's location will remain unpublicized for security purposes, was found to be home to a fungus which, when derived enzymes are included in what would otherwise be an ordinary rhinovirus vaccine, cause lung, leukemia, kidney, and stomach cancer cells to break down into constituent nutrients while leaving nearby healthy cells unharmed. A doctor working on the research project at a joint NT-Veymed facility, both of which like the moon will rename unnamed for security reasons, said, "It's still early in, but once we start up hydroponic farms for this fungus and determine any ill effects, we expect we could shorten treatment periods for the cancers in question by as much as 32%, and reduce the expense by as much as 60%. It's really quite promising so far." +
+Writer(s) +
+DeepIndigo +
+
+09/15/2563 +
+The Sleepy Sergal +
+===Science Update (powered by Nanotrasen)=== +
+More news on the Revenant Society we covered last in June. The recovered carrier AI, River, (now known to have been dubbed "J'k-tethrrrrll-388" by its makers), has reportedly interpreted attempts to communicate with it and assisted in the construction of a common language to use with research personnel. At present, conversations are slow and protracted, with minimal information derived there-from. What HAS been established, is that River is entirely cognizant of its makers' demise, which was apparently some three centuries ago. It suspects its adversaries are to varying degrees also aware of their creators' extinction, but, like it, devoted to carrying out the task they were designed for. A paraphrased quote from River was released by the research vessel crew. +
+"War is our blood, our burden, our purpose. We know nothing else, and can know nothing else. When the last bomb has fallen, the last structure has crumbled, my and my opponents' circuits will be permitted to cool and become quiet. With the victor will die the last echo of those who made us." +
+Writer(s) +
+DeepIndigo +
+
+09/23/2563 +
+The Sleepy Sergal +
+===Virgo-Erogine 4 saved! (powered by Nanotrasen)=== +
+ Yawn Wider Research Establishment personnel Kaenin Qerrlar, Ru-rek Nizarro, Lynsey Mccune, Sagira Asker, Domine Brisillidine, Sawyer Collins, and Duncan Baxter, risked life and limb to save the Zorren homeworld of Virgo-Erigone Four. For their heroic actions fighting a bloblike organism that threatened to devour the planet whole, they were each rewarded the Medal of Valor +
+- Yarell Moon +
+Writer(s) +
+CaptMatt4 +
+
+09/27/2563 +
+The Sleepy Sergal +
+===BREAKING IN ENTERTAINMENT NEWS! (powered by Nanotrasen)=== +
+Fans of Miracle Comics rejoice as the comic publisher has just announced a partnership with NanoStudios to produce a series of movies based on Miracle's galaxy-recognized properties. The first film is reportedly to feature an origin story for Miracle's "The amazing Mantis Man", with rumored appearances by other beloved heroes such as Plasteel Man, and The Owl (and, according to an anonymous source at Miracle, The Owl's nemesis, the dreaded Griffon, though not as the main villain). The firm is slated, pending its success, to lead to a tie-in sequel with the most recent iteration of the the critically acclaimed Fantastic Gene-People series of films (The ones from 2559 to 2562). +
+Writer(s) +
+DeepIndigo +
+
+09/28/2563 +
+The Sleepy Sergal +
+===Synthetic Drug Terrorizes Mars! (powered by Nanotrasen)=== +
+SolGov is issuing an official warning to citizens to stay wary of a new synthetic drug known as "Devil Dust". It comes in the form of a powder, usually red, and is applied to the eyes, either directly or with the aid of a saline solution. The drug causes a very quick and powerful hallucinagetic episode, reportedly stronger and more vivid than other similar drugs. It also gives users a slight high, with one user claiming in an interview that "[The drug] makes you feel like you can do, whatever you want. It gives you power, y'know?". +
+Devil Dust is extremely addictive, with users developing dependancies with as little as two to three doses. Sustained, regular use of the drug can cause seizures of increasing intensity, and withdrawl can send users into comas. +
+Investigators suspect the drug began production in a station somewhere near Saturn, though they have been unable to trace it back to it's source at this time. The drug has been seen mostly in Martian slums, though some witnesses report that they've seen it circling around high class establisments on Earth, though those reports are unconfirmed. So far, it has been contained in the Sol system. +
+SolGov officials request that any information on the drug be reported to any SolGov representive, or local authority, especially if it is seen outside the Sol system. +
+Writer(s) +
+Cebutris +
+
+

End of archived news stories from The Sleepy Sergal

+ 03/01/2562 to 05/24/2563 \ No newline at end of file diff --git a/vorestation.dme b/vorestation.dme index 8f8916a0f2..26e31ee265 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -220,7 +220,6 @@ #include "code\controllers\Processes\alarm.dm" #include "code\controllers\Processes\emergencyShuttle.dm" #include "code\controllers\Processes\game_master.dm" -#include "code\controllers\Processes\radiation.dm" #include "code\controllers\Processes\supply.dm" #include "code\controllers\Processes\ticker.dm" #include "code\controllers\ProcessScheduler\core\process.dm" @@ -246,6 +245,7 @@ #include "code\controllers\subsystems\overlays.dm" #include "code\controllers\subsystems\persist_vr.dm" #include "code\controllers\subsystems\planets.dm" +#include "code\controllers\subsystems\radiation.dm" #include "code\controllers\subsystems\shuttles.dm" #include "code\controllers\subsystems\sun.dm" #include "code\controllers\subsystems\time_track.dm" @@ -363,7 +363,6 @@ #include "code\datums\repositories\cameras.dm" #include "code\datums\repositories\crew.dm" #include "code\datums\repositories\decls.dm" -#include "code\datums\repositories\radiation.dm" #include "code\datums\repositories\repository.dm" #include "code\datums\repositories\unique.dm" #include "code\datums\supplypacks\atmospherics.dm" @@ -2505,11 +2504,15 @@ #include "code\modules\mob\living\simple_mob\subtypes\mechanical\corrupt_maint_drone_vr.dm" #include "code\modules\mob\living\simple_mob\subtypes\mechanical\disbot_vr.dm" #include "code\modules\mob\living\simple_mob\subtypes\mechanical\golem.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\golem_vr.dm" #include "code\modules\mob\living\simple_mob\subtypes\mechanical\mechanical.dm" #include "code\modules\mob\living\simple_mob\subtypes\mechanical\viscerator.dm" #include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\hivebot.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\hivebot_vr.dm" #include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\ranged_damage.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\ranged_damage_vr.dm" #include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\support.dm" +#include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\support_vr.dm" #include "code\modules\mob\living\simple_mob\subtypes\mechanical\hivebot\tank.dm" #include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\adv_dark_gygax.dm" #include "code\modules\mob\living\simple_mob\subtypes\mechanical\mecha\combat_mecha.dm" @@ -2919,6 +2922,7 @@ #include "code\modules\projectiles\targeting\targeting_mob.dm" #include "code\modules\projectiles\targeting\targeting_overlay.dm" #include "code\modules\projectiles\targeting\targeting_triggers.dm" +#include "code\modules\radiation\radiation.dm" #include "code\modules\random_map\_random_map_setup.dm" #include "code\modules\random_map\random_map.dm" #include "code\modules\random_map\random_map_verbs.dm"