diff --git a/code/ZAS/Atom.dm b/code/ZAS/Atom.dm index 06305182b3..bfe6fa2ad4 100644 --- a/code/ZAS/Atom.dm +++ b/code/ZAS/Atom.dm @@ -3,14 +3,6 @@ /atom/var/pressure_resistance = ONE_ATMOSPHERE /atom/var/can_atmos_pass = ATMOS_PASS_YES -// Purpose: Determines if the object can pass this atom. -// Called by: Movement. -// Inputs: The moving atom, target turf. -// Outputs: Boolean if can pass. -// Airflow and ZAS zones now uses CanZASPass() instead of this proc. -/atom/proc/CanPass(atom/movable/mover, turf/target) - return !density - // Purpose: Determines if airflow is allowed between T and loc. // Called by: Airflow. // Inputs: The turf the airflow is from, which may not be the same as loc. is_zone is for conditionally disallowing merging. @@ -30,12 +22,6 @@ else CRASH("Invalid can_atmos_pass = [can_atmos_pass] on [src] ([type])") -/turf/CanPass(atom/movable/mover, turf/target) - if(!target) return FALSE - - if(istype(mover)) // turf/Enter(...) will perform more advanced checks - return !density - /turf/CanZASPass(turf/T, is_zone) if(T.blocks_air || src.blocks_air) return FALSE diff --git a/code/ZAS/Fire.dm b/code/ZAS/Fire.dm index e67d2ad3ac..015ffa36a9 100644 --- a/code/ZAS/Fire.dm +++ b/code/ZAS/Fire.dm @@ -170,7 +170,7 @@ If it gains pressure too slowly, it may leak or just rupture instead of explodin continue //Spread the fire. - if(prob( 50 + 50 * (firelevel/vsc.fire_firelevel_multiplier) ) && my_tile.CanPass(null, enemy_tile, 0,0) && enemy_tile.CanPass(null, my_tile, 0,0)) + if(prob( 50 + 50 * (firelevel/vsc.fire_firelevel_multiplier) ) && my_tile.CanPass(src, enemy_tile) && enemy_tile.CanPass(src, my_tile)) enemy_tile.create_fire(firelevel) else diff --git a/code/__defines/__outdated_compatibility.dm b/code/__defines/__outdated_compatibility.dm new file mode 100644 index 0000000000..764fde7887 --- /dev/null +++ b/code/__defines/__outdated_compatibility.dm @@ -0,0 +1,8 @@ +//Update this whenever you need to take advantage of more recent byond features +#define MIN_COMPILER_VERSION 514 +#define MIN_COMPILER_BUILD 1556 +#if (DM_VERSION < MIN_COMPILER_VERSION || DM_BUILD < MIN_COMPILER_BUILD) && !defined(SPACEMAN_DMM) +//Don't forget to update this part +#error Your version of BYOND is too out-of-date to compile this project. Go to https://secure.byond.com/download and update. +#error You need version 514.1556 or higher +#endif \ No newline at end of file diff --git a/code/controllers/subsystems/machines.dm b/code/controllers/subsystems/machines.dm index dd99681b48..95f366ef81 100644 --- a/code/controllers/subsystems/machines.dm +++ b/code/controllers/subsystems/machines.dm @@ -6,9 +6,6 @@ // // SSmachines subsystem - Processing machines, pipenets, and powernets! // -// Implementation Plan: -// PHASE 1 - Add subsystem using the existing global list vars -// PHASE 2 - Move the global list vars into the subsystem. SUBSYSTEM_DEF(machines) name = "Machines" @@ -24,12 +21,6 @@ SUBSYSTEM_DEF(machines) var/cost_powernets = 0 var/cost_power_objects = 0 - // TODO - PHASE 2 - Switch these from globals to instance vars - // var/list/pipenets = list() - // var/list/machinery = list() - // var/list/powernets = list() - // var/list/power_objects = list() - var/list/current_run = list() /datum/controller/subsystem/machines/Initialize(timeofday) @@ -51,28 +42,31 @@ SUBSYSTEM_DEF(machines) // The above is a lie. Turbolifts also call this proc. /datum/controller/subsystem/machines/proc/makepowernets() // TODO - check to not run while in the middle of a tick! - for(var/datum/powernet/PN in powernets) + for(var/datum/powernet/PN as anything in powernets) qdel(PN) powernets.Cut() setup_powernets_for_cables(cable_list) /datum/controller/subsystem/machines/proc/setup_powernets_for_cables(list/cables) - for(var/obj/structure/cable/PC in cables) + for(var/obj/structure/cable/PC as anything in cables) if(!PC.powernet) var/datum/powernet/NewPN = new() NewPN.add_cable(PC) propagate_network(PC,PC.powernet) /datum/controller/subsystem/machines/proc/setup_atmos_machinery(list/atmos_machines) + var/list/actual_atmos_machines = list() + for(var/obj/machinery/atmospherics/machine in atmos_machines) machine.atmos_init() + actual_atmos_machines += machine CHECK_TICK - for(var/obj/machinery/atmospherics/machine in atmos_machines) + for(var/obj/machinery/atmospherics/machine as anything in actual_atmos_machines) machine.build_network() CHECK_TICK - for(var/obj/machinery/atmospherics/unary/U in atmos_machines) + for(var/obj/machinery/atmospherics/unary/U as anything in actual_atmos_machines) if(istype(U, /obj/machinery/atmospherics/unary/vent_pump)) var/obj/machinery/atmospherics/unary/vent_pump/T = U T.broadcast_status() @@ -105,12 +99,10 @@ SUBSYSTEM_DEF(machines) while(current_run.len) var/datum/pipe_network/PN = current_run[current_run.len] current_run.len-- - if(istype(PN) && !QDELETED(PN)) - PN.process(wait) - else + if(QDELETED(PN)) global.pipe_networks.Remove(PN) - if(!QDELETED(PN)) - DISABLE_BITFIELD(PN.datum_flags, DF_ISPROCESSING) + else + PN.process(wait) if(MC_TICK_CHECK) return @@ -123,11 +115,8 @@ SUBSYSTEM_DEF(machines) while(current_run.len) var/obj/machinery/M = current_run[current_run.len] current_run.len-- - - if(!istype(M) || QDELETED(M) || (M.process(wait) == PROCESS_KILL)) + if(QDELETED(M) || (M.process(wait) == PROCESS_KILL)) global.processing_machines.Remove(M) - if(!QDELETED(M)) - DISABLE_BITFIELD(M.datum_flags, DF_ISPROCESSING) if(MC_TICK_CHECK) return @@ -140,12 +129,10 @@ SUBSYSTEM_DEF(machines) while(current_run.len) var/datum/powernet/PN = current_run[current_run.len] current_run.len-- - if(istype(PN) && !QDELETED(PN)) - PN.reset(wait) - else + if(QDELETED(PN)) global.powernets.Remove(PN) - if(!QDELETED(PN)) - DISABLE_BITFIELD(PN.datum_flags, DF_ISPROCESSING) + else + PN.reset(wait) if(MC_TICK_CHECK) return @@ -167,16 +154,24 @@ SUBSYSTEM_DEF(machines) return /datum/controller/subsystem/machines/Recover() - // TODO - PHASE 2 - // if (istype(SSmachines.pipenets)) - // pipenets = SSmachines.pipenets - // if (istype(SSmachines.machinery)) - // machinery = SSmachines.machinery - // if (istype(SSmachines.powernets)) - // powernets = SSmachines.powernets - // if (istype(SSmachines.power_objects)) - // power_objects = SSmachines.power_objects + for(var/datum/D as anything in global.pipe_networks) + if(!istype(D, /datum/pipe_network)) + error("Found wrong type during SSmachinery recovery: list=global.pipe_networks, item=[D], type=[D?.type]") + global.pipe_networks -= D + for(var/datum/D as anything in global.processing_machines) + if(!istype(D, /obj/machinery)) + error("Found wrong type during SSmachinery recovery: list=global.processing_machines, item=[D], type=[D?.type]") + global.processing_machines -= D + for(var/datum/D as anything in global.powernets) + if(!istype(D, /datum/powernet)) + error("Found wrong type during SSmachinery recovery: list=global.powernets, item=[D], type=[D?.type]") + global.powernets -= D + for(var/datum/D as anything in global.processing_power_items) + if(!istype(D, /obj/item)) + error("Found wrong type during SSmachinery recovery: list=global.processing_power_items, item=[D], type=[D?.type]") + global.processing_power_items -= D #undef SSMACHINES_PIPENETS #undef SSMACHINES_MACHINERY +#undef SSMACHINES_POWERNETS #undef SSMACHINES_POWER_OBJECTS diff --git a/code/datums/supplypacks/misc_vr.dm b/code/datums/supplypacks/misc_vr.dm index fe9bee347b..56a9c38c8a 100644 --- a/code/datums/supplypacks/misc_vr.dm +++ b/code/datums/supplypacks/misc_vr.dm @@ -85,7 +85,7 @@ /datum/supply_pack/misc/com_medical_rig name = "solgov medical hardsuit (loaded)" //YW EDIT contains = list( - /obj/item/weapon/rig/baymed = 1 + /obj/item/weapon/rig/baymed/equipped = 1 ) cost = 250 containertype = /obj/structure/closet/crate/secure/gear @@ -95,7 +95,7 @@ /datum/supply_pack/misc/com_engineering_rig name = "solgov engineering hardsuit (loaded)" //YW EDIT contains = list( - /obj/item/weapon/rig/bayeng = 1 + /obj/item/weapon/rig/bayeng/equipped = 1 ) cost = 250 containertype = /obj/structure/closet/crate/secure/gear diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 3e4b277696..07c1ed3851 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -715,3 +715,11 @@ /atom/proc/interact(mob/user) return + +// Purpose: Determines if the object can pass this atom. +// Called by: Movement. +// Inputs: The moving atom, target turf. +// Outputs: Boolean if can pass. +// Airflow and ZAS zones now uses CanZASPass() instead of this proc. +/atom/proc/CanPass(atom/movable/mover, turf/target) + return !density \ No newline at end of file diff --git a/code/game/objects/effects/decals/Cleanable/fuel.dm b/code/game/objects/effects/decals/Cleanable/fuel.dm index 2ea550d66d..4661d42ca6 100644 --- a/code/game/objects/effects/decals/Cleanable/fuel.dm +++ b/code/game/objects/effects/decals/Cleanable/fuel.dm @@ -38,7 +38,7 @@ for(var/d in cardinal) var/turf/simulated/target = get_step(src,d) var/turf/simulated/origin = get_turf(src) - if(origin.CanPass(null, target, 0, 0) && target.CanPass(null, origin, 0, 0)) + if(origin.CanPass(src, target) && target.CanPass(src, origin)) var/obj/effect/decal/cleanable/liquid_fuel/other_fuel = locate() in target if(other_fuel) other_fuel.amount += amount*0.25 @@ -73,7 +73,7 @@ var/turf/simulated/O = get_step(S,d) if(locate(/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel) in O) continue - if(O.CanPass(null, S, 0, 0) && S.CanPass(null, O, 0, 0)) + if(O.CanPass(src, S) && S.CanPass(src, O)) var/new_pool_amount = amount * 0.25 if(new_pool_amount > 0.1) var/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel/F = new(O, new_pool_amount, d) diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm index 67d76a8c89..fb9a4a0e8b 100644 --- a/code/game/objects/structures.dm +++ b/code/game/objects/structures.dm @@ -89,7 +89,9 @@ /obj/structure/proc/turf_is_crowded() var/turf/T = get_turf(src) if(!T || !istype(T)) - return 0 + return "empty void" + if(T.density) + return T for(var/obj/O in T.contents) if(istype(O,/obj/structure)) var/obj/structure/S = O @@ -113,12 +115,15 @@ LAZYREMOVE(climbers, user) return - usr.forceMove(get_turf(src)) + usr.forceMove(climb_to(user)) if (get_turf(user) == get_turf(src)) usr.visible_message("[user] climbs onto \the [src]!") LAZYREMOVE(climbers, user) +/obj/structure/proc/climb_to(var/mob/living/user) + return get_turf(src) + /obj/structure/proc/structure_shaken() for(var/mob/living/M in climbers) M.Weaken(1) diff --git a/code/game/objects/structures/droppod.dm b/code/game/objects/structures/droppod.dm index 5d2edc3158..8598d632fc 100644 --- a/code/game/objects/structures/droppod.dm +++ b/code/game/objects/structures/droppod.dm @@ -18,7 +18,11 @@ if(A) A.forceMove(src) // helo podfall(auto_open) - air = new(1000) + air = new + +/obj/structure/drop_pod/Destroy() + . = ..() + qdel_null(air) /obj/structure/drop_pod/proc/podfall(auto_open) set waitfor = FALSE // sleeping in new otherwise @@ -118,10 +122,16 @@ return ..() /obj/structure/drop_pod/return_air() - return return_air_for_internal_lifeform() + return air || ..() /obj/structure/drop_pod/return_air_for_internal_lifeform() - return air + return air || ..() + +/obj/structure/drop_pod/assume_air(datum/gas_mixture/giver) + if(air) + return air.merge(giver) + else + return ..() // This is about 0.896m^3 of atmosphere, which is enough to last for quite a while. /datum/gas_mixture/pod_air diff --git a/code/game/objects/structures/props/prop.dm b/code/game/objects/structures/props/prop.dm index 1ddd91285e..54761755b1 100644 --- a/code/game/objects/structures/props/prop.dm +++ b/code/game/objects/structures/props/prop.dm @@ -105,6 +105,30 @@ icon = 'icons/obj/structures/decor.dmi' icon_state = "stump" +// minirocket pod from TGMC +/obj/structure/prop/minirocket_pod + icon = 'icons/obj/structures/decor.dmi' + icon_state = "minirocket_pod" + +// warheads from TGMC +/obj/structure/prop/warhead1 + icon = 'icons/obj/structures/decor.dmi' + icon_state = "ob_warhead_1" +/obj/structure/prop/warhead2 + icon = 'icons/obj/structures/decor.dmi' + icon_state = "ob_warhead_2" +/obj/structure/prop/warhead3 + icon = 'icons/obj/structures/decor.dmi' + icon_state = "ob_warhead_3" +/obj/structure/prop/warhead4 + icon = 'icons/obj/structures/decor.dmi' + icon_state = "ob_warhead_4" + +// sentry console from TGMC +/obj/structure/prop/sentry_control + icon = 'icons/obj/structures/decor.dmi' + icon_state = "tgmc_sentry" + // vatgrowing thing from /tg/ /obj/structure/prop/green_egg icon = 'icons/obj/structures/decor.dmi' @@ -122,6 +146,30 @@ bound_width = 64 bound_height = 64 +// various weapons from TGMC +/obj/structure/prop/tgmc_missile + name = "missile" + desc = "It seems to be some sort of spacecraft-tier ordinance." + icon = 'icons/obj/structures/decor64x64.dmi' + icon_state = "single" + bound_width = 64 +/obj/structure/prop/tgmc_missile/double + icon_state = "widowmaker" +/obj/structure/prop/tgmc_missile/banshee + icon_state = "banshee" +/obj/structure/prop/tgmc_missile/keeper + icon_state = "keeper" +/obj/structure/prop/tgmc_missile/fatty + icon_state = "fatty" +/obj/structure/prop/tgmc_missile/napalm + icon_state = "napalm" + +// ship memorial from TGMC +/obj/structure/prop/memorial + icon = 'icons/obj/structures/decor64x64.dmi' + icon_state = "ship_memorial" + bound_width = 64 + // dna vault from /tg/ /obj/structure/prop/dna_vault icon = 'icons/obj/structures/decor96x96.dmi' @@ -257,6 +305,118 @@ /obj/structure/prop/dominator/purple icon_state = "dominator-purple" +/** + * Possible 'state' options for change_state(state) are: + * empty, single, banshee, keeper, fatty, napalm + */ +// ship weapons from TGMC +/obj/structure/prop/tgmc_missile_rack + name = "missile launcher" + desc = "Some sort of spacecraft-tier missile weapon." + icon = 'icons/obj/structures/decor64x64.dmi' + icon_state = "rocket_pod" + bound_height = 64 + +/obj/structure/prop/tgmc_missile_rack/change_state(state) + . = ..() + switch(state) + if("empty") + icon_state = "rocket_pod" + if("single") + icon_state = "rocket_pod_loaded" + if("banshee") + icon_state = "rocket_pod_loadedb" + if("keeper") + icon_state = "rocket_pod_loadedk" + if("fatty") + icon_state = "rocket_pod_loadedf" + if("napalm") + icon_state = "rocket_pod_loadedn" + +/obj/structure/prop/tgmc_missile_rack/single + icon_state = "rocket_pod_loaded" +/obj/structure/prop/tgmc_missile_rack/banshee + icon_state = "rocket_pod_loadedb" +/obj/structure/prop/tgmc_missile_rack/keeper + icon_state = "rocket_pod_loadedk" +/obj/structure/prop/tgmc_missile_rack/fatty + icon_state = "rocket_pod_loadedf" +/obj/structure/prop/tgmc_missile_rack/napalm + icon_state = "rocket_pod_loadedn" + +/** + * Possible 'state' options for change_state(state) are: + * empty, loaded + */ +// ship weapons from TGMC +/obj/structure/prop/tgmc_minirockets + name = "rocket pod" + desc = "Some sort of spacecraft-tier rocket weapon." + icon = 'icons/obj/structures/decor64x64.dmi' + icon_state = "minirocket_pod" + bound_height = 64 + +/obj/structure/prop/tgmc_minirockets/change_state(state) + . = ..() + switch(state) + if("empty") + icon_state = "minirocket_pod" + if("loaded") + icon_state = "minirocket_pod_loaded" + +/obj/structure/prop/tgmc_minirockets/loaded + icon_state = "minirocket_pod_loaded" + +/** + * Possible 'state' options for change_state(state) are: + * empty, loaded + */ +// ship weapons from TGMC +/obj/structure/prop/tgmc_laser + name = "laser cannon" + desc = "Some sort of spacecraft-tier energy weapon." + icon = 'icons/obj/structures/decor64x64.dmi' + icon_state = "laser_beam" + bound_height = 64 + +/obj/structure/prop/tgmc_laser/change_state(state) + . = ..() + switch(state) + if("empty") + icon_state = "laser_beam" + if("loaded") + icon_state = "laser_beam_loaded" + +/obj/structure/prop/tgmc_laser/loaded + icon_state = "laser_beam_loaded" + +/** + * Possible 'state' options for change_state(state) are: + * empty, loaded, loadedempty + */ +// ship weapons from TGMC +/obj/structure/prop/tgmc_30mm + name = "30mm cannon" + desc = "Some sort of spacecraft-tier rotary cannon weapon." + icon = 'icons/obj/structures/decor64x64.dmi' + icon_state = "30mm_cannon" + bound_height = 64 + +/obj/structure/prop/tgmc_30mm/change_state(state) + . = ..() + switch(state) + if("empty") + icon_state = "30mm_cannon" + if("loaded") + icon_state = "30mm_cannon_loaded1" + if("loadedempty") + icon_state = "30mm_cannon_loaded0" + +/obj/structure/prop/tgmc_30mm/loaded + icon_state = "30mm_cannon_loaded1" +/obj/structure/prop/tgmc_30mm/loadedempty + icon_state = "30mm_cannon_loaded0" + /** * Possible 'state' options for change_state(state) are: * off: Default, boring @@ -596,6 +756,111 @@ /obj/structure/prop/nt_cruciforge/starts_working icon_state = "nt_cruciforge_work" +/** + * Possible 'state' options for change_state(state) are: + * off: Default, boring + * on: Showing a display/powered up + */ +// A console from TGMC +/obj/structure/prop/tgmc_console1 + icon = 'icons/obj/structures/decor.dmi' + icon_state = "tgmc_console1" + +/obj/structure/prop/tgmc_console1/change_state(state) + . = ..() + switch(state) + if("off") + icon_state = "tgmc_console1" + if("on") + icon_state = "tgmc_console1_on" + +/obj/structure/prop/tgmc_console1/starts_on + icon_state = "tgmc_console1_on" + +/** + * Possible 'state' options for change_state(state) are: + * off: Default, boring + * on: Showing a display/powered up + */ +// A console from TGMC +/obj/structure/prop/tgmc_console2 + icon = 'icons/obj/structures/decor.dmi' + icon_state = "tgmc_console2" + +/obj/structure/prop/tgmc_console2/change_state(state) + . = ..() + switch(state) + if("off") + icon_state = "tgmc_console2" + if("on") + icon_state = "tgmc_console2_on" + +/obj/structure/prop/tgmc_console2/starts_on + icon_state = "tgmc_console2_on" + +/** + * Possible 'state' options for change_state(state) are: + * off: Default, boring + * on: Showing a display/powered up + */ +// A console from TGMC +/obj/structure/prop/tgmc_console3 + icon = 'icons/obj/structures/decor.dmi' + icon_state = "tgmc_console3" + +/obj/structure/prop/tgmc_console3/change_state(state) + . = ..() + switch(state) + if("off") + icon_state = "tgmc_console3" + if("on") + icon_state = "tgmc_console3_on" + +/obj/structure/prop/tgmc_console3/starts_on + icon_state = "tgmc_console3_on" + +/** + * Possible 'state' options for change_state(state) are: + * off: Default, boring + * on: Showing a display/powered up + */ +// A console from TGMC +/obj/structure/prop/tgmc_console4 + icon = 'icons/obj/structures/decor.dmi' + icon_state = "tgmc_console4" + +/obj/structure/prop/tgmc_console4/change_state(state) + . = ..() + switch(state) + if("off") + icon_state = "tgmc_console4" + if("on") + icon_state = "tgmc_console4_on" + +/obj/structure/prop/tgmc_console4/starts_on + icon_state = "tgmc_console4_on" + +/** + * Possible 'state' options for change_state(state) are: + * off: Default, boring + * on: Showing a display/powered up + */ +// A console from TGMC +/obj/structure/prop/tgmc_console5 + icon = 'icons/obj/structures/decor.dmi' + icon_state = "tgmc_console5" + +/obj/structure/prop/tgmc_console5/change_state(state) + . = ..() + switch(state) + if("off") + icon_state = "tgmc_console5" + if("on") + icon_state = "tgmc_console5_on" + +/obj/structure/prop/tgmc_console5/starts_on + icon_state = "tgmc_console5_on" + /** * This one is a bit more fancy than others. Anything in the contents (PLEASE LIMIT TO ONE THING) * will show up inside it! Also if you map in an item on it, it will grab that at mapload and start diff --git a/code/game/turfs/simulated/wall_types.dm b/code/game/turfs/simulated/wall_types.dm index ab6a7de867..efa0412e53 100644 --- a/code/game/turfs/simulated/wall_types.dm +++ b/code/game/turfs/simulated/wall_types.dm @@ -341,7 +341,7 @@ var/turf/simulated/wall/T for(var/direction in get_dirs_to_test()) T = get_step(src, direction) - if(!istype(T)) + if(!istype(T) || T.material?.icon_base != "hull") continue name = T.name diff --git a/code/modules/ai/ai_holder.dm b/code/modules/ai/ai_holder.dm index 78f16a96a0..86ab848733 100644 --- a/code/modules/ai/ai_holder.dm +++ b/code/modules/ai/ai_holder.dm @@ -353,13 +353,24 @@ ai_log("handle_stance_tactical() : Going to handle_resist().", AI_LOG_TRACE) handle_resist() - else if(istype(holder.loc, /obj/structure/closet)) + var/atom/holder_loc = holder.loc + if(istype(holder_loc, /obj/structure/closet)) var/obj/structure/closet/C = holder.loc ai_log("handle_stance_tactical() : Inside a closet. Going to attempt escape.", AI_LOG_TRACE) if(C.sealed) holder.resist() else C.open() + else if(isbelly(holder_loc)) + ai_log("handle_stance_tactical() : Inside a belly, will move out to turf if owner is stat.", AI_LOG_TRACE) + var/obj/belly/B = holder_loc + var/mob/living/L = B.owner + if(B.owner?.stat) + var/mob/living/holder = src.holder + ai_log("handle_stance_tactical() : Owner was stat, moving.", AI_LOG_TRACE) + holder.forceMove(get_turf(L)) + holder.visible_message("[src] climbs out of [L], ready to continue fighting!") + playsound(holder, 'sound/effects/splat.ogg') // Should we flee? if(should_flee()) diff --git a/code/modules/ai/ai_holder_combat.dm b/code/modules/ai/ai_holder_combat.dm index 760031985e..edfe3eacc6 100644 --- a/code/modules/ai/ai_holder_combat.dm +++ b/code/modules/ai/ai_holder_combat.dm @@ -68,6 +68,7 @@ // We're not entirely sure how holder will do melee attacks since any /mob/living could be holder, but we don't have to care because Interfaces. /datum/ai_holder/proc/melee_attack(atom/A) + ai_log("melee_attack() : Entering.", AI_LOG_TRACE) pre_melee_attack(A) . = holder.IAttack(A) if(. == ATTACK_SUCCESSFUL) @@ -75,6 +76,7 @@ // Ditto. /datum/ai_holder/proc/ranged_attack(atom/A) + ai_log("ranged_attack() : Entering.", AI_LOG_TRACE) pre_ranged_attack(A) . = holder.IRangedAttack(A) if(. == ATTACK_SUCCESSFUL) @@ -82,11 +84,27 @@ // Most mobs probably won't have this defined but we don't care. /datum/ai_holder/proc/special_attack(atom/movable/AM) + ai_log("special_attack() : Entering.", AI_LOG_TRACE) pre_special_attack(AM) . = holder.ISpecialAttack(AM) if(. == ATTACK_SUCCESSFUL) post_special_attack(AM) +// Almost entirely combat considerations so in this file. +/datum/ai_holder/proc/handle_eaten() + ai_log("handle_eaten() : Entering.", AI_LOG_TRACE) + forget_everything() // All of that is probably invalid now + if(!isbelly(holder.loc)) + // Strange...! + stack_trace("AI tried to handle being eaten but didn't end up in a belly somehow.") + return + var/obj/belly/B = holder.loc + var/mob/living/L = B.owner + // Will return false if we decide to not do anything about it. + if(!react_to_attack(L, ignore_timers = TRUE)) + ai_log("handle_eaten() : Deciding to sleep AI.", AI_LOG_TRACE) + go_sleep() + // Called when within striking/shooting distance, however cooldown is not considered. // Override to do things like move in a random step for evasiveness. // Note that this is called BEFORE the attack. diff --git a/code/modules/ai/ai_holder_subtypes/slime_xenobio_ai.dm b/code/modules/ai/ai_holder_subtypes/slime_xenobio_ai.dm index f6e311ad30..121da61371 100644 --- a/code/modules/ai/ai_holder_subtypes/slime_xenobio_ai.dm +++ b/code/modules/ai/ai_holder_subtypes/slime_xenobio_ai.dm @@ -182,7 +182,7 @@ holder.a_intent = I_HELP return FALSE // We're a good slime. -/datum/ai_holder/simple_mob/xenobio_slime/react_to_attack(atom/movable/attacker) +/datum/ai_holder/simple_mob/xenobio_slime/react_to_attack(atom/movable/attacker, ignore_timers = FALSE) . = ..(attacker) if(ishuman(attacker)) diff --git a/code/modules/ai/ai_holder_targeting.dm b/code/modules/ai/ai_holder_targeting.dm index a243ab8a58..74c868d5dc 100644 --- a/code/modules/ai/ai_holder_targeting.dm +++ b/code/modules/ai/ai_holder_targeting.dm @@ -114,6 +114,7 @@ return closest_targets /datum/ai_holder/proc/can_attack(atom/movable/the_target, var/vision_required = TRUE) + ai_log("can_attack() : Entering.", AI_LOG_TRACE) if(!can_see_target(the_target) && vision_required) return FALSE @@ -218,6 +219,7 @@ // Updates the last known position of the target. /datum/ai_holder/proc/track_target_position() + ai_log("track_target_position() : Entering.", AI_LOG_TRACE) if(!target) lose_target_position() @@ -231,13 +233,14 @@ // Resets the last known position to null. /datum/ai_holder/proc/lose_target_position() + ai_log("lose_target_position() : Entering.", AI_LOG_TRACE) if(last_turf_display && target_last_seen_turf) target_last_seen_turf.cut_overlay(last_turf_overlay) ai_log("lose_target_position() : Last position is being reset.", AI_LOG_INFO) target_last_seen_turf = null // Responds to a hostile action against its mob. -/datum/ai_holder/proc/react_to_attack(atom/movable/attacker) +/datum/ai_holder/proc/react_to_attack(atom/movable/attacker, ignore_timers = FALSE) if(holder.stat) // We're dead. ai_log("react_to_attack() : Was attacked by [attacker], but we are dead/unconscious.", AI_LOG_TRACE) return FALSE @@ -247,15 +250,10 @@ if(holder.IIsAlly(attacker)) // I'll overlook it THIS time... ai_log("react_to_attack() : Was attacked by [attacker], but they were an ally.", AI_LOG_TRACE) return FALSE - if(target) // Already fighting someone. Switching every time we get hit would impact our combat performance. - if(!retaliate) // If we don't get to fight back, we don't fight back... - ai_log("react_to_attack() : Was attacked by [attacker], but we already have a target.", AI_LOG_TRACE) - on_attacked(attacker) // So we attack immediately and not threaten. - return FALSE - else if(check_attacker(attacker) && world.time > last_target_time + 3 SECONDS) // Otherwise, let 'er rip - ai_log("react_to_attack() : Was attacked by [attacker]. Can retaliate, waited 3 seconds.", AI_LOG_INFO) - on_attacked(attacker) // So we attack immediately and not threaten. - return give_target(attacker) // Also handles setting the appropiate stance. + if(target && !ignore_timers && (world.time < last_target_time + 8 SECONDS)) // Already fighting someone. Switching every time we get hit would impact our combat performance. + ai_log("react_to_attack() : Was attacked by [attacker], but we switched targets too recently to change.", AI_LOG_TRACE) + on_attacked(attacker) + return FALSE if(stance == STANCE_SLEEP) // If we're asleep, try waking up if someone's wailing on us. ai_log("react_to_attack() : AI is asleep. Waking up.", AI_LOG_TRACE) diff --git a/code/modules/clothing/spacesuits/rig/suits/station_vr.dm b/code/modules/clothing/spacesuits/rig/suits/station_vr.dm index 2883e33ea7..a58a296cd7 100644 --- a/code/modules/clothing/spacesuits/rig/suits/station_vr.dm +++ b/code/modules/clothing/spacesuits/rig/suits/station_vr.dm @@ -18,25 +18,34 @@ //Area allowing backpacks to be placed on rigsuits. /obj/item/weapon/rig/vox allowed = list(/obj/item/weapon/gun,/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/storage/backpack, /obj/item/device/bluespaceradio, /obj/item/device/defib_kit) + /obj/item/weapon/rig/combat allowed = list(/obj/item/weapon/gun,/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/melee/baton,/obj/item/weapon/storage/backpack,/obj/item/device/bluespaceradio, /obj/item/device/defib_kit) + /obj/item/weapon/rig/ert allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank, /obj/item/device/t_scanner, /obj/item/weapon/rcd, /obj/item/weapon/tool/crowbar, \ /obj/item/weapon/tool/screwdriver, /obj/item/weapon/weldingtool, /obj/item/weapon/tool/wirecutters, /obj/item/weapon/tool/wrench, /obj/item/device/multitool, \ /obj/item/device/radio, /obj/item/device/analyzer,/obj/item/weapon/storage/briefcase/inflatable, /obj/item/weapon/melee/baton, /obj/item/weapon/gun, \ /obj/item/weapon/storage/firstaid, /obj/item/weapon/reagent_containers/hypospray, /obj/item/roller, /obj/item/weapon/storage/backpack,/obj/item/device/bluespaceradio, /obj/item/device/defib_kit) + /obj/item/weapon/rig/light/ninja allowed = list(/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/cell, /obj/item/weapon/storage/backpack,/obj/item/device/bluespaceradio, /obj/item/device/defib_kit) + /obj/item/weapon/rig/merc allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/handcuffs, /obj/item/weapon/storage/backpack,/obj/item/device/bluespaceradio, /obj/item/device/defib_kit) + /obj/item/weapon/rig/ce allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/storage/bag/ore,/obj/item/device/t_scanner,/obj/item/weapon/pickaxe, /obj/item/weapon/rcd,/obj/item/weapon/storage/backpack,/obj/item/device/bluespaceradio, /obj/item/device/defib_kit) + /obj/item/weapon/rig/medical allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/storage/firstaid,/obj/item/device/healthanalyzer,/obj/item/stack/medical,/obj/item/roller,/obj/item/weapon/storage/backpack,/obj/item/device/bluespaceradio, /obj/item/device/defib_kit) + /obj/item/weapon/rig/hazmat allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/stack/flag,/obj/item/weapon/storage/excavation,/obj/item/weapon/pickaxe,/obj/item/device/healthanalyzer,/obj/item/device/measuring_tape,/obj/item/device/ano_scanner,/obj/item/device/depth_scanner,/obj/item/device/core_sampler,/obj/item/device/gps,/obj/item/device/beacon_locator,/obj/item/device/radio/beacon,/obj/item/weapon/pickaxe/hand,/obj/item/weapon/storage/bag/fossils,/obj/item/weapon/storage/backpack,/obj/item/device/bluespaceradio, /obj/item/device/defib_kit) + /obj/item/weapon/rig/hazard allowed = list(/obj/item/weapon/gun,/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/melee/baton,/obj/item/weapon/storage/backpack,/obj/item/device/bluespaceradio, /obj/item/device/defib_kit) + /obj/item/weapon/rig/industrial allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/storage/bag/ore,/obj/item/device/t_scanner,/obj/item/weapon/pickaxe, /obj/item/weapon/rcd,/obj/item/weapon/storage/backpack,/obj/item/device/bluespaceradio, /obj/item/device/defib_kit) @@ -45,6 +54,7 @@ /obj/item/device/t_scanner, /obj/item/weapon/rcd, /obj/item/weapon/weldingtool, /obj/item/weapon/tool, /obj/item/device/multitool, \ /obj/item/device/radio, /obj/item/device/analyzer,/obj/item/weapon/storage/briefcase/inflatable, /obj/item/weapon/melee/baton, /obj/item/weapon/gun, \ /obj/item/weapon/storage/firstaid, /obj/item/weapon/reagent_containers/hypospray, /obj/item/roller, /obj/item/device/suit_cooling_unit, /obj/item/weapon/storage/backpack,/obj/item/device/bluespaceradio, /obj/item/device/defib_kit) + /obj/item/weapon/rig/pmc allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank, /obj/item/device/t_scanner, /obj/item/weapon/rcd, /obj/item/weapon/tool/crowbar, \ /obj/item/weapon/tool/screwdriver, /obj/item/weapon/weldingtool, /obj/item/weapon/tool/wirecutters, /obj/item/weapon/tool/wrench, /obj/item/device/multitool, \ @@ -74,10 +84,11 @@ min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE // so it's like a rig firesuit armor = list("melee" = 40, "bullet" = 10, "laser" = 30, "energy" = 55, "bomb" = 70, "bio" = 100, "rad" = 100) + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/storage/backpack) chest_type = /obj/item/clothing/suit/space/rig/focalpoint helm_type = /obj/item/clothing/head/helmet/space/rig/focalpoint - boot_type = /obj/item/clothing/shoes/magboots/rig/focalpoint + boot_type = /obj/item/clothing/shoes/magboots/rig/ce/focalpoint glove_type = /obj/item/clothing/gloves/gauntlets/rig/focalpoint /obj/item/weapon/rig/focalpoint/equipped @@ -104,7 +115,7 @@ species_restricted = list("exclude", SPECIES_TESHARI, SPECIES_VOX, SPECIES_DIONA) sprite_sheets = null -/obj/item/clothing/shoes/magboots/rig/focalpoint +/obj/item/clothing/shoes/magboots/rig/ce/focalpoint icon = 'icons/inventory/feet/item_vr.dmi' default_worn_icon = 'icons/inventory/feet/mob_vr.dmi' icon_state = "techno_rig" @@ -131,6 +142,10 @@ icon_state = "ihs_rig" suit_type = "\improper Hephaestus hardsuit" cell_type = /obj/item/weapon/cell/super + allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/handcuffs, \ + /obj/item/device/t_scanner, /obj/item/weapon/rcd, /obj/item/weapon/weldingtool, /obj/item/weapon/tool, /obj/item/device/multitool, \ + /obj/item/device/radio, /obj/item/device/analyzer,/obj/item/weapon/storage/briefcase/inflatable, /obj/item/weapon/melee/baton, /obj/item/weapon/gun, \ + /obj/item/weapon/storage/firstaid, /obj/item/weapon/reagent_containers/hypospray, /obj/item/roller, /obj/item/device/suit_cooling_unit, /obj/item/weapon/storage/backpack,/obj/item/device/bluespaceradio, /obj/item/device/defib_kit) armor = list("melee" = 70, "bullet" = 70, "laser" = 70, "energy" = 50, "bomb" = 60, "bio" = 100, "rad" = 20) @@ -194,6 +209,8 @@ helm_type = /obj/item/clothing/head/helmet/space/rig/zero boot_type = null glove_type = null + + allowed = list(/obj/item/weapon/gun,/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/storage/backpack, /obj/item/device/bluespaceradio, /obj/item/device/defib_kit) slowdown = 0 offline_slowdown = 1 @@ -237,15 +254,25 @@ chest_type = /obj/item/clothing/suit/space/rig/baymed helm_type = /obj/item/clothing/head/helmet/space/rig/baymed - boot_type = /obj/item/clothing/shoes/magboots/rig/baymed + boot_type = /obj/item/clothing/shoes/magboots/rig/ce/baymed glove_type = /obj/item/clothing/gloves/gauntlets/rig/baymed + allowed = list( + /obj/item/device/flashlight, + /obj/item/weapon/tank, + /obj/item/device/suit_cooling_unit, + /obj/item/device/healthanalyzer, + /obj/item/stack/medical, + /obj/item/roller, + /obj/item/weapon/storage/backpack, + /obj/item/device/bluespaceradio, + /obj/item/device/defib_kit) + // speedy paper slowdown = -0.5 armor = list("melee" = 10, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 25, "bio" = 100, "rad" = 20) /obj/item/weapon/rig/baymed/equipped - req_access = list(access_medical) initial_modules = list( /obj/item/rig_module/maneuvering_jets, @@ -261,6 +288,7 @@ item_state = null sprite_sheets = ALL_VR_SPRITE_SHEETS_HEAD_MOB sprite_sheets_obj = ALL_VR_SPRITE_SHEETS_HEAD_ITEM + camera_networks = list(NETWORK_MEDICAL) /obj/item/clothing/suit/space/rig/baymed icon = 'icons/inventory/suit/item_vr.dmi' @@ -270,7 +298,7 @@ sprite_sheets = ALL_VR_SPRITE_SHEETS_SUIT_MOB sprite_sheets_obj = ALL_VR_SPRITE_SHEETS_SUIT_ITEM -/obj/item/clothing/shoes/magboots/rig/baymed +/obj/item/clothing/shoes/magboots/rig/ce/baymed icon = 'icons/inventory/feet/item_vr.dmi' default_worn_icon = 'icons/inventory/feet/mob_vr.dmi' icon_state = "medical_rig_bay" @@ -300,14 +328,26 @@ chest_type = /obj/item/clothing/suit/space/rig/bayeng helm_type = /obj/item/clothing/head/helmet/space/rig/bayeng - boot_type = /obj/item/clothing/shoes/magboots/rig/bayeng + boot_type = /obj/item/clothing/shoes/magboots/rig/ce/bayeng glove_type = /obj/item/clothing/gloves/gauntlets/rig/bayeng - slowdown = 1 + allowed = list( + /obj/item/device/flashlight, + /obj/item/weapon/tank, + /obj/item/device/suit_cooling_unit, + /obj/item/device/t_scanner, + /obj/item/weapon/pickaxe, + /obj/item/weapon/rcd, + /obj/item/weapon/storage/backpack, + /obj/item/device/bluespaceradio, + /obj/item/device/defib_kit + ) + + slowdown = 0 offline_slowdown = 5 // very bulky armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 30, bio = 100, rad = 50) -/obj/item/weapon/rig/bayeng//equipped +/obj/item/weapon/rig/bayeng/equipped initial_modules = list( /obj/item/rig_module/maneuvering_jets, /obj/item/rig_module/device/rcd, @@ -323,6 +363,7 @@ item_state = null sprite_sheets = ALL_VR_SPRITE_SHEETS_HEAD_MOB sprite_sheets_obj = ALL_VR_SPRITE_SHEETS_HEAD_ITEM + camera_networks = list(NETWORK_ENGINEERING) /obj/item/clothing/suit/space/rig/bayeng icon = 'icons/inventory/suit/item_vr.dmi' @@ -332,7 +373,7 @@ sprite_sheets = ALL_VR_SPRITE_SHEETS_SUIT_MOB sprite_sheets_obj = ALL_VR_SPRITE_SHEETS_SUIT_ITEM -/obj/item/clothing/shoes/magboots/rig/bayeng +/obj/item/clothing/shoes/magboots/rig/ce/bayeng icon = 'icons/inventory/feet/item_vr.dmi' default_worn_icon = 'icons/inventory/feet/mob_vr.dmi' icon_state = "engineering_rig_bay" 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 a4bdd6c978..745db9e568 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/solargrub.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/solargrub.dm @@ -159,7 +159,7 @@ List of things solar grubs should be able to do: "The solargrub chitters in irritation at your continued solidity, followed by a string of crushingly tight stomach clenches that grind its caustic stomach ooze into your body!", "The deceptively severe heat trapped within the solargrub works in tandem with its inner muscles and your tingling, prickling stomach juice bath to weaken you!") -/datum/ai_holder/simple_mob/retaliate/solargrub/react_to_attack(atom/movable/attacker) +/datum/ai_holder/simple_mob/retaliate/solargrub/react_to_attack(atom/movable/attacker, ignore_timers = FALSE) holder.anchored = FALSE holder.set_AI_busy(FALSE) ..() \ No newline at end of file diff --git a/code/modules/tables/flipping.dm b/code/modules/tables/flipping.dm index cc6be3352b..23d862d66d 100644 --- a/code/modules/tables/flipping.dm +++ b/code/modules/tables/flipping.dm @@ -86,7 +86,7 @@ if(dir != NORTH) plane = MOB_PLANE layer = ABOVE_MOB_LAYER - climbable = FALSE //flipping tables allows them to be used as makeshift barriers + //climbable = FALSE //flipping tables allows them to be used as makeshift barriers flipped = 1 flags |= ON_BORDER for(var/D in list(turn(direction, 90), turn(direction, -90))) @@ -105,7 +105,7 @@ reset_plane_and_layer() flipped = 0 - climbable = initial(climbable) + //climbable = initial(climbable) flags &= ~ON_BORDER for(var/D in list(turn(dir, 90), turn(dir, -90))) var/obj/structure/table/T = locate() in get_step(src.loc,D) diff --git a/code/modules/tables/interactions.dm b/code/modules/tables/interactions.dm index 349624eb78..238942595e 100644 --- a/code/modules/tables/interactions.dm +++ b/code/modules/tables/interactions.dm @@ -1,11 +1,15 @@ /obj/structure/table/CanPass(atom/movable/mover, turf/target) if(istype(mover,/obj/item/projectile)) return (check_cover(mover,target)) - if (flipped == 1) - if (get_dir(loc, target) == dir) + if (flipped) + var/move_dir = get_dir(mover, target) + // Moving from back to front, gotta climb + if(move_dir == dir && target != loc) return !density - else - return TRUE + // Moving from front to back, gotta climb + if(move_dir == reverse_dir[dir]) + return !density + return TRUE if(istype(mover) && mover.checkpass(PASSTABLE)) return TRUE if(locate(/obj/structure/table/bench) in get_turf(mover)) @@ -15,6 +19,14 @@ return TRUE return FALSE +/obj/structure/table/climb_to(mob/living/mover) + if(flipped && mover.loc == loc) + var/turf/T = get_step(src, dir) + if(T.Enter(mover)) + return T + + return ..() + //checks if projectile 'P' from turf 'from' can hit whatever is behind the table. Returns 1 if it can, 0 if bullet stops. /obj/structure/table/proc/check_cover(obj/item/projectile/P, turf/from) var/turf/cover diff --git a/code/modules/vore/eating/belly_obj_vr.dm b/code/modules/vore/eating/belly_obj_vr.dm index 54c0079ce5..a8aea6c376 100644 --- a/code/modules/vore/eating/belly_obj_vr.dm +++ b/code/modules/vore/eating/belly_obj_vr.dm @@ -218,7 +218,7 @@ vore_fx(M) //Stop AI processing in bellies if(M.ai_holder) - M.ai_holder.go_sleep() + M.ai_holder.handle_eaten() // Called whenever an atom leaves this belly /obj/belly/Exited(atom/movable/thing, atom/OldLoc) diff --git a/icons/_nanomaps/tether_nanomap_z2.png b/icons/_nanomaps/tether_nanomap_z2.png index 3c49153eb6..a2d478b413 100644 Binary files a/icons/_nanomaps/tether_nanomap_z2.png and b/icons/_nanomaps/tether_nanomap_z2.png differ diff --git a/icons/obj/structures/decor.dmi b/icons/obj/structures/decor.dmi index fb79f4a39f..454f762ab9 100644 Binary files a/icons/obj/structures/decor.dmi and b/icons/obj/structures/decor.dmi differ diff --git a/icons/obj/structures/decor32x64.dmi b/icons/obj/structures/decor32x64.dmi index 71886fc328..267889a471 100644 Binary files a/icons/obj/structures/decor32x64.dmi and b/icons/obj/structures/decor32x64.dmi differ diff --git a/icons/obj/structures/decor64x64.dmi b/icons/obj/structures/decor64x64.dmi index 42f72c549c..e9ac905d19 100644 Binary files a/icons/obj/structures/decor64x64.dmi and b/icons/obj/structures/decor64x64.dmi differ diff --git a/maps/offmap_vr/om_ships/aro3.dmm b/maps/offmap_vr/om_ships/aro3.dmm index 1ae598e190..41bba6aafd 100644 --- a/maps/offmap_vr/om_ships/aro3.dmm +++ b/maps/offmap_vr/om_ships/aro3.dmm @@ -1934,6 +1934,7 @@ /obj/effect/floor_decal/milspec/color/orange/half{ dir = 6 }, +/obj/machinery/light, /turf/simulated/floor/tiled/milspec, /area/aro3/atmos) "lI" = ( @@ -1948,6 +1949,13 @@ }, /turf/simulated/floor/tiled/milspec, /area/aro3/hallway_port) +"lJ" = ( +/obj/effect/floor_decal/milspec/hatchmarks, +/obj/effect/floor_decal/industrial/warning/dust{ + dir = 5 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/space) "lM" = ( /obj/effect/floor_decal/milspec/color/white/half, /obj/effect/floor_decal/milspec/color/white/corner{ @@ -2314,6 +2322,12 @@ /obj/effect/floor_decal/milspec_sterile/green/half, /turf/simulated/floor/tiled/milspec/sterile, /area/aro3/medical) +"ot" = ( +/obj/effect/floor_decal/industrial/warning/dust{ + dir = 1 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/space) "ou" = ( /obj/effect/floor_decal/milspec/stripe{ dir = 4 @@ -2553,6 +2567,10 @@ /obj/effect/floor_decal/milspec_sterile/green/corner, /turf/simulated/floor/tiled/milspec/sterile, /area/aro3/medical) +"pO" = ( +/obj/effect/floor_decal/milspec/hatchmarks, +/turf/simulated/floor/tiled/techmaint/airless, +/area/space) "pP" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -3017,6 +3035,14 @@ }, /turf/simulated/floor/tiled/milspec, /area/aro3/hallway_starboard) +"sX" = ( +/obj/structure/prop/tgmc_minirockets, +/obj/effect/floor_decal/milspec/hatchmarks, +/obj/effect/floor_decal/industrial/warning/dust{ + dir = 6 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/space) "td" = ( /obj/effect/floor_decal/milspec_sterile/green/half{ dir = 4 @@ -4159,6 +4185,10 @@ }, /turf/simulated/floor/tiled/eris/steel/panels, /area/aro3/eva_hall) +"Ab" = ( +/obj/effect/floor_decal/industrial/warning/dust, +/turf/simulated/floor/tiled/techmaint/airless, +/area/space) "Ac" = ( /obj/structure/closet/crate/bin{ anchored = 1; @@ -5093,6 +5123,14 @@ /obj/item/weapon/storage/firstaid/adv, /turf/simulated/floor/tiled/techmaint, /area/aro3/medical) +"Hb" = ( +/obj/structure/prop/tgmc_minirockets, +/obj/effect/floor_decal/milspec/hatchmarks, +/obj/effect/floor_decal/industrial/warning/dust{ + dir = 10 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/space) "Hc" = ( /obj/effect/floor_decal/milspec/color/red/half{ dir = 9 @@ -5235,6 +5273,14 @@ }, /turf/simulated/floor/tiled/milspec, /area/aro3/atmos) +"Im" = ( +/obj/structure/prop/tgmc_laser/loaded, +/obj/effect/floor_decal/milspec/hatchmarks, +/obj/effect/floor_decal/industrial/warning/dust{ + dir = 6 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/space) "Io" = ( /obj/structure/cable/cyan{ icon_state = "1-2" @@ -5977,7 +6023,7 @@ /turf/simulated/wall/tgmc/durawall, /area/aro3/repair_bay) "NF" = ( -/obj/effect/floor_decal/industrial/hatch/yellow, +/obj/effect/floor_decal/milspec/hatchmarks, /turf/simulated/floor/tiled/milspec, /area/aro3/workshop) "NG" = ( @@ -6172,6 +6218,14 @@ }, /turf/simulated/floor/plating/eris/under, /area/aro3/atmos) +"OM" = ( +/obj/structure/prop/tgmc_laser/loaded, +/obj/effect/floor_decal/milspec/hatchmarks, +/obj/effect/floor_decal/industrial/warning/dust{ + dir = 10 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/space) "ON" = ( /obj/structure/table/steel, /obj/item/weapon/storage/toolbox/electrical, @@ -6226,6 +6280,13 @@ /obj/effect/floor_decal/milspec/monotile, /turf/simulated/floor/tiled/milspec, /area/aro3/surfluid) +"Pa" = ( +/obj/effect/floor_decal/milspec/color/red/half{ + dir = 9 + }, +/obj/structure/prop/tgmc_missile/double, +/turf/simulated/floor/tiled/milspec, +/area/aro3/flight_deck) "Pb" = ( /obj/machinery/light{ dir = 1 @@ -6359,6 +6420,11 @@ }, /turf/simulated/floor/tiled/milspec, /area/aro3/power) +"Qd" = ( +/obj/structure/prop/tgmc_minirockets, +/obj/effect/floor_decal/milspec/hatchmarks, +/turf/simulated/floor/tiled/techmaint/airless, +/area/space) "Qe" = ( /obj/effect/floor_decal/milspec/hatchmarks, /turf/simulated/floor/tiled/milspec, @@ -6392,6 +6458,7 @@ /obj/effect/floor_decal/milspec/color/red/half{ dir = 10 }, +/obj/structure/prop/tgmc_missile/fatty, /turf/simulated/floor/tiled/milspec, /area/aro3/flight_deck) "QB" = ( @@ -6805,8 +6872,8 @@ /turf/space, /area/space) "TM" = ( -/obj/effect/floor_decal/industrial/hatch/yellow, /obj/machinery/light, +/obj/effect/floor_decal/milspec/hatchmarks, /turf/simulated/floor/tiled/milspec, /area/aro3/workshop) "TN" = ( @@ -6933,6 +7000,13 @@ }, /turf/simulated/floor/tiled/milspec, /area/aro3/eva_hall) +"UL" = ( +/obj/effect/floor_decal/milspec/hatchmarks, +/obj/effect/floor_decal/industrial/warning/dust{ + dir = 9 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/space) "UM" = ( /turf/simulated/wall/tgmc/durawall/deco1, /area/aro3/atmos) @@ -11400,8 +11474,8 @@ Ua Ua Ua Ua -hD -hD +pO +Qd tp Ua Ua @@ -15499,8 +15573,8 @@ Ua Ua Ua yn -hD -hD +UL +Hb hD hD hD @@ -15641,8 +15715,8 @@ Ua Ua Ua yn -hD -hD +ot +Ab hD hD hD @@ -15783,8 +15857,8 @@ Ua Ua Ua yn -hD -hD +lJ +Im hD hD hD @@ -16961,7 +17035,7 @@ NC Ty To Iq -Hc +Pa QA HE HE @@ -19333,8 +19407,8 @@ Ua Ua Ua yn -hD -hD +UL +OM hD hD hD @@ -19475,8 +19549,8 @@ Ua Ua Ua yn -hD -hD +ot +Ab hD hD hD @@ -19617,8 +19691,8 @@ Ua Ua Ua yn -hD -hD +lJ +sX hD hD hD @@ -23754,8 +23828,8 @@ Ua Ua Ua Ua -hD -hD +pO +Qd AA Ua Ua diff --git a/maps/offmap_vr/om_ships/itglight.dmm b/maps/offmap_vr/om_ships/itglight.dmm index cc619f7b2c..c422341e98 100644 --- a/maps/offmap_vr/om_ships/itglight.dmm +++ b/maps/offmap_vr/om_ships/itglight.dmm @@ -12,9 +12,11 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/door/airlock/mining{ - name = "Captain's Quarters"; - req_one_access = list(778) +/obj/machinery/door/airlock/angled_bay/standard{ + dir = 4; + door_color = "#a39342"; + req_one_access = list(777); + stripe_color = "#785134" }, /turf/simulated/floor/tiled/steel_ridged, /area/itglight/captain) @@ -22,7 +24,7 @@ /obj/structure/bed/chair/bay/chair/padded/red/bignest{ name = "large dog bed" }, -/obj/machinery/alarm/alarms_hidden{ +/obj/machinery/alarm/angled/hidden{ dir = 4; pixel_x = -26 }, @@ -228,17 +230,16 @@ /turf/simulated/floor/tiled/eris/white/cargo, /area/itglight/medbay) "aK" = ( -/obj/machinery/door/airlock/glass_external{ - frequency = 1380; - id_tag = "itglightshuttle_docker_hatch"; - name = "Shuttle Hatch" - }, /obj/effect/map_helper/airlock/door/simple, /obj/structure/cable/pink{ d1 = 4; d2 = 8; icon_state = "4-8" }, +/obj/machinery/door/airlock/angled_bay/external/glass{ + dir = 4; + door_color = "#AA0000" + }, /turf/simulated/shuttle/floor/yellow, /area/shuttle/itglightshuttle) "aN" = ( @@ -500,15 +501,15 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/door/airlock{ - id_tag = "dauntlesspq4"; - name = "Room 4" +/obj/machinery/door/airlock/angled_bay/standard{ + stripe_color = "#785134" }, /turf/simulated/floor/tiled/steel_ridged, /area/itglight/crew4) "cp" = ( -/obj/machinery/power/apc/hyper{ +/obj/machinery/power/apc/angled{ alarms_hidden = 1; + cell_type = /obj/item/weapon/cell/hyper; dir = 4; pixel_x = 25 }, @@ -564,8 +565,9 @@ /obj/structure/bed/chair/bay/chair/padded/brown{ dir = 8 }, -/obj/machinery/power/apc/hyper{ +/obj/machinery/power/apc/angled{ alarms_hidden = 1; + cell_type = /obj/item/weapon/cell/hyper; pixel_y = -25 }, /obj/structure/cable/pink, @@ -656,12 +658,6 @@ /obj/structure/window/bay/reinforced, /turf/simulated/floor, /area/itglight/cockpit) -"dv" = ( -/obj/machinery/door/airlock{ - name = "Unit 1" - }, -/turf/simulated/floor/tiled/white, -/area/itglight/restrooms) "dB" = ( /obj/structure/table/steel_reinforced, /obj/machinery/atmospherics/unary/vent_pump/on, @@ -740,8 +736,9 @@ /turf/simulated/floor/carpet/turcarpet, /area/itglight/crew1) "ed" = ( -/obj/machinery/power/apc/hyper{ +/obj/machinery/power/apc/angled{ alarms_hidden = 1; + cell_type = /obj/item/weapon/cell/hyper; pixel_y = -25 }, /obj/structure/cable/pink, @@ -764,9 +761,10 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/door/airlock/glass_mining{ - name = "Bridge"; - req_one_access = list(777) +/obj/machinery/door/airlock/angled_bay/standard{ + door_color = "#a39342"; + req_one_access = list(777); + stripe_color = "#785134" }, /turf/simulated/floor/tiled/steel_ridged, /area/itglight/cockpit) @@ -1181,7 +1179,7 @@ "gX" = ( /obj/structure/bed/chair/sofa/brown/left, /obj/machinery/atmospherics/unary/vent_pump/on, -/obj/machinery/alarm/alarms_hidden{ +/obj/machinery/alarm/angled/hidden{ dir = 8; pixel_x = 26 }, @@ -1264,7 +1262,7 @@ /obj/structure/bed/chair/bay/chair/padded/brown{ dir = 8 }, -/obj/machinery/alarm/alarms_hidden{ +/obj/machinery/alarm/angled/hidden{ dir = 8; pixel_x = 26 }, @@ -1463,9 +1461,11 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 8 }, -/obj/machinery/door/airlock/mining{ - name = "Starboard Engineering"; - req_one_access = list(777) +/obj/machinery/door/airlock/angled_bay/standard{ + dir = 4; + door_color = "#a39342"; + req_one_access = list(777); + stripe_color = "#785134" }, /turf/simulated/floor/tiled/steel_ridged, /area/itglight/starboardengi) @@ -1548,9 +1548,11 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/door/airlock/mining{ - name = "Ready Room"; - req_one_access = list(777) +/obj/machinery/door/airlock/angled_bay/standard{ + dir = 4; + door_color = "#a39342"; + req_one_access = list(777); + stripe_color = "#785134" }, /turf/simulated/floor/tiled/steel_ridged, /area/itglight/readyroom) @@ -1665,8 +1667,9 @@ "jE" = ( /obj/structure/table/steel_reinforced, /obj/machinery/photocopier/faxmachine/itglight, -/obj/machinery/power/apc/hyper{ +/obj/machinery/power/apc/angled{ alarms_hidden = 1; + cell_type = /obj/item/weapon/cell/hyper; dir = 8; nightshift_setting = 3; pixel_x = -25 @@ -1723,12 +1726,12 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/door/airlock/glass_external{ +/obj/machinery/door/airlock/angled_bay/external/glass{ + dir = 4; + door_color = "#AA0000"; icon_state = "door_locked"; id_tag = "itglight_shuttle_port"; - locked = 1; - name = "Shuttle Hatch"; - req_one_access = list() + locked = 1 }, /turf/simulated/shuttle/floor/yellow, /area/shuttle/itglightshuttle) @@ -1777,7 +1780,7 @@ /obj/structure/bed/chair/bay/shuttle{ dir = 1 }, -/obj/machinery/alarm/alarms_hidden{ +/obj/machinery/alarm/angled/hidden{ dir = 8; pixel_x = 26 }, @@ -1838,8 +1841,9 @@ /turf/simulated/floor/tiled/eris/steel/gray_platform, /area/itglight/starboardcargo) "kU" = ( -/obj/machinery/power/apc/hyper{ +/obj/machinery/power/apc/angled{ alarms_hidden = 1; + cell_type = /obj/item/weapon/cell/hyper; dir = 4; pixel_x = 25 }, @@ -1870,8 +1874,9 @@ /turf/simulated/floor/tiled/eris/steel/brown_platform, /area/itglight/metingroom) "lh" = ( -/obj/machinery/power/apc/hyper{ +/obj/machinery/power/apc/angled{ alarms_hidden = 1; + cell_type = /obj/item/weapon/cell/hyper; dir = 4; pixel_x = 25 }, @@ -1904,9 +1909,10 @@ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/door/airlock/glass_mining{ - name = "Bridge"; - req_one_access = list(777) +/obj/machinery/door/airlock/angled_bay/standard{ + door_color = "#a39342"; + req_one_access = list(777); + stripe_color = "#785134" }, /turf/simulated/floor/tiled/steel_ridged, /area/itglight/cockpit) @@ -2123,7 +2129,7 @@ /turf/simulated/floor/tiled/eris/steel/gray_platform, /area/itglight/starboardhighsec) "mL" = ( -/obj/machinery/alarm/alarms_hidden{ +/obj/machinery/alarm/angled/hidden{ dir = 8; pixel_x = 26 }, @@ -2142,8 +2148,9 @@ /turf/simulated/floor/carpet, /area/itglight/readyroom) "mZ" = ( -/obj/machinery/power/apc/hyper{ +/obj/machinery/power/apc/angled{ alarms_hidden = 1; + cell_type = /obj/item/weapon/cell/hyper; dir = 8; nightshift_setting = 3; pixel_x = -25 @@ -2223,9 +2230,10 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/door/airlock/mining{ - name = "Crew Access"; - req_one_access = list(777) +/obj/machinery/door/airlock/angled_bay/standard{ + door_color = "#a39342"; + req_one_access = list(777); + stripe_color = "#785134" }, /turf/simulated/floor/tiled/steel_ridged, /area/itglight/forehall) @@ -2491,8 +2499,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/fuel{ dir = 6 }, -/obj/machinery/power/apc/hyper{ +/obj/machinery/power/apc/angled{ alarms_hidden = 1; + cell_type = /obj/item/weapon/cell/hyper; dir = 8; nightshift_setting = 3; pixel_x = -25 @@ -2575,8 +2584,9 @@ /turf/simulated/floor/tiled/eris/steel/gray_platform, /area/itglight/starboardcargo) "pL" = ( -/obj/machinery/power/apc/hyper{ +/obj/machinery/power/apc/angled{ alarms_hidden = 1; + cell_type = /obj/item/weapon/cell/hyper; dir = 4; pixel_x = 25 }, @@ -2809,7 +2819,7 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 4 }, -/obj/machinery/alarm/alarms_hidden{ +/obj/machinery/alarm/angled/hidden{ dir = 4; pixel_x = -26 }, @@ -2931,8 +2941,9 @@ /obj/structure/bed/chair/bay/chair{ dir = 1 }, -/obj/machinery/power/apc/hyper{ +/obj/machinery/power/apc/angled{ alarms_hidden = 1; + cell_type = /obj/item/weapon/cell/hyper; dir = 4; pixel_x = 25 }, @@ -3466,9 +3477,8 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/door/airlock{ - id_tag = "dauntlesspq2"; - name = "Room 2" +/obj/machinery/door/airlock/angled_bay/standard{ + stripe_color = "#785134" }, /turf/simulated/floor/tiled/steel_ridged, /area/itglight/crew2) @@ -3491,9 +3501,11 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/door/airlock/mining{ - name = "Equipment Access"; - req_one_access = list(777) +/obj/machinery/door/airlock/angled_bay/standard{ + dir = 4; + door_color = "#a39342"; + req_one_access = list(777); + stripe_color = "#785134" }, /turf/simulated/floor/tiled/steel_ridged, /area/itglight/starboardhighsec) @@ -3506,10 +3518,10 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/door/airlock/mining{ - id_tag = "dauntlesspassengeraccessbolts"; - name = "Cargo Access"; - req_one_access = list(777) +/obj/machinery/door/airlock/angled_bay/standard{ + door_color = "#a39342"; + req_one_access = list(777); + stripe_color = "#785134" }, /turf/simulated/floor/tiled/steel_ridged, /area/itglight/common) @@ -3529,7 +3541,7 @@ /turf/simulated/floor/tiled/eris/steel/gray_platform, /area/itglight/starboardhighsec) "wS" = ( -/obj/machinery/alarm/alarms_hidden{ +/obj/machinery/alarm/angled/hidden{ dir = 4; pixel_x = -26 }, @@ -3582,8 +3594,9 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/door/airlock{ - name = "Locker Room" +/obj/machinery/door/airlock/angled_bay/standard/glass{ + dir = 4; + stripe_color = "#785134" }, /turf/simulated/floor/tiled/steel_ridged, /area/itglight/lockers) @@ -3685,8 +3698,9 @@ /turf/simulated/floor/tiled/eris/steel/gray_platform, /area/itglight/starboardhighsec) "xE" = ( -/obj/machinery/power/apc/hyper{ +/obj/machinery/power/apc/angled{ alarms_hidden = 1; + cell_type = /obj/item/weapon/cell/hyper; dir = 1; pixel_y = 25 }, @@ -3782,10 +3796,6 @@ /area/itglight/porthighsec) "yy" = ( /obj/machinery/door/firedoor/glass, -/obj/machinery/door/airlock/glass_external{ - frequency = 1380; - id_tag = "itglight_port_inner" - }, /obj/structure/cable/heavyduty{ icon_state = "4-8" }, @@ -3800,6 +3810,10 @@ name = "interior access button"; pixel_y = 26 }, +/obj/machinery/door/airlock/angled_bay/external/glass{ + dir = 4; + door_color = "#AA0000" + }, /turf/simulated/floor/tiled/steel_ridged, /area/itglight/portengi) "yD" = ( @@ -3839,14 +3853,16 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/door/airlock/mining{ - name = "High Security Cargo"; - req_one_access = list(777) +/obj/machinery/door/airlock/angled_bay/standard{ + dir = 4; + door_color = "#a39342"; + req_one_access = list(777); + stripe_color = "#785134" }, /turf/simulated/floor/tiled/steel_ridged, /area/itglight/porthighsec) "yK" = ( -/obj/machinery/alarm/alarms_hidden{ +/obj/machinery/alarm/angled/hidden{ dir = 8; pixel_x = 26 }, @@ -3900,8 +3916,9 @@ /turf/simulated/floor/tiled/techfloor/grid, /area/itglight/starboarddocking) "yY" = ( -/obj/machinery/power/apc/hyper{ +/obj/machinery/power/apc/angled{ alarms_hidden = 1; + cell_type = /obj/item/weapon/cell/hyper; dir = 1; pixel_y = 25 }, @@ -4031,8 +4048,9 @@ /turf/simulated/floor/tiled/techfloor/grid, /area/itglight/portdocking) "zL" = ( -/obj/machinery/power/apc/hyper{ +/obj/machinery/power/apc/angled{ alarms_hidden = 1; + cell_type = /obj/item/weapon/cell/hyper; dir = 4; nightshift_setting = 3; pixel_x = 25 @@ -4073,7 +4091,7 @@ /turf/simulated/floor/airless, /area/itglight/portengi) "Aa" = ( -/obj/machinery/alarm/alarms_hidden{ +/obj/machinery/alarm/angled/hidden{ pixel_y = 26 }, /turf/simulated/floor/tiled/monotile, @@ -4136,7 +4154,7 @@ d2 = 4; icon_state = "1-4" }, -/obj/machinery/alarm/alarms_hidden{ +/obj/machinery/alarm/angled/hidden{ dir = 4; pixel_x = -26 }, @@ -4163,8 +4181,9 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/door/airlock{ - name = "Passenger Common Sleeping" +/obj/machinery/door/airlock/angled_bay/standard/glass{ + dir = 4; + stripe_color = "#785134" }, /turf/simulated/floor/tiled/steel_ridged, /area/itglight/passengersleeping) @@ -4186,8 +4205,9 @@ /turf/simulated/floor/tiled/eris/white/techfloor_grid, /area/itglight/medbay) "AJ" = ( -/obj/machinery/power/apc/hyper{ +/obj/machinery/power/apc/angled{ alarms_hidden = 1; + cell_type = /obj/item/weapon/cell/hyper; dir = 1; pixel_y = 25 }, @@ -4255,8 +4275,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 }, -/obj/machinery/power/apc/hyper{ +/obj/machinery/power/apc/angled{ alarms_hidden = 1; + cell_type = /obj/item/weapon/cell/hyper; dir = 4; pixel_x = 25 }, @@ -4299,7 +4320,7 @@ d2 = 4; icon_state = "1-4" }, -/obj/machinery/alarm/alarms_hidden{ +/obj/machinery/alarm/angled/hidden{ dir = 4; pixel_x = -26 }, @@ -4373,8 +4394,9 @@ /turf/simulated/floor/carpet/turcarpet, /area/itglight/crew4) "BU" = ( -/obj/machinery/power/apc/hyper{ +/obj/machinery/power/apc/angled{ alarms_hidden = 1; + cell_type = /obj/item/weapon/cell/hyper; dir = 4; pixel_x = 25 }, @@ -4400,18 +4422,15 @@ "Ca" = ( /obj/machinery/door/firedoor/glass, /obj/effect/map_helper/airlock/door/ext_door, -/obj/machinery/door/airlock/external{ - frequency = 1380; - icon_state = "door_locked"; - id_tag = "itglight_dock_1_outer"; - locked = 1; - name = "Port External Airlock" - }, /obj/structure/cable/pink{ d1 = 4; d2 = 8; icon_state = "4-8" }, +/obj/machinery/door/airlock/angled_bay/external/glass{ + dir = 4; + door_color = "#AA0000" + }, /turf/simulated/floor/tiled/steel_ridged, /area/itglight/portdocking) "Cg" = ( @@ -4439,7 +4458,7 @@ d2 = 4; icon_state = "1-4" }, -/obj/machinery/alarm/alarms_hidden{ +/obj/machinery/alarm/angled/hidden{ dir = 4; pixel_x = -26 }, @@ -4578,10 +4597,6 @@ /area/itglight/starboardsolars) "Db" = ( /obj/machinery/door/firedoor/glass, -/obj/machinery/door/airlock/glass_external{ - frequency = 1380; - id_tag = "itglight_dock_1_inner" - }, /obj/structure/cable/pink{ d1 = 4; d2 = 8; @@ -4595,6 +4610,10 @@ name = "interior access button"; pixel_y = 26 }, +/obj/machinery/door/airlock/angled_bay/external/glass{ + dir = 4; + door_color = "#AA0000" + }, /turf/simulated/floor/tiled/steel_ridged, /area/itglight/portdocking) "Dc" = ( @@ -4703,10 +4722,11 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/machinery/door/airlock/glass_mining{ - id_tag = "dauntlessportcargobolts"; - name = "Port Cargo Access"; - req_one_access = list(777) +/obj/machinery/door/airlock/angled_bay/standard{ + dir = 4; + door_color = "#a39342"; + req_one_access = list(777); + stripe_color = "#785134" }, /turf/simulated/floor/tiled/steel_ridged, /area/itglight/portcargo) @@ -4793,10 +4813,11 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/machinery/door/airlock/glass_mining{ - id_tag = "dauntlessstarboardcargobolts"; - name = "Starboard Cargo Access"; - req_one_access = list(777) +/obj/machinery/door/airlock/angled_bay/standard{ + dir = 4; + door_color = "#a39342"; + req_one_access = list(777); + stripe_color = "#785134" }, /turf/simulated/floor/tiled/steel_ridged, /area/itglight/starboardcargo) @@ -4846,7 +4867,7 @@ d2 = 4; icon_state = "1-4" }, -/obj/machinery/alarm/alarms_hidden{ +/obj/machinery/alarm/angled/hidden{ dir = 4; pixel_x = -26 }, @@ -4874,10 +4895,6 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/door/airlock/glass_external{ - frequency = 1380; - id_tag = "itglight_dock_2_inner" - }, /obj/machinery/access_button{ command = "cycle_interior"; frequency = 1380; @@ -4885,6 +4902,10 @@ name = "interior access button"; pixel_y = 26 }, +/obj/machinery/door/airlock/angled_bay/external/glass{ + dir = 4; + door_color = "#AA0000" + }, /turf/simulated/floor/tiled/steel_ridged, /area/itglight/starboarddocking) "EG" = ( @@ -5037,7 +5058,7 @@ "Fc" = ( /obj/machinery/atmospherics/portables_connector, /obj/effect/floor_decal/industrial/outline, -/obj/machinery/alarm/alarms_hidden{ +/obj/machinery/alarm/angled/hidden{ pixel_y = 26 }, /turf/simulated/floor, @@ -5045,18 +5066,15 @@ "Fe" = ( /obj/machinery/door/firedoor/glass, /obj/effect/map_helper/airlock/door/ext_door, -/obj/machinery/door/airlock/external{ - frequency = 1380; - icon_state = "door_locked"; - id_tag = "itglight_dock_2_outer"; - locked = 1; - name = "Starboard External Airlock" - }, /obj/structure/cable/pink{ d1 = 4; d2 = 8; icon_state = "4-8" }, +/obj/machinery/door/airlock/angled_bay/external/glass{ + dir = 4; + door_color = "#AA0000" + }, /turf/simulated/floor/tiled/steel_ridged, /area/itglight/starboarddocking) "Ff" = ( @@ -5210,10 +5228,6 @@ /obj/machinery/atmospherics/pipe/simple/hidden{ dir = 4 }, -/obj/machinery/door/airlock/glass_external{ - frequency = 1380; - id_tag = "itglight_starboard_inner" - }, /obj/effect/map_helper/airlock/door/int_door, /obj/machinery/access_button{ command = "cycle_interior"; @@ -5222,6 +5236,10 @@ name = "interior access button"; pixel_y = 26 }, +/obj/machinery/door/airlock/angled_bay/external/glass{ + dir = 4; + door_color = "#AA0000" + }, /turf/simulated/floor/tiled/steel_ridged, /area/itglight/starboardengi) "Gc" = ( @@ -5691,8 +5709,9 @@ }, /area/itglight/crew1) "IM" = ( -/obj/machinery/power/apc/hyper{ +/obj/machinery/power/apc/angled{ alarms_hidden = 1; + cell_type = /obj/item/weapon/cell/hyper; dir = 4; pixel_x = 25 }, @@ -5741,8 +5760,9 @@ /turf/simulated/floor/tiled/eris/steel/gray_platform, /area/itglight/starboardcargo) "Jc" = ( -/obj/machinery/power/apc/hyper{ +/obj/machinery/power/apc/angled{ alarms_hidden = 1; + cell_type = /obj/item/weapon/cell/hyper; dir = 1; nightshift_setting = 3; pixel_y = 25 @@ -5758,11 +5778,6 @@ /obj/structure/cable/heavyduty{ icon_state = "4-8" }, -/obj/machinery/door/airlock/glass_external{ - frequency = 1380; - id_tag = "itglight_starboard_outer"; - name = "Starboard Solars External Airlock" - }, /obj/effect/map_helper/airlock/door/ext_door, /obj/machinery/access_button{ command = "cycle_exterior"; @@ -5772,6 +5787,10 @@ pixel_y = -27; req_one_access = list(777) }, +/obj/machinery/door/airlock/angled_bay/external/glass{ + dir = 4; + door_color = "#AA0000" + }, /turf/simulated/floor/tiled/steel_ridged, /area/itglight/starboardengi) "Ji" = ( @@ -5897,8 +5916,9 @@ /turf/simulated/floor/tiled/eris/steel/gray_platform, /area/itglight/portcargo) "JR" = ( -/obj/machinery/power/apc/hyper{ +/obj/machinery/power/apc/angled{ alarms_hidden = 1; + cell_type = /obj/item/weapon/cell/hyper; dir = 4; pixel_x = 25 }, @@ -5951,8 +5971,9 @@ /turf/simulated/floor/tiled/eris/steel/gray_platform, /area/itglight/starboardcargo) "Kh" = ( -/obj/machinery/power/apc/hyper{ +/obj/machinery/power/apc/angled{ alarms_hidden = 1; + cell_type = /obj/item/weapon/cell/hyper; dir = 1; nightshift_setting = 3; pixel_y = 25 @@ -5963,12 +5984,6 @@ }, /turf/simulated/floor/tiled/eris/steel/gray_platform, /area/itglight/starboardcargo) -"Kj" = ( -/obj/machinery/door/airlock{ - name = "Unit 2" - }, -/turf/simulated/floor/tiled/white, -/area/itglight/restrooms) "Kn" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -6020,8 +6035,9 @@ /turf/simulated/floor/tiled/eris/steel/gray_platform, /area/itglight/portcargo) "KB" = ( -/obj/machinery/power/apc/hyper{ +/obj/machinery/power/apc/angled{ alarms_hidden = 1; + cell_type = /obj/item/weapon/cell/hyper; dir = 4; nightshift_setting = 3; pixel_x = 25 @@ -6041,9 +6057,9 @@ /obj/machinery/door/firedoor/glass, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/door/airlock/medical{ - name = "Surgery and Resleeving"; - req_one_access = list() +/obj/machinery/door/airlock/angled_bay/standard{ + door_color = "#FFFFFF"; + stripe_color = "#0000AA" }, /turf/simulated/floor/tiled/steel_ridged, /area/itglight/medbay) @@ -6222,14 +6238,15 @@ /turf/simulated/floor/tiled/eris/steel/brown_platform, /area/itglight/common) "Mh" = ( -/obj/machinery/alarm/alarms_hidden{ +/obj/machinery/alarm/angled/hidden{ pixel_y = 26 }, /turf/simulated/floor/carpet, /area/itglight/readyroom) "Mk" = ( -/obj/machinery/power/apc/hyper{ +/obj/machinery/power/apc/angled{ alarms_hidden = 1; + cell_type = /obj/item/weapon/cell/hyper; dir = 4; pixel_x = 25 }, @@ -6294,7 +6311,7 @@ dir = 8 }, /obj/effect/floor_decal/industrial/warning, -/obj/machinery/alarm/alarms_hidden{ +/obj/machinery/alarm/angled/hidden{ pixel_y = 26 }, /turf/simulated/floor/tiled/eris/steel/brown_platform, @@ -6400,9 +6417,8 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/door/airlock{ - id_tag = "dauntlesspq3"; - name = "Room 3" +/obj/machinery/door/airlock/angled_bay/standard{ + stripe_color = "#785134" }, /turf/simulated/floor/tiled/steel_ridged, /area/itglight/crew3) @@ -6550,8 +6566,9 @@ /turf/simulated/floor/tiled/monotile, /area/itglight/lockers) "NY" = ( -/obj/machinery/power/apc/hyper{ +/obj/machinery/power/apc/angled{ alarms_hidden = 1; + cell_type = /obj/item/weapon/cell/hyper; dir = 4; pixel_x = 25 }, @@ -6566,8 +6583,9 @@ d2 = 2; icon_state = "0-2" }, -/obj/machinery/power/apc/hyper{ +/obj/machinery/power/apc/angled{ alarms_hidden = 1; + cell_type = /obj/item/weapon/cell/hyper; dir = 1; pixel_y = 25 }, @@ -6733,11 +6751,6 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/door/airlock/mining{ - id_tag = "dauntlessshuttlbaybolts"; - name = "Shuttle Bay"; - req_one_access = list(777) - }, /obj/machinery/button/remote/airlock{ id = "dauntlessshuttlbaybolts"; name = "Door Bolts"; @@ -6745,6 +6758,9 @@ req_access = list(777); specialfunctions = 4 }, +/obj/machinery/door/airlock/angled_bay/standard/glass{ + stripe_color = "#785134" + }, /turf/simulated/floor/tiled/steel_ridged, /area/itglight/shuttlebay) "OF" = ( @@ -6794,7 +6810,7 @@ /turf/simulated/floor, /area/itglight/kitchen) "OX" = ( -/obj/machinery/alarm/alarms_hidden{ +/obj/machinery/alarm/angled/hidden{ pixel_y = 26 }, /turf/simulated/floor, @@ -6812,8 +6828,8 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/door/airlock/glass{ - name = "Kitchen" +/obj/machinery/door/airlock/angled_bay/standard/glass{ + dir = 4 }, /turf/simulated/floor/tiled/steel_ridged, /area/itglight/kitchen) @@ -6874,14 +6890,14 @@ /turf/simulated/floor/tiled/monotile, /area/itglight/lockers) "PE" = ( -/obj/structure/shuttle/engine/heater, +/obj/effect/low_wall_spawner/bay/reinforced/rglass, /turf/simulated/shuttle/plating/airless, /area/shuttle/itglightshuttle) "PJ" = ( /obj/effect/floor_decal/industrial/warning{ dir = 4 }, -/obj/machinery/alarm/alarms_hidden{ +/obj/machinery/alarm/angled/hidden{ pixel_y = 26 }, /turf/simulated/floor/tiled/eris/white/techfloor_grid, @@ -6902,7 +6918,7 @@ /obj/item/weapon/bedsheet/brown, /obj/structure/curtain/black, /obj/structure/bed/padded, -/obj/machinery/alarm/alarms_hidden{ +/obj/machinery/alarm/angled/hidden{ dir = 4; pixel_x = -26 }, @@ -6936,8 +6952,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 8 }, -/obj/machinery/power/apc/hyper{ +/obj/machinery/power/apc/angled{ alarms_hidden = 1; + cell_type = /obj/item/weapon/cell/hyper; dir = 1; pixel_y = 25 }, @@ -7011,8 +7028,10 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/door/airlock/glass{ - name = "Medical" +/obj/machinery/door/airlock/angled_bay/standard/glass{ + dir = 4; + door_color = "#FFFFFF"; + stripe_color = "#0000AA" }, /turf/simulated/floor/tiled/steel_ridged, /area/itglight/medbay) @@ -7285,9 +7304,8 @@ d2 = 2; icon_state = "1-2" }, -/obj/machinery/door/airlock{ - id_tag = "dauntlesspq1"; - name = "Room 1" +/obj/machinery/door/airlock/angled_bay/standard{ + stripe_color = "#785134" }, /turf/simulated/floor/tiled/steel_ridged, /area/itglight/crew1) @@ -7384,9 +7402,7 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/door/airlock/glass{ - name = "Passenger Access" - }, +/obj/machinery/door/airlock/angled_bay/standard/glass, /turf/simulated/floor/tiled/steel_ridged, /area/itglight/common) "SV" = ( @@ -7395,7 +7411,7 @@ dir = 1 }, /obj/item/device/radio, -/obj/machinery/alarm/alarms_hidden{ +/obj/machinery/alarm/angled/hidden{ dir = 8; pixel_x = 26 }, @@ -7472,7 +7488,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/machinery/alarm/alarms_hidden{ +/obj/machinery/alarm/angled/hidden{ pixel_y = 26 }, /turf/simulated/floor/tiled/white, @@ -7537,10 +7553,7 @@ /turf/simulated/floor/tiled/eris/steel/brown_platform, /area/itglight/afthall) "Uj" = ( -/obj/structure/low_wall/bay/reinforced{ - stripe_color = "#785134" - }, -/obj/structure/window/bay/reinforced, +/obj/effect/low_wall_spawner/bay/reinforced/rglass, /turf/simulated/floor/plating, /area/shuttle/itglightshuttle) "Um" = ( @@ -7666,7 +7679,7 @@ /obj/random/soap, /obj/random/soap, /obj/machinery/atmospherics/unary/vent_scrubber/on, -/obj/machinery/alarm/alarms_hidden{ +/obj/machinery/alarm/angled/hidden{ pixel_y = 26 }, /turf/simulated/floor/tiled/white, @@ -7912,8 +7925,9 @@ "WG" = ( /obj/structure/table/wooden_reinforced, /obj/random/plushie, -/obj/machinery/power/apc/hyper{ +/obj/machinery/power/apc/angled{ alarms_hidden = 1; + cell_type = /obj/item/weapon/cell/hyper; pixel_y = -25 }, /obj/structure/cable/pink, @@ -7933,11 +7947,6 @@ /area/itglight/lockers) "WP" = ( /obj/machinery/door/firedoor/glass, -/obj/machinery/door/airlock/glass_external{ - frequency = 1380; - id_tag = "itglight_port_outer"; - name = "Port Solars External Airlock" - }, /obj/structure/cable/heavyduty{ icon_state = "4-8" }, @@ -7950,6 +7959,10 @@ pixel_y = -27; req_one_access = list(777) }, +/obj/machinery/door/airlock/angled_bay/external/glass{ + dir = 4; + door_color = "#AA0000" + }, /turf/simulated/floor/tiled/steel_ridged, /area/itglight/portengi) "WQ" = ( @@ -7987,8 +8000,8 @@ /obj/machinery/door/firedoor/glass, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/door/airlock{ - name = "Restroom" +/obj/machinery/door/airlock/angled_bay/standard{ + stripe_color = "#785134" }, /turf/simulated/floor/tiled/eris/steel/techfloor_grid, /area/itglight/passengersleeping) @@ -8000,8 +8013,9 @@ /turf/space, /area/space) "Xl" = ( -/obj/machinery/power/apc/hyper{ +/obj/machinery/power/apc/angled{ alarms_hidden = 1; + cell_type = /obj/item/weapon/cell/hyper; dir = 8; pixel_x = -25 }, @@ -8045,8 +8059,8 @@ /obj/machinery/door/firedoor/glass, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/door/airlock{ - name = "Showers" +/obj/machinery/door/airlock/angled_bay/standard{ + stripe_color = "#785134" }, /turf/simulated/floor/tiled/steel_ridged, /area/itglight/lockers) @@ -8332,8 +8346,9 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/door/airlock{ - name = "Restroom" +/obj/machinery/door/airlock/angled_bay/standard{ + dir = 4; + stripe_color = "#785134" }, /turf/simulated/floor/tiled/steel_ridged, /area/itglight/restrooms) @@ -8391,8 +8406,9 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/door/airlock{ - name = "Showers" +/obj/machinery/door/airlock/angled_bay/standard{ + dir = 4; + stripe_color = "#785134" }, /turf/simulated/floor/tiled/steel_ridged, /area/itglight/showers) @@ -8451,14 +8467,16 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, -/obj/machinery/door/airlock/mining{ - name = "Port Engineering"; - req_one_access = list(777) +/obj/machinery/door/airlock/angled_bay/standard{ + dir = 4; + door_color = "#a39342"; + req_one_access = list(777); + stripe_color = "#785134" }, /turf/simulated/floor/tiled/steel_ridged, /area/itglight/portengi) "Zm" = ( -/obj/machinery/alarm/alarms_hidden{ +/obj/machinery/alarm/angled/hidden{ pixel_y = 26 }, /turf/simulated/floor/tiled/eris/cafe, @@ -8502,12 +8520,6 @@ stripe_color = "#785134" }, /area/itglight/kitchen) -"Zz" = ( -/obj/machinery/door/airlock{ - name = "Unit 3" - }, -/turf/simulated/floor/tiled/white, -/area/itglight/restrooms) "ZG" = ( /turf/simulated/wall/bay{ stripe_color = "#785134" @@ -8566,7 +8578,7 @@ }, /area/itglight/portcargo) "ZO" = ( -/obj/machinery/alarm/alarms_hidden{ +/obj/machinery/alarm/angled/hidden{ pixel_y = 26 }, /obj/structure/closet/crate/bin{ @@ -8605,7 +8617,7 @@ d2 = 8; icon_state = "4-8" }, -/obj/machinery/alarm/alarms_hidden{ +/obj/machinery/alarm/angled/hidden{ pixel_y = 26 }, /turf/simulated/floor/tiled/eris/steel/brown_platform, @@ -17500,7 +17512,7 @@ SL Xq Tw Xl -Zz +Tw oK ZG uf @@ -17784,7 +17796,7 @@ WC Xq Tz Xv -Kj +Tw Tb ZG VG @@ -18068,7 +18080,7 @@ WE Xu TE XM -dv +Tw Tb ZG ZY diff --git a/vorestation.dme b/vorestation.dme index 4a315fa487..17132031db 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -25,6 +25,7 @@ #include "code\world.dm" #include "code\__datastructures\globals.dm" #include "code\__defines\__513_compatibility.dm" +#include "code\__defines\__outdated_compatibility.dm" #include "code\__defines\_compile_options.dm" #include "code\__defines\_lists.dm" #include "code\__defines\_planes+layers.dm"