From d3739c41751255e3f2c60a10c77f6f8ac88eb92d Mon Sep 17 00:00:00 2001 From: wraith-54321 <69217972+wraith-54321@users.noreply.github.com> Date: Tue, 17 Oct 2023 17:27:49 -0700 Subject: [PATCH 1/8] neat --- _maps/map_files/generic/CentCom.dmm | 155 +++++++++++------- .../ghost_players/arena/arena_items.dm | 5 + .../ghost_players/arena/fight_button.dm | 17 ++ .../ghost_players/centcom_teleporter.dm | 62 +++++++ .../job_helpers/_centcom_item_spawner.dm | 26 +++ .../job_helpers/firing_range_helper.dm | 56 +++++++ tgstation.dme | 4 + 7 files changed, 269 insertions(+), 56 deletions(-) create mode 100644 monkestation/code/modules/ghost_players/arena/arena_items.dm create mode 100644 monkestation/code/modules/ghost_players/centcom_teleporter.dm create mode 100644 monkestation/code/modules/ghost_players/job_helpers/_centcom_item_spawner.dm create mode 100644 monkestation/code/modules/ghost_players/job_helpers/firing_range_helper.dm diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 02154262d717..c60c9ba38930 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -794,6 +794,13 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/borbop) +"cX" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 9 + }, +/obj/machinery/smartfridge/chemistry/preloaded, +/turf/open/floor/iron/dark/diagonal, +/area/centcom/central_command_areas/medical) "cY" = ( /obj/structure/fake_stairs/wood/directional/east, /turf/open/floor/wood/large, @@ -2327,6 +2334,10 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/supply) +"jM" = ( +/obj/machinery/door/airlock/centcom, +/turf/open/floor/iron/dark/herringbone, +/area/centcom/central_command_areas/medical) "jP" = ( /obj/structure/hedge, /turf/open/floor/carpet, @@ -3439,6 +3450,11 @@ /obj/machinery/light/floor/has_bulb, /turf/open/floor/iron/dark, /area/centcom/tdome/observation) +"pr" = ( +/obj/structure/table/reinforced, +/obj/item/storage/medkit/tactical, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/medical) "pt" = ( /obj/structure/table/reinforced/plastitaniumglass, /obj/machinery/fax, @@ -4434,9 +4450,21 @@ /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/hall) "tD" = ( +/obj/structure/table/reinforced, +/obj/item/reagent_containers/cup/beaker/bluespace, +/obj/item/reagent_containers/cup/beaker/bluespace, +/obj/item/reagent_containers/cup/beaker/bluespace, +/obj/item/reagent_containers/cup/beaker/bluespace, +/obj/item/reagent_containers/cup/beaker/bluespace, +/obj/item/reagent_containers/cup/beaker/bluespace, +/obj/item/reagent_containers/cup/beaker/bluespace, +/obj/item/reagent_containers/cup/beaker/bluespace, +/obj/item/reagent_containers/cup/beaker/bluespace, +/obj/item/reagent_containers/cup/beaker/bluespace, /obj/effect/turf_decal/siding/blue{ dir = 1 }, +/obj/machinery/door/window/right/directional/south, /turf/open/floor/iron/dark/diagonal, /area/centcom/central_command_areas/medical) "tH" = ( @@ -5126,10 +5154,13 @@ /turf/open/floor/wood/large, /area/centcom/central_command_areas/ghost_spawn) "wI" = ( -/obj/effect/turf_decal/siding/wood{ +/obj/effect/turf_decal/siding/blue{ dir = 4 }, -/turf/open/floor/wood/large, +/obj/structure/railing/wood{ + dir = 1 + }, +/turf/open/floor/iron/dark/diagonal, /area/centcom/central_command_areas/medical) "wK" = ( /obj/effect/turf_decal/siding/blue/corner{ @@ -5462,10 +5493,12 @@ /turf/open/floor/wood/large, /area/centcom/central_command_areas/kitchen) "xV" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 +/obj/effect/turf_decal/siding/blue{ + dir = 5 }, -/turf/open/floor/wood/large, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/machinery/chem_heater/debug, +/turf/open/floor/iron/dark/diagonal, /area/centcom/central_command_areas/medical) "yb" = ( /obj/effect/turf_decal/siding/wood{ @@ -6359,6 +6392,10 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron, /area/centcom/central_command_areas/ferry) +"Bo" = ( +/obj/structure/table/reinforced, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/botany) "Br" = ( /obj/structure/railing/wood{ dir = 8 @@ -6463,6 +6500,7 @@ "Ca" = ( /obj/structure/railing/wood, /obj/structure/table/reinforced, +/obj/item/storage/medkit/tactical, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/medical) "Cc" = ( @@ -6701,6 +6739,7 @@ /area/centcom/central_command_areas/admin_hangout) "Dr" = ( /obj/structure/table/reinforced, +/obj/item/storage/box/material, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/medical) "Dt" = ( @@ -7972,6 +8011,7 @@ /area/centcom/central_command_areas/borbop) "IA" = ( /obj/machinery/light/floor/has_bulb, +/obj/effect/turf_decal/siding/wood, /turf/open/floor/wood/large, /area/centcom/central_command_areas/medical) "IB" = ( @@ -8334,20 +8374,11 @@ /turf/open/floor/wood/large, /area/centcom/central_command_areas/admin_hangout) "JY" = ( -/obj/structure/table/reinforced, -/obj/item/reagent_containers/cup/beaker/bluespace, -/obj/item/reagent_containers/cup/beaker/bluespace, -/obj/item/reagent_containers/cup/beaker/bluespace, -/obj/item/reagent_containers/cup/beaker/bluespace, -/obj/item/reagent_containers/cup/beaker/bluespace, -/obj/item/reagent_containers/cup/beaker/bluespace, -/obj/item/reagent_containers/cup/beaker/bluespace, -/obj/item/reagent_containers/cup/beaker/bluespace, -/obj/item/reagent_containers/cup/beaker/bluespace, -/obj/item/reagent_containers/cup/beaker/bluespace, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/wood/large, -/area/centcom/central_command_areas/medical) +/obj/effect/turf_decal/trimline/green/line, +/obj/structure/reagent_dispensers/watertank/high, +/obj/structure/railing/wood, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/botany) "Ka" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -10961,6 +10992,15 @@ /obj/machinery/door/airlock/centcom, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/kitchen) +"UQ" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 8 + }, +/obj/structure/railing/wood{ + dir = 1 + }, +/turf/open/floor/iron/dark/diagonal, +/area/centcom/central_command_areas/medical) "US" = ( /obj/structure/window/plasma/spawner/directional/north, /turf/open/indestructible/hotelwood, @@ -10986,7 +11026,9 @@ /turf/open/floor/carpet/neon/simple/cyan, /area/centcom/central_command_areas/admin) "Vb" = ( -/obj/machinery/door/airlock/centcom, +/obj/structure/railing/wood{ + dir = 1 + }, /turf/open/floor/iron/dark/diagonal, /area/centcom/central_command_areas/medical) "Vc" = ( @@ -11803,7 +11845,8 @@ /turf/open/floor/carpet, /area/centcom/central_command_areas/admin) "YB" = ( -/obj/structure/reagent_dispensers/watertank/high, +/obj/structure/table/reinforced, +/obj/item/storage/box/material, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/botany) "YC" = ( @@ -50088,7 +50131,7 @@ rL dS pG pG -pG +rj rj Xb uQ @@ -51103,7 +51146,7 @@ yG dS dS LK -RX +JY Wi XE tv @@ -52131,7 +52174,7 @@ NJ ms dS LK -RX +JY Wi XE tv @@ -53172,7 +53215,7 @@ et dS pG pG -pG +rj rj Xb uQ @@ -53413,7 +53456,7 @@ aa aa aa gL -YB +Bo LK LK RX @@ -57525,7 +57568,7 @@ aa aa aa dl -Dr +pr Nb Nb YL @@ -57798,7 +57841,7 @@ cR we pG pG -pG +rj rj Xb uQ @@ -58045,11 +58088,11 @@ Nb Nb yj Qm -zp -dl -Kq +vR +Rq +cX wG -UY +Vb UY zH we @@ -58302,11 +58345,11 @@ Nb Nb yj CW +vS zp -Vb tD tk -UY +Vb tk zI WW @@ -58559,11 +58602,11 @@ Nb YL yo NR -zp -dl -OJ -cK +vT +xq +xV cK +wI cK HI WW @@ -59070,12 +59113,12 @@ Nb Zz dl Nb -FF +Ca ux vS vR -xV -Rq +lH +jM rP pw gz @@ -59327,12 +59370,12 @@ Nb XW Cx Nb -Ca +FF Re vS vS IA -JY +dl rP kQ zk @@ -59588,8 +59631,8 @@ Ca ux vS vT -wI -xq +vW +jM rP pw HW @@ -60101,11 +60144,11 @@ Nb YL eK hM -zp -dl -Kq -mr +vR +Rq +cX mr +UQ mr hm WW @@ -60358,11 +60401,11 @@ Nb Nb yj CW +vS zp -Vb tD tk -UY +Vb tk zI WW @@ -60615,11 +60658,11 @@ Nb Nb yj Qm -zp -dl -OJ +vT +xq +xV wK -UY +Vb UY zH we @@ -60882,7 +60925,7 @@ us we pG pG -pG +rj rj Xb uQ diff --git a/monkestation/code/modules/ghost_players/arena/arena_items.dm b/monkestation/code/modules/ghost_players/arena/arena_items.dm new file mode 100644 index 000000000000..7f8b85f43425 --- /dev/null +++ b/monkestation/code/modules/ghost_players/arena/arena_items.dm @@ -0,0 +1,5 @@ +//variant that grants CQC as soon as it is used +/obj/item/book/granter/martial/cqc/fast_read/attack_self(mob/living/user) + uses-- + on_reading_finished(user) + . = ..() diff --git a/monkestation/code/modules/ghost_players/arena/fight_button.dm b/monkestation/code/modules/ghost_players/arena/fight_button.dm index 5bcbb6f429c2..e4324586ec83 100644 --- a/monkestation/code/modules/ghost_players/arena/fight_button.dm +++ b/monkestation/code/modules/ghost_players/arena/fight_button.dm @@ -15,12 +15,23 @@ var/obj/item/weapon_of_choice = /obj/item/storage/toolbox ///the wager in monkecoins thats paid out to the winner var/payout = 0 + ///list of weakrefs to spawned weapons for deletion on duel end + var/list/spawned_weapons = list() + ///what weapons can players choose to duel with var/list/weapon_choices = list( /obj/item/storage/toolbox, /obj/item/knife/shiv, /obj/item/grenade/clusterbuster, /obj/item/spear/bamboospear, + /obj/item/reagent_containers/spray/chemsprayer/magical, //unsure if this would cause issues but they do already have access to a full chem lab so it should be fine + /obj/item/gun/energy/laser/instakill, //first to hit the other wins, very fast matches + /obj/item/melee/baton/security/loaded, + /obj/item/chainsaw, + /obj/item/melee/energy/sword/saber, + /obj/item/book/granter/martial/cqc/fast_read, + /obj/item/gravity_gun, + /obj/item/melee/energy/axe, ) /obj/structure/fight_button/Initialize(mapload) @@ -138,6 +149,7 @@ player_two.fully_heal() var/obj/item/one_weapon = new weapon_of_choice(src) + spawned_weapons += WEAKREF(one_weapon) var/turf/one_spot = locate(148, 34, SSmapping.levels_by_trait(ZTRAIT_CENTCOM)[1]) player_one.forceMove(one_spot) player_one.equipOutfit(/datum/outfit/job/assistant) @@ -145,6 +157,7 @@ player_one.dueling = TRUE var/obj/item/two_weapon = new weapon_of_choice(src) + spawned_weapons += WEAKREF(two_weapon) var/turf/two_spot = locate(164, 34, SSmapping.levels_by_trait(ZTRAIT_CENTCOM)[1]) player_two.forceMove(two_spot) player_two.equipOutfit(/datum/outfit/job/assistant) @@ -168,3 +181,7 @@ payout = 0 update_maptext() + for(var/datum/weakref/weapon in spawned_weapons) + var/obj/item/spawned_weapon = weapon?.resolve() + if(spawned_weapon) + qdel(spawned_weapon) diff --git a/monkestation/code/modules/ghost_players/centcom_teleporter.dm b/monkestation/code/modules/ghost_players/centcom_teleporter.dm new file mode 100644 index 000000000000..fafac17213dc --- /dev/null +++ b/monkestation/code/modules/ghost_players/centcom_teleporter.dm @@ -0,0 +1,62 @@ +#define RIGHTS_NONE "none" +//can be used to teleport to any other centcom_teleporter(admin teleporters can only be used by people with R_ADMIN) +/obj/structure/centcom_teleporter + name = "centcom teleporter" + desc = "Can teleport you to any other centcom teleporter you have access to." + + resistance_flags = INDESTRUCTIBLE + anchored = TRUE + + icon = 'icons/obj/money_machine.dmi' + icon_state = "bogdanoff" + ///static assoc list of lists of centcom teleporters, keyed to strings of what rights they require to use + var/static/list/all_teleporters = list() + ///what rights do we need to be used + var/needed_rights = RIGHTS_NONE + +/obj/structure/centcom_teleporter/Initialize(mapload) + . = ..() + if(!all_teleporters["[needed_rights]"]) + all_teleporters["[needed_rights]"] = list(src) + else + all_teleporters["[needed_rights]"] += src + +/obj/structure/centcom_teleporter/Destroy() + all_teleporters["[needed_rights]"] -= src + return ..() + +/obj/structure/centcom_teleporter/attack_hand(mob/living/user, list/modifiers) + . = ..() + if(!user.client || !check_rights_for(user.client, needed_rights)) + return + + var/list/choice_list = list() + for(var/teleporter_list in all_teleporters) + if((teleporter_list == RIGHTS_NONE) || check_rights_for(user.client, text2num(teleporter_list))) + choice_list += all_teleporters[teleporter_list] + + var/obj/structure/centcom_teleporter/choice = tgui_input_list(user, "Where do you want to teleport to?", "Teleporter", choice_list) + if((choice.needed_rights != RIGHTS_NONE) && !check_rights_for(user.client, choice.needed_rights)) + to_chat(user, span_warning("You dont have the admin rights to teleport here.")) + message_admins("[user][ADMIN_LOOKUPFLW(user)] is trying to use a centcom teleporter they dont have access to.") //these should not be visible to them so tell admins + return + + do_teleport(user, get_turf(choice), no_effects = TRUE, forced = TRUE) + +/obj/structure/centcom_teleporter/spawn_area + name = "spawn area teleporter" + +/obj/structure/centcom_teleporter/arena + name = "arena teleporter" + +/obj/structure/centcom_teleporter/cargo + name = "centcom cargo teleporter" + needed_rights = R_ADMIN + +/obj/structure/centcom_teleporter/admin_offices + name = "admin offices teleporter" + +/obj/structure/centcom_teleporter/firing_range + name = "firing range teleporter" + +#undef RIGHTS_NONE diff --git a/monkestation/code/modules/ghost_players/job_helpers/_centcom_item_spawner.dm b/monkestation/code/modules/ghost_players/job_helpers/_centcom_item_spawner.dm new file mode 100644 index 000000000000..361dbb92089a --- /dev/null +++ b/monkestation/code/modules/ghost_players/job_helpers/_centcom_item_spawner.dm @@ -0,0 +1,26 @@ +/obj/structure/centcom_item_spawner + name = "centcom item spawner" + desc = "This is the abstract type of an object, you should not see this." + resistance_flags = INDESTRUCTIBLE + anchored = TRUE + icon = 'icons/obj/money_machine.dmi' + icon_state = "bogdanoff" + ///types this spawner will not be able to spawn + var/list/blacklisted_items = list() + ///assoc list of category name stings as keys with lists of what types they can spawn as values + var/list/items_to_spawn = list() + +/obj/structure/centcom_item_spawner/Initialize(mapload) + . = ..() + build_items_to_spawn() + +/obj/structure/centcom_item_spawner/attack_hand(mob/living/user, list/modifiers) + . = ..() + var/choice = tgui_input_list(user, "What do you wish to fabricate?", "[src.name]", items_to_spawn) + if(!choice) + return + var/list/choice_list = + +///build our items to spawn, override this +/obj/structure/centcom_item_spawner/proc/build_items_to_spawn() + return diff --git a/monkestation/code/modules/ghost_players/job_helpers/firing_range_helper.dm b/monkestation/code/modules/ghost_players/job_helpers/firing_range_helper.dm new file mode 100644 index 000000000000..769ee0869519 --- /dev/null +++ b/monkestation/code/modules/ghost_players/job_helpers/firing_range_helper.dm @@ -0,0 +1,56 @@ +/obj/structure/gun_and_ammo_creator + name = "firing range fabrication device" + desc = "Able to print most guns and ammo your heart could ever desire.(not liable for any damages)" + resistance_flags = INDESTRUCTIBLE + anchored = TRUE + icon = 'icons/obj/money_machine.dmi' + icon_state = "bogdanoff" + blacklisted_items = list( + /obj/item/gun/blastcannon, + /obj/item/gun/medbeam, + /obj/item/gun/energy/e_gun/dragnet, + /obj/item/gun/energy/laser/instakill, + /obj/item/gun/energy/meteorgun, + /obj/item/gun/energy/minigun, //might runtime + /obj/item/gun/energy/pulse/prize, //dont spam ghosts + /obj/item/gun/energy/shrink_ray, + /obj/item/gun/energy/xray, + /obj/item/gun/energy/mindflayer, + /obj/item/gun/magic/bloodchill, + /obj/item/gun/magic/wand/safety, + /obj/item/gun/magic/wand/teleport, + /obj/item/gun/magic/wand/polymorph, + /obj/item/gun/magic/wand/death, + /obj/item/gun/magic/tentacle, + /obj/item/gun/magic/wand/door, + /obj/item/gun/magic/staff/change, + /obj/item/gun/magic/staff/chaos, + /obj/item/gun/magic/staff/door, + /obj/item/gun/magic/staff/flying, + /obj/item/gun/magic/staff/honk, + /obj/item/gun/magic/staff/necropotence, + /obj/item/gun/magic/staff/wipe, + /obj/item/ammo_box/magazine/internal, + /obj/item/ammo_box/c38/trac, + /obj/item/ammo_box/magazine/m556/phasic, + /obj/item/ammo_box/magazine/sniper_rounds/penetrator + ) +/obj/item/ammo_box/magazine +/obj/item/ammo_box/magazine/toy +//blocks passage if you have a gun +/obj/effect/gun_check_blocker + name = "anti gun barrier" + desc = "\"No guns outside the designated area\" is printed below it." + icon = 'goon/icons/obj/meteor_shield.dmi' + icon_state = "shieldw" + color = COLOR_RED + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + +/obj/effect/gun_check_blocker/CanPass(atom/movable/mover, border_dir) + if(istype(mover, /obj/item/gun)) + return FALSE + for(var/object in mover.get_all_contents()) + if(istype(object, /obj/item/gun)) + return FALSE + return ..() + diff --git a/tgstation.dme b/tgstation.dme index 43a71fe4e469..1fcbbf7a2446 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -5854,8 +5854,10 @@ #include "monkestation\code\modules\events\wizard\summon_gifts.dm" #include "monkestation\code\modules\food_and_drinks\recipes\boiling.dm" #include "monkestation\code\modules\ghost_players\area_changes.dm" +#include "monkestation\code\modules\ghost_players\centcom_teleporter.dm" #include "monkestation\code\modules\ghost_players\ghost_player.dm" #include "monkestation\code\modules\ghost_players\arena\arena_cleanser.dm" +#include "monkestation\code\modules\ghost_players\arena\arena_items.dm" #include "monkestation\code\modules\ghost_players\arena\fight_button.dm" #include "monkestation\code\modules\ghost_players\arena\map_templates.dm" #include "monkestation\code\modules\ghost_players\arena\arena_assets\alien.dm" @@ -5865,6 +5867,8 @@ #include "monkestation\code\modules\ghost_players\arena\arena_assets\fish.dm" #include "monkestation\code\modules\ghost_players\arena\arena_assets\statues.dm" #include "monkestation\code\modules\ghost_players\arena\arena_assets\water.dm" +#include "monkestation\code\modules\ghost_players\job_helpers\_centcom_item_spawner.dm" +#include "monkestation\code\modules\ghost_players\job_helpers\firing_range_helper.dm" #include "monkestation\code\modules\ghost_players\job_helpers\food_machine.dm" #include "monkestation\code\modules\ghost_players\job_helpers\hydroponics_helper.dm" #include "monkestation\code\modules\ghost_players\job_helpers\injured_spawner.dm" From dbc427deb3b54bd9bf593889453c855c4740cc8e Mon Sep 17 00:00:00 2001 From: wraith-54321 <69217972+wraith-54321@users.noreply.github.com> Date: Fri, 20 Oct 2023 17:38:03 -0700 Subject: [PATCH 2/8] done --- _maps/map_files/generic/CentCom.dmm | 888 +++++++++++------- .../modules/ghost_players/area_changes.dm | 7 + .../ghost_players/centcom_teleporter.dm | 9 +- .../job_helpers/_centcom_item_spawner.dm | 40 +- .../job_helpers/firing_range_helper.dm | 60 +- 5 files changed, 650 insertions(+), 354 deletions(-) diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index c60c9ba38930..72fcc582964c 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -99,6 +99,13 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron, /area/centcom/central_command_areas/ferry) +"av" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/firing_range) "aw" = ( /obj/effect/turf_decal/siding/wood{ dir = 10 @@ -305,6 +312,13 @@ /obj/structure/sink/directional/south, /turf/open/floor/iron/white/herringbone, /area/centcom/central_command_areas/kitchen) +"bg" = ( +/obj/machinery/door/airlock/centcom{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/any/admin/captain, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/firing_range_checkpoint_control) "bi" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -367,6 +381,11 @@ /obj/machinery/light/floor/has_bulb, /turf/open/floor/wood/large, /area/centcom/central_command_areas/botany) +"bu" = ( +/obj/machinery/door/airlock/centcom, +/obj/effect/mapping_helpers/airlock/access/any/admin/captain, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/firing_range_checkpoint_control) "bv" = ( /obj/effect/turf_decal/siding/wood{ dir = 9 @@ -476,6 +495,9 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/prison/cells) +"bR" = ( +/turf/closed/indestructible/fakeglass, +/area/centcom/central_command_areas/firing_range) "bS" = ( /obj/structure/hedge, /obj/effect/turf_decal/siding/wood/corner{ @@ -981,6 +1003,13 @@ /obj/machinery/door/airlock/highsecurity, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/evacuation/ship) +"dN" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/centcom_teleporter/arena, +/turf/open/floor/wood/large, +/area/centcom/tdome/observation) "dO" = ( /obj/structure/railing/wood{ dir = 4 @@ -1187,6 +1216,14 @@ /obj/structure/hedge, /turf/open/floor/wood/large, /area/centcom/central_command_areas/medical) +"eM" = ( +/obj/machinery/button/door/indestructible{ + id = "CC_firing_range_checkpoint"; + name = "Checkpoint Shutters" + }, +/obj/structure/table/reinforced, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/firing_range_checkpoint_control) "eP" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/curtain/cloth/fancy, @@ -1856,6 +1893,13 @@ /obj/structure/extinguisher_cabinet/directional/west, /turf/open/misc/grass, /area/centcom/central_command_areas/admin) +"hC" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/wood/large, +/area/centcom/central_command_areas/firing_range) "hD" = ( /turf/open/floor/carpet/royalblue, /area/centcom/central_command_areas/admin) @@ -2128,6 +2172,10 @@ /obj/machinery/light/directional/north, /turf/open/floor/grass, /area/centcom/central_command_areas/evacuation/ship) +"iL" = ( +/obj/structure/closet/gimmick/tacticool, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/firing_range_checkpoint_control) "iN" = ( /obj/machinery/status_display/supply, /turf/closed/indestructible/riveted, @@ -2136,6 +2184,10 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron, /area/centcom/central_command_areas/supply) +"iP" = ( +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/firing_range) "iR" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 1 @@ -2433,6 +2485,10 @@ }, /turf/open/floor/carpet, /area/centcom/central_command_areas/admin) +"km" = ( +/obj/structure/training_machine, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/firing_range) "kn" = ( /obj/structure/table/reinforced/plastitaniumglass, /obj/machinery/microwave, @@ -2540,6 +2596,11 @@ /obj/effect/turf_decal/siding/wood/corner, /turf/open/floor/wood/large, /area/centcom/central_command_areas/ghost_spawn) +"kY" = ( +/obj/structure/table/reinforced, +/obj/item/radio, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/firing_range_checkpoint_control) "lg" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/chair/comfy/shuttle/tactical{ @@ -2747,6 +2808,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood/tile, /area/centcom/central_command_areas/evacuation/ship) +"mg" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/firing_range_checkpoint_control) "mh" = ( /obj/structure/bed, /obj/item/bedsheet/centcom, @@ -2852,6 +2920,17 @@ "mD" = ( /turf/closed/indestructible/riveted, /area/centcom/central_command_areas/ferry) +"mE" = ( +/obj/machinery/door/window/right/directional/west, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/firing_range) +"mF" = ( +/obj/effect/gun_check_blocker{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/firing_range) "mG" = ( /obj/machinery/computer/cargo{ dir = 4 @@ -2885,6 +2964,7 @@ /obj/effect/turf_decal/tile/brown/anticorner/contrasted{ dir = 4 }, +/obj/structure/centcom_teleporter/cargo, /turf/open/floor/iron, /area/centcom/central_command_areas/supply) "mP" = ( @@ -3036,6 +3116,17 @@ /obj/effect/turf_decal/tile/brown/half/contrasted, /turf/open/floor/iron, /area/centcom/central_command_areas/supply) +"no" = ( +/obj/structure/rack, +/obj/item/clothing/ears/earmuffs{ + pixel_x = 6; + pixel_y = 3 + }, +/obj/item/clothing/ears/earmuffs{ + pixel_y = 7 + }, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/firing_range) "np" = ( /obj/structure/hedge, /obj/effect/turf_decal/siding/wood/corner{ @@ -3106,6 +3197,22 @@ /obj/machinery/light/directional/north, /turf/open/floor/wood/large, /area/centcom/central_command_areas/hall) +"nK" = ( +/obj/structure/rack, +/obj/item/gun/energy/laser/practice{ + pixel_x = 2; + pixel_y = 5 + }, +/obj/item/gun/energy/laser/practice{ + pixel_x = 2; + pixel_y = 1 + }, +/obj/item/gun/energy/laser/practice{ + pixel_x = 2; + pixel_y = -2 + }, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/firing_range) "nN" = ( /obj/structure/railing/wood{ dir = 8 @@ -3176,6 +3283,12 @@ /obj/machinery/light/directional/west, /turf/open/floor/iron/dark/textured_large, /area/centcom/central_command_areas/evacuation/ship) +"og" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/wood/large, +/area/centcom/central_command_areas/firing_range) "oh" = ( /obj/machinery/shower/directional/south, /obj/structure/drain, @@ -3455,6 +3568,9 @@ /obj/item/storage/medkit/tactical, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/medical) +"ps" = ( +/turf/open/floor/wood/large, +/area/centcom/central_command_areas/firing_range) "pt" = ( /obj/structure/table/reinforced/plastitaniumglass, /obj/machinery/fax, @@ -3558,6 +3674,14 @@ }, /turf/open/space/basic, /area/space) +"pK" = ( +/obj/structure/table/reinforced, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/firing_range_checkpoint_control) +"pL" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood/large, +/area/centcom/central_command_areas/firing_range) "pN" = ( /obj/effect/turf_decal/siding/wood{ dir = 9 @@ -3924,6 +4048,10 @@ }, /turf/open/floor/iron/dark/small, /area/centcom/central_command_areas/botany) +"ru" = ( +/obj/structure/centcom_item_spawner/gun_and_ammo_creator, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/firing_range) "rz" = ( /obj/effect/turf_decal/siding/wood/corner, /turf/open/floor/wood/tile, @@ -4006,6 +4134,12 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/borbop) +"rU" = ( +/obj/machinery/door/airlock/centcom{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/firing_range) "rW" = ( /obj/structure/railing{ dir = 8; @@ -4074,6 +4208,12 @@ /obj/item/storage/belt/utility/full/engi, /turf/open/floor/circuit/green, /area/centcom/central_command_areas/admin) +"sf" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood/large, +/area/centcom/central_command_areas/firing_range) "sh" = ( /obj/item/kirbyplants/random, /turf/open/floor/mineral/titanium/white, @@ -4755,6 +4895,11 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/botany) +"vd" = ( +/obj/structure/table/reinforced, +/obj/item/megaphone/sec, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/firing_range_checkpoint_control) "ve" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -5139,10 +5284,20 @@ /obj/machinery/light/floor/has_bulb, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/kitchen) +"wD" = ( +/obj/structure/centcom_teleporter/admin_offices, +/turf/open/floor/wood/large, +/area/centcom/central_command_areas/admin) "wE" = ( /obj/structure/chair/sofa/corp/left, /turf/open/floor/carpet, /area/centcom/central_command_areas/kitchen) +"wF" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/wood/large, +/area/centcom/central_command_areas/firing_range) "wG" = ( /obj/effect/turf_decal/siding/blue/corner{ dir = 1 @@ -5336,6 +5491,9 @@ /obj/machinery/light/directional/north, /turf/open/floor/wood/large, /area/centcom/central_command_areas/kitchen) +"xm" = ( +/turf/closed/indestructible/riveted, +/area/centcom/central_command_areas/firing_range) "xo" = ( /obj/effect/turf_decal/siding/wood{ dir = 9 @@ -5522,11 +5680,8 @@ /turf/open/floor/circuit/green, /area/centcom/central_command_areas/admin) "yh" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/glass/reinforced, -/area/centcom/central_command_areas/hall) +/turf/closed/indestructible/riveted, +/area/centcom/central_command_areas/firing_range_checkpoint_control) "yi" = ( /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood/large, @@ -5687,6 +5842,13 @@ /obj/machinery/light/floor/has_bulb, /turf/open/floor/carpet/purple, /area/centcom/central_command_areas/admin) +"yO" = ( +/obj/machinery/door/poddoor/shutters/indestructible/preopen{ + id = "CC_firing_range_checkpoint" + }, +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/firing_range) "yP" = ( /obj/machinery/newscaster{ pixel_y = -32 @@ -6392,6 +6554,12 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron, /area/centcom/central_command_areas/ferry) +"Bn" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood/large, +/area/centcom/central_command_areas/firing_range) "Bo" = ( /obj/structure/table/reinforced, /turf/open/floor/iron/dark, @@ -6477,6 +6645,10 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/hall) +"BQ" = ( +/obj/structure/hedge, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/firing_range_checkpoint_control) "BR" = ( /turf/open/floor/grass, /area/centcom/central_command_areas/evacuation/ship) @@ -6540,6 +6712,9 @@ /obj/structure/desk_bell, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/borbop) +"Cn" = ( +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/firing_range) "Co" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 4 @@ -6567,6 +6742,9 @@ }, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/hall) +"Cw" = ( +/turf/closed/indestructible/fakeglass, +/area/centcom/central_command_areas/firing_range_checkpoint_control) "Cx" = ( /obj/machinery/door/airlock/centcom, /turf/open/floor/iron/dark, @@ -6590,6 +6768,11 @@ /obj/effect/turf_decal/trimline/green, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/botany) +"CE" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/centcom_teleporter/spawn_area, +/turf/open/floor/wood/large, +/area/centcom/central_command_areas/ghost_spawn) "CF" = ( /obj/machinery/suit_storage_unit/industrial, /obj/structure/window/reinforced/survival_pod/spawner/directional/east, @@ -6608,6 +6791,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/white/textured, /area/centcom/central_command_areas/evacuation/ship) +"CJ" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin/carbon, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/firing_range_checkpoint_control) "CM" = ( /obj/effect/turf_decal/siding/wood{ dir = 9 @@ -7238,6 +7426,10 @@ "Fy" = ( /turf/open/chasm, /area/centcom/central_command_areas/admin) +"Fz" = ( +/obj/structure/closet/secure_closet/brig, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/firing_range_checkpoint_control) "FA" = ( /obj/structure/flora/bush/large/style_3, /turf/open/floor/grass, @@ -7927,6 +8119,14 @@ icon_state = "boxing" }, /area/centcom/central_command_areas/admin) +"Ig" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/firing_range) "Ih" = ( /turf/closed/indestructible/fakeglass, /area/centcom/central_command_areas/supply) @@ -8575,6 +8775,11 @@ "KH" = ( /turf/closed/wall/mineral/titanium, /area/centcom/central_command_areas/evacuation/ship) +"KI" = ( +/obj/structure/closet/secure_closet/armory1, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/firing_range_checkpoint_control) "KJ" = ( /obj/structure/chair/stool/bar/directional/east, /obj/machinery/light/directional/north, @@ -10496,6 +10701,10 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/ferry) +"SG" = ( +/obj/structure/table/reinforced, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/firing_range) "SI" = ( /obj/structure/closet, /turf/open/floor/iron/dark, @@ -11021,6 +11230,10 @@ "UY" = ( /turf/open/floor/iron/dark/diagonal, /area/centcom/central_command_areas/medical) +"UZ" = ( +/obj/structure/closet/secure_closet/contraband/armory, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/firing_range_checkpoint_control) "Va" = ( /obj/machinery/fishing_portal_generator, /turf/open/floor/carpet/neon/simple/cyan, @@ -11056,6 +11269,10 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron/white, /area/centcom/central_command_areas/evacuation/ship) +"Vi" = ( +/obj/structure/closet/secure_closet/armory3, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/firing_range_checkpoint_control) "Vj" = ( /obj/effect/turf_decal/tile/dark/opposingcorners, /obj/machinery/vending/clothing, @@ -11756,11 +11973,18 @@ /obj/structure/window/plasma/spawner/directional/west, /turf/open/indestructible/hotelwood, /area/centcom/central_command_areas/admin) +"Yc" = ( +/obj/structure/hedge, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/firing_range) "Yd" = ( /obj/structure/closet/crate/science, /obj/item/clothing/head/beret/science/rd, /turf/open/floor/carpet/purple, /area/centcom/central_command_areas/admin) +"Ye" = ( +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/firing_range_checkpoint_control) "Yg" = ( /obj/effect/turf_decal/tile/dark/opposingcorners, /obj/structure/table/reinforced, @@ -11820,6 +12044,10 @@ "Yn" = ( /turf/closed/indestructible/riveted, /area/centcom/central_command_areas/supplypod) +"Yq" = ( +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/firing_range) "Yt" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/fake_stairs/wood/directional/east, @@ -11903,6 +12131,10 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/hall) +"YQ" = ( +/obj/structure/closet/secure_closet/armory2, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/firing_range_checkpoint_control) "YR" = ( /obj/effect/turf_decal/siding/dark{ dir = 8 @@ -43726,7 +43958,7 @@ Mc Mc Mc dQ -Mc +wD Mc Mc Mc @@ -51734,18 +51966,18 @@ pq ew gc QC -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +xm +xm +xm +xm +xm +xm +xm +yh +yh +yh +yh +yh aa "} (155,1,1) = {" @@ -51988,21 +52220,21 @@ TV qM Mo Jd -ew -ew -QC -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +xp +Ht +Ht +sf +sf +sf +hC +sf +sf +wF +Cw +kY +Ye +Fz +yh aa "} (156,1,1) = {" @@ -52241,25 +52473,25 @@ TV ok Mo St -TV +dN qM Mo Jd -ew -dh -QC -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +TV +Nf +Wb +ps +ps +ps +ps +ps +ps +pL +bu +Ye +Ye +mg +yh aa "} (157,1,1) = {" @@ -52502,21 +52734,21 @@ TV qM Mo Jd -ew -ew -QC -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Xx +Mp +Mp +Bn +Bn +Bn +Bn +Bn +Bn +og +Cw +BQ +Ye +UZ +yh aa "} (158,1,1) = {" @@ -52762,18 +52994,18 @@ pq ew qH QC -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +bR +bR +mF +bR +mF +bR +bR +yh +yh +bg +yh +yh aa "} (159,1,1) = {" @@ -53019,18 +53251,18 @@ ae ew Fo QC -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Cn +Cn +Cn +bR +Cn +Cn +Cn +Cw +eM +Ye +Vi +yh aa "} (160,1,1) = {" @@ -53276,18 +53508,18 @@ ae ew UL QC -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +yO +bR +bR +bR +bR +bR +yO +Cw +pK +Ye +KI +yh aa "} (161,1,1) = {" @@ -53533,18 +53765,18 @@ pq ew Ik QC -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Cn +Cn +Cn +bR +Cn +Cn +Cn +Cw +CJ +Ye +YQ +yh aa "} (162,1,1) = {" @@ -53790,18 +54022,18 @@ Jd ew ew QC -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +bR +bR +mF +bR +mF +bR +bR +yh +yh +bg +yh +yh aa "} (163,1,1) = {" @@ -54047,18 +54279,18 @@ Jd ew dh QC -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cw +BQ +Ye +UZ +yh aa "} (164,1,1) = {" @@ -54304,18 +54536,18 @@ pq ew ew QC -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Cn +Cn +Cn +Cn +Cn +Cn +Cn +bu +Ye +Ye +mg +yh aa "} (165,1,1) = {" @@ -54561,18 +54793,18 @@ ae ew ew QC -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Yc +Cn +Cn +iP +Cn +Cn +Cn +Cw +vd +Ye +iL +yh aa "} (166,1,1) = {" @@ -54818,18 +55050,18 @@ QC TN df QC -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +xm +xm +rU +xm +rU +xm +xm +yh +yh +yh +yh +yh aa "} (167,1,1) = {" @@ -55075,18 +55307,18 @@ QC QC QC QC -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Yc +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Yc +xm aa "} (168,1,1) = {" @@ -55331,19 +55563,19 @@ yi pG aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +xm +Cn +Cn +Cn +Yq +Cn +ru +Cn +Yq +Cn +Cn +no +xm aa "} (169,1,1) = {" @@ -55534,7 +55766,7 @@ DR hL uC wH -Xc +CE Pg fH lX @@ -55588,19 +55820,19 @@ yi pG aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +xm +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +nK +xm aa "} (170,1,1) = {" @@ -55845,19 +56077,19 @@ yi pG aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +xm +mE +SG +av +SG +av +SG +av +SG +av +SG +Ig +xm aa "} (171,1,1) = {" @@ -56102,19 +56334,19 @@ Ct pG aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +xm +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +xm aa "} (172,1,1) = {" @@ -56359,19 +56591,19 @@ yi pG aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +xm +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +xm aa "} (173,1,1) = {" @@ -56616,19 +56848,19 @@ yi pG aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +xm +Cn +Cn +Cn +Yq +Cn +Cn +Cn +Yq +Cn +Cn +Cn +xm aa "} (174,1,1) = {" @@ -56873,19 +57105,19 @@ yi pG aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +xm +Cn +km +Cn +km +Cn +km +Cn +km +Cn +km +Cn +xm aa "} (175,1,1) = {" @@ -57130,19 +57362,19 @@ yi pG aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +xm +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +xm aa "} (176,1,1) = {" @@ -57387,19 +57619,19 @@ yi pG aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +xm +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +xm aa "} (177,1,1) = {" @@ -57644,19 +57876,19 @@ yi pG aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +xm +Yc +Cn +iP +Cn +Cn +Cn +Cn +Cn +iP +Cn +Yc +xm aa "} (178,1,1) = {" @@ -57903,17 +58135,17 @@ pG pG pG pG -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +xm +xm +xm +xm +xm +xm +xm +xm +xm +xm +xm aa "} (179,1,1) = {" @@ -60723,7 +60955,7 @@ rj rj rj JB -yh +ET YX rj rj @@ -60974,7 +61206,7 @@ aa aa aa aa -aa +pG pG pG pG diff --git a/monkestation/code/modules/ghost_players/area_changes.dm b/monkestation/code/modules/ghost_players/area_changes.dm index 7d9d14b28b11..cd4be4ef0685 100644 --- a/monkestation/code/modules/ghost_players/area_changes.dm +++ b/monkestation/code/modules/ghost_players/area_changes.dm @@ -55,6 +55,13 @@ /area/centcom/central_command_areas/admin area_flags = NOTELEPORT | GHOST_AREA | NO_EXPLOSIONS_DURING | NO_GHOSTS_DURING_ROUND +/area/centcom/central_command_areas/firing_range + name = "Centcom Firing Range" + area_flags = UNIQUE_AREA | NOTELEPORT | GHOST_AREA | NO_EXPLOSIONS_DURING + +/area/centcom/central_command_areas/firing_range_checkpoint_control + area_flags = UNIQUE_AREA | NOTELEPORT | NO_EXPLOSIONS_DURING + /area/Entered(mob/M) . = ..() if(!(area_flags & GHOST_AREA) && istype(M, /mob/living/carbon/human/ghost)) diff --git a/monkestation/code/modules/ghost_players/centcom_teleporter.dm b/monkestation/code/modules/ghost_players/centcom_teleporter.dm index fafac17213dc..8f69b7cf7016 100644 --- a/monkestation/code/modules/ghost_players/centcom_teleporter.dm +++ b/monkestation/code/modules/ghost_players/centcom_teleporter.dm @@ -27,7 +27,7 @@ /obj/structure/centcom_teleporter/attack_hand(mob/living/user, list/modifiers) . = ..() - if(!user.client || !check_rights_for(user.client, needed_rights)) + if(!user.client || (needed_rights != RIGHTS_NONE && !check_rights_for(user.client, needed_rights))) return var/list/choice_list = list() @@ -36,6 +36,9 @@ choice_list += all_teleporters[teleporter_list] var/obj/structure/centcom_teleporter/choice = tgui_input_list(user, "Where do you want to teleport to?", "Teleporter", choice_list) + if(!istype(choice)) + return + if((choice.needed_rights != RIGHTS_NONE) && !check_rights_for(user.client, choice.needed_rights)) to_chat(user, span_warning("You dont have the admin rights to teleport here.")) message_admins("[user][ADMIN_LOOKUPFLW(user)] is trying to use a centcom teleporter they dont have access to.") //these should not be visible to them so tell admins @@ -55,8 +58,6 @@ /obj/structure/centcom_teleporter/admin_offices name = "admin offices teleporter" - -/obj/structure/centcom_teleporter/firing_range - name = "firing range teleporter" + needed_rights = R_ADMIN #undef RIGHTS_NONE diff --git a/monkestation/code/modules/ghost_players/job_helpers/_centcom_item_spawner.dm b/monkestation/code/modules/ghost_players/job_helpers/_centcom_item_spawner.dm index 361dbb92089a..2ddfe10c0dad 100644 --- a/monkestation/code/modules/ghost_players/job_helpers/_centcom_item_spawner.dm +++ b/monkestation/code/modules/ghost_players/job_helpers/_centcom_item_spawner.dm @@ -5,9 +5,16 @@ anchored = TRUE icon = 'icons/obj/money_machine.dmi' icon_state = "bogdanoff" - ///types this spawner will not be able to spawn + ///what do we say() when we fabricate something + var/fabrication_phrase = "fabrication complete" + ///list of exact types this spawner will not be able to spawn var/list/blacklisted_items = list() - ///assoc list of category name stings as keys with lists of what types they can spawn as values + ///typesof() these types will not be able to be spawned + var/list/blacklisted_types = list() + /** + * assoc list of category name stings as keys with lists of what types they can spawn as values. + * category is always required, even if you only have 1. however, if there is only 1 category then it will be removed and category selection for the player will be skipped + **/ var/list/items_to_spawn = list() /obj/structure/centcom_item_spawner/Initialize(mapload) @@ -16,11 +23,32 @@ /obj/structure/centcom_item_spawner/attack_hand(mob/living/user, list/modifiers) . = ..() - var/choice = tgui_input_list(user, "What do you wish to fabricate?", "[src.name]", items_to_spawn) + var/choice + if(length(items_to_spawn == 1)) + choice = 1 //this will act as an access key + else + choice = tgui_input_list(user, "What do you wish to fabricate?", "[src.name]", items_to_spawn) + if(!choice) return - var/list/choice_list = -///build our items to spawn, override this + var/atom/second_choice = tgui_input_list(user, "Choose what to fabricate", "[choice]", items_to_spawn[choice]) + if(type in blacklisted_items) //should not be visible but just be extra sure we cant print these + return + + new second_choice(get_turf(src)) + say("[fabrication_phrase]") + playsound(src, 'sound/machines/ding.ogg', 50, TRUE) + +///build our items to spawn, override this to generate items_to_spawn, call parent at the END of your override /obj/structure/centcom_item_spawner/proc/build_items_to_spawn() - return + for(var/type as anything in blacklisted_types) + blacklisted_items += typesof(type) + + for(var/category in items_to_spawn) + if(length(items_to_spawn) == 1) //if our length is 1 then turn us into a normal list that just contains our single category list + items_to_spawn = list(items_to_spawn[category]) + break + for(var/type in items_to_spawn[category]) + if(type in blacklisted_items) + items_to_spawn[category] -= type diff --git a/monkestation/code/modules/ghost_players/job_helpers/firing_range_helper.dm b/monkestation/code/modules/ghost_players/job_helpers/firing_range_helper.dm index 769ee0869519..1973d381578a 100644 --- a/monkestation/code/modules/ghost_players/job_helpers/firing_range_helper.dm +++ b/monkestation/code/modules/ghost_players/job_helpers/firing_range_helper.dm @@ -1,4 +1,4 @@ -/obj/structure/gun_and_ammo_creator +/obj/structure/centcom_item_spawner/gun_and_ammo_creator name = "firing range fabrication device" desc = "Able to print most guns and ammo your heart could ever desire.(not liable for any damages)" resistance_flags = INDESTRUCTIBLE @@ -6,23 +6,21 @@ icon = 'icons/obj/money_machine.dmi' icon_state = "bogdanoff" blacklisted_items = list( + /obj/item/gun/ballistic, + /obj/item/gun/ballistic/automatic, /obj/item/gun/blastcannon, - /obj/item/gun/medbeam, - /obj/item/gun/energy/e_gun/dragnet, - /obj/item/gun/energy/laser/instakill, - /obj/item/gun/energy/meteorgun, + /obj/item/gun/energy, /obj/item/gun/energy/minigun, //might runtime /obj/item/gun/energy/pulse/prize, //dont spam ghosts /obj/item/gun/energy/shrink_ray, - /obj/item/gun/energy/xray, /obj/item/gun/energy/mindflayer, + /obj/item/gun/energy/recharge, + /obj/item/gun/energy/wiremod_gun, + /obj/item/gun/energy/xray, + /obj/item/gun/magic, /obj/item/gun/magic/bloodchill, - /obj/item/gun/magic/wand/safety, - /obj/item/gun/magic/wand/teleport, - /obj/item/gun/magic/wand/polymorph, - /obj/item/gun/magic/wand/death, - /obj/item/gun/magic/tentacle, - /obj/item/gun/magic/wand/door, + /obj/item/gun/magic/staff, + /obj/item/gun/magic/staff/animate, /obj/item/gun/magic/staff/change, /obj/item/gun/magic/staff/chaos, /obj/item/gun/magic/staff/door, @@ -30,13 +28,42 @@ /obj/item/gun/magic/staff/honk, /obj/item/gun/magic/staff/necropotence, /obj/item/gun/magic/staff/wipe, - /obj/item/ammo_box/magazine/internal, + /obj/item/gun/magic/tentacle, + /obj/item/gun/magic/wand, + /obj/item/gun/magic/wand/door, + /obj/item/gun/magic/wand/polymorph, + /obj/item/gun/magic/wand/teleport, /obj/item/ammo_box/c38/trac, /obj/item/ammo_box/magazine/m556/phasic, - /obj/item/ammo_box/magazine/sniper_rounds/penetrator + /obj/item/ammo_box/magazine/sniper_rounds/penetrator, + /obj/item/ammo_box/magazine, + /obj/item/ammo_box/magazine/toy, + ) + blacklisted_types = list( + /obj/item/ammo_box/magazine/internal, + /obj/item/gun/energy/e_gun/dragnet, + /obj/item/gun/energy/ionrifle, + /obj/item/gun/energy/laser/instakill, + /obj/item/gun/energy/meteorgun, + /obj/item/gun/energy/wormhole_projector, + /obj/item/gun/magic/staff/chaos, + /obj/item/gun/magic/wand/death, + /obj/item/gun/magic/wand/safety, + /obj/item/gun/medbeam, ) -/obj/item/ammo_box/magazine -/obj/item/ammo_box/magazine/toy + +/obj/structure/centcom_item_spawner/gun_and_ammo_creator/build_items_to_spawn() + items_to_spawn["Ballistic"] = subtypesof(/obj/item/gun/ballistic) + items_to_spawn["Energy"] = subtypesof(/obj/item/gun/energy) + items_to_spawn["Magic"] = subtypesof(/obj/item/gun/magic) + items_to_spawn["Ammo"] = subtypesof(/obj/item/ammo_box) + items_to_spawn["Other"] = list( + /obj/item/gun/chem, + /obj/item/gun/grenadelauncher, + /obj/structure/training_machine, + /mob/living/carbon/human) + typesof(/obj/item/gun/syringe, /obj/item/target) + . = ..() + //blocks passage if you have a gun /obj/effect/gun_check_blocker name = "anti gun barrier" @@ -45,6 +72,7 @@ icon_state = "shieldw" color = COLOR_RED mouse_opacity = MOUSE_OPACITY_TRANSPARENT + anchored = TRUE /obj/effect/gun_check_blocker/CanPass(atom/movable/mover, border_dir) if(istype(mover, /obj/item/gun)) From dab5573daace2b06c1e4dde992a3e992f1b6b11f Mon Sep 17 00:00:00 2001 From: wraith-54321 <69217972+wraith-54321@users.noreply.github.com> Date: Fri, 20 Oct 2023 18:17:31 -0700 Subject: [PATCH 3/8] test --- monkestation/code/modules/ghost_players/arena/fight_button.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/monkestation/code/modules/ghost_players/arena/fight_button.dm b/monkestation/code/modules/ghost_players/arena/fight_button.dm index e4324586ec83..fc4e063bac70 100644 --- a/monkestation/code/modules/ghost_players/arena/fight_button.dm +++ b/monkestation/code/modules/ghost_players/arena/fight_button.dm @@ -30,7 +30,7 @@ /obj/item/chainsaw, /obj/item/melee/energy/sword/saber, /obj/item/book/granter/martial/cqc/fast_read, - /obj/item/gravity_gun, + /obj/item/gun/ballistic/revolver, /obj/item/melee/energy/axe, ) From f4831e9190fea03e16db58ad53427551910820a2 Mon Sep 17 00:00:00 2001 From: wraith-54321 <69217972+wraith-54321@users.noreply.github.com> Date: Fri, 20 Oct 2023 18:40:36 -0700 Subject: [PATCH 4/8] ok there we go --- _maps/map_files/generic/CentCom.dmm | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 625dbb2d456c..a197f80045b7 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -3840,11 +3840,6 @@ /obj/structure/table/reinforced, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/medical) -"qD" = ( -/obj/structure/table/reinforced, -/obj/machinery/infuser, -/turf/open/floor/iron/dark, -/area/centcom/central_command_areas/botany) "qE" = ( /obj/effect/turf_decal/siding/blue{ dir = 4 @@ -7345,7 +7340,6 @@ }, /obj/merge_conflict_marker{ name = "---Merge Conflict Marker---"; - desc = "A best-effort merge was performed. You must resolve this conflict yourself (manually) and remove this object once complete." }, /obj/effect/turf_decal/tile/dark/opposingcorners, @@ -49852,7 +49846,7 @@ aa aa dS rd -qD +yZ xH uE dS From b11abafbafd12fbeb260c385bd5a43c2a335a04f Mon Sep 17 00:00:00 2001 From: wraith-54321 <69217972+wraith-54321@users.noreply.github.com> Date: Fri, 20 Oct 2023 18:45:22 -0700 Subject: [PATCH 5/8] actually good --- _maps/map_files/generic/CentCom.dmm | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index a197f80045b7..ff670499b046 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -7334,20 +7334,6 @@ /obj/effect/landmark/basketball/game_area, /turf/open/space/basic, /area/space) -"Fk" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/merge_conflict_marker{ - name = "---Merge Conflict Marker---"; - desc = "A best-effort merge was performed. You must resolve this conflict yourself (manually) and remove this object once complete." - }, -/obj/effect/turf_decal/tile/dark/opposingcorners, -/obj/effect/portal/permanent{ - id = "arena" - }, -/turf/open/floor/wood/large, -/area/centcom/tdome/observation) "Fm" = ( /obj/structure/table/reinforced/plastitaniumglass{ name = "Andrea's Desk" @@ -8355,9 +8341,6 @@ dir = 8 }, /obj/machinery/light/floor/has_bulb, -/obj/effect/portal/permanent{ - id = "arena" - }, /turf/open/floor/wood/parquet, /area/centcom/central_command_areas/borbop) "Jm" = ( @@ -52489,7 +52472,7 @@ lW qM Mo Jd -Fk +lW Nf Wb Nu From 96cd18eeef533896c3c97cab8e2ee7eb147e0a62 Mon Sep 17 00:00:00 2001 From: wraith-54321 <69217972+wraith-54321@users.noreply.github.com> Date: Fri, 20 Oct 2023 18:47:54 -0700 Subject: [PATCH 6/8] oh we dont need two of those --- _maps/map_files/generic/CentCom.dmm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index ff670499b046..ad9be94a4ea5 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -52472,7 +52472,7 @@ lW qM Mo Jd -lW +TV Nf Wb Nu From a4ddfb7d03462c54f49099ccd39072f3c0ae3b86 Mon Sep 17 00:00:00 2001 From: wraith-54321 <69217972+wraith-54321@users.noreply.github.com> Date: Wed, 1 Nov 2023 23:01:04 -0700 Subject: [PATCH 7/8] conflict markers resolved --- _maps/map_files/generic/CentCom.dmm | 27 +-------------------------- 1 file changed, 1 insertion(+), 26 deletions(-) diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 8ebc118aafd0..9087a00f18fe 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -997,21 +997,7 @@ "cW" = ( /obj/structure/table/reinforced, /obj/item/storage/box/material, -/obj/merge_conflict_marker{ - name = "---Merge Conflict Marker---"; - - desc = "A best-effort merge was performed. You must resolve this conflict yourself (manually) and remove this object once complete." - }, /obj/structure/table/reinforced, -/obj/item/storage/backpack/duffelbag/med/surgery, -/obj/item/storage/backpack/duffelbag/med/surgery{ - pixel_x = 5; - pixel_y = 9 - }, -/obj/item/storage/backpack/duffelbag/med/surgery{ - pixel_y = 10; - pixel_x = -10 - }, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/medical) "cX" = ( @@ -3992,11 +3978,6 @@ "lP" = ( /obj/structure/table/reinforced, /obj/item/storage/medkit/tactical, -/obj/merge_conflict_marker{ - name = "---Merge Conflict Marker---"; - - desc = "A best-effort merge was performed. You must resolve this conflict yourself (manually) and remove this object once complete." - }, /obj/machinery/vending/medical, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/medical) @@ -9617,14 +9598,8 @@ /obj/structure/railing/wood, /obj/structure/table/reinforced, /obj/item/storage/medkit/tactical, -/obj/merge_conflict_marker{ - name = "---Merge Conflict Marker---"; - - desc = "A best-effort merge was performed. You must resolve this conflict yourself (manually) and remove this object once complete." - }, /obj/structure/railing/wood, /obj/structure/table/reinforced, -/obj/item/storage/backpack/duffelbag/med/surgery, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/medical) "CE" = ( @@ -14725,7 +14700,7 @@ /area/centcom/central_command_areas/hall) "Ry" = ( /obj/machinery/computer/atmos_control/noreconnect{ - atmos_chambers = list("nukiebase"="Burn Chamber"); + atmos_chambers = list("nukiebase"="Burn Chamber"); desc = "Used to monitor the Syndicate Ordnance Laboratory's burn chamber."; dir = 1; name = "Ordnance Chamber Monitor" From 12b1eb45472805d702b4ac56d15cf5cbc8e29faa Mon Sep 17 00:00:00 2001 From: wraith-54321 <69217972+wraith-54321@users.noreply.github.com> Date: Thu, 2 Nov 2023 00:33:38 -0700 Subject: [PATCH 8/8] dont have duplicates --- _maps/map_files/generic/CentCom.dmm | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 9087a00f18fe..345631269772 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -997,7 +997,6 @@ "cW" = ( /obj/structure/table/reinforced, /obj/item/storage/box/material, -/obj/structure/table/reinforced, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/medical) "cX" = ( @@ -3977,7 +3976,6 @@ /area/centcom/syndicate_mothership/expansion_bombthreat) "lP" = ( /obj/structure/table/reinforced, -/obj/item/storage/medkit/tactical, /obj/machinery/vending/medical, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/medical) @@ -9594,14 +9592,6 @@ "CC" = ( /turf/closed/indestructible/opsglass, /area/centcom/syndicate_mothership) -"CD" = ( -/obj/structure/railing/wood, -/obj/structure/table/reinforced, -/obj/item/storage/medkit/tactical, -/obj/structure/railing/wood, -/obj/structure/table/reinforced, -/turf/open/floor/iron/dark, -/area/centcom/central_command_areas/medical) "CE" = ( /obj/structure/chair/wood/wings{ dir = 1 @@ -14700,7 +14690,7 @@ /area/centcom/central_command_areas/hall) "Ry" = ( /obj/machinery/computer/atmos_control/noreconnect{ - atmos_chambers = list("nukiebase"="Burn Chamber"); + atmos_chambers = list("nukiebase"="Burn Chamber"); desc = "Used to monitor the Syndicate Ordnance Laboratory's burn chamber."; dir = 1; name = "Ordnance Chamber Monitor" @@ -64905,7 +64895,7 @@ Nb FV dl Nb -CD +Sc ux vS vT