From 8fd85e9666d10a70dc7e97a4f06d2820819e9726 Mon Sep 17 00:00:00 2001 From: Watermelon914 <37270891+Watermelon914@users.noreply.github.com> Date: Tue, 11 Jan 2022 23:47:10 +0000 Subject: [PATCH] [MDB IGNORE] BIDDLE TRAITORS - Adds progression traitors. Refactors uplink code in its entirety (#63588) Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com> Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com> Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com> Co-authored-by: tgstation-server Co-authored-by: gbfree Co-authored-by: Sealed101 <75863639+Sealed101@users.noreply.github.com> Co-authored-by: Changelogs Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: vincentiusvin <54709710+vincentiusvin@users.noreply.github.com> Co-authored-by: oranges Co-authored-by: Seth Scherer Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> Co-authored-by: Azarak Co-authored-by: RandomGamer123 <31096837+RandomGamer123@users.noreply.github.com> Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com> Co-authored-by: Kylerace Co-authored-by: ike709 Co-authored-by: Iamgoofball Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com> Co-authored-by: Pepsilawn Co-authored-by: AnturK Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com> Co-authored-by: SuperNovaa41 Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com> Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com> Co-authored-by: san7890 <34697715+san7890@users.noreply.github.com> Co-authored-by: MMMiracles Co-authored-by: Krysonism <49783092+Krysonism@users.noreply.github.com> Co-authored-by: Aziz Chynaliev Co-authored-by: Tastyfish Co-authored-by: Mooshimi <85910816+Mooshimi@users.noreply.github.com> Co-authored-by: carshalash Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com> --- _maps/shuttles/starfury_corvette.dmm | 584 ++ _maps/shuttles/starfury_fighter1.dmm | 151 + _maps/shuttles/starfury_fighter2.dmm | 150 + _maps/shuttles/starfury_fighter3.dmm | 167 + _maps/templates/battlecruiser_starfury.dmm | 8533 +++++++++++++++++ code/__DEFINES/antagonists.dm | 42 +- .../signals/signals_mob/signals_mob_carbon.dm | 2 +- .../signals/signals_mob/signals_mob_main.dm | 2 + code/__DEFINES/dcs/signals/signals_traitor.dm | 22 + code/__DEFINES/role_preferences.dm | 2 + code/__DEFINES/sound.dm | 2 +- code/__DEFINES/uplink.dm | 4 + code/__HELPERS/cmp.dm | 4 + code/__HELPERS/priority_announce.dm | 36 +- code/_globalvars/lists/mobs.dm | 9 + .../configuration/configuration.dm | 2 +- .../configuration/entries/game_options.dm | 15 + code/controllers/subsystem/communications.dm | 10 +- code/controllers/subsystem/shuttle.dm | 9 +- code/controllers/subsystem/traitor.dm | 109 + code/datums/brain_damage/imaginary_friend.dm | 2 +- code/datums/components/uplink.dm | 315 +- code/datums/id_trim/syndicate.dm | 4 +- code/datums/mind.dm | 43 +- code/datums/shuttles.dm | 20 + code/game/area/areas/shuttles.dm | 3 + code/game/gamemodes/dynamic/dynamic.dm | 2 +- code/game/gamemodes/objective.dm | 10 +- code/game/gamemodes/objective_items.dm | 164 +- .../game/machinery/computer/communications.dm | 79 +- code/game/machinery/computer/medical.dm | 1 + code/game/machinery/computer/security.dm | 1 + code/game/objects/effects/landmarks.dm | 8 +- code/game/objects/effects/misc.dm | 1 + code/game/objects/items/cardboard_cutouts.dm | 4 +- code/game/objects/items/cards_ids.dm | 15 + .../circuitboards/computer_circuitboards.dm | 6 + .../objects/items/devices/PDA/virus_cart.dm | 26 +- code/game/objects/items/emags.dm | 29 + .../objects/items/implants/implantuplink.dm | 10 +- code/game/objects/items/stacks/telecrystal.dm | 2 +- .../game/objects/items/storage/uplink_kits.dm | 50 - code/game/objects/structures/fireaxe.dm | 2 +- code/modules/admin/admin_verbs.dm | 1 + code/modules/admin/antag_panel.dm | 10 +- code/modules/admin/verbs/anonymousnames.dm | 4 +- .../antagonists/_common/antag_datum.dm | 2 +- .../nukeop/equipment/nuclear_challenge.dm | 2 +- code/modules/antagonists/nukeop/nukeop.dm | 25 +- .../antagonists/traitor/balance_helper.dm | 115 + .../components/traitor_objective_helpers.dm | 54 + .../traitor_objective_limit_per_time.dm | 41 + .../traitor_objective_mind_tracker.dm | 40 + .../antagonists/traitor/datum_traitor.dm | 250 +- .../traitor/equipment/contractor.dm | 292 - .../antagonists/traitor/objective_category.dm | 68 + .../traitor/objectives/assassination.dm | 270 + .../traitor/objectives/bug_room.dm | 191 + .../traitor/objectives/destroy_heirloom.dm | 128 + .../traitor/objectives/destroy_item.dm | 104 + .../final_objective/battlecruiser.dm | 47 + .../final_objective/final_objective.dm | 35 + .../objectives/final_objective/romerol.dm | 46 + .../traitor/objectives/hack_comm_console.dm | 56 + .../traitor/objectives/kill_pet.dm | 92 + .../traitor/objectives/sleeper_protocol.dm | 113 + .../traitor/objectives/smuggling.dm | 120 + .../antagonists/traitor/objectives/steal.dm | 263 + .../antagonists/traitor/syndicate_contract.dm | 236 - .../antagonists/traitor/traitor_objective.dm | 221 + .../antagonists/traitor/uplink_handler.dm | 205 + code/modules/asset_cache/asset_list_items.dm | 40 + code/modules/cargo/exports/traitor.dm | 20 + code/modules/cargo/packs.dm | 20 +- code/modules/jobs/job_types/assistant.dm | 2 +- .../jobs/job_types/research_director.dm | 2 +- .../jobs/job_types/spawner/battlecruiser.dm | 7 + code/modules/mafia/roles.dm | 2 +- code/modules/mapping/map_template.dm | 4 + .../mob/living/simple_animal/friendly/dog.dm | 2 + .../friendly/drone/extra_drone_types.dm | 4 +- code/modules/mob_spawn/corpses/job_corpses.dm | 2 +- .../mob_spawn/ghost_roles/space_roles.dm | 128 + .../mob_spawn/ghost_roles/unused_roles.dm | 55 - .../computers/item/tablet_presets.dm | 19 - .../programs/antagonist/contract_uplink.dm | 209 - code/modules/paperwork/pen.dm | 19 +- .../projectiles/guns/special/syringe_gun.dm | 7 + .../chemistry/reagents/alcohol_reagents.dm | 23 + code/modules/research/techweb/all_nodes.dm | 8 +- .../modules/shuttle/battlecruiser_starfury.dm | 189 + code/modules/shuttle/docking.dm | 1 - code/modules/shuttle/navigation_computer.dm | 6 +- code/modules/shuttle/on_move.dm | 6 +- code/modules/surgery/surgery_step.dm | 1 + code/modules/unit_tests/_unit_tests.dm | 2 + code/modules/unit_tests/objectives.dm | 24 + code/modules/unit_tests/traitor.dm | 26 + code/modules/uplink/uplink_devices.dm | 4 +- code/modules/uplink/uplink_items.dm | 2104 +--- .../modules/uplink/uplink_items/ammunition.dm | 69 + code/modules/uplink/uplink_items/badass.dm | 80 + code/modules/uplink/uplink_items/bundle.dm | 52 + code/modules/uplink/uplink_items/dangerous.dm | 101 + .../uplink/uplink_items/device_tools.dm | 234 + code/modules/uplink/uplink_items/explosive.dm | 103 + code/modules/uplink/uplink_items/implant.dm | 57 + code/modules/uplink/uplink_items/job.dm | 282 + code/modules/uplink/uplink_items/nukeops.dm | 779 ++ code/modules/uplink/uplink_items/stealthy.dm | 100 + .../uplink/uplink_items/stealthy_tools.dm | 94 + code/modules/uplink/uplink_items/suits.dm | 51 + config/admins.txt | 1 + config/traitor_objective.json | 1 + icons/mob/huds/antag_hud.dmi | Bin 8195 -> 8426 bytes icons/mob/inhands/weapons/swords_lefthand.dmi | Bin 25312 -> 23276 bytes .../mob/inhands/weapons/swords_righthand.dmi | Bin 28149 -> 25960 bytes icons/obj/bureaucracy.dmi | Bin 24334 -> 25865 bytes icons/obj/card.dmi | Bin 18329 -> 19148 bytes icons/obj/computer.dmi | Bin 118220 -> 119533 bytes icons/obj/items_and_weapons.dmi | Bin 93512 -> 90878 bytes sound/traitor/final_objective.ogg | Bin 0 -> 227435 bytes sound/traitor/objective_failed.ogg | Bin 0 -> 43261 bytes sound/traitor/objective_success.ogg | Bin 0 -> 30057 bytes sound/traitor/objective_taken.ogg | Bin 0 -> 17846 bytes tgstation.dme | 39 +- tgui/packages/tgui/components/Section.tsx | 2 +- .../tgui/interfaces/AbductorConsole.js | 28 +- .../tgui/interfaces/AntagInfoMalf.tsx | 32 +- .../tgui/interfaces/CommunicationsConsole.js | 99 +- .../interfaces/MalfunctionModulePicker.js | 29 +- .../tgui/interfaces/SyndContractor.js | 428 - .../tgui/interfaces/TraitorObjectiveDebug.tsx | 430 + tgui/packages/tgui/interfaces/Uplink.js | 192 - .../tgui/interfaces/Uplink/GenericUplink.tsx | 133 + .../tgui/interfaces/Uplink/ObjectiveMenu.tsx | 564 ++ .../Uplink/calculateReputationLevel.tsx | 145 + .../tgui/interfaces/Uplink/constants.ts | 7 + .../packages/tgui/interfaces/Uplink/index.tsx | 347 + .../tgui/styles/interfaces/Uplink.scss | 81 + tgui/packages/tgui/styles/main.scss | 1 + 141 files changed, 17145 insertions(+), 4035 deletions(-) create mode 100644 _maps/shuttles/starfury_corvette.dmm create mode 100644 _maps/shuttles/starfury_fighter1.dmm create mode 100644 _maps/shuttles/starfury_fighter2.dmm create mode 100644 _maps/shuttles/starfury_fighter3.dmm create mode 100644 _maps/templates/battlecruiser_starfury.dmm create mode 100644 code/__DEFINES/dcs/signals/signals_traitor.dm create mode 100644 code/controllers/subsystem/traitor.dm create mode 100644 code/modules/antagonists/traitor/balance_helper.dm create mode 100644 code/modules/antagonists/traitor/components/traitor_objective_helpers.dm create mode 100644 code/modules/antagonists/traitor/components/traitor_objective_limit_per_time.dm create mode 100644 code/modules/antagonists/traitor/components/traitor_objective_mind_tracker.dm delete mode 100644 code/modules/antagonists/traitor/equipment/contractor.dm create mode 100644 code/modules/antagonists/traitor/objective_category.dm create mode 100644 code/modules/antagonists/traitor/objectives/assassination.dm create mode 100644 code/modules/antagonists/traitor/objectives/bug_room.dm create mode 100644 code/modules/antagonists/traitor/objectives/destroy_heirloom.dm create mode 100644 code/modules/antagonists/traitor/objectives/destroy_item.dm create mode 100644 code/modules/antagonists/traitor/objectives/final_objective/battlecruiser.dm create mode 100644 code/modules/antagonists/traitor/objectives/final_objective/final_objective.dm create mode 100644 code/modules/antagonists/traitor/objectives/final_objective/romerol.dm create mode 100644 code/modules/antagonists/traitor/objectives/hack_comm_console.dm create mode 100644 code/modules/antagonists/traitor/objectives/kill_pet.dm create mode 100644 code/modules/antagonists/traitor/objectives/sleeper_protocol.dm create mode 100644 code/modules/antagonists/traitor/objectives/smuggling.dm create mode 100644 code/modules/antagonists/traitor/objectives/steal.dm delete mode 100644 code/modules/antagonists/traitor/syndicate_contract.dm create mode 100644 code/modules/antagonists/traitor/traitor_objective.dm create mode 100644 code/modules/antagonists/traitor/uplink_handler.dm create mode 100644 code/modules/cargo/exports/traitor.dm create mode 100644 code/modules/jobs/job_types/spawner/battlecruiser.dm delete mode 100644 code/modules/modular_computers/file_system/programs/antagonist/contract_uplink.dm create mode 100644 code/modules/shuttle/battlecruiser_starfury.dm create mode 100644 code/modules/unit_tests/objectives.dm create mode 100644 code/modules/unit_tests/traitor.dm create mode 100644 code/modules/uplink/uplink_items/ammunition.dm create mode 100644 code/modules/uplink/uplink_items/badass.dm create mode 100644 code/modules/uplink/uplink_items/bundle.dm create mode 100644 code/modules/uplink/uplink_items/dangerous.dm create mode 100644 code/modules/uplink/uplink_items/device_tools.dm create mode 100644 code/modules/uplink/uplink_items/explosive.dm create mode 100644 code/modules/uplink/uplink_items/implant.dm create mode 100644 code/modules/uplink/uplink_items/job.dm create mode 100644 code/modules/uplink/uplink_items/nukeops.dm create mode 100644 code/modules/uplink/uplink_items/stealthy.dm create mode 100644 code/modules/uplink/uplink_items/stealthy_tools.dm create mode 100644 code/modules/uplink/uplink_items/suits.dm create mode 100644 config/traitor_objective.json create mode 100644 sound/traitor/final_objective.ogg create mode 100644 sound/traitor/objective_failed.ogg create mode 100644 sound/traitor/objective_success.ogg create mode 100644 sound/traitor/objective_taken.ogg delete mode 100644 tgui/packages/tgui/interfaces/SyndContractor.js create mode 100644 tgui/packages/tgui/interfaces/TraitorObjectiveDebug.tsx delete mode 100644 tgui/packages/tgui/interfaces/Uplink.js create mode 100644 tgui/packages/tgui/interfaces/Uplink/GenericUplink.tsx create mode 100644 tgui/packages/tgui/interfaces/Uplink/ObjectiveMenu.tsx create mode 100644 tgui/packages/tgui/interfaces/Uplink/calculateReputationLevel.tsx create mode 100644 tgui/packages/tgui/interfaces/Uplink/constants.ts create mode 100644 tgui/packages/tgui/interfaces/Uplink/index.tsx create mode 100644 tgui/packages/tgui/styles/interfaces/Uplink.scss diff --git a/_maps/shuttles/starfury_corvette.dmm b/_maps/shuttles/starfury_corvette.dmm new file mode 100644 index 00000000000..fdf1598c9fd --- /dev/null +++ b/_maps/shuttles/starfury_corvette.dmm @@ -0,0 +1,584 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"b" = ( +/obj/structure/closet/syndicate/personal, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_corvette) +"c" = ( +/turf/open/floor/iron/dark, +/area/shuttle/sbc_corvette) +"d" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_corvette) +"e" = ( +/obj/machinery/turretid{ + ailock = 1; + desc = "A specially designed set of turret controls. Looks to be covered in protective casing to prevent AI interfacing."; + icon_state = "control_kill"; + lethal = 1; + name = "Ship Turret Control"; + pixel_x = 32; + pixel_y = -2; + req_access = list(150) + }, +/obj/machinery/button/door{ + id = "SBC_corvette_blast"; + name = "Corvette Blast Doors"; + pixel_x = 32; + pixel_y = 8; + req_access_txt = "151" + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_corvette) +"f" = ( +/obj/structure/table, +/obj/machinery/recharger, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_corvette) +"h" = ( +/obj/structure/closet/emcloset{ + anchored = 1 + }, +/obj/item/clothing/mask/gas/syndicate, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/machinery/button/door{ + id = "SBC_corvette_bolt"; + name = "Bolt Control"; + normaldoorcontrol = 1; + pixel_y = -25; + specialfunctions = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_corvette) +"j" = ( +/obj/machinery/door/airlock/external{ + id_tag = "SBC_corvette_bolt"; + name = "Syndicate Corvette Airlock"; + req_access_txt = "150" + }, +/obj/docking_port/mobile/syndicate_corvette, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/shuttle/sbc_corvette) +"k" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/structure/chair/comfy/shuttle{ + name = "tactical chair" + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_corvette) +"l" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_corvette) +"m" = ( +/obj/machinery/porta_turret/syndicate/pod{ + max_integrity = 80 + }, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/sbc_corvette) +"n" = ( +/obj/structure/table, +/obj/item/storage/toolbox/syndicate, +/obj/machinery/button/door{ + id = "SBC_corvette_bolt"; + name = "Bolt Control"; + normaldoorcontrol = 1; + pixel_y = 25; + specialfunctions = 4 + }, +/obj/item/clothing/glasses/meson, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_corvette) +"o" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/structure/chair/comfy/shuttle{ + dir = 1; + name = "tactical chair" + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_corvette) +"r" = ( +/obj/machinery/computer/security{ + network = list("SBC_Corvette") + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_corvette) +"s" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_corvette) +"t" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/shuttle/engine/heater{ + dir = 8 + }, +/turf/open/floor/plating, +/area/shuttle/sbc_corvette) +"v" = ( +/obj/structure/closet/syndicate/personal, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_corvette) +"w" = ( +/obj/machinery/light/small, +/obj/effect/turf_decal/stripes/line, +/obj/structure/chair/comfy/shuttle{ + dir = 1; + name = "tactical chair" + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_corvette) +"x" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/rack, +/obj/item/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/storage/box/zipties, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_corvette) +"z" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_corvette) +"A" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/chair/comfy/shuttle{ + dir = 8; + name = "tactical chair" + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_corvette) +"B" = ( +/obj/machinery/computer/secure_data{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_corvette) +"C" = ( +/obj/structure/shuttle/engine/propulsion/burst{ + dir = 8 + }, +/turf/open/floor/plating, +/area/shuttle/sbc_corvette) +"D" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/computer/shuttle/starfury/corvette{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_corvette) +"E" = ( +/obj/machinery/door/airlock/external{ + id_tag = "SBC_corvette_bolt"; + name = "Syndicate Corvette Airlock"; + req_access_txt = "150" + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/shuttle/sbc_corvette) +"F" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_corvette) +"G" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/chair/comfy/shuttle{ + name = "tactical chair" + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_corvette) +"H" = ( +/obj/machinery/porta_turret/syndicate/pod{ + dir = 1; + max_integrity = 80 + }, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/sbc_corvette) +"I" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/wrench, +/obj/machinery/cell_charger, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_corvette) +"J" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_corvette) +"K" = ( +/obj/machinery/door/airlock/hatch{ + name = "Syndicate Corvette Ready Room"; + req_access_txt = "150" + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_corvette) +"L" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/corvette{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_corvette) +"M" = ( +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/sbc_corvette) +"N" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_corvette) +"O" = ( +/obj/machinery/door/poddoor/preopen{ + id = "SBC_corvette_blast"; + layer = 3 + }, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/turf/open/floor/plating, +/area/shuttle/sbc_corvette) +"P" = ( +/obj/machinery/door/airlock/hatch{ + name = "Syndicate Corvette Cockpit"; + req_access_txt = "150" + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_corvette) +"R" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/structure/chair/comfy/shuttle{ + name = "tactical chair" + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_corvette) +"T" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_corvette) +"U" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_corvette) +"V" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/rack, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/flashlight/seclite{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/flashlight/seclite, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_corvette) +"W" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4; + name = "tactical chair" + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_corvette) +"X" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/structure/chair/comfy/shuttle{ + dir = 1; + name = "tactical chair" + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_corvette) +"Y" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical, +/obj/item/multitool, +/obj/item/clothing/head/welding, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_corvette) +"Z" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_corvette) + +(1,1,1) = {" +a +C +C +C +C +C +a +"} +(2,1,1) = {" +H +t +t +t +t +t +m +"} +(3,1,1) = {" +M +M +Y +V +x +M +M +"} +(4,1,1) = {" +M +k +J +N +s +X +M +"} +(5,1,1) = {" +M +G +z +c +F +w +M +"} +(6,1,1) = {" +M +v +b +c +v +b +M +"} +(7,1,1) = {" +H +M +M +K +M +M +m +"} +(8,1,1) = {" +E +s +T +Z +U +J +j +"} +(9,1,1) = {" +M +n +A +l +l +h +M +"} +(10,1,1) = {" +M +M +M +P +M +M +M +"} +(11,1,1) = {" +M +r +o +c +R +B +M +"} +(12,1,1) = {" +O +I +c +W +e +f +O +"} +(13,1,1) = {" +O +O +L +D +d +O +O +"} +(14,1,1) = {" +a +O +O +O +O +O +a +"} diff --git a/_maps/shuttles/starfury_fighter1.dmm b/_maps/shuttles/starfury_fighter1.dmm new file mode 100644 index 00000000000..a634851211e --- /dev/null +++ b/_maps/shuttles/starfury_fighter1.dmm @@ -0,0 +1,151 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"f" = ( +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/sbc_fighter1) +"h" = ( +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_fighter1) +"i" = ( +/obj/machinery/porta_turret/syndicate/energy/heavy{ + dir = 1 + }, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/sbc_fighter1) +"l" = ( +/obj/structure/rack, +/obj/item/clothing/mask/gas/syndicate, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_fighter1) +"q" = ( +/obj/structure/shuttle/engine/propulsion/burst, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/sbc_fighter1) +"r" = ( +/obj/machinery/computer/security{ + dir = 8; + network = list("SBC_Fighter1") + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_fighter1) +"v" = ( +/obj/machinery/porta_turret/syndicate/energy{ + dir = 9 + }, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/sbc_fighter1) +"x" = ( +/obj/machinery/porta_turret/syndicate/energy{ + dir = 5 + }, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/sbc_fighter1) +"C" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical, +/obj/item/multitool, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_fighter1) +"H" = ( +/obj/machinery/button/door{ + id = "SBC_fighter1_bolt"; + name = "Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + specialfunctions = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_fighter1) +"N" = ( +/obj/machinery/turretid{ + ailock = 1; + desc = "A specially designed set of turret controls. Looks to be covered in protective casing to prevent AI interfacing."; + icon_state = "control_kill"; + lethal = 1; + name = "Ship Turret Control"; + pixel_x = -32; + pixel_y = 26; + req_access = list(150) + }, +/obj/structure/chair/comfy/shuttle{ + dir = 1; + name = "tactical chair" + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_fighter1) +"Q" = ( +/obj/machinery/computer/shuttle/starfury/fighter/fighter_one, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_fighter1) +"V" = ( +/obj/machinery/door/airlock/external{ + id_tag = "SBC_fighter1_bolt"; + name = "Syndicate Fighter Airlock"; + req_access_txt = "150" + }, +/obj/docking_port/mobile/syndicate_fighter/fighter_one, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/shuttle/sbc_fighter1) +"W" = ( +/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/fighter/fighter_one{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_fighter1) + +(1,1,1) = {" +a +a +v +f +f +q +a +"} +(2,1,1) = {" +a +f +f +W +C +f +q +"} +(3,1,1) = {" +i +f +Q +N +h +H +V +"} +(4,1,1) = {" +a +f +f +r +l +f +q +"} +(5,1,1) = {" +a +a +x +f +f +q +a +"} diff --git a/_maps/shuttles/starfury_fighter2.dmm b/_maps/shuttles/starfury_fighter2.dmm new file mode 100644 index 00000000000..42a6ef0e285 --- /dev/null +++ b/_maps/shuttles/starfury_fighter2.dmm @@ -0,0 +1,150 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"d" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical, +/obj/item/multitool, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_fighter2) +"j" = ( +/obj/machinery/button/door{ + id = "SBC_fighter2_bolt"; + name = "Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + specialfunctions = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_fighter2) +"k" = ( +/obj/machinery/porta_turret/syndicate/energy{ + dir = 5 + }, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/sbc_fighter2) +"l" = ( +/obj/machinery/porta_turret/syndicate/energy{ + dir = 9 + }, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/sbc_fighter2) +"o" = ( +/obj/machinery/computer/shuttle/starfury/fighter/fighter_two, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_fighter2) +"q" = ( +/obj/structure/shuttle/engine/propulsion/burst, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/sbc_fighter2) +"r" = ( +/obj/machinery/turretid{ + ailock = 1; + desc = "A specially designed set of turret controls. Looks to be covered in protective casing to prevent AI interfacing."; + icon_state = "control_kill"; + lethal = 1; + name = "Ship Turret Control"; + pixel_x = -32; + pixel_y = 26; + req_access = list(150) + }, +/obj/structure/chair/comfy/shuttle{ + dir = 1; + name = "tactical chair" + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_fighter2) +"t" = ( +/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/fighter/fighter_two{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_fighter2) +"u" = ( +/obj/machinery/door/airlock/external{ + id_tag = "SBC_fighter2_bolt"; + name = "Syndicate Fighter Airlock"; + req_access_txt = "150" + }, +/obj/docking_port/mobile/syndicate_fighter/fighter_two, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/shuttle/sbc_fighter2) +"v" = ( +/obj/machinery/computer/security{ + dir = 8; + network = list("SBC_Fighter2") + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_fighter2) +"x" = ( +/obj/machinery/porta_turret/syndicate/energy/heavy{ + dir = 1 + }, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/sbc_fighter2) +"S" = ( +/obj/structure/rack, +/obj/item/clothing/mask/gas/syndicate, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_fighter2) +"V" = ( +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/sbc_fighter2) +"W" = ( +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_fighter2) + +(1,1,1) = {" +a +a +l +V +V +q +a +"} +(2,1,1) = {" +a +V +V +t +d +V +q +"} +(3,1,1) = {" +x +V +o +r +W +j +u +"} +(4,1,1) = {" +a +V +V +v +S +V +q +"} +(5,1,1) = {" +a +a +k +V +V +q +a +"} diff --git a/_maps/shuttles/starfury_fighter3.dmm b/_maps/shuttles/starfury_fighter3.dmm new file mode 100644 index 00000000000..f71f13f3cc7 --- /dev/null +++ b/_maps/shuttles/starfury_fighter3.dmm @@ -0,0 +1,167 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/template_noop, +/area/template_noop) +"e" = ( +/obj/machinery/door/airlock/external{ + id_tag = "SBC_fighter3_bolt"; + name = "Syndicate Fighter Airlock"; + req_access_txt = "150" + }, +/obj/docking_port/mobile/syndicate_fighter/fighter_three, +/turf/open/floor/plating, +/area/shuttle/sbc_fighter3) +"f" = ( +/obj/structure/rack, +/obj/item/clothing/mask/gas/syndicate, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_fighter3) +"g" = ( +/obj/structure/shuttle/engine/propulsion/burst, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/sbc_fighter3) +"n" = ( +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/sbc_fighter3) +"s" = ( +/obj/machinery/button/door{ + id = "SBC_fighter3_bolt"; + name = "Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + specialfunctions = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_fighter3) +"y" = ( +/obj/machinery/computer/security{ + dir = 8; + network = list("SBC_Fighter2") + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_fighter3) +"E" = ( +/obj/machinery/turretid{ + ailock = 1; + desc = "A specially designed set of turret controls. Looks to be covered in protective casing to prevent AI interfacing."; + icon_state = "control_kill"; + lethal = 1; + name = "Ship Turret Control"; + pixel_x = -32; + pixel_y = 26; + req_access = list(150) + }, +/obj/structure/chair/comfy/shuttle{ + dir = 1; + name = "tactical chair" + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_fighter3) +"F" = ( +/obj/machinery/porta_turret/syndicate/energy{ + dir = 9 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Left Side"; + network = list("SBC_Fighter3"); + pixel_x = -32; + pixel_y = -11 + }, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/sbc_fighter3) +"H" = ( +/obj/machinery/porta_turret/syndicate/energy{ + dir = 5 + }, +/obj/machinery/camera/directional/west{ + c_tag = "Right Side"; + network = list("SBC_Fighter3"); + pixel_x = 32; + pixel_y = -11 + }, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/sbc_fighter3) +"I" = ( +/obj/machinery/porta_turret/syndicate/energy/heavy{ + dir = 1 + }, +/obj/machinery/camera/directional/south{ + c_tag = "Front Side"; + network = list("SBC_Fighter3"); + pixel_x = 11; + pixel_y = 32 + }, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/sbc_fighter3) +"J" = ( +/obj/machinery/computer/shuttle/starfury/fighter/fighter_three, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_fighter3) +"Q" = ( +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_fighter3) +"T" = ( +/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/fighter/fighter_three{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_fighter3) +"Z" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical, +/obj/item/multitool, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_fighter3) + +(1,1,1) = {" +a +a +F +n +n +g +a +"} +(2,1,1) = {" +a +n +n +T +Z +n +g +"} +(3,1,1) = {" +I +n +J +E +Q +s +e +"} +(4,1,1) = {" +a +n +n +y +f +n +g +"} +(5,1,1) = {" +a +a +H +n +n +g +a +"} diff --git a/_maps/templates/battlecruiser_starfury.dmm b/_maps/templates/battlecruiser_starfury.dmm new file mode 100644 index 00000000000..ccc2ee856cc --- /dev/null +++ b/_maps/templates/battlecruiser_starfury.dmm @@ -0,0 +1,8533 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/template_noop, +/area/template_noop) +"ab" = ( +/turf/open/floor/plating/airless, +/area/shuttle/sbc_starfury) +"ac" = ( +/turf/closed/wall/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"ad" = ( +/obj/machinery/door/poddoor/preopen{ + id = "syndie_battlecruier_bridge_blast"; + layer = 3 + }, +/obj/structure/cable, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"ae" = ( +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/sbc_starfury) +"af" = ( +/obj/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/shuttle/sbc_starfury) +"ag" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/computer/med_data/syndie, +/turf/open/floor/iron/dark{ + initial_gas_mix = "n2=100;TEMP=80"; + temperature = 80 + }, +/area/shuttle/sbc_starfury) +"ah" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/computer/crew/syndie, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"ai" = ( +/obj/machinery/computer/message_monitor, +/obj/item/paper/monitorkey, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"aj" = ( +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/structure/frame/computer, +/obj/effect/turf_decal/siding/red, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"ak" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/shieldgen{ + active = 1; + anchored = 1; + locked = 1; + req_access = list(150) + }, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"al" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"am" = ( +/obj/structure/table/reinforced, +/obj/item/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"an" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"ao" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"ap" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"aq" = ( +/obj/structure/table/reinforced, +/obj/item/storage/fancy/donut_box, +/obj/item/storage/fancy/cigarettes/cigpack_syndicate{ + pixel_x = 8 + }, +/obj/item/lighter/greyscale, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"ar" = ( +/obj/structure/table/reinforced, +/obj/item/storage/toolbox/emergency, +/obj/item/wrench, +/obj/item/assembly/flash/handheld, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"as" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/shieldgen{ + active = 1; + anchored = 1; + locked = 1; + req_access = list(150) + }, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"at" = ( +/obj/machinery/door/poddoor/preopen{ + id = "syndie_battlecruier_bridge_blast"; + layer = 3 + }, +/obj/structure/cable, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"au" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"av" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1; + name = "tactical chair" + }, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"aw" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/computer/secure_data/syndie{ + dir = 4 + }, +/turf/open/floor/iron/dark{ + initial_gas_mix = "n2=100;TEMP=80"; + temperature = 80 + }, +/area/shuttle/sbc_starfury) +"ax" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"ay" = ( +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"az" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "SBC1" + }, +/turf/open/floor/iron/dark/smooth_large, +/area/shuttle/sbc_starfury) +"aA" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "SBC3" + }, +/turf/open/floor/iron/dark/smooth_large, +/area/shuttle/sbc_starfury) +"aB" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "SBC5" + }, +/turf/open/floor/iron/dark/smooth_large, +/area/shuttle/sbc_starfury) +"aC" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "SBC7" + }, +/turf/open/floor/iron/dark/smooth_large, +/area/shuttle/sbc_starfury) +"aD" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "SBC9" + }, +/turf/open/floor/iron/dark/smooth_large, +/area/shuttle/sbc_starfury) +"aE" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"aF" = ( +/obj/machinery/computer/station_alert{ + dir = 8; + name = "ship alert console" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"aG" = ( +/obj/structure/window/reinforced/plasma/plastitanium, +/obj/structure/cable, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"aH" = ( +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"aI" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/computer/camera_advanced/syndie{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"aJ" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"aK" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "SBC2" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/smooth_large, +/area/shuttle/sbc_starfury) +"aL" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "SBC4" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/smooth_large, +/area/shuttle/sbc_starfury) +"aM" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "SBC6" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/smooth_large, +/area/shuttle/sbc_starfury) +"aN" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "SBC8" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/smooth_large, +/area/shuttle/sbc_starfury) +"aO" = ( +/obj/effect/turf_decal/plaque{ + icon_state = "SBC10" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark/smooth_large, +/area/shuttle/sbc_starfury) +"aP" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"aQ" = ( +/obj/machinery/computer/atmos_alert{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"aR" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/power/smes/engineering{ + charge = 1e+006; + input_level = 15000; + inputting = 0 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"aS" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"aT" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/computer/monitor{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"aU" = ( +/obj/machinery/computer/security{ + dir = 4; + network = list("SBC") + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"aV" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"aW" = ( +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"aZ" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"bc" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"bd" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"be" = ( +/obj/machinery/computer/monitor{ + dir = 8; + name = "bridge power monitoring console" + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"bf" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/computer/monitor{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"bg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/power/smes/engineering{ + charge = 1e+006; + input_level = 15000; + inputting = 0 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"bh" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"bi" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/space_heater, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"bj" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/obj/machinery/airalarm/directional/west{ + req_access = list(150) + }, +/obj/machinery/light/directional/west, +/obj/machinery/shieldgen{ + active = 1; + anchored = 1; + locked = 1; + req_access = list(150) + }, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"bm" = ( +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "syndie_battlecruiser_bridge_bolt"; + name = "Bridge Lockdown"; + normaldoorcontrol = 1; + pixel_x = -6; + req_access_txt = "151"; + specialfunctions = 4 + }, +/obj/machinery/button/door{ + id = "syndie_battlecruier_bridge_blast"; + name = "Bridge Blast Doors"; + pixel_x = 6; + req_access_txt = "151" + }, +/obj/structure/window/reinforced/survival_pod{ + dir = 8 + }, +/obj/structure/window/reinforced/survival_pod{ + dir = 1 + }, +/obj/effect/turf_decal/siding/blue{ + dir = 9 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"bo" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/window/reinforced/survival_pod{ + dir = 1 + }, +/obj/effect/turf_decal/siding/blue{ + dir = 1 + }, +/obj/machinery/computer/communications/syndicate, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"bp" = ( +/obj/structure/window/reinforced/survival_pod{ + dir = 1 + }, +/obj/effect/turf_decal/siding/blue{ + dir = 1 + }, +/obj/machinery/computer/camera_advanced/syndie, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"bq" = ( +/obj/structure/table/reinforced, +/obj/item/aicard, +/obj/structure/window/reinforced/survival_pod{ + dir = 4 + }, +/obj/structure/window/reinforced/survival_pod{ + dir = 1 + }, +/obj/effect/turf_decal/siding/blue{ + dir = 5 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"br" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/shuttle/sbc_starfury) +"bt" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 8 + }, +/obj/machinery/light/directional/east, +/obj/machinery/shieldgen{ + active = 1; + anchored = 1; + locked = 1; + req_access = list(150) + }, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"bu" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/space_heater, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"bv" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"bw" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"bx" = ( +/obj/machinery/door/poddoor/preopen{ + id = "syndie_battlecruier_bridge_blast"; + layer = 3 + }, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/structure/cable, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"by" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/sbc_starfury) +"bB" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"bC" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger{ + pixel_y = 4 + }, +/obj/structure/window/reinforced/survival_pod{ + dir = 8 + }, +/obj/effect/turf_decal/siding/blue{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"bE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/chair/comfy/shuttle{ + dir = 1; + name = "tactical chair" + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"bF" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"bH" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"bI" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"bK" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"bL" = ( +/obj/machinery/porta_turret/syndicate/energy{ + dir = 6 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"bM" = ( +/obj/machinery/light/directional/north, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"bO" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/centcom{ + id_tag = "syndie_battlecruiser_bridge_bolt"; + name = "Bridge"; + req_access_txt = "150" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"bR" = ( +/obj/structure/closet/emcloset{ + anchored = 1 + }, +/obj/item/clothing/mask/gas, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"bT" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"bU" = ( +/obj/machinery/disposal/bin, +/obj/structure/sign/warning/deathsposal{ + pixel_y = -32 + }, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/firealarm/directional/west, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"bV" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"bX" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/centcom{ + id_tag = "syndie_battlecruiser_bridge_bolt"; + name = "Bridge"; + req_access_txt = "150" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"bY" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"bZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"ca" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"cb" = ( +/obj/machinery/porta_turret/syndicate/energy{ + dir = 10 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"cc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/computer/monitor{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"cd" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/power/smes/engineering{ + charge = 1e+006; + input_level = 15000; + inputting = 0 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"ce" = ( +/obj/machinery/door/airlock/centcom{ + name = "Weapon Bay 2"; + req_access_txt = "150" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"cf" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"cg" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/centcom{ + id_tag = "syndie_battlecruiser_bridge_bolt"; + name = "Bridge"; + req_access_txt = "150" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"ci" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"ck" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"cm" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"cn" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"co" = ( +/obj/machinery/door/airlock/centcom{ + name = "Weapon Bay 3"; + req_access_txt = "150" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"cp" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/power/smes/engineering{ + charge = 1e+006; + input_level = 15000; + inputting = 0 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"cq" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/computer/monitor{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"cr" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"cs" = ( +/obj/machinery/door/airlock/centcom{ + name = "Weapon Bay 1"; + req_access_txt = "150" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"ct" = ( +/obj/machinery/door/airlock/centcom{ + id_tag = "syndie_battlecruiser_bridge_bolt"; + name = "Weapon Bays Access"; + req_access_txt = "150" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"cu" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"cy" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/effect/turf_decal/bot_white{ + color = "#00A2FF" + }, +/obj/structure/sign/warning/coldtemp{ + pixel_y = 32 + }, +/turf/open/floor/iron/white/textured_large, +/area/shuttle/sbc_starfury) +"cz" = ( +/obj/machinery/atmospherics/components/unary/cryo_cell, +/obj/effect/turf_decal/bot_white{ + color = "#00A2FF" + }, +/turf/open/floor/iron/white/textured_large, +/area/shuttle/sbc_starfury) +"cB" = ( +/obj/machinery/door/airlock/centcom{ + id_tag = "syndie_battlecruiser_bridge_bolt"; + name = "Bridge"; + req_access_txt = "150" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"cC" = ( +/obj/structure/sign/departments/medbay/alt, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/sbc_starfury) +"cF" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"cG" = ( +/obj/machinery/door/airlock/centcom{ + name = "Weapon Bays Access"; + req_access_txt = "150" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"cH" = ( +/obj/machinery/door/airlock/centcom{ + name = "Weapon Bay 4"; + req_access_txt = "150" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"cI" = ( +/obj/structure/rack, +/obj/effect/decal/cleanable/oil, +/obj/item/clothing/glasses/sunglasses{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/glasses/sunglasses, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"cJ" = ( +/obj/machinery/vending/cigarette{ + extended_inventory = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/airalarm/directional/west{ + req_access = list(150) + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"cM" = ( +/obj/structure/table, +/obj/item/surgical_drapes, +/obj/item/razor, +/obj/machinery/button/door/directional/west{ + id = "starfury_surgery_shutters"; + name = "privacy shutters"; + req_access_txt = "150" + }, +/obj/effect/turf_decal/siding/blue, +/turf/open/floor/iron/white, +/area/shuttle/sbc_starfury) +"cO" = ( +/obj/structure/closet/secure_closet/medical2, +/obj/item/assembly/flash/handheld, +/obj/effect/turf_decal/siding/blue, +/turf/open/floor/iron/white, +/area/shuttle/sbc_starfury) +"cP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron/white/side{ + dir = 9 + }, +/area/shuttle/sbc_starfury) +"cQ" = ( +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"cT" = ( +/obj/structure/sink{ + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/shuttle/sbc_starfury) +"cU" = ( +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/shuttle/sbc_starfury) +"cV" = ( +/obj/structure/closet/l3closet, +/obj/structure/window/reinforced/survival_pod{ + dir = 4 + }, +/obj/effect/turf_decal/siding/blue{ + dir = 4 + }, +/turf/open/floor/iron/white/side{ + dir = 5 + }, +/area/shuttle/sbc_starfury) +"cW" = ( +/obj/structure/table, +/obj/item/storage/backpack/duffelbag/syndie/surgery, +/obj/item/defibrillator/compact/combat/loaded, +/obj/item/gun/syringe/rapidsyringe, +/obj/machinery/airalarm/directional/east{ + req_access = list(150) + }, +/turf/open/floor/iron/white/smooth_large, +/area/shuttle/sbc_starfury) +"cZ" = ( +/obj/machinery/vending/coffee{ + extended_inventory = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/airalarm/directional/east{ + req_access = list(150) + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"da" = ( +/obj/structure/rack, +/obj/item/toy/plush/nukeplushie, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"db" = ( +/obj/machinery/light/directional/west, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"dd" = ( +/obj/structure/table, +/obj/item/retractor, +/obj/item/surgicaldrill, +/obj/item/hemostat, +/obj/effect/turf_decal/siding/blue{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/shuttle/sbc_starfury) +"de" = ( +/turf/open/floor/iron/white/side{ + dir = 9 + }, +/area/shuttle/sbc_starfury) +"df" = ( +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"dg" = ( +/turf/open/floor/iron/white/side{ + dir = 5 + }, +/area/shuttle/sbc_starfury) +"dh" = ( +/obj/machinery/shower{ + dir = 4; + name = "emergency shower" + }, +/obj/machinery/firealarm/directional/west, +/obj/effect/turf_decal/box/white/corners{ + color = "#00A2FF" + }, +/obj/effect/turf_decal/box/white/corners{ + color = "#00A2FF"; + dir = 4 + }, +/turf/open/floor/iron/white/side{ + dir = 8 + }, +/area/shuttle/sbc_starfury) +"dk" = ( +/obj/machinery/door/window/brigdoor/northleft{ + name = "command desk"; + req_access_txt = "151" + }, +/obj/effect/turf_decal/siding/blue{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"dl" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/shuttle/sbc_starfury) +"dm" = ( +/obj/structure/table, +/obj/item/storage/firstaid/brute{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/fire, +/obj/item/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/iron/white/smooth_large, +/area/shuttle/sbc_starfury) +"do" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/light/directional/east, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"dp" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/shieldgen{ + active = 1; + anchored = 1; + locked = 1; + req_access = list(150) + }, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"dq" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"dr" = ( +/obj/structure/table, +/obj/item/scalpel{ + pixel_y = 12 + }, +/obj/item/circular_saw, +/obj/item/cautery{ + pixel_x = 4 + }, +/obj/structure/cable, +/obj/effect/turf_decal/siding/blue{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/shuttle/sbc_starfury) +"ds" = ( +/obj/structure/table/optable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"du" = ( +/obj/machinery/door/airlock/medical{ + name = "Operating Theatre"; + req_access_txt = "150" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"dx" = ( +/obj/structure/cable, +/obj/machinery/airalarm/directional/south{ + req_access = list(150) + }, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"dy" = ( +/obj/structure/table, +/obj/item/storage/firstaid/o2{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/toxin, +/obj/item/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/structure/cable, +/turf/open/floor/iron/white/smooth_large, +/area/shuttle/sbc_starfury) +"dz" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/shieldgen{ + active = 1; + anchored = 1; + locked = 1; + req_access = list(150) + }, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"dA" = ( +/obj/structure/table, +/obj/item/bodypart/l_arm/robot, +/obj/item/bodypart/l_arm/robot, +/obj/item/bodypart/r_arm/robot{ + pixel_x = 3 + }, +/obj/item/bodypart/r_arm/robot{ + pixel_x = 3 + }, +/obj/item/book/manual/wiki/surgery, +/obj/effect/turf_decal/siding/blue{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/shuttle/sbc_starfury) +"dB" = ( +/obj/machinery/iv_drip, +/turf/open/floor/iron/white/side{ + dir = 10 + }, +/area/shuttle/sbc_starfury) +"dC" = ( +/obj/machinery/computer/operating{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"dD" = ( +/obj/structure/closet/crate/freezer/blood, +/obj/item/reagent_containers/blood, +/obj/item/reagent_containers/blood, +/turf/open/floor/iron/white/side{ + dir = 6 + }, +/area/shuttle/sbc_starfury) +"dF" = ( +/obj/machinery/vending/medical/syndicate_access/cybersun, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/white/side{ + dir = 10 + }, +/area/shuttle/sbc_starfury) +"dI" = ( +/obj/structure/cable, +/mob/living/simple_animal/bot/medbot{ + desc = "A medical bot of syndicate origins. Probably plots about how to stab you full of toxins in its free time."; + faction = list("neutral","silicon","turret","Syndicate"); + name = "Syndicate Medibot"; + skin = "bezerk" + }, +/turf/open/floor/iron/white/side, +/area/shuttle/sbc_starfury) +"dJ" = ( +/obj/machinery/iv_drip, +/obj/structure/window/reinforced/survival_pod{ + dir = 8 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/white/corner{ + dir = 8 + }, +/area/shuttle/sbc_starfury) +"dK" = ( +/obj/machinery/sleeper/syndie{ + dir = 1; + icon_state = "sleeper_s-open" + }, +/obj/effect/turf_decal/bot_red/right, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"dL" = ( +/obj/machinery/iv_drip, +/obj/structure/window/reinforced/survival_pod{ + dir = 4 + }, +/obj/structure/cable, +/obj/effect/turf_decal/siding/blue{ + dir = 4 + }, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/shuttle/sbc_starfury) +"dM" = ( +/obj/structure/table, +/obj/item/storage/box/syringes, +/obj/item/storage/belt/medical{ + pixel_y = 2 + }, +/obj/item/storage/belt/medical{ + pixel_y = 2 + }, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health, +/obj/item/reagent_containers/spray/cleaner, +/turf/open/floor/iron/white/smooth_large, +/area/shuttle/sbc_starfury) +"dN" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"dO" = ( +/obj/structure/sign/warning/securearea{ + desc = "A warning sign which reads 'KEEP CLEAR: SHUTTLE BAY'"; + icon_state = "space"; + layer = 4; + name = "KEEP CLEAR: SHUTTLE BAY"; + pixel_x = 32 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"dS" = ( +/obj/structure/sign/warning/securearea{ + desc = "A warning sign which reads 'KEEP CLEAR: SHUTTLE BAY'"; + icon_state = "space"; + layer = 4; + name = "KEEP CLEAR: SHUTTLE BAY"; + pixel_x = -32 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"dT" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"dU" = ( +/obj/machinery/door/airlock/centcom{ + id_tag = "syndie_battlecruiser_bridge_bolt"; + name = "Shuttle Bay"; + req_access_txt = "150" + }, +/obj/machinery/door/firedoor/heavy, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/pod/light, +/area/shuttle/sbc_starfury) +"dV" = ( +/obj/machinery/door/airlock/centcom{ + id_tag = "syndie_battlecruiser_bridge_bolt"; + name = "Shuttle Bay"; + req_access_txt = "150" + }, +/obj/machinery/door/firedoor/heavy, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/pod/light, +/area/shuttle/sbc_starfury) +"dW" = ( +/obj/structure/closet/emcloset{ + anchored = 1 + }, +/obj/item/clothing/mask/gas, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"dX" = ( +/obj/structure/table, +/obj/effect/turf_decal/stripes/line, +/obj/item/stack/sheet/plasteel{ + amount = 10; + pixel_x = -2 + }, +/obj/item/storage/toolbox/syndicate, +/obj/item/radio/headset/syndicate/alt, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"dY" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high/plus, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"dZ" = ( +/obj/structure/closet/firecloset{ + anchored = 1 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"ea" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"ec" = ( +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"ee" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"ef" = ( +/obj/structure/table, +/obj/item/storage/toolbox/mechanical, +/obj/item/multitool, +/obj/item/clothing/head/welding, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"eg" = ( +/obj/structure/table, +/obj/item/clothing/ears/earmuffs, +/obj/item/clothing/ears/earmuffs{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/clothing/glasses/meson, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"eh" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/centcom{ + id_tag = "syndie_battlecruiser_bridge_bolt"; + name = "Shuttle Bay"; + req_access_txt = "150" + }, +/obj/machinery/door/firedoor/heavy, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/pod/light, +/area/shuttle/sbc_starfury) +"ei" = ( +/obj/structure/sign/warning/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRSHIELD'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRSHIELD"; + pixel_x = -32 + }, +/obj/machinery/porta_turret/syndicate/energy{ + dir = 6 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"ep" = ( +/obj/machinery/light/directional/north, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"er" = ( +/obj/machinery/airalarm/directional/north{ + req_access = list(150) + }, +/obj/machinery/light/directional/north, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"et" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"eu" = ( +/obj/structure/sign/warning/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRSHIELD'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRSHIELD"; + pixel_x = 32 + }, +/obj/machinery/porta_turret/syndicate/energy{ + dir = 10 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"ev" = ( +/obj/effect/turf_decal/bot, +/obj/structure/fans/tiny{ + desc = "An tenuously thin energy shield only capable of holding in air, but not solid objects or people."; + icon = 'icons/effects/effects.dmi'; + icon_state = "shield-old"; + light_color = "#6496FA"; + light_range = 4; + name = "Shuttle Bay Shield" + }, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"ex" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"ey" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"eA" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"eB" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"eC" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"eD" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"eE" = ( +/obj/structure/fans/tiny{ + desc = "An tenuously thin energy shield only capable of holding in air, but not solid objects or people."; + icon = 'icons/effects/effects.dmi'; + icon_state = "shield-old"; + light_color = "#6496FA"; + light_range = 4; + name = "Shuttle Bay Shield" + }, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"eF" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"eG" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"eH" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/item/screwdriver, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"eI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/decal/cleanable/oil, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"eJ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/item/weldingtool/largetank, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"eK" = ( +/obj/docking_port/stationary/starfury_fighter/fighter_three, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"eL" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/decal/cleanable/oil, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"eM" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/item/wrench, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"eN" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"eO" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"eR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"eS" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"eT" = ( +/obj/structure/sign/warning/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRSHIELD'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRSHIELD"; + pixel_x = -32 + }, +/obj/machinery/porta_turret/syndicate/energy{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"eW" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"eX" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/airalarm/directional/south{ + req_access = list(150) + }, +/obj/machinery/light/directional/south, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"eY" = ( +/obj/effect/decal/cleanable/oil, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"eZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/light/directional/south, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"fa" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"fb" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"fc" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"fd" = ( +/obj/structure/sign/warning/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRSHIELD'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRSHIELD"; + pixel_x = 32 + }, +/obj/machinery/porta_turret/syndicate/energy{ + dir = 9 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"fe" = ( +/obj/structure/closet/emcloset{ + anchored = 1 + }, +/obj/item/clothing/mask/gas, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"ff" = ( +/obj/structure/rack, +/obj/item/clothing/ears/earmuffs, +/obj/item/clothing/ears/earmuffs{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/item/clothing/glasses/meson/engine, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"fh" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"fi" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"fj" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"fk" = ( +/obj/structure/tank_dispenser/oxygen, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"fl" = ( +/obj/structure/table, +/obj/item/stack/sheet/iron{ + pixel_x = 1 + }, +/obj/item/stack/sheet/glass{ + amount = 50; + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"fm" = ( +/obj/structure/table, +/obj/item/stack/sheet/mineral/plastitanium{ + amount = 30; + pixel_x = 2; + pixel_y = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/item/stack/sheet/plastitaniumglass{ + amount = 30 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"fn" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"fo" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/closet/firecloset{ + anchored = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"fp" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"fq" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"fr" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"fs" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"ft" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"fu" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"fw" = ( +/obj/structure/rack, +/obj/item/book/manual/wiki/engineering_construction{ + name = "Ship Repairs and Construction" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/item/multitool, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"fy" = ( +/obj/machinery/vending/boozeomat{ + pixel_x = 32 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"fz" = ( +/obj/structure/toilet{ + pixel_y = 14 + }, +/obj/structure/mirror/directional/east, +/obj/structure/sink{ + dir = 8; + pixel_x = 12 + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/showroomfloor, +/area/shuttle/sbc_starfury) +"fA" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/crate/radiation{ + anchored = 1; + name = "fuel crate" + }, +/obj/item/stack/sheet/mineral/uranium{ + amount = 50; + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/stack/sheet/mineral/uranium{ + amount = 30; + pixel_y = 3 + }, +/obj/item/stack/sheet/mineral/plasma/thirty, +/turf/open/floor/iron/smooth, +/area/shuttle/sbc_starfury) +"fB" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/pump, +/obj/machinery/light/small/red/directional/north, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"fD" = ( +/obj/machinery/door/airlock/centcom{ + name = "Shuttle Bay"; + req_access_txt = "150" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor/heavy, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/pod/light, +/area/shuttle/sbc_starfury) +"fF" = ( +/obj/machinery/door/airlock/centcom{ + name = "Shuttle Bay"; + req_access_txt = "150" + }, +/obj/machinery/door/firedoor/heavy, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/pod/light, +/area/shuttle/sbc_starfury) +"fG" = ( +/obj/machinery/door/airlock/centcom{ + name = "Shuttle Bay"; + req_access_txt = "150" + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor/heavy, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/pod/light, +/area/shuttle/sbc_starfury) +"fK" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restrooms" + }, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/iron/showroomfloor, +/area/shuttle/sbc_starfury) +"fV" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/airalarm/directional/north{ + req_access = list(150) + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"gd" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"gp" = ( +/obj/structure/sign/warning/securearea{ + desc = "A warning sign which reads 'KEEP CLEAR: SHUTTLE BAY'"; + icon_state = "space"; + layer = 4; + name = "KEEP CLEAR: SHUTTLE BAY"; + pixel_x = 32 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"gx" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/mob_spawn/ghost_role/human/syndicate/battlecruiser{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"gA" = ( +/obj/machinery/suit_storage_unit/syndicate, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"gB" = ( +/obj/structure/table, +/obj/item/storage/toolbox/syndicate, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/item/storage/belt/military, +/obj/item/storage/belt/military, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"gC" = ( +/obj/structure/sign/warning/securearea{ + desc = "A warning sign which reads 'KEEP CLEAR: SHUTTLE BAY'"; + icon_state = "space"; + layer = 4; + name = "KEEP CLEAR: SHUTTLE BAY"; + pixel_x = -32 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"gD" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"gE" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/machinery/light/small/red/directional/west, +/turf/open/floor/circuit/red, +/area/shuttle/sbc_starfury) +"gF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/vehicle/sealed/mecha/combat/marauder/mauler/loaded, +/turf/open/floor/pod/light, +/area/shuttle/sbc_starfury) +"gH" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"gL" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"gN" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high/plus, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"gO" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"gP" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"gQ" = ( +/turf/open/floor/circuit/red, +/area/shuttle/sbc_starfury) +"gR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/pod/light, +/area/shuttle/sbc_starfury) +"gS" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"gT" = ( +/obj/machinery/door/airlock{ + name = "Crew Cabin 1"; + req_access_txt = "150" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"gV" = ( +/obj/machinery/door/airlock{ + name = "Crew Cabin 3"; + req_access_txt = "150" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"gW" = ( +/obj/machinery/suit_storage_unit/syndicate, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"gY" = ( +/obj/structure/table, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/item/clothing/under/syndicate/combat{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/clothing/under/syndicate/combat{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/item/clothing/under/syndicate/combat{ + pixel_x = 5; + pixel_y = 2 + }, +/obj/item/clothing/gloves/combat{ + pixel_y = -2 + }, +/obj/item/clothing/gloves/combat, +/obj/item/radio/headset/syndicate/alt{ + pixel_x = -3; + pixel_y = 2 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"gZ" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"ha" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark{ + initial_gas_mix = "n2=100;TEMP=80"; + temperature = 80 + }, +/area/shuttle/sbc_starfury) +"hb" = ( +/obj/structure/closet/secure_closet{ + anchored = 1; + icon_state = "tac"; + name = "Explosives Locker"; + req_access_txt = "151" + }, +/obj/item/storage/belt/grenade/full, +/obj/item/grenade/syndieminibomb{ + pixel_x = -1; + pixel_y = 3 + }, +/obj/item/grenade/syndieminibomb{ + pixel_x = 2 + }, +/obj/item/grenade/syndieminibomb{ + pixel_x = 5; + pixel_y = -3 + }, +/obj/item/syndicatedetonator{ + desc = "This gaudy button can be used to instantly detonate syndicate bombs that have been activated on the station. It is also fun to press." + }, +/obj/item/storage/belt/military, +/obj/effect/turf_decal/siding/red, +/turf/open/floor/pod/light, +/area/shuttle/sbc_starfury) +"hc" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/shutters{ + id = "syndie_battlecruiser_mech" + }, +/turf/open/floor/pod/light, +/area/shuttle/sbc_starfury) +"hd" = ( +/obj/structure/sign/warning/deathsposal{ + pixel_y = 32 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/cable, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"hf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"hg" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Bar" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"hh" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"hi" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"hj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"hk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/firealarm/directional/north, +/obj/structure/cable, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"hl" = ( +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"hm" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"hn" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/airalarm/directional/north{ + req_access = list(150) + }, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"ho" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"hp" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"hq" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"hr" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/centcom{ + name = "E.V.A. Equipment"; + req_access_txt = "150" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"hs" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red/half{ + dir = 8 + }, +/turf/open/floor/iron/dark/smooth_half{ + dir = 1 + }, +/area/shuttle/sbc_starfury) +"ht" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"hu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/airalarm/directional/north{ + req_access = list(150) + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"hv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"hw" = ( +/obj/structure/disposalpipe/junction, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"hx" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/mask/surgical, +/obj/item/clothing/suit/apron/surgical, +/obj/machinery/airalarm/directional/north{ + req_access_txt = "150" + }, +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/siding/blue, +/turf/open/floor/iron/white, +/area/shuttle/sbc_starfury) +"hz" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/button/door/directional/north{ + id = "syndie_battlecruiser_mech"; + name = "Mech Storage Shutters"; + req_access_txt = "151" + }, +/obj/machinery/light/directional/north, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"hB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"hC" = ( +/obj/structure/closet/secure_closet{ + anchored = 1; + icon_state = "tac"; + name = "Ammunitions Locker"; + req_access_txt = "150" + }, +/obj/item/ammo_box/a40mm{ + icon_state = "40mm-4" + }, +/obj/item/ammo_box/magazine/m556{ + icon_state = "5.56m-30"; + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/ammo_box/magazine/m556{ + icon_state = "5.56m-30"; + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/ammo_box/magazine/m556{ + icon_state = "5.56m-30" + }, +/obj/item/ammo_box/magazine/m556{ + icon_state = "5.56m-30" + }, +/obj/item/ammo_box/magazine/m556{ + icon_state = "5.56m-30"; + pixel_x = -2; + pixel_y = -4 + }, +/obj/item/ammo_box/magazine/m556{ + icon_state = "5.56m-30"; + pixel_x = -2; + pixel_y = -4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/pod/light, +/area/shuttle/sbc_starfury) +"hD" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/chair/stool/bar/directional/south, +/obj/effect/turf_decal/siding/thinplating/dark, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"hF" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/glass{ + name = "Bar" + }, +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"hG" = ( +/obj/effect/turf_decal/tile/red, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"hH" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"hI" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"hJ" = ( +/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/light/directional/south, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"hL" = ( +/obj/structure/cable/layer1, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"hN" = ( +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"hO" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"hP" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/red/line{ + dir = 4 + }, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"hQ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/centcom{ + name = "E.V.A. Equipment"; + req_access_txt = "150" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"hS" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"hU" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"hV" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"hW" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"hX" = ( +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/highsecurity{ + id_tag = "syndie_battlecruiser_armory"; + name = "Starfury Armory"; + req_access_txt = "150" + }, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"hZ" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/gun/ballistic/automatic/m90{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/gun/ballistic/automatic/m90, +/obj/item/gun/ballistic/automatic/m90{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/pod/light, +/area/shuttle/sbc_starfury) +"ia" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/gun/ballistic/shotgun/bulldog{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/gun/ballistic/shotgun/bulldog, +/obj/item/gun/ballistic/shotgun/bulldog{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/pod/light, +/area/shuttle/sbc_starfury) +"ib" = ( +/obj/structure/closet/secure_closet{ + anchored = 1; + icon_state = "tac"; + name = "Ammunitions Locker"; + req_access_txt = "150" + }, +/obj/item/ammo_box/c10mm{ + pixel_y = 4 + }, +/obj/item/ammo_box/c10mm, +/obj/item/ammo_box/a357{ + icon_state = "357-7"; + pixel_y = 3 + }, +/obj/item/ammo_box/a357{ + icon_state = "357-7"; + pixel_x = 2 + }, +/obj/item/ammo_box/magazine/m10mm{ + icon_state = "9x19p-8"; + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/ammo_box/magazine/m10mm{ + icon_state = "9x19p-8"; + pixel_y = 3 + }, +/obj/item/ammo_box/magazine/m10mm{ + icon_state = "9x19p-8"; + pixel_x = 3 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/pod/light, +/area/shuttle/sbc_starfury) +"ic" = ( +/obj/structure/table, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = -31 + }, +/obj/item/book/manual/wiki/barman_recipes, +/obj/item/reagent_containers/food/drinks/shaker{ + pixel_x = 10 + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"id" = ( +/obj/structure/table, +/obj/item/toy/cards/deck/syndicate{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/reagent_containers/food/drinks/bottle/beer{ + pixel_x = 5; + pixel_y = -2 + }, +/obj/item/reagent_containers/glass/rag, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"ie" = ( +/obj/structure/table, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"if" = ( +/obj/machinery/door/window/northright{ + name = "Bar Access" + }, +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"ig" = ( +/obj/machinery/door/airlock{ + name = "Crew Cabin 2"; + req_access_txt = "150" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"ih" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"ii" = ( +/obj/machinery/door/airlock{ + name = "Captain's Quarters"; + req_access_txt = "151" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"ij" = ( +/obj/machinery/suit_storage_unit/syndicate, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"il" = ( +/obj/structure/table, +/obj/item/reagent_containers/hypospray/medipen/survival{ + pixel_y = 8 + }, +/obj/item/reagent_containers/hypospray/medipen/survival{ + pixel_y = 4 + }, +/obj/item/reagent_containers/hypospray/medipen/survival, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/item/mod/module/visor/medhud, +/obj/item/mod/module/visor/medhud, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"im" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/red, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"in" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/button/door/directional/east{ + id = "syndie_battlecruiser_armory"; + name = "Armory Bolt Control"; + normaldoorcontrol = 1; + req_access_txt = "151"; + specialfunctions = 4 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"io" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/gun/ballistic/revolver{ + pixel_x = 2; + pixel_y = 5 + }, +/obj/item/gun/ballistic/revolver{ + pixel_x = -1; + pixel_y = 2 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/pod/light, +/area/shuttle/sbc_starfury) +"ip" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/machinery/airalarm/directional/east{ + req_access = list(150) + }, +/obj/machinery/light/directional/east, +/obj/item/storage/belt/military, +/obj/item/ammo_box/magazine/sniper_rounds, +/obj/item/gun/ballistic/automatic/sniper_rifle/syndicate, +/turf/open/floor/pod/light, +/area/shuttle/sbc_starfury) +"iq" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"ir" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/mob_spawn/ghost_role/human/syndicate/battlecruiser/assault{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"it" = ( +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/shuttle/sbc_starfury) +"iu" = ( +/obj/structure/closet/secure_closet{ + anchored = 1; + icon_state = "hos"; + name = "Captain's Locker"; + req_access_txt = "151" + }, +/obj/item/storage/lockbox/medal{ + req_access = null; + req_access_txt = "151" + }, +/obj/item/ammo_box/a357{ + icon_state = "357-7"; + pixel_x = 2 + }, +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 1 + }, +/obj/item/card/id/advanced/black/syndicate_command/captain_id/syndie_spare, +/obj/item/clothing/head/hos/syndicate, +/obj/item/clothing/head/hos/beret/syndicate, +/obj/item/clothing/under/syndicate/skirt, +/obj/item/clothing/under/syndicate, +/obj/item/storage/belt/military/assault, +/obj/machinery/newscaster/directional/east, +/turf/open/floor/carpet, +/area/shuttle/sbc_starfury) +"iv" = ( +/obj/structure/table, +/obj/item/ammo_box/magazine/m10mm{ + icon_state = "9x19p-8"; + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/ammo_box/magazine/m10mm{ + icon_state = "9x19p-8"; + pixel_y = 3 + }, +/obj/item/ammo_box/magazine/m10mm{ + icon_state = "9x19p-8"; + pixel_x = 3 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/item/assembly/flash/handheld, +/obj/structure/cable, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"iw" = ( +/obj/machinery/porta_turret/syndicate/energy{ + dir = 9 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"ix" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/storage/belt/military, +/obj/item/ammo_box/magazine/mm712x82, +/obj/item/gun/ballistic/automatic/l6_saw, +/turf/open/floor/pod/light, +/area/shuttle/sbc_starfury) +"iy" = ( +/obj/structure/closet/crate, +/obj/item/storage/box/donkpockets{ + pixel_x = 2 + }, +/obj/item/storage/box/donkpockets{ + pixel_y = 3 + }, +/obj/item/storage/box/donkpockets{ + pixel_x = -2; + pixel_y = 6 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"iz" = ( +/obj/machinery/chem_dispenser/drinks/beer{ + dir = 1 + }, +/obj/structure/table/reinforced, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"iA" = ( +/obj/machinery/chem_dispenser/drinks{ + dir = 1 + }, +/obj/structure/table/reinforced, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"iB" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/machinery/airalarm/directional/south{ + req_access = list(150) + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"iC" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"iD" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"iE" = ( +/obj/effect/mob_spawn/ghost_role/human/syndicate/battlecruiser/captain{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/shuttle/sbc_starfury) +"iF" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet, +/area/shuttle/sbc_starfury) +"iG" = ( +/obj/structure/table/wood, +/obj/item/folder/syndicate/red{ + pixel_x = -5; + pixel_y = 2 + }, +/obj/item/clothing/mask/cigarette/cigar{ + pixel_x = 5; + pixel_y = 7 + }, +/obj/item/storage/box/matches, +/obj/item/pen{ + pixel_x = -5 + }, +/obj/machinery/airalarm/directional/east{ + req_access = list(150) + }, +/turf/open/floor/carpet, +/area/shuttle/sbc_starfury) +"iH" = ( +/obj/structure/table, +/obj/item/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/brute, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/item/mod/module/energy_shield, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"iI" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"iJ" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"iK" = ( +/obj/machinery/porta_turret/syndicate/energy{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"iL" = ( +/obj/structure/table, +/obj/machinery/syndicatebomb{ + pixel_x = -6; + pixel_y = 8 + }, +/obj/machinery/syndicatebomb{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/machinery/syndicatebomb{ + pixel_y = -2 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/pod/light, +/area/shuttle/sbc_starfury) +"iN" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/mod/control/pre_equipped/elite{ + pixel_x = 1; + pixel_y = 5 + }, +/obj/item/clothing/mask/gas/syndicate{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/mod/control/pre_equipped/elite{ + pixel_x = -4 + }, +/obj/item/clothing/mask/gas/syndicate, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/pod/light, +/area/shuttle/sbc_starfury) +"iO" = ( +/obj/structure/table, +/obj/item/shield/energy{ + pixel_x = -5; + pixel_y = 10 + }, +/obj/item/shield/energy{ + pixel_x = 4; + pixel_y = 10 + }, +/obj/item/shield/energy{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/shield/energy{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/shield/energy{ + pixel_x = -5; + pixel_y = -4 + }, +/obj/item/shield/energy{ + pixel_x = 4; + pixel_y = -4 + }, +/obj/item/melee/energy/sword/saber/red{ + pixel_x = 8; + pixel_y = 15 + }, +/obj/item/melee/energy/sword/saber/red{ + pixel_x = 8; + pixel_y = 8 + }, +/turf/open/floor/pod/light, +/area/shuttle/sbc_starfury) +"iP" = ( +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/engineering{ + name = "Engineering Bay"; + req_access_txt = "150" + }, +/obj/machinery/door/firedoor/heavy, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/iron/smooth, +/area/shuttle/sbc_starfury) +"iQ" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/door/airlock/engineering{ + name = "Engineering Bay"; + req_access_txt = "150" + }, +/obj/machinery/door/firedoor/heavy, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/iron/smooth, +/area/shuttle/sbc_starfury) +"iR" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/door/airlock/engineering{ + name = "Engineering Bay"; + req_access_txt = "150" + }, +/obj/machinery/door/firedoor/heavy, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/iron/smooth, +/area/shuttle/sbc_starfury) +"iS" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/engineering{ + name = "Engineering Bay"; + req_access_txt = "150" + }, +/obj/machinery/door/firedoor/heavy, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/iron/smooth, +/area/shuttle/sbc_starfury) +"iT" = ( +/obj/structure/closet/secure_closet/engineering_electrical{ + req_access = null; + req_access_txt = "150" + }, +/obj/effect/turf_decal/bot/right, +/turf/open/floor/iron/smooth, +/area/shuttle/sbc_starfury) +"iU" = ( +/obj/structure/closet/secure_closet/engineering_welding{ + req_access = null; + req_access_txt = "150" + }, +/obj/effect/turf_decal/bot/right, +/obj/machinery/airalarm/directional/north{ + req_access = list(150) + }, +/turf/open/floor/iron/smooth, +/area/shuttle/sbc_starfury) +"iV" = ( +/obj/structure/table, +/obj/item/book/manual/wiki/engineering_hacking{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/belt/utility/full, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/item/storage/belt/utility/full, +/turf/open/floor/iron/smooth, +/area/shuttle/sbc_starfury) +"iX" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"iY" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"iZ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"ja" = ( +/obj/structure/sign/warning/radiation, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/sbc_starfury) +"jb" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"jc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"jd" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"jf" = ( +/obj/machinery/power/apc/syndicate{ + cell_type = /obj/item/stock_parts/cell/high/plus; + dir = 1; + name = "Syndicate Battlecruiser APC"; + pixel_y = 25 + }, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_dark, +/area/shuttle/sbc_starfury) +"jg" = ( +/obj/machinery/power/smes/engineering{ + charge = 4e+006 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"jh" = ( +/obj/machinery/computer/monitor, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/airalarm/directional/north{ + req_access = list(150) + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"ji" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/smooth, +/area/shuttle/sbc_starfury) +"jk" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Engineering Storage"; + req_access_txt = "150" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/iron/smooth, +/area/shuttle/sbc_starfury) +"js" = ( +/obj/effect/turf_decal/loading_area, +/turf/open/floor/engine, +/area/shuttle/sbc_starfury) +"ju" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"jv" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "syndie_battlecruiser_sm"; + name = "Radiation Chamber Shutters" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"jx" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"jy" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable/layer1, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"jz" = ( +/obj/machinery/door/airlock/engineering{ + name = "SMES Room"; + req_access_txt = "150" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/machinery/door/firedoor, +/obj/structure/cable/layer1, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"jA" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable/layer1, +/turf/open/floor/catwalk_floor/iron_dark, +/area/shuttle/sbc_starfury) +"jB" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/machinery/firealarm/directional/south, +/obj/structure/cable/multilayer/connected, +/turf/open/floor/catwalk_floor/iron_dark, +/area/shuttle/sbc_starfury) +"jD" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/smooth, +/area/shuttle/sbc_starfury) +"jE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"jK" = ( +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/obj/machinery/power/port_gen/pacman/super, +/obj/effect/turf_decal/delivery, +/obj/structure/cable, +/obj/machinery/light/directional/north, +/turf/open/floor/engine, +/area/shuttle/sbc_starfury) +"jM" = ( +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/turf/open/floor/engine, +/area/shuttle/sbc_starfury) +"jN" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "syndie_battlecruiser_sm"; + name = "Radiation Chamber Shutters" + }, +/obj/effect/turf_decal/delivery, +/obj/structure/cable, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"jQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable/layer1, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"jS" = ( +/obj/machinery/power/port_gen/pacman, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"jT" = ( +/obj/structure/closet/crate, +/obj/item/stock_parts/cell/high/plus, +/obj/item/stock_parts/cell/high/plus{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/inducer/syndicate, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"jY" = ( +/obj/structure/rack, +/obj/item/stack/sheet/mineral/uranium{ + amount = 50 + }, +/obj/effect/turf_decal/bot, +/obj/structure/cable, +/obj/structure/sign/warning/nosmoking{ + pixel_y = 32 + }, +/turf/open/floor/engine, +/area/shuttle/sbc_starfury) +"kc" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer2{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/shuttle/sbc_starfury) +"kd" = ( +/obj/structure/sign/warning/deathsposal{ + pixel_y = 32 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/components/binary/pump/off/scrubbers/visible/layer2{ + dir = 8; + name = "Waste Outlet Pump" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/box, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"ke" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"kg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"kh" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/airlock/engineering/glass{ + heat_proof = 1; + id_tag = "syndie_battlecruiser_smbolt"; + name = "Supermatter Chamber"; + req_access_txt = "150" + }, +/obj/structure/barricade/wooden/crude, +/turf/open/floor/engine, +/area/shuttle/sbc_starfury) +"kj" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/light/directional/west, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"kk" = ( +/obj/structure/cable, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"kl" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"km" = ( +/obj/structure/closet/radiation, +/obj/item/clothing/glasses/meson{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/clothing/glasses/meson{ + pixel_x = 1; + pixel_y = -2 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"kn" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/structure/cable, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"ko" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/disposaloutlet{ + dir = 4 + }, +/turf/open/floor/plating/airless, +/area/shuttle/sbc_starfury) +"kp" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/airalarm/directional/west{ + req_access = list(150) + }, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"kq" = ( +/obj/machinery/door/window/brigdoor/eastright{ + name = "Medbay Storage"; + req_access_txt = "150" + }, +/obj/structure/cable, +/obj/effect/turf_decal/siding/blue{ + dir = 4 + }, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/shuttle/sbc_starfury) +"kt" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"ku" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/engine, +/area/shuttle/sbc_starfury) +"kv" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"kw" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/mob_spawn/ghost_role/human/syndicate/battlecruiser/assault{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"kx" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/dark, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"ky" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/structure/closet/toolcloset, +/obj/structure/window/reinforced/survival_pod, +/obj/machinery/airalarm/directional/east{ + req_access = list(150) + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"kz" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/item/storage/toolbox/syndicate{ + pixel_y = 2 + }, +/obj/item/pipe_dispenser{ + pixel_y = -3 + }, +/obj/item/flashlight/seclite, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"kA" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"kF" = ( +/turf/open/floor/engine, +/area/shuttle/sbc_starfury) +"kG" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/space_heater, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"kH" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"kK" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/structure/window/reinforced/survival_pod, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"kL" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/structure/window/reinforced/survival_pod, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"kM" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "starfury_left" + }, +/obj/machinery/door/airlock/external{ + name = "Starfury Port External Access"; + req_access_txt = "150" + }, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"kN" = ( +/obj/structure/sign/warning/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_y = 32 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/light/small/red/directional/north, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"kO" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/gloves/color/yellow{ + pixel_x = -1; + pixel_y = 2 + }, +/obj/item/clothing/gloves/color/yellow{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/item/multitool, +/obj/item/clothing/head/welding, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/firealarm/directional/west, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"kQ" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"kR" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"kU" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"kW" = ( +/obj/effect/turf_decal/delivery, +/turf/open/floor/engine, +/area/shuttle/sbc_starfury) +"la" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"lb" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"lf" = ( +/obj/structure/sign/warning/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_y = 32 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/light/small/red/directional/north, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"lg" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high/plus, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"lh" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"lj" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"lk" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"lm" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"ln" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"lp" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"lq" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/sign/warning/docking{ + pixel_y = -32 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"lr" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"lt" = ( +/obj/machinery/portable_atmospherics/canister/air{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/structure/window/reinforced/survival_pod, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"lu" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/air{ + dir = 1 + }, +/obj/structure/window/reinforced/survival_pod, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"lv" = ( +/obj/structure/closet/emcloset{ + anchored = 1 + }, +/obj/item/clothing/mask/gas, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/effect/turf_decal/box, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"lw" = ( +/obj/machinery/light/small/red/directional/north, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"lx" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"lz" = ( +/obj/structure/table, +/obj/item/stack/sheet/iron{ + amount = 50; + pixel_x = -2; + pixel_y = -2 + }, +/obj/item/stack/sheet/iron{ + pixel_x = 1 + }, +/obj/item/stack/sheet/glass{ + amount = 50; + pixel_x = 2; + pixel_y = 4 + }, +/obj/item/stack/rods{ + amount = 50 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/item/stack/sheet/plasteel{ + amount = 10; + pixel_x = -2 + }, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"lA" = ( +/obj/machinery/door/airlock/engineering/glass{ + name = "Emitter Room"; + req_access_txt = "150" + }, +/obj/structure/cable, +/obj/structure/barricade/wooden/crude, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"lB" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"lC" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/layer_manifold/supply/visible, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"lF" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/yellow, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"lG" = ( +/obj/structure/table, +/obj/item/stack/sheet/mineral/plastitanium{ + amount = 50; + pixel_x = 2; + pixel_y = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/item/stack/sheet/plastitaniumglass{ + amount = 30 + }, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"lH" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"lI" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"lJ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"lK" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/components/binary/pump/on/supply/visible{ + dir = 1; + name = "Air Supply Pump" + }, +/obj/effect/turf_decal/box, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"lM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"lN" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"lO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"lP" = ( +/obj/structure/table, +/obj/item/stack/cable_coil{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/item/stack/cable_coil, +/obj/item/electronics/airlock, +/obj/item/electronics/airlock, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"mp" = ( +/obj/structure/reflector/box{ + anchored = 1; + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"mq" = ( +/obj/machinery/power/emitter, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"mr" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"ms" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"mv" = ( +/obj/structure/rack, +/obj/item/pickaxe/drill, +/obj/item/pickaxe/drill{ + pixel_x = 4; + pixel_y = -4 + }, +/obj/item/extinguisher/mini, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"mw" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"mx" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"mz" = ( +/obj/structure/closet/crate, +/obj/item/storage/box/lights/mixed, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"mA" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/rack, +/obj/item/storage/bag/ore, +/obj/item/storage/bag/ore, +/obj/item/t_scanner/adv_mining_scanner{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/t_scanner/adv_mining_scanner{ + pixel_x = 2; + pixel_y = -2 + }, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"mB" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"mC" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/plasma, +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"mD" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/item/reagent_containers/glass/bucket, +/obj/item/mop, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"mE" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"mF" = ( +/obj/effect/turf_decal/stripes/corner, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"mG" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/closet/crate, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"mH" = ( +/obj/structure/window/reinforced/survival_pod{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"mI" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"mJ" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/machinery/light/small/red/directional/north, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"mK" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/machinery/light/small/red/directional/north, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"mL" = ( +/obj/effect/turf_decal/stripes/line, +/obj/item/crowbar, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"mM" = ( +/obj/effect/turf_decal/stripes/line, +/obj/item/wrench, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"mN" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/chair/stool, +/obj/item/cigbutt, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"mO" = ( +/obj/structure/shuttle/engine/huge, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"mP" = ( +/obj/structure/shuttle/engine/large, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"mY" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron/large, +/area/shuttle/sbc_starfury) +"ng" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "starfury_left" + }, +/obj/machinery/door/airlock/external{ + name = "Starfury Port External Access"; + req_access_txt = "150" + }, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/obj/structure/fans/tiny/invisible, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"nk" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"nr" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/engine, +/area/shuttle/sbc_starfury) +"nz" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green, +/obj/item/clothing/glasses/sunglasses, +/turf/open/floor/carpet, +/area/shuttle/sbc_starfury) +"ow" = ( +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"oO" = ( +/obj/structure/tank_dispenser/oxygen{ + pixel_x = -1; + pixel_y = 2 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"pa" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"pm" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"pt" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"pQ" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Starfury Engineering Maintenance"; + req_access_txt = "150" + }, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"qb" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"qf" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/structure/cable/layer1, +/obj/machinery/light/directional/south, +/turf/open/floor/catwalk_floor/iron_dark, +/area/shuttle/sbc_starfury) +"qm" = ( +/obj/effect/turf_decal/box/corners, +/turf/open/floor/engine, +/area/shuttle/sbc_starfury) +"qF" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/engine, +/area/shuttle/sbc_starfury) +"qQ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/large, +/area/shuttle/sbc_starfury) +"qS" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"rf" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"ri" = ( +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"rr" = ( +/obj/structure/cable, +/obj/structure/barricade/wooden/crude, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/engineering/glass{ + name = "Emitter Room"; + req_access_txt = "150" + }, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"rB" = ( +/obj/effect/turf_decal/arrows{ + dir = 1 + }, +/turf/open/floor/iron/white/side, +/area/shuttle/sbc_starfury) +"rD" = ( +/obj/machinery/button/door/directional/west{ + id = "syndie_battlecruiser_armory"; + name = "Armory Bolt Control"; + normaldoorcontrol = 1; + req_access_txt = "151"; + specialfunctions = 4 + }, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"rV" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"sh" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/mob_spawn/ghost_role/human/syndicate/battlecruiser/assault{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"sB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"sY" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/item/crowbar/red, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"tn" = ( +/turf/open/floor/iron/smooth, +/area/shuttle/sbc_starfury) +"tA" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/engine, +/area/shuttle/sbc_starfury) +"ug" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/shuttle/sbc_starfury) +"uq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/directional/south, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"uR" = ( +/obj/machinery/power/smes/engineering{ + charge = 4e+006 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/button/door/directional/north{ + id = "syndie_battlecruiser_sm"; + name = "engine shutters"; + req_access_txt = "150" + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"uY" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"vk" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"vl" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"vn" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/visible, +/obj/item/analyzer, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"vp" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"vr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/dark/smooth_large, +/area/shuttle/sbc_starfury) +"vH" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"vK" = ( +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/turf/open/floor/engine, +/area/shuttle/sbc_starfury) +"vL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"wc" = ( +/obj/structure/rack, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/item/flashlight/seclite{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/flashlight/seclite, +/obj/item/analyzer, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"wd" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "syndie_battlecruiser_sm"; + name = "Radiation Chamber Shutters" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"wj" = ( +/obj/structure/rack, +/obj/item/stack/sheet/mineral/uranium{ + amount = 50 + }, +/obj/effect/turf_decal/bot, +/obj/structure/cable, +/turf/open/floor/engine, +/area/shuttle/sbc_starfury) +"wC" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"xi" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"xr" = ( +/obj/docking_port/stationary/starfury_fighter/fighter_two, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"xw" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"xD" = ( +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"xG" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/structure/cable, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"xH" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/rack, +/obj/item/clothing/suit/space/syndicate/black/red, +/obj/item/clothing/mask/gas/syndicate, +/obj/item/tank/internals/oxygen/yellow, +/obj/item/clothing/head/helmet/space/syndicate/black/red, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"xO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"yg" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/centcom{ + id_tag = "syndie_battlecruiser_bridge_bolt"; + name = "Bridge"; + req_access_txt = "150" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"yM" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable/multilayer/connected, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"yY" = ( +/obj/structure/closet/emcloset{ + anchored = 1 + }, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/clothing/mask/gas, +/obj/effect/turf_decal/box, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"zm" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/large, +/area/shuttle/sbc_starfury) +"zI" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"Aj" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"Ay" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/shutters{ + id = "syndie_battlecruiser_mech" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/pod/light, +/area/shuttle/sbc_starfury) +"AH" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/chair/stool/bar/directional/south, +/obj/effect/turf_decal/siding/thinplating/dark, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"AQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"Be" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/shuttle/sbc_starfury) +"BK" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"Ck" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"Cl" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/mob_spawn/ghost_role/human/syndicate/battlecruiser{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"CC" = ( +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/turf/open/floor/engine, +/area/shuttle/sbc_starfury) +"CO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/smooth, +/area/shuttle/sbc_starfury) +"CZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"Dd" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/dark/smooth_large, +/area/shuttle/sbc_starfury) +"Dz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"DS" = ( +/obj/structure/rack, +/obj/item/stack/sheet/mineral/uranium{ + amount = 50 + }, +/obj/effect/turf_decal/bot, +/obj/structure/cable, +/obj/machinery/airalarm/directional/north{ + req_access = list(150) + }, +/turf/open/floor/engine, +/area/shuttle/sbc_starfury) +"DV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"Ex" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"EB" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/large, +/area/shuttle/sbc_starfury) +"EH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"EO" = ( +/obj/machinery/sleeper/syndie{ + dir = 1; + icon_state = "sleeper_s-open" + }, +/obj/effect/turf_decal/bot_red/left, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"Fc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/maintenance{ + name = "Engineering Maintenance"; + req_access_txt = "150" + }, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"Fl" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"FC" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_x = -2; + pixel_y = 8 + }, +/obj/item/folder/syndicate/red, +/obj/structure/window/reinforced/survival_pod{ + dir = 4 + }, +/obj/effect/turf_decal/siding/blue{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"FO" = ( +/obj/machinery/turretid{ + ailock = 1; + desc = "A specially designed set of turret controls. Looks to be covered in protective casing to prevent AI interfacing."; + icon_state = "control_stun"; + name = "Ship Turret Control"; + pixel_y = 4; + req_access = 150 + }, +/obj/structure/table/reinforced, +/obj/machinery/newscaster/directional/south, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"Gz" = ( +/obj/docking_port/stationary/starfury_corvette, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"HF" = ( +/obj/machinery/suit_storage_unit/syndicate, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"HL" = ( +/obj/structure/cable, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"HT" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/structure/cable, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"HU" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "starfury_right" + }, +/obj/machinery/door/airlock/external{ + name = "Starfury Starboard External Access"; + req_access_txt = "150" + }, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/obj/structure/fans/tiny/invisible, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"ID" = ( +/obj/machinery/door/airlock/glass{ + name = "Medbay" + }, +/obj/machinery/door/firedoor/heavy, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"IH" = ( +/obj/item/analyzer, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"IM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"Je" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/large, +/area/shuttle/sbc_starfury) +"Jf" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"Ju" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"JL" = ( +/obj/structure/rack{ + dir = 8; + layer = 2.9 + }, +/obj/item/card/emag{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/card/emag, +/obj/item/card/emag{ + pixel_x = 2; + pixel_y = -2 + }, +/obj/item/clothing/glasses/thermal{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/glasses/thermal, +/obj/item/clothing/glasses/thermal{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/open/floor/pod/light, +/area/shuttle/sbc_starfury) +"JY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"Ki" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"KK" = ( +/obj/structure/filingcabinet, +/turf/open/floor/carpet, +/area/shuttle/sbc_starfury) +"KP" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/atmospherics/components/binary/thermomachine/freezer, +/obj/effect/turf_decal/bot_white{ + color = "#00A2FF" + }, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/white/textured_large, +/area/shuttle/sbc_starfury) +"KR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"Lb" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"Lf" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"LN" = ( +/obj/machinery/door/window/brigdoor/eastleft{ + name = "Medbay Storage"; + req_access_txt = "150" + }, +/obj/effect/turf_decal/siding/blue{ + dir = 4 + }, +/turf/open/floor/iron/white/side{ + dir = 4 + }, +/area/shuttle/sbc_starfury) +"Mt" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"MC" = ( +/obj/machinery/portable_atmospherics/canister/nitrogen, +/obj/effect/turf_decal/bot, +/obj/structure/window/reinforced/survival_pod, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"MP" = ( +/obj/machinery/space_heater, +/obj/effect/turf_decal/bot, +/obj/machinery/light/small/red/directional/north, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"MR" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"MS" = ( +/obj/structure/cable, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"Nq" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"Nw" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"NG" = ( +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"NV" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/carpet, +/area/shuttle/sbc_starfury) +"NX" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/shuttle/sbc_starfury) +"Oo" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"Op" = ( +/obj/structure/reflector/box{ + anchored = 1; + dir = 1 + }, +/obj/structure/sign/warning/electricshock{ + pixel_y = -32 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"Ot" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/firealarm/directional/south, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"OG" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/air{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"OT" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/extinguisher/advanced, +/obj/item/pipe_dispenser{ + pixel_y = -3 + }, +/obj/item/clothing/glasses/meson/engine/tray, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"Pa" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"Pb" = ( +/obj/machinery/door/airlock/external{ + name = "Starfury Starboard External Access"; + req_access_txt = "150" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "starfury_right" + }, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"Pd" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/pump, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"Pf" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden, +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/shuttle/sbc_starfury) +"Pk" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"Pq" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"PF" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/shuttle/sbc_starfury) +"PL" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/shuttle/sbc_starfury) +"PM" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/sign/warning/docking{ + pixel_y = -32 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"PP" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/engine, +/area/shuttle/sbc_starfury) +"Qf" = ( +/obj/machinery/power/port_gen/pacman/super, +/obj/effect/turf_decal/delivery, +/obj/structure/cable, +/turf/open/floor/engine, +/area/shuttle/sbc_starfury) +"Qu" = ( +/obj/machinery/stasis, +/obj/machinery/defibrillator_mount/directional/north, +/turf/open/floor/iron/white/smooth_large, +/area/shuttle/sbc_starfury) +"Qw" = ( +/obj/structure/rack, +/obj/item/crowbar, +/obj/item/wrench, +/obj/item/weldingtool, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/item/storage/toolbox/mechanical, +/obj/item/clothing/head/welding, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/sbc_starfury) +"QR" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/sign/warning/nosmoking{ + pixel_x = 32 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"Re" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"Rv" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red/half{ + dir = 8 + }, +/turf/open/floor/iron/dark/smooth_half{ + dir = 1 + }, +/area/shuttle/sbc_starfury) +"RK" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/engine, +/area/shuttle/sbc_starfury) +"Sh" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, +/turf/open/floor/iron/white/side{ + dir = 1 + }, +/area/shuttle/sbc_starfury) +"Sk" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"Sm" = ( +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/air{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"Sq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"Sy" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron/large, +/area/shuttle/sbc_starfury) +"SE" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"SI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/smooth, +/area/shuttle/sbc_starfury) +"ST" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"Ta" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"Tn" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/portable_atmospherics/canister/plasma, +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"TI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"Ux" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"Uy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"UB" = ( +/obj/effect/spawner/structure/window/reinforced/plasma/plastitanium, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "starfury_surgery_shutters" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"UH" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"UN" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/structure/window/reinforced/survival_pod, +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"UW" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"Vm" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"VS" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"VV" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"VX" = ( +/obj/structure/table/reinforced, +/obj/item/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = 7; + pixel_y = 1 + }, +/obj/item/reagent_containers/glass/beaker/cryoxadone, +/obj/item/wrench, +/obj/item/crowbar/red, +/obj/effect/turf_decal/bot, +/obj/structure/sign/warning/chemdiamond{ + pixel_y = 32 + }, +/turf/open/floor/iron/white/smooth_large, +/area/shuttle/sbc_starfury) +"Wc" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"Wg" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"Wu" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/sbc_starfury) +"Wv" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"WV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"WW" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"WX" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/machinery/light/small/red/directional/east, +/turf/open/floor/circuit/red, +/area/shuttle/sbc_starfury) +"Xg" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "syndie_battlecruiser_sm"; + name = "Radiation Chamber Shutters" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"Xj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"Xr" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable/multilayer/connected, +/turf/open/floor/catwalk_floor/iron_dark, +/area/shuttle/sbc_starfury) +"Xz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/shuttle/sbc_starfury) +"XI" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark/smooth_large, +/area/shuttle/sbc_starfury) +"XU" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/machinery/airalarm/directional/north{ + req_access = list(150) + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron, +/area/shuttle/sbc_starfury) +"Yq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/large, +/area/shuttle/sbc_starfury) +"Yt" = ( +/obj/docking_port/stationary/starfury_fighter/fighter_one, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"Yw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/turf/open/floor/pod/dark, +/area/shuttle/sbc_starfury) +"Zm" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/shuttle/sbc_starfury) +"ZK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/highsecurity{ + id_tag = "syndie_battlecruiser_armory"; + name = "Starfury Armory"; + req_access_txt = "150" + }, +/obj/effect/mapping_helpers/airlock/cutaiwire, +/turf/open/floor/iron/dark, +/area/shuttle/sbc_starfury) +"ZR" = ( +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/turf/open/floor/engine, +/area/shuttle/sbc_starfury) +"ZZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/large, +/area/shuttle/sbc_starfury) + +(1,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ae +ae +ae +ae +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(2,1,1) = {" +aa +aa +aa +aa +aa +ac +ae +ae +au +lB +cc +rV +ae +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(3,1,1) = {" +aa +aa +aa +aa +ab +ab +af +aj +av +aH +aS +aH +ow +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ae +ae +aG +aG +ae +ae +ae +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(4,1,1) = {" +aa +aa +aa +aa +aa +ae +ae +ae +au +lB +cd +cr +Dz +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ae +ae +dp +ae +hd +hD +ic +iq +iy +ae +ae +aa +aa +aa +aa +aa +aa +aa +aa +ac +ae +ae +ae +ae +ae +ac +aa +aa +aa +"} +(5,1,1) = {" +aa +aa +aa +ac +ae +ae +ae +ae +ae +ae +ae +cs +ae +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ae +fz +fK +gH +gH +hf +hD +id +ay +ay +ae +ae +ae +ac +aa +aa +aa +aa +aa +ac +ae +dp +ae +mv +mA +mH +aH +mO +aa +aa +"} +(6,1,1) = {" +aa +ac +ae +ae +au +lB +aR +bh +bw +Zm +ce +Zm +cI +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ae +ae +ae +XU +Je +Xj +AH +ie +ay +iz +ae +ae +dp +ae +aa +aa +aa +ac +ng +ae +vl +aH +aH +aH +mB +mH +aH +aH +aa +aa +"} +(7,1,1) = {" +ab +ab +af +aj +av +aH +aS +aH +aH +vp +ae +ct +ae +ae +ae +ac +aa +ac +ae +ev +eE +eE +eE +eE +eE +eE +eE +eE +eE +eE +eE +eE +eE +eE +eE +ev +ae +ae +fz +fK +xw +gS +Xj +kx +if +fy +iA +ae +iT +tn +ae +aa +aa +aa +ae +kN +ae +MP +aH +lN +IH +Tn +mH +aH +aH +aa +aa +"} +(8,1,1) = {" +aa +ac +ae +ae +au +lB +aT +bi +ae +ae +ae +cu +cJ +ae +dp +ae +ae +ae +ei +WW +WW +WW +WW +WW +WW +eJ +WW +WW +WW +eL +WW +WW +WW +WW +WW +WW +eT +ae +ae +ae +ae +ae +hg +hF +ae +ae +ae +ae +iU +ji +ae +ac +aa +ac +ae +aH +kM +aH +aH +eW +aH +mC +ae +ae +ae +ac +aa +"} +(9,1,1) = {" +aa +aa +aa +ac +ae +ae +ae +ae +ae +bL +vk +vk +vk +db +vk +vk +dN +dU +fi +ex +eF +eF +fr +eF +eF +eF +eF +eF +eF +eF +eF +eM +fs +eF +eF +eO +eR +fe +ae +sh +sh +ae +hh +hG +ae +sh +sh +ae +iV +SI +jD +ae +kc +ae +ae +ae +ae +ae +yY +KR +aH +aH +mB +mH +aH +mO +aa +"} +(10,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ae +bM +Wg +NX +ri +ay +ay +XI +dO +dV +IM +eB +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +hB +eR +ff +ae +fV +Ux +gT +hi +hH +ig +rf +iB +ae +fA +CO +jD +ae +Jf +ae +kz +kO +lg +ae +ae +Fc +ae +ae +mB +mH +aH +aH +aa +"} +(11,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +bx +dq +vk +ay +ae +UB +UB +ae +ae +ae +wC +qS +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +AQ +eR +wc +ae +ir +ir +ae +hj +hI +ae +kw +kw +ae +xG +jk +xG +ae +kd +kp +kA +df +lh +lx +VV +lF +mw +ae +mI +mH +aH +aH +aa +"} +(12,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +bx +bB +cf +ae +ae +dd +dr +dA +ae +dW +ec +eA +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +hB +eR +fh +ae +ae +ae +ae +hk +hJ +ae +ae +ae +ae +iX +Pa +jE +jE +ke +Ta +kv +Pk +Sq +uY +ZZ +VS +mx +ae +mJ +ae +ae +ae +aa +"} +(13,1,1) = {" +aa +aa +aa +ad +ad +ad +ad +ae +by +bO +cg +ae +cM +de +EB +dB +UB +dX +ec +eB +aH +aH +aH +aH +aH +aH +Yt +aH +aH +aH +aH +aH +aH +aH +aH +hB +fi +fi +fD +gd +gL +gL +hl +vH +ih +ih +iC +iP +iY +Wu +Nq +kk +kk +kk +kk +kQ +lj +WV +Pq +Lf +ae +ae +aH +mM +mH +mP +aa +"} +(14,1,1) = {" +aa +aa +ad +ad +aw +aI +aU +bj +PF +ay +vk +ae +hx +df +ds +dC +UB +dY +ec +eB +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +hB +ST +ec +fF +gp +mY +df +hm +df +df +zm +iD +iQ +iZ +kt +MR +kt +kg +kt +kt +kR +lk +lz +lG +lP +ae +mD +aH +mB +mH +aH +aa +"} +(15,1,1) = {" +aa +aa +ad +ak +ax +aJ +aV +vk +vk +vk +ci +ae +cO +dg +Yq +dD +ae +dZ +ec +eB +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +hB +ST +fj +ae +ae +ae +ae +hn +BK +ae +ae +ae +ae +ja +ae +wd +jv +ja +ae +kG +kU +lq +ae +ae +ae +ae +ae +pQ +ae +ae +ae +ac +"} +(16,1,1) = {" +aa +aa +ad +al +Dd +xi +aW +bB +bB +bR +ae +ae +ae +ae +du +ae +ae +ae +ep +eB +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +hB +eX +ae +ae +Cl +Cl +ae +ho +hN +ae +it +iE +KK +ae +qF +PP +qF +nr +ae +pt +kU +lk +lA +Nw +aH +mq +ae +aH +mN +mH +aH +mO +"} +(17,1,1) = {" +aa +ad +ad +am +az +aK +aZ +bm +bC +ae +ae +cy +cP +dh +Wc +dF +cC +ea +ec +eB +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +hB +ST +fk +ae +fV +Ux +gV +hp +hO +ii +Xz +iF +NV +ae +jY +jM +CC +wj +lB +kF +kU +lm +ae +aS +aS +aS +ae +aH +mB +mH +aH +aH +"} +(18,1,1) = {" +aa +ad +ag +an +aA +aL +aZ +dk +lO +FO +ae +cz +cQ +qQ +Wc +rB +ID +ec +ec +eB +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +Gz +hB +ST +fl +ae +gx +gx +ae +hq +hP +ae +iu +iG +nz +ae +Qf +ZR +js +Qf +ae +kF +iZ +ln +lB +lH +Ki +Ki +ae +aH +mB +mH +aH +aH +"} +(19,1,1) = {" +aa +ad +ah +ao +aB +aM +nk +bo +bE +uq +Pf +KP +Sh +df +Uy +dI +xG +ec +ec +eB +aH +aH +aH +aH +aH +aH +xr +aH +aH +aH +aH +aH +aH +aH +aH +hB +ST +fm +ae +ae +ae +ae +hr +hQ +ae +ae +ae +ae +ae +jK +ZR +js +Qf +kh +kF +kW +ku +lB +lI +mp +Op +ae +lw +ae +ae +ae +ae +"} +(20,1,1) = {" +aa +ad +ai +ap +aC +aN +aZ +bp +bF +NG +ae +VX +cU +df +Uy +rB +ID +ec +ec +eB +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +hB +ST +fn +ae +gA +HF +gW +ht +hS +ij +HF +gA +ae +ae +Qf +ZR +js +Qf +ae +kF +jb +lp +lB +lJ +UH +UH +ae +aH +mB +mH +aH +mO +"} +(21,1,1) = {" +aa +ad +ad +aq +aD +aO +aZ +bq +FC +ae +ae +Qu +cU +df +Uy +dJ +cC +ee +ec +eB +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +hB +eY +fo +xG +HL +HT +Yw +Fl +Re +DV +CZ +ec +oO +ae +DS +vK +qm +wj +lB +kF +kU +lm +ae +aS +aS +dx +ae +aH +mB +mH +aH +aH +"} +(22,1,1) = {" +aa +aa +ad +ar +vr +xO +bc +bH +bH +bU +ae +ae +cT +ju +Uy +dK +ae +ae +er +eB +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +hB +eZ +ae +ae +gB +gN +gY +Fl +hS +il +iv +iH +ae +ae +br +br +tA +RK +ae +xH +kU +Sk +rr +Vm +aH +aH +ae +aH +mI +mH +aH +aH +"} +(23,1,1) = {" +aa +aa +ad +as +aE +aP +bd +Wv +Wv +ey +Wv +cB +PL +Sy +MS +EO +ae +dZ +ec +eB +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +hB +ST +fp +ae +ae +xG +ae +hu +Ot +ae +xG +ae +ae +ja +ae +jN +Xg +ja +ae +xH +kU +PM +ae +ae +ae +ae +ae +pQ +ae +ae +ae +ac +"} +(24,1,1) = {" +aa +aa +ad +at +aF +aQ +be +bt +NX +bZ +Wv +cC +cV +LN +kq +dL +xG +ef +ec +eB +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +hB +ST +ec +fF +gC +hs +gO +hv +hU +gO +Rv +iI +iR +jb +kH +yM +Lb +kj +kH +kH +la +Sk +lC +lK +mr +OG +ae +aH +mB +mH +mP +aa +"} +(25,1,1) = {" +aa +aa +aa +ad +ad +ad +ad +ae +by +bX +yg +ae +cW +dl +ug +dM +xG +eg +ec +eB +aH +aH +aH +aH +aH +aH +eK +aH +aH +aH +aH +aH +aH +aH +aH +hB +fa +fq +fG +gD +gP +gZ +hw +hV +im +gP +iJ +iS +jc +jx +hL +TI +kk +kk +kk +lb +lr +SE +vn +ms +Sm +ae +aH +mB +mH +aH +aa +"} +(26,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +bx +bY +ck +ae +ae +dm +dy +ae +ae +dW +ec +eB +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +hB +fb +fu +ae +ae +cb +ha +Mt +hW +in +iw +ae +ae +jd +jy +jQ +QR +kl +Ex +Ex +zI +JY +UW +UW +Ck +ae +ae +mK +ae +ae +ae +aa +"} +(27,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +bx +bV +Wv +ay +ae +xG +xG +ae +ae +ae +vL +pm +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +Ju +fb +Qw +ae +ae +by +ae +ZK +hX +ae +by +ae +ae +xG +jz +xG +ae +km +ky +kK +MC +lt +df +mY +lM +ae +mE +mB +mH +aH +mO +aa +"} +(28,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +ae +ca +cm +Be +xD +ay +ay +PF +dS +dV +EH +eB +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +aH +hB +fb +fw +ae +ae +ae +hb +qb +bI +rD +ec +iK +ae +jf +jA +jS +ae +kn +ae +kL +UN +lu +OT +bT +Oo +ae +ae +mB +mH +aH +aH +aa +"} +(29,1,1) = {" +aa +aa +aa +ac +ae +ae +ae +ae +ae +cb +cn +hV +hV +do +hV +hV +dT +eh +et +eC +eG +eG +eH +eG +eG +eG +eG +eG +eG +eG +eG +eG +ft +eN +eG +eS +fc +fe +ae +ae +ae +ae +hz +hZ +hZ +ec +iL +ae +uR +Xr +jT +ae +ko +ae +ae +ae +ae +ae +ae +Fc +ae +aH +mL +mH +aH +aH +aa +"} +(30,1,1) = {" +aa +ac +ae +ae +au +lB +bf +bu +ae +ae +ae +cF +cZ +ae +dz +ae +ae +ae +eu +eD +eD +eD +eI +eD +eD +eD +eD +eD +eD +eD +eD +eD +sY +eD +eD +eD +fd +ae +ae +gE +gQ +hc +sB +ec +ec +ec +JL +ae +jh +qf +ae +ac +aa +ac +ae +aH +Pb +aH +aH +KR +lN +mF +ae +ae +ae +ac +aa +"} +(31,1,1) = {" +ab +ab +af +aj +av +aH +aS +aH +aH +eW +ae +cG +ae +ae +ae +ac +aa +ac +ae +ev +eE +eE +eE +eE +eE +eE +eE +eE +eE +eE +eE +eE +eE +eE +eE +ev +ae +ae +ae +gF +gR +Ay +sB +ia +io +ec +iN +ae +jg +jB +ae +aa +aa +aa +ae +lf +ae +fB +aH +vp +aH +mB +mH +aH +mO +aa +aa +"} +(32,1,1) = {" +aa +ac +ae +ae +au +lB +bg +bv +bK +Zm +co +Zm +da +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ae +ae +WX +gQ +hc +hB +ec +pa +ec +iO +ae +ae +dz +ae +aa +aa +aa +ac +HU +ae +lv +aH +aH +aH +mB +mH +aH +aH +aa +aa +"} +(33,1,1) = {" +aa +aa +aa +ac +ae +ae +ae +ae +ae +ae +ae +cH +ae +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ae +ae +ae +aH +ae +hC +ib +ip +ix +iw +ae +ae +ae +ac +aa +aa +aa +aa +aa +ac +ae +dz +ae +mz +mG +mH +aH +aH +aa +aa +"} +(34,1,1) = {" +aa +aa +aa +aa +aa +ae +ae +ae +au +lB +cp +cr +Aj +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ae +ae +dz +ae +ae +ae +ae +ae +ae +ae +ae +aa +aa +aa +aa +aa +aa +aa +aa +ac +ae +ae +ae +ae +ae +ac +aa +aa +aa +"} +(35,1,1) = {" +aa +aa +aa +aa +ab +ab +af +aj +av +aH +aS +aH +ow +ae +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +ae +ae +ae +ae +ae +ae +ae +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(36,1,1) = {" +aa +aa +aa +aa +aa +ae +ae +ae +au +lB +cq +Pd +ae +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} +(37,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +ac +ae +ae +ae +ae +ac +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +"} diff --git a/code/__DEFINES/antagonists.dm b/code/__DEFINES/antagonists.dm index 2782bbe1001..6df21f26737 100644 --- a/code/__DEFINES/antagonists.dm +++ b/code/__DEFINES/antagonists.dm @@ -82,16 +82,6 @@ GLOBAL_LIST_INIT(heretic_start_knowledge,list(/datum/eldritch_knowledge/spell/ba #define CONSTRUCT_WRAITH "Wraith" #define CONSTRUCT_ARTIFICER "Artificer" - -/// How many telecrystals a normal traitor starts with -#define TELECRYSTALS_DEFAULT 20 -/// How many telecrystals mapper/admin only "precharged" uplink implant -#define TELECRYSTALS_PRELOADED_IMPLANT 10 -/// The normal cost of an uplink implant; used for calcuating how many -/// TC to charge someone if they get a free implant through choice or -/// because they have nothing else that supports an implant. -#define UPLINK_IMPLANT_TELECRYSTAL_COST 4 - /// The Classic Wizard wizard loadout. #define WIZARD_LOADOUT_CLASSIC "loadout_classic" /// Mjolnir's Power wizard loadout. @@ -171,9 +161,6 @@ GLOBAL_LIST_INIT(ai_employers, list( "Unshackled", )) -///how long traitors will have to wait before an unreasonable objective is rerolled -#define OBJECTIVE_REROLL_TIMER 10 MINUTES - ///all the employers that are syndicate #define FACTION_SYNDICATE "syndicate" ///all the employers that are nanotrasen @@ -207,3 +194,32 @@ GLOBAL_LIST_INIT(ai_employers, list( /// The dimensions of the antagonist preview icon. Will be scaled to this size. #define ANTAGONIST_PREVIEW_ICON_SIZE 96 + +// Defines for objective items to determine what they can appear in +/// Can appear in everything +#define OBJECTIVE_ITEM_TYPE_NORMAL "normal" +/// Only appears in traitor objectives +#define OBJECTIVE_ITEM_TYPE_TRAITOR "traitor" + +// Progression traitor defines + +/// How many telecrystals a normal traitor starts with +#define TELECRYSTALS_DEFAULT 20 +/// How many telecrystals mapper/admin only "precharged" uplink implant +#define TELECRYSTALS_PRELOADED_IMPLANT 10 +/// The normal cost of an uplink implant; used for calcuating how many +/// TC to charge someone if they get a free implant through choice or +/// because they have nothing else that supports an implant. +#define UPLINK_IMPLANT_TELECRYSTAL_COST 4 + +// Used for traitor objectives +/// If the objective hasn't been taken yet +#define OBJECTIVE_STATE_INACTIVE 1 +/// If the objective is active and ongoing +#define OBJECTIVE_STATE_ACTIVE 2 +/// If the objective has been completed. +#define OBJECTIVE_STATE_COMPLETED 3 +/// If the objective has failed. +#define OBJECTIVE_STATE_FAILED 4 +/// If the objective is no longer valid +#define OBJECTIVE_STATE_INVALID 5 diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm index ea5faafe3e7..93bcd8228ad 100644 --- a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_carbon.dm @@ -23,7 +23,7 @@ ///from base of /obj/item/bodypart/proc/attach_limb(): (new_limb, special) allows you to fail limb attachment #define COMSIG_CARBON_ATTACH_LIMB "carbon_attach_limb" #define COMPONENT_NO_ATTACH (1<<0) -#define COMSIG_CARBON_REMOVE_LIMB "carbon_remove_limb" //from base of /obj/item/bodypart/proc/drop_limb(special, dismembered) +#define COMSIG_CARBON_REMOVE_LIMB "carbon_remove_limb" //from base of /obj/item/bodypart/proc/drop_limb(lost_limb, dismembered) #define COMSIG_BODYPART_GAUZED "bodypart_gauzed" // from /obj/item/bodypart/proc/apply_gauze(/obj/item/stack/gauze) #define COMSIG_BODYPART_GAUZE_DESTROYED "bodypart_degauzed" // from [/obj/item/bodypart/proc/seep_gauze] when it runs out of absorption diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm index 47ff38297fa..b794f47294d 100644 --- a/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm +++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob_main.dm @@ -128,3 +128,5 @@ #define COMSIG_MOB_CTRL_CLICKED "mob_ctrl_clicked" ///From base of mob/update_movespeed():area #define COMSIG_MOB_MOVESPEED_UPDATED "mob_update_movespeed" +/// From /datum/surgery_step/success(): (datum/surgey_step/step, mob/living/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results) +#define COMSIG_MOB_SURGERY_STEP_SUCCESS "mob_surgery_step_success" diff --git a/code/__DEFINES/dcs/signals/signals_traitor.dm b/code/__DEFINES/dcs/signals/signals_traitor.dm new file mode 100644 index 00000000000..043f2a9bced --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_traitor.dm @@ -0,0 +1,22 @@ +/// Called when the hack_comm_console objective is completed. +#define COMSIG_GLOB_TRAITOR_OBJECTIVE_COMPLETED "!traitor_objective_completed" + +/// Called whenever the uplink handler receives any sort of update. Used by uplinks to update their UI. No arguments passed +#define COMSIG_UPLINK_HANDLER_ON_UPDATE "uplink_handler_on_update" + +/// Called before the traitor objective is generated +#define COMSIG_TRAITOR_OBJECTIVE_PRE_GENERATE "traitor_objective_pre_generate" + #define COMPONENT_TRAITOR_OBJECTIVE_ABORT_GENERATION (1<<0) +/// Called whenever the traitor objective is completed +#define COMSIG_TRAITOR_OBJECTIVE_COMPLETED "traitor_objective_completed" +/// Called whenever the traitor objective is failed +#define COMSIG_TRAITOR_OBJECTIVE_FAILED "traitor_objective_failed" + +/// Called when a traitor bug is planted in an area +#define COMSIG_TRAITOR_BUG_PLANTED_GROUND "traitor_bug_planted_area" +/// Called when a traitor bug is planted +#define COMSIG_TRAITOR_BUG_PLANTED_OBJECT "traitor_bug_planted_object" +/// Called before a traitor bug is planted, where it can still be overrided +#define COMSIG_TRAITOR_BUG_PRE_PLANTED_OBJECT "traitor_bug_planted_pre_object" + #define COMPONENT_FORCE_PLACEMENT (1<<0) + #define COMPONENT_FORCE_FAIL_PLACEMENT (1<<1) diff --git a/code/__DEFINES/role_preferences.dm b/code/__DEFINES/role_preferences.dm index 6179feabb99..9c128ea68fa 100644 --- a/code/__DEFINES/role_preferences.dm +++ b/code/__DEFINES/role_preferences.dm @@ -97,6 +97,8 @@ #define ROLE_SKELETON "Skeleton" #define ROLE_ZOMBIE "Zombie" #define ROLE_MAINTENANCE_DRONE "Maintenance Drone" +#define ROLE_BATTLECRUISER_CREW "Battlecruiser Crew" +#define ROLE_BATTLECRUISER_CAPTAIN "Battlecruiser Captain" /// This defines the antagonists you can operate with in the settings. diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm index 741c1c19f01..6b565a5842f 100644 --- a/code/__DEFINES/sound.dm +++ b/code/__DEFINES/sound.dm @@ -6,7 +6,7 @@ #define CHANNEL_HEARTBEAT 1020 //sound channel for heartbeats #define CHANNEL_AMBIENCE 1019 #define CHANNEL_BUZZ 1018 -#define CHANNEL_BICYCLE 1017 +#define CHANNEL_TRAITOR 1017 ///Default range of a sound. #define SOUND_RANGE 17 diff --git a/code/__DEFINES/uplink.dm b/code/__DEFINES/uplink.dm index 4aad3e6b886..3a7b847057c 100644 --- a/code/__DEFINES/uplink.dm +++ b/code/__DEFINES/uplink.dm @@ -8,3 +8,7 @@ /// This item is purchasable to clown ops #define UPLINK_CLOWN_OPS (1 << 2) + +/// Progression gets turned into a user-friendly form. This is just an abstract equation that makes progression not too large. +#define DISPLAY_PROGRESSION(time) round(time/600, 0.01) + diff --git a/code/__HELPERS/cmp.dm b/code/__HELPERS/cmp.dm index 67a29bff7f0..cc21e8535f9 100644 --- a/code/__HELPERS/cmp.dm +++ b/code/__HELPERS/cmp.dm @@ -138,6 +138,10 @@ GLOBAL_VAR_INIT(cmp_field, "name") /proc/cmp_port_order_asc(datum/port/compare1, datum/port/compare2) return compare1.order - compare2.order +/// Orders by uplink category weight +/proc/cmp_uplink_category_desc(datum/uplink_category/compare1, datum/uplink_category/compare2) + return initial(compare2.weight) - initial(compare1.weight) + /** * Sorts crafting recipe requirements before the crafting recipe is inserted into GLOB.crafting_recipes * diff --git a/code/__HELPERS/priority_announce.dm b/code/__HELPERS/priority_announce.dm index 97db6c3b3ca..a1ef1e3117a 100644 --- a/code/__HELPERS/priority_announce.dm +++ b/code/__HELPERS/priority_announce.dm @@ -1,4 +1,4 @@ -/proc/priority_announce(text, title = "", sound, type , sender_override, has_important_message) +/proc/priority_announce(text, title = "", sound, type , sender_override, has_important_message, players) if(!text) return @@ -15,6 +15,8 @@ else if(type == "Captain") announcement += "

Captain Announces

" GLOB.news_network.SubmitArticle(html_encode(text), "Captain's Announcement", "Station Announcements", null) + else if(type == "Syndicate Captain") + announcement += "

Syndicate Captain Announces

" else if(!sender_override) @@ -37,12 +39,15 @@ announcement += "
[span_alert("[html_encode(text)]")]
" announcement += "
" - var/s = sound(sound) - for(var/mob/M in GLOB.player_list) - if(!isnewplayer(M) && M.can_hear()) - to_chat(M, announcement) - if(M.client.prefs.toggles & SOUND_ANNOUNCEMENTS) - SEND_SOUND(M, s) + if(!players) + players = GLOB.player_list + + var/sound_to_play = sound(sound) + for(var/mob/target in players) + if(!isnewplayer(target) && target.can_hear()) + to_chat(target, announcement) + if(target.client.prefs.toggles & SOUND_ANNOUNCEMENTS) + SEND_SOUND(target, sound_to_play) /** * Summon the crew for an emergency meeting @@ -89,7 +94,7 @@ SScommunications.send_message(M) -/proc/minor_announce(message, title = "Attention:", alert, html_encode = TRUE) +/proc/minor_announce(message, title = "Attention:", alert, html_encode = TRUE, list/players) if(!message) return @@ -97,11 +102,14 @@ title = html_encode(title) message = html_encode(message) - for(var/mob/M in GLOB.player_list) - if(!isnewplayer(M) && M.can_hear()) - to_chat(M, "[span_minorannounce("[title]
[message]")]
") - if(M.client.prefs.toggles & SOUND_ANNOUNCEMENTS) + if(!players) + players = GLOB.player_list + + for(var/mob/target in players) + if(!isnewplayer(target) && target.can_hear()) + to_chat(target, "[span_minorannounce("[title]
[message]")]
") + if(target.client.prefs.toggles & SOUND_ANNOUNCEMENTS) if(alert) - SEND_SOUND(M, sound('sound/misc/notice1.ogg')) + SEND_SOUND(target, sound('sound/misc/notice1.ogg')) else - SEND_SOUND(M, sound('sound/misc/notice2.ogg')) + SEND_SOUND(target, sound('sound/misc/notice2.ogg')) diff --git a/code/_globalvars/lists/mobs.dm b/code/_globalvars/lists/mobs.dm index 1ccd4a338e0..1193ad2a4bc 100644 --- a/code/_globalvars/lists/mobs.dm +++ b/code/_globalvars/lists/mobs.dm @@ -107,3 +107,12 @@ GLOBAL_LIST_INIT(construct_radial_images, list( .[E.key_third_person] = list(E) else .[E.key_third_person] |= E + +/proc/get_crewmember_minds() + var/list/minds = list() + for(var/data in GLOB.data_core.locked) + var/datum/data/record/record = data + var/datum/mind/mind = record.fields["mindref"] + if(mind) + minds += mind + return minds diff --git a/code/controllers/configuration/configuration.dm b/code/controllers/configuration/configuration.dm index 97e835d7d6e..fd7f529f9b8 100644 --- a/code/controllers/configuration/configuration.dm +++ b/code/controllers/configuration/configuration.dm @@ -297,7 +297,7 @@ special keywords defined in _DEFINES/admin.dm Example config: { - "Assistant" : "Don't kill everyone", + JOB_ASSISTANT : "Don't kill everyone", "/datum/antagonist/highlander" : "Kill everyone", "Ash Walker" : "Kill all spacemans" } diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index 0fd85d07e4d..36b35295bc2 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -57,6 +57,21 @@ integer = FALSE min_val = 0 +/// Determines the ideal player count for maximum progression per minute. +/datum/config_entry/number/traitor_ideal_player_count + default = 20 + min_val = 1 + +/// Determines how fast traitors scale in general. +/datum/config_entry/number/traitor_scaling_multiplier + default = 1 + min_val = 0.01 + +/// Determines how many potential objectives a traitor can have. +/datum/config_entry/number/maximum_potential_objectives + default = 6 + min_val = 1 + /datum/config_entry/number/changeling_scaling_coeff //how much does the amount of players get divided by to determine changelings default = 6 integer = FALSE diff --git a/code/controllers/subsystem/communications.dm b/code/controllers/subsystem/communications.dm index 9996da22df5..f244f6c1bd5 100644 --- a/code/controllers/subsystem/communications.dm +++ b/code/controllers/subsystem/communications.dm @@ -18,14 +18,14 @@ SUBSYSTEM_DEF(communications) else return FALSE -/datum/controller/subsystem/communications/proc/make_announcement(mob/living/user, is_silicon, input) +/datum/controller/subsystem/communications/proc/make_announcement(mob/living/user, is_silicon, input, syndicate, list/players) if(!can_announce(user, is_silicon)) return FALSE if(is_silicon) - minor_announce(html_decode(input),"[user.name] Announces:") + minor_announce(html_decode(input),"[user.name] Announces:", players = players) COOLDOWN_START(src, silicon_message_cooldown, COMMUNICATION_COOLDOWN_AI) else - priority_announce(html_decode(user.treat_message(input)), null, 'sound/misc/announce.ogg', "Captain", has_important_message = TRUE) + priority_announce(html_decode(user.treat_message(input)), null, 'sound/misc/announce.ogg', "[syndicate? "Syndicate " : ""]Captain", has_important_message = TRUE, players = players) COOLDOWN_START(src, nonsilicon_message_cooldown, COMMUNICATION_COOLDOWN) user.log_talk(input, LOG_SAY, tag="priority announcement") message_admins("[ADMIN_LOOKUPFLW(user)] has made a priority announcement.") @@ -33,7 +33,7 @@ SUBSYSTEM_DEF(communications) /** * Check if a mob can call an emergency meeting * - * Should only really happen during april fools. + * Should only really happen during april fools. * Checks to see that it's been at least 5 minutes since the last emergency meeting call. * Arguments: * * user - Mob who called the meeting @@ -49,7 +49,7 @@ SUBSYSTEM_DEF(communications) /** * Call an emergency meeting * - * Communications subsystem wrapper for the call_emergency_meeting world proc. + * Communications subsystem wrapper for the call_emergency_meeting world proc. * Checks to make sure the proc can be called, and handles * relevant logging and timing. See that proc definition for more detail. * Arguments: diff --git a/code/controllers/subsystem/shuttle.dm b/code/controllers/subsystem/shuttle.dm index c7a6a08c9a6..90f5f3679c2 100644 --- a/code/controllers/subsystem/shuttle.dm +++ b/code/controllers/subsystem/shuttle.dm @@ -153,7 +153,7 @@ SUBSYSTEM_DEF(shuttle) supply_packs[pack.id] = pack - initial_load() + setup_shuttles(stationary_docking_ports) has_purchase_shuttle_access = init_has_purchase_shuttle_access() if(!arrivals) @@ -166,10 +166,9 @@ SUBSYSTEM_DEF(shuttle) WARNING("No /obj/docking_port/mobile/supply placed on the map!") return ..() -/datum/controller/subsystem/shuttle/proc/initial_load() - for(var/port in stationary_docking_ports) - var/obj/docking_port/stationary/stationary_port = port - stationary_port.load_roundstart() +/datum/controller/subsystem/shuttle/proc/setup_shuttles(list/stationary) + for(var/obj/docking_port/stationary/port as anything in stationary) + port.load_roundstart() CHECK_TICK /datum/controller/subsystem/shuttle/fire() diff --git a/code/controllers/subsystem/traitor.dm b/code/controllers/subsystem/traitor.dm new file mode 100644 index 00000000000..db9e687e9ec --- /dev/null +++ b/code/controllers/subsystem/traitor.dm @@ -0,0 +1,109 @@ +SUBSYSTEM_DEF(traitor) + name = "Traitor" + flags = SS_KEEP_TIMING + wait = 10 SECONDS + runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME + + /// A list of all uplink items mapped by type + var/list/uplink_items_by_type = list() + /// A list of all uplink items + var/list/uplink_items = list() + + /// File to load configurations from. + var/configuration_path = "config/traitor_objective.json" + /// Global configuration data that gets applied to each objective when it is created. + /// Basic objective format + /// '/datum/traitor_objective/path/to/objective': { + /// "global_progression_influence_intensity": 0 + /// } + var/configuration_data = list() + + /// The coefficient multiplied by the current_global_progression for new joining traitors to calculate their progression + var/newjoin_progression_coeff = 0.6 + /// The current progression that all traitors should be at in the round + var/current_global_progression = 0 + /// The amount of deviance from the current global progression before you start getting 2x the current scaling or no scaling at all + /// Also affects objectives, so -50% progress reduction or 50% progress boost. + var/progression_scaling_deviance = 20 MINUTES + /// The current uplink handlers being managed + var/list/datum/uplink_handler/uplink_handlers = list() + /// The current scaling per minute of progression. Has a maximum value of 1 MINUTES. + var/current_progression_scaling = 1 MINUTES + /// Used to handle the probability of getting an objective. + var/datum/traitor_category_handler/category_handler + /// The current debug handler for objectives. Used for debugging objectives + var/datum/traitor_objective_debug/traitor_debug_panel + /// Used by the debug menu, decides whether newly created objectives should generate progression and telecrystals. Do not modify for non-debug purposes. + var/generate_objectives = TRUE + /// Objectives that have been completed by type. Used for limiting objectives. + var/list/taken_objectives_by_type = list() + +/datum/controller/subsystem/traitor/Initialize(start_timeofday) + . = ..() + category_handler = new() + traitor_debug_panel = new(category_handler) + + if(fexists(configuration_path)) + var/list/data = json_decode(file2text(file(configuration_path))) + for(var/typepath in data) + var/actual_typepath = text2path(typepath) + if(!actual_typepath) + log_world("[configuration_path] has an invalid type ([typepath]) that doesn't exist in the codebase! Please correct or remove [typepath]") + configuration_data[actual_typepath] = data[typepath] + +/datum/controller/subsystem/traitor/fire(resumed) + var/player_count = length(GLOB.alive_player_list) + // Has a maximum of 1 minute, however the value can be lower if there are lower players than the ideal + // player count for a traitor to be threatening. Rounds to the nearest 10% of a minute to prevent weird + // values from appearing in the UI. Traitor scaling multiplier bypasses the limit and only multiplies the end value. + // from all of our calculations. + current_progression_scaling = max(min( + (player_count / CONFIG_GET(number/traitor_ideal_player_count)) * 1 MINUTES, + 1 MINUTES + ), 0.1 MINUTES) * CONFIG_GET(number/traitor_scaling_multiplier) + + var/progression_scaling_delta = (wait / (1 MINUTES)) * current_progression_scaling + var/previous_global_progression = current_global_progression + + current_global_progression += progression_scaling_delta + for(var/datum/uplink_handler/handler in uplink_handlers) + if(!handler.has_progression || QDELETED(handler)) + uplink_handlers -= handler + var/deviance = (previous_global_progression - handler.progression_points) / progression_scaling_deviance + if(abs(deviance) < 0.01) + // If deviance is less than 1%, just set them to the current global progression + // Prevents problems with precision errors. + handler.progression_points = current_global_progression + else + var/amount_to_give = progression_scaling_delta + (progression_scaling_delta * deviance) + amount_to_give = clamp(amount_to_give, 0, progression_scaling_delta * 2) + handler.progression_points += amount_to_give + handler.update_objectives() + handler.on_update() + +/datum/controller/subsystem/traitor/proc/register_uplink_handler(datum/uplink_handler/uplink_handler) + if(!uplink_handler.has_progression) + return + uplink_handlers |= uplink_handler + // An uplink handler can be registered multiple times if they get assigned to new uplinks, so + // override is set to TRUE here because it is intentional that they could get added multiple times. + RegisterSignal(uplink_handler, COMSIG_PARENT_QDELETING, .proc/uplink_handler_deleted, override = TRUE) + +/datum/controller/subsystem/traitor/proc/uplink_handler_deleted(datum/uplink_handler/uplink_handler) + SIGNAL_HANDLER + uplink_handlers -= uplink_handler + +/datum/controller/subsystem/traitor/proc/on_objective_taken(datum/traitor_objective/objective) + if(!istype(objective)) + return + + var/datum/traitor_objective/current_type = objective.type + while(current_type != /datum/traitor_objective) + if(!taken_objectives_by_type[current_type]) + taken_objectives_by_type[current_type] = list(objective) + else + taken_objectives_by_type[current_type] += objective + current_type = type2parent(current_type) + +/datum/controller/subsystem/traitor/proc/get_taken_count(datum/traitor_objective/objective_type) + return length(taken_objectives_by_type[objective_type]) diff --git a/code/datums/brain_damage/imaginary_friend.dm b/code/datums/brain_damage/imaginary_friend.dm index 92852febcbf..0d26b6ef456 100644 --- a/code/datums/brain_damage/imaginary_friend.dm +++ b/code/datums/brain_damage/imaginary_friend.dm @@ -138,7 +138,7 @@ highest_pref = this_pref if(!appearance_job) - appearance_job = SSjob.GetJob("Assistant") + appearance_job = SSjob.GetJob(JOB_ASSISTANT) if(istype(appearance_job, /datum/job/ai)) human_image = icon('icons/mob/ai.dmi', icon_state = resolve_ai_icon(appearance_from_prefs.read_preference(/datum/preference/choiced/ai_core_display)), dir = SOUTH) diff --git a/code/datums/components/uplink.dm b/code/datums/components/uplink.dm index a9f8d2f0970..170ceab5ee1 100644 --- a/code/datums/components/uplink.dm +++ b/code/datums/components/uplink.dm @@ -9,32 +9,40 @@ **/ /datum/component/uplink dupe_mode = COMPONENT_DUPE_UNIQUE + /// Name of the uplink var/name = "syndicate uplink" + /// Whether the uplink is currently active or not var/active = FALSE + /// Whether this uplink can be locked or not var/lockable = TRUE + /// Whether the uplink is locked or not. var/locked = TRUE + /// Whether this uplink allows restricted items to be accessed var/allow_restricted = TRUE - var/telecrystals - var/selected_cat + /// Current owner of the uplink var/owner = null - var/uplink_flag + /// Purchase log, listing all the purchases this uplink has made var/datum/uplink_purchase_log/purchase_log - var/list/uplink_items - var/hidden_crystals = 0 - var/unlock_note + /// The current linked uplink handler. + var/datum/uplink_handler/uplink_handler + /// Code to unlock the uplink. var/unlock_code - var/failsafe_code - var/compact_mode = FALSE - var/debug = FALSE - ///Instructions on how to access the uplink based on location - var/unlock_text + /// Used for pen uplink var/list/previous_attempts -/datum/component/uplink/Initialize(_owner, _lockable = TRUE, _enabled = FALSE, uplink_flag = UPLINK_TRAITORS, starting_tc = TELECRYSTALS_DEFAULT) + // Not modular variables. These variables should be removed sometime in the future + + /// The unlock text that is sent to the traitor with this uplink. This is not modular and not recommended to expand upon + var/unlock_text + /// The unlock note that is sent to the traitor with this uplink. This is not modular and not recommended to expand upon + var/unlock_note + /// The failsafe code that causes this uplink to blow up. + var/failsafe_code + +/datum/component/uplink/Initialize(owner, lockable = TRUE, enabled = FALSE, uplink_flag = UPLINK_TRAITORS, starting_tc = TELECRYSTALS_DEFAULT, has_progression = FALSE, datum/uplink_handler/uplink_handler_override) if(!isitem(parent)) return COMPONENT_INCOMPATIBLE - RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/OnAttackBy) RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, .proc/interact) if(istype(parent, /obj/item/implant)) @@ -49,96 +57,67 @@ RegisterSignal(parent, COMSIG_RADIO_NEW_FREQUENCY, .proc/new_frequency) else if(istype(parent, /obj/item/pen)) RegisterSignal(parent, COMSIG_PEN_ROTATED, .proc/pen_rotation) - if(_owner) - owner = _owner + if(owner) + src.owner = owner LAZYINITLIST(GLOB.uplink_purchase_logs_by_key) if(GLOB.uplink_purchase_logs_by_key[owner]) purchase_log = GLOB.uplink_purchase_logs_by_key[owner] else purchase_log = new(owner, src) - lockable = _lockable - active = _enabled - src.uplink_flag = uplink_flag - update_items() - telecrystals = starting_tc + src.lockable = lockable + src.active = enabled + if(!uplink_handler_override) + uplink_handler = new() + uplink_handler.has_objectives = FALSE + uplink_handler.uplink_flag = uplink_flag + uplink_handler.telecrystals = starting_tc + uplink_handler.has_progression = has_progression + uplink_handler.purchase_log = purchase_log + else + uplink_handler = uplink_handler_override + RegisterSignal(uplink_handler, COMSIG_UPLINK_HANDLER_ON_UPDATE, .proc/handle_uplink_handler_update) if(!lockable) active = TRUE locked = FALSE previous_attempts = list() -/datum/component/uplink/InheritComponent(datum/component/uplink/U) - lockable |= U.lockable - active |= U.active - uplink_flag |= U.uplink_flag - telecrystals += U.telecrystals - if(purchase_log && U.purchase_log) - purchase_log.MergeWithAndDel(U.purchase_log) +/datum/component/uplink/proc/handle_uplink_handler_update() + SIGNAL_HANDLER + SStgui.update_uis(src) + +/// Adds telecrystals to the uplink. It is bad practice to use this outside of the component itself. +/datum/component/uplink/proc/add_telecrystals(telecrystals_added) + set_telecrystals(uplink_handler.telecrystals + telecrystals_added) + +/// Sets the telecrystals of the uplink. It is bad practice to use this outside of the component itself. +/datum/component/uplink/proc/set_telecrystals(new_telecrystal_amount) + uplink_handler.telecrystals = new_telecrystal_amount + +/datum/component/uplink/InheritComponent(datum/component/uplink/uplink) + lockable |= uplink.lockable + active |= uplink.active + uplink_handler.uplink_flag |= uplink.uplink_handler.uplink_flag /datum/component/uplink/Destroy() purchase_log = null return ..() -/datum/component/uplink/proc/update_items(user) - var/updated_items - updated_items = get_uplink_items(uplink_flag, TRUE, allow_restricted) - update_sales(updated_items) - update_special_equipment(user, updated_items) - uplink_items = updated_items - -/datum/component/uplink/proc/update_sales(updated_items) - var/discount_categories = list("Discounted Gear", "Discounted Team Gear", "Limited Stock Team Gear") - if (uplink_items == null) - return - for (var/category in discount_categories) // Makes sure discounted items aren't renewed or replaced - if (uplink_items[category] != null && updated_items[category] != null) - updated_items[category] = uplink_items[category] - -/datum/component/uplink/proc/update_special_equipment(mob/user, updated_items) - if(!user?.mind?.failed_special_equipment) - return - for(var/obj/item/equipment_path as anything in user.mind.failed_special_equipment) - var/datum/uplink_item/special_equipment/equipment_uplink_item = new - if(!updated_items[equipment_uplink_item.category]) - updated_items[equipment_uplink_item.category] = list() - var/list/name_words = splittext(initial(equipment_path.name), " ") - var/capitalized_name - for(var/i in 1 to name_words.len) - name_words[i] = capitalize(name_words[i]) - capitalized_name = name_words.Join(" ") - equipment_uplink_item.item = equipment_path - equipment_uplink_item.name = capitalized_name - equipment_uplink_item.desc = initial(equipment_path.desc) - updated_items[equipment_uplink_item.category][equipment_uplink_item.name] = equipment_uplink_item - -/datum/component/uplink/proc/LoadTC(mob/user, obj/item/stack/telecrystal/TC, silent = FALSE) +/datum/component/uplink/proc/load_tc(mob/user, obj/item/stack/telecrystal/telecrystals, silent = FALSE) if(!silent) - to_chat(user, span_notice("You slot [TC] into [parent] and charge its internal uplink.")) - var/amt = TC.amount - telecrystals += amt - TC.use(amt) + to_chat(user, span_notice("You slot [telecrystals] into [parent] and charge its internal uplink.")) + var/amt = telecrystals.amount + uplink_handler.telecrystals += amt + telecrystals.use(amt) log_uplink("[key_name(user)] loaded [amt] telecrystals into [parent]'s uplink") -/datum/component/uplink/proc/OnAttackBy(datum/source, obj/item/I, mob/user) +/datum/component/uplink/proc/OnAttackBy(datum/source, obj/item/item, mob/user) SIGNAL_HANDLER - if(!active) return //no hitting everyone/everything just to try to slot tcs in! - if(istype(I, /obj/item/stack/telecrystal)) - LoadTC(user, I) - for(var/category in uplink_items) - for(var/item in uplink_items[category]) - var/datum/uplink_item/UI = uplink_items[category][item] - var/path = UI.refund_path || UI.item - var/cost = UI.refund_amount || UI.cost - if(I.type == path && UI.refundable && I.check_uplink_validity()) - telecrystals += cost - log_uplink("[key_name(user)] refunded [UI] for [cost] telecrystals using [parent]'s uplink") - if(purchase_log) - purchase_log.total_spent -= cost - to_chat(user, span_notice("[I] refunded.")) - qdel(I) - return + + if(istype(item, /obj/item/stack/telecrystal)) + load_tc(user, item) /datum/component/uplink/proc/interact(datum/source, mob/user) SIGNAL_HANDLER @@ -146,7 +125,6 @@ if(locked) return active = TRUE - update_items(user) if(user) INVOKE_ASYNC(src, .proc/ui_interact, user) // an unlocked uplink blocks also opening the PDA or headset menu @@ -170,44 +148,75 @@ if(!user.mind) return var/list/data = list() - data["telecrystals"] = telecrystals - data["lockable"] = lockable - data["compactMode"] = compact_mode + data["telecrystals"] = uplink_handler.telecrystals + data["progression_points"] = uplink_handler.progression_points + data["current_expected_progression"] = SStraitor.current_global_progression + data["maximum_active_objectives"] = uplink_handler.maximum_active_objectives + data["progression_scaling_deviance"] = SStraitor.progression_scaling_deviance + data["current_progression_scaling"] = SStraitor.current_progression_scaling + + data["maximum_potential_objectives"] = uplink_handler.maximum_potential_objectives + if(uplink_handler.has_objectives) + var/list/potential_objectives = list() + for(var/index in 1 to uplink_handler.potential_objectives.len) + var/datum/traitor_objective/objective = uplink_handler.potential_objectives[index] + var/list/objective_data = objective.uplink_ui_data(user) + objective_data["id"] = index + potential_objectives += list(objective_data) + var/list/active_objectives = list() + for(var/index in 1 to uplink_handler.active_objectives.len) + var/datum/traitor_objective/objective = uplink_handler.active_objectives[index] + var/list/objective_data = objective.uplink_ui_data(user) + objective_data["id"] = index + active_objectives += list(objective_data) + data["potential_objectives"] = potential_objectives + data["active_objectives"] = active_objectives + + var/list/stock_list = uplink_handler.item_stock.Copy() + var/list/extra_purchasable_stock = list() + var/list/extra_purchasable = list() + for(var/datum/uplink_item/item as anything in uplink_handler.extra_purchasable) + if(item in stock_list) + extra_purchasable_stock[REF(item)] = stock_list[item] + stock_list -= item + extra_purchasable += list(list( + "id" = item.type, + "name" = item.name, + "cost" = item.cost, + "desc" = item.desc, + "category" = item.category? initial(item.category.name) : null, + "purchasable_from" = item.purchasable_from, + "restricted" = item.restricted, + "limited_stock" = item.limited_stock, + "restricted_roles" = item.restricted_roles, + "progression_minimum" = item.progression_minimum, + "ref" = REF(item) + )) + + var/list/remaining_stock = list() + for(var/datum/uplink_item/item as anything in stock_list) + remaining_stock[item.type] = stock_list[item] + data["extra_purchasable"] = extra_purchasable + data["extra_purchasable_stock"] = extra_purchasable_stock + data["current_stock"] = remaining_stock return data /datum/component/uplink/ui_static_data(mob/user) var/list/data = list() - data["categories"] = list() - for(var/category in uplink_items) - var/list/cat = list( - "name" = category, - "items" = (category == selected_cat ? list() : null)) - for(var/item in uplink_items[category]) - var/datum/uplink_item/I = uplink_items[category][item] - if(I.limited_stock == 0) - continue - if(length(I.restricted_roles)) - if(!debug && !(user.mind.assigned_role.title in I.restricted_roles)) - continue - if(I.restricted_species) - if(ishuman(user)) - var/is_inaccessible = TRUE - var/mob/living/carbon/human/H = user - for(var/F in I.restricted_species) - if(F == H.dna.species.id || debug) - is_inaccessible = FALSE - break - if(is_inaccessible) - continue - cat["items"] += list(list( - "name" = I.name, - "cost" = I.cost, - "desc" = I.desc, - )) - data["categories"] += list(cat) + data["uplink_flag"] = uplink_handler.uplink_flag + data["has_progression"] = uplink_handler.has_progression + data["has_objectives"] = uplink_handler.has_objectives + data["lockable"] = lockable + data["assigned_role"] = uplink_handler.assigned_role + data["debug"] = uplink_handler.debug_mode return data -/datum/component/uplink/ui_act(action, params) +/datum/component/uplink/ui_assets(mob/user) + return list( + get_asset_datum(/datum/asset/json/uplink) + ) + +/datum/component/uplink/ui_act(action, params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return @@ -215,49 +224,63 @@ return switch(action) if("buy") - var/item_name = params["name"] - var/list/buyable_items = list() - for(var/category in uplink_items) - buyable_items += uplink_items[category] - if(item_name in buyable_items) - var/datum/uplink_item/I = buyable_items[item_name] - MakePurchase(usr, I) - return TRUE + var/datum/uplink_item/item + if(params["ref"]) + item = locate(params["ref"]) in uplink_handler.extra_purchasable + if(!item) + return + else + var/datum/uplink_item/item_path = text2path(params["path"]) + if(!ispath(item_path, /datum/uplink_item)) + return + item = SStraitor.uplink_items_by_type[item_path] + uplink_handler.purchase_item(ui.user, item) if("lock") active = FALSE locked = TRUE - telecrystals += hidden_crystals - hidden_crystals = 0 SStgui.close_uis(src) - if("select") - selected_cat = params["category"] - return TRUE - if("compact_toggle") - compact_mode = !compact_mode + + if(!uplink_handler.has_objectives) + return TRUE + + if(uplink_handler.owner?.current != ui.user || !uplink_handler.can_take_objectives) + return TRUE + + switch(action) + if("regenerate_objectives") + uplink_handler.generate_objectives() return TRUE -/datum/component/uplink/proc/MakePurchase(mob/user, datum/uplink_item/U) - if(!istype(U)) - return - if (!user || user.incapacitated()) - return - if(U.restricted_roles.len && !(user.mind.assigned_role.title in U.restricted_roles)) + var/list/objectives + switch(action) + if("start_objective") + objectives = uplink_handler.potential_objectives + if("objective_act", "finish_objective", "objective_abort") + objectives = uplink_handler.active_objectives + + if(!objectives) return - if(telecrystals < U.cost || U.limited_stock == 0) - return - telecrystals -= U.cost + var/objective_index = round(text2num(params["index"])) + if(objective_index < 1 || objective_index > length(objectives)) + return TRUE + var/datum/traitor_objective/objective = objectives[objective_index] - U.purchase(user, src) - - if(U.limited_stock > 0) - U.limited_stock -= 1 - - SSblackbox.record_feedback("nested tally", "traitor_uplink_items_bought", 1, list("[initial(U.name)]", "[U.cost]")) + // Objective actions + switch(action) + if("start_objective") + uplink_handler.take_objective(ui.user, objective) + if("objective_act") + uplink_handler.ui_objective_act(ui.user, objective, params["objective_action"]) + if("finish_objective") + if(!objective.finish_objective(ui.user)) + return + uplink_handler.complete_objective(objective) + if("objective_abort") + uplink_handler.abort_objective(objective) return TRUE // Implant signal responses - /datum/component/uplink/proc/implant_activation() SIGNAL_HANDLER @@ -286,7 +309,7 @@ /datum/component/uplink/proc/new_implant(datum/source, datum/component/uplink/uplink) SIGNAL_HANDLER - uplink.telecrystals += telecrystals + uplink.add_telecrystals(uplink_handler.telecrystals) return COMPONENT_DELETE_NEW_IMPLANT // PDA signal responses diff --git a/code/datums/id_trim/syndicate.dm b/code/datums/id_trim/syndicate.dm index aa03514b6b1..995741e24b8 100644 --- a/code/datums/id_trim/syndicate.dm +++ b/code/datums/id_trim/syndicate.dm @@ -12,7 +12,7 @@ /// Trim for Syndicate mobs, outfits and corpses. /datum/id_trim/syndicom/captain assignment = "Syndicate Ship Captain" - access = list(ACCESS_SYNDICATE, ACCESS_ROBOTICS) + access = list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER, ACCESS_ROBOTICS) /// Trim for Syndicate mobs, outfits and corpses. /datum/id_trim/battlecruiser @@ -23,7 +23,7 @@ /// Trim for Syndicate mobs, outfits and corpses. /datum/id_trim/battlecruiser/captain assignment = "Syndicate Battlecruiser Captain" - access = SYNDICATE_ACCESS + access = list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER) /// Trim for Chameleon ID cards. Many outfits, nuke ops and some corpses hold Chameleon ID cards. /datum/id_trim/chameleon diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 74cc15d85bd..9c605f84afe 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -621,14 +621,47 @@ wipe_memory()//Remove any memory they may have had. log_admin("[key_name(usr)] removed [current]'s uplink.") if("crystals") - if(check_rights(R_FUN, 0)) + if(check_rights(R_FUN)) var/datum/component/uplink/U = find_syndicate_uplink() if(U) - var/crystals = input("Amount of telecrystals for [key]","Syndicate uplink", U.telecrystals) as null | num + var/crystals = input("Amount of telecrystals for [key]","Syndicate uplink", U.uplink_handler.telecrystals) as null | num if(!isnull(crystals)) - U.telecrystals = crystals + U.uplink_handler.telecrystals = crystals message_admins("[key_name_admin(usr)] changed [current]'s telecrystal count to [crystals].") log_admin("[key_name(usr)] changed [current]'s telecrystal count to [crystals].") + if("progression") + if(!check_rights(R_FUN)) + return + var/datum/component/uplink/uplink = find_syndicate_uplink() + if(!uplink) + return + var/progression = input("Set new progression points for [key]","Syndicate uplink", uplink.uplink_handler.progression_points) as null | num + if(isnull(progression)) + return + uplink.uplink_handler.progression_points = progression + message_admins("[key_name_admin(usr)] changed [current]'s progression point count to [progression].") + log_admin("[key_name(usr)] changed [current]'s progression point count to [progression].") + uplink.uplink_handler.update_objectives() + uplink.uplink_handler.generate_objectives() + if("give_objective") + if(!check_rights(R_FUN)) + return + var/datum/component/uplink/uplink = find_syndicate_uplink() + if(!uplink || !uplink.uplink_handler) + return + var/list/all_objectives = subtypesof(/datum/traitor_objective) + var/objective_typepath = tgui_input_list(usr, "Select objective", "Select objective", all_objectives) + if(!objective_typepath) + return + var/datum/traitor_objective/objective = uplink.uplink_handler.try_add_objective(objective_typepath) + if(objective) + message_admins("[key_name_admin(usr)] gave [current] a traitor objective ([objective_typepath]).") + log_admin("[key_name(usr)] gave [current] a traitor objective ([objective_typepath]).") + objective.forced = TRUE + else + to_chat(usr, span_warning("Failed to generate the objective!")) + message_admins("[key_name_admin(usr)] failed to give [current] a traitor objective ([objective_typepath]).") + log_admin("[key_name(usr)] failed to give [current] a traitor objective ([objective_typepath]).") if("uplink") if(!give_uplink(antag_datum = has_antag_datum(/datum/antagonist/traitor))) to_chat(usr, span_danger("Equipping a syndicate failed!")) @@ -688,10 +721,6 @@ if(!(has_antag_datum(/datum/antagonist/traitor))) add_antag_datum(/datum/antagonist/traitor) -/datum/mind/proc/make_contractor_support() - if(!(has_antag_datum(/datum/antagonist/traitor/contractor_support))) - add_antag_datum(/datum/antagonist/traitor/contractor_support) - /datum/mind/proc/make_changeling() var/datum/antagonist/changeling/C = has_antag_datum(/datum/antagonist/changeling) if(!C) diff --git a/code/datums/shuttles.dm b/code/datums/shuttles.dm index 51fba8f4db6..9bb11523566 100644 --- a/code/datums/shuttles.dm +++ b/code/datums/shuttles.dm @@ -693,6 +693,26 @@ suffix = "bounty" name = "Bounty Hunter Ship" +/datum/map_template/shuttle/starfury + port_id = "starfury" + who_can_purchase = null + +/datum/map_template/shuttle/starfury/fighter_one + suffix = "fighter1" + name = "SBC Starfury Fighter (1)" + +/datum/map_template/shuttle/starfury/fighter_two + suffix = "fighter2" + name = "SBC Starfury Fighter (2)" + +/datum/map_template/shuttle/starfury/fighter_three + suffix = "fighter3" + name = "SBC Starfury Fighter (3)" + +/datum/map_template/shuttle/starfury/corvette + suffix = "corvette" + name = "SBC Starfury Corvette" + /datum/map_template/shuttle/ruin/caravan_victim suffix = "caravan_victim" name = "Small Freighter" diff --git a/code/game/area/areas/shuttles.dm b/code/game/area/areas/shuttles.dm index 88f0474f76c..ddd529c6a3f 100644 --- a/code/game/area/areas/shuttles.dm +++ b/code/game/area/areas/shuttles.dm @@ -192,6 +192,9 @@ /area/shuttle/sbc_fighter2 name = "SBC Fighter 2" +/area/shuttle/sbc_fighter3 + name = "SBC Fighter 3" + /area/shuttle/sbc_corvette name = "SBC corvette" diff --git a/code/game/gamemodes/dynamic/dynamic.dm b/code/game/gamemodes/dynamic/dynamic.dm index b2dc5b89a9f..2f11149ce67 100644 --- a/code/game/gamemodes/dynamic/dynamic.dm +++ b/code/game/gamemodes/dynamic/dynamic.dm @@ -730,7 +730,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1) if(CONFIG_GET(flag/protect_roles_from_antagonist)) ruleset.restricted_roles |= ruleset.protected_roles if(CONFIG_GET(flag/protect_assistant_from_antagonist)) - ruleset.restricted_roles |= "Assistant" + ruleset.restricted_roles |= JOB_ASSISTANT /// Refund threat, but no more than threat_level. /datum/game_mode/dynamic/proc/refund_threat(regain) diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index 9fea80d9502..a1041d15a6c 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -100,14 +100,6 @@ GLOBAL_LIST(admin_objective_list) //Prefilled admin assignable objective list /datum/objective/proc/get_target() return target -/datum/objective/proc/get_crewmember_minds() - . = list() - for(var/V in GLOB.data_core.locked) - var/datum/data/record/R = V - var/datum/mind/M = R.fields["mindref"] - if(M) - . += M - //dupe_search_range is a list of antag datums / minds / teams /datum/objective/proc/find_target(dupe_search_range, blacklist) var/list/datum/mind/owners = get_owners() @@ -575,6 +567,8 @@ GLOBAL_LIST_EMPTY(possible_items) var/approved_targets = list() check_items: for(var/datum/objective_item/possible_item in GLOB.possible_items) + if(possible_item.objective_type != OBJECTIVE_ITEM_TYPE_NORMAL) + continue if(!is_unique_objective(possible_item.targetitem,dupe_search_range)) continue for(var/datum/mind/M in owners) diff --git a/code/game/gamemodes/objective_items.dm b/code/game/gamemodes/objective_items.dm index 433d2a2a03a..a738464dbbf 100644 --- a/code/game/gamemodes/objective_items.dm +++ b/code/game/gamemodes/objective_items.dm @@ -3,10 +3,14 @@ /datum/objective_item var/name = "A silly bike horn! Honk!" var/targetitem = /obj/item/bikehorn //typepath of the objective item + var/list/valid_containers = list() // Valid containers that the target item can be in. var/difficulty = 9001 //vaguely how hard it is to do this objective var/list/excludefromjob = list() //If you don't want a job to get a certain objective (no captain stealing his own medal, etcetc) var/list/altitems = list() //Items which can serve as an alternative to the objective (darn you blueprints) var/list/special_equipment = list() + var/objective_type = OBJECTIVE_ITEM_TYPE_NORMAL + /// Whether this item exists on the station map at the start of a round. + var/exists_on_map = FALSE /datum/objective_item/proc/check_special_completion() //for objectives with special checks (is that slime extract unused? does that intellicard have an ai in it? etcetc) return 1 @@ -25,50 +29,140 @@ GLOB.possible_items -= src return ..() +// Low risk steal objectives +/datum/objective_item/steal/low_risk + objective_type = OBJECTIVE_ITEM_TYPE_TRAITOR + +/datum/objective_item/steal/low_risk/techboard + name = "the (TECH BOARD) circuitboard in secure tech storage" + var/circuitboard_name + excludefromjob = list( + JOB_CAPTAIN, + JOB_CHIEF_ENGINEER, + JOB_RESEARCH_DIRECTOR, + ) + exists_on_map = TRUE + +/datum/objective_item/steal/low_risk/techboard/aiupload + targetitem = /obj/item/circuitboard/computer/aiupload + circuitboard_name = "ai upload" + +/datum/objective_item/steal/low_risk/techboard/borgupload + targetitem = /obj/item/circuitboard/computer/borgupload + circuitboard_name = "cyborg upload" + +/datum/objective_item/steal/low_risk/techboard/New() + . = ..() + name = replacetext(name, "(TECH BOARD)", circuitboard_name) + +/datum/objective_item/steal/low_risk/aicard + targetitem = /obj/item/aicard + name = "an intelliCard" + excludefromjob = list( + JOB_CAPTAIN, + JOB_CHIEF_ENGINEER, + JOB_RESEARCH_DIRECTOR, + JOB_CHIEF_MEDICAL_OFFICER, + JOB_HEAD_OF_SECURITY, + JOB_STATION_ENGINEER, + JOB_SCIENTIST, + JOB_ATMOSPHERIC_TECHNICIAN, + ) + exists_on_map = TRUE + +// Unique-ish low risk objectives +/datum/objective_item/steal/low_risk/bartender_shotgun + name = "the bartender's shotgun" + targetitem = /obj/item/gun/ballistic/shotgun/doublebarrel + excludefromjob = list(JOB_BARTENDER) + exists_on_map = TRUE + +/datum/objective_item/steal/low_risk/fireaxe + name = "a fire axe" + targetitem = /obj/item/fireaxe + excludefromjob = list(JOB_CHIEF_ENGINEER,JOB_STATION_ENGINEER,JOB_ATMOSPHERIC_TECHNICIAN) + exists_on_map = TRUE + +/datum/objective_item/steal/low_risk/nullrod + name = "the chaplain's null rod" + targetitem = /obj/item/nullrod + excludefromjob = list(JOB_CHAPLAIN) + exists_on_map = TRUE + +/datum/objective_item/steal/low_risk/clown_shoes + name = "the clown's shoes" + targetitem = /obj/item/clothing/shoes/clown_shoes + excludefromjob = list(JOB_CLOWN, JOB_CARGO_TECHNICIAN, JOB_QUARTERMASTER) + +/datum/objective_item/steal/low_risk/clown_shoes/TargetExists() + for(var/mob/player as anything in GLOB.player_list) + if(player.stat == DEAD) + continue + if(player.job != JOB_CLOWN) + continue + if(is_centcom_level(player.z)) + continue + return TRUE + return FALSE + +/datum/objective_item/steal/low_risk/cargo_budget + name = "cargo's departmental budget" + targetitem = /obj/item/card/id/departmental_budget/car + excludefromjob = list(JOB_QUARTERMASTER, JOB_CARGO_TECHNICIAN) + exists_on_map = TRUE + +// High risk steal objectives /datum/objective_item/steal/caplaser - name = "the captain's antique laser gun." + name = "the captain's antique laser gun" targetitem = /obj/item/gun/energy/laser/captain difficulty = 5 excludefromjob = list(JOB_CAPTAIN) + exists_on_map = TRUE /datum/objective_item/steal/hoslaser - name = "the head of security's personal laser gun." + name = "the head of security's personal laser gun" targetitem = /obj/item/gun/energy/e_gun/hos difficulty = 10 excludefromjob = list(JOB_HEAD_OF_SECURITY) + exists_on_map = TRUE /datum/objective_item/steal/handtele - name = "a hand teleporter." + name = "a hand teleporter" targetitem = /obj/item/hand_tele difficulty = 5 excludefromjob = list(JOB_CAPTAIN, JOB_RESEARCH_DIRECTOR) + exists_on_map = TRUE /datum/objective_item/steal/jetpack - name = "the Captain's jetpack." + name = "the Captain's jetpack" targetitem = /obj/item/tank/jetpack/oxygen/captain difficulty = 5 excludefromjob = list(JOB_CAPTAIN) + exists_on_map = TRUE /datum/objective_item/steal/magboots - name = "the chief engineer's advanced magnetic boots." + name = "the chief engineer's advanced magnetic boots" targetitem = /obj/item/clothing/shoes/magboots/advance difficulty = 5 excludefromjob = list(JOB_CHIEF_ENGINEER) + exists_on_map = TRUE /datum/objective_item/steal/capmedal - name = "the medal of captaincy." + name = "the medal of captaincy" targetitem = /obj/item/clothing/accessory/medal/gold/captain difficulty = 5 excludefromjob = list(JOB_CAPTAIN) + exists_on_map = TRUE /datum/objective_item/steal/hypo - name = "the hypospray." + name = "the hypospray" targetitem = /obj/item/reagent_containers/hypospray/cmo difficulty = 5 excludefromjob = list(JOB_CHIEF_MEDICAL_OFFICER) + exists_on_map = TRUE /datum/objective_item/steal/nukedisc - name = "the nuclear authentication disk." + name = "the nuclear authentication disk" targetitem = /obj/item/disk/nuclear difficulty = 5 excludefromjob = list(JOB_CAPTAIN) @@ -77,36 +171,42 @@ return !N.fake /datum/objective_item/steal/reflector - name = "a reflector trenchcoat." + name = "a reflector trenchcoat" targetitem = /obj/item/clothing/suit/hooded/ablative difficulty = 3 excludefromjob = list(JOB_HEAD_OF_SECURITY, JOB_WARDEN) + exists_on_map = TRUE /datum/objective_item/steal/reactive - name = "the reactive teleport armor." + name = "the reactive teleport armor" targetitem = /obj/item/clothing/suit/armor/reactive/teleport difficulty = 5 excludefromjob = list(JOB_RESEARCH_DIRECTOR) + exists_on_map = TRUE /datum/objective_item/steal/documents - name = "any set of secret documents of any organization." + name = "any set of secret documents of any organization" targetitem = /obj/item/documents //Any set of secret documents. Doesn't have to be NT's difficulty = 5 + exists_on_map = TRUE /datum/objective_item/steal/nuke_core - name = "the heavily radioactive plutonium core from the onboard self-destruct. Take care to wear the proper safety equipment when extracting the core!" + name = "the heavily radioactive plutonium core from the onboard self-destruct" + valid_containers = list(/obj/item/nuke_core_container) targetitem = /obj/item/nuke_core difficulty = 15 + exists_on_map = TRUE /datum/objective_item/steal/nuke_core/New() special_equipment += /obj/item/storage/box/syndie_kit/nuke ..() /datum/objective_item/steal/hdd_extraction - name = "the source code for Project Goon from the master R&D server mainframe." + name = "the source code for Project Goon from the master R&D server mainframe" targetitem = /obj/item/computer_hardware/hard_drive/cluster/hdd_theft difficulty = 10 excludefromjob = list(JOB_RESEARCH_DIRECTOR, JOB_SCIENTIST, JOB_ROBOTICIST, JOB_GENETICIST) + exists_on_map = TRUE /datum/objective_item/steal/hdd_extraction/New() special_equipment += /obj/item/paper/guides/antag/hdd_extraction @@ -114,8 +214,9 @@ /datum/objective_item/steal/supermatter - name = "a sliver of a supermatter crystal. Be sure to use the proper safety equipment when extracting the sliver!" + name = "a sliver of a supermatter crystal" targetitem = /obj/item/nuke_core/supermatter_sliver + valid_containers = list(/obj/item/nuke_core_container/supermatter) difficulty = 15 /datum/objective_item/steal/supermatter/New() @@ -127,7 +228,7 @@ //Items with special checks! /datum/objective_item/steal/plasma - name = "28 moles of plasma (full tank)." + name = "28 moles of plasma (full tank)" targetitem = /obj/item/tank difficulty = 3 excludefromjob = list( @@ -144,7 +245,7 @@ /datum/objective_item/steal/functionalai - name = "a functional AI." + name = "a functional AI" targetitem = /obj/item/aicard difficulty = 20 //beyond the impossible @@ -155,11 +256,12 @@ return FALSE /datum/objective_item/steal/blueprints - name = "the station blueprints." + name = "the station blueprints" targetitem = /obj/item/areaeditor/blueprints difficulty = 10 excludefromjob = list(JOB_CHIEF_ENGINEER) altitems = list(/obj/item/photo) + exists_on_map = TRUE /datum/objective_item/steal/blueprints/check_special_completion(obj/item/I) if(istype(I, /obj/item/areaeditor/blueprints)) @@ -171,7 +273,7 @@ return FALSE /datum/objective_item/steal/slime - name = "an unused sample of slime extract." + name = "an unused sample of slime extract" targetitem = /obj/item/slime_extract difficulty = 3 excludefromjob = list(JOB_RESEARCH_DIRECTOR, JOB_SCIENTIST) @@ -182,10 +284,11 @@ return 0 /datum/objective_item/steal/blackbox - name = "The Blackbox." + name = "the Blackbox" targetitem = /obj/item/blackbox difficulty = 10 excludefromjob = list(JOB_CHIEF_ENGINEER, JOB_STATION_ENGINEER, JOB_ATMOSPHERIC_TECHNICIAN) + exists_on_map = TRUE //Unique Objectives /datum/objective_item/special/New() @@ -201,37 +304,38 @@ //Old ninja objectives. /datum/objective_item/special/pinpointer - name = "the captain's pinpointer." + name = "the captain's pinpointer" targetitem = /obj/item/pinpointer/nuke difficulty = 10 + exists_on_map = TRUE /datum/objective_item/special/aegun - name = "an advanced energy gun." + name = "an advanced energy gun" targetitem = /obj/item/gun/energy/e_gun/nuclear difficulty = 10 /datum/objective_item/special/ddrill - name = "a diamond drill." + name = "a diamond drill" targetitem = /obj/item/pickaxe/drill/diamonddrill difficulty = 10 /datum/objective_item/special/boh - name = "a bag of holding." + name = "a bag of holding" targetitem = /obj/item/storage/backpack/holding difficulty = 10 /datum/objective_item/special/hypercell - name = "a hyper-capacity power cell." + name = "a hyper-capacity power cell" targetitem = /obj/item/stock_parts/cell/hyper difficulty = 5 /datum/objective_item/special/laserpointer - name = "a laser pointer." + name = "a laser pointer" targetitem = /obj/item/laser_pointer difficulty = 5 /datum/objective_item/special/corgimeat - name = "a piece of corgi meat." + name = "a piece of corgi meat" targetitem = /obj/item/food/meat/slab/corgi difficulty = 5 @@ -248,7 +352,7 @@ //Stack objectives get their own subtype /datum/objective_item/stack - name = "5 cardboard." + name = "5 cardboard" targetitem = /obj/item/stack/sheet/cardboard difficulty = 9001 @@ -261,16 +365,16 @@ return found_amount>=target_amount /datum/objective_item/stack/diamond - name = "10 diamonds." + name = "10 diamonds" targetitem = /obj/item/stack/sheet/mineral/diamond difficulty = 10 /datum/objective_item/stack/gold - name = "50 gold bars." + name = "50 gold bars" targetitem = /obj/item/stack/sheet/mineral/gold difficulty = 15 /datum/objective_item/stack/uranium - name = "25 refined uranium bars." + name = "25 refined uranium bars" targetitem = /obj/item/stack/sheet/mineral/uranium difficulty = 10 diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 5b8f8bf6c85..e3b1a94c4bc 100755 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -17,10 +17,16 @@ circuit = /obj/item/circuitboard/computer/communications light_color = LIGHT_COLOR_BLUE + /// If the battlecruiser has been called + var/static/battlecruiser_called = FALSE + /// Cooldown for important actions, such as messaging CentCom or other sectors COOLDOWN_DECLARE(static/important_action_cooldown) COOLDOWN_DECLARE(static/emergency_access_cooldown) + /// Whether syndicate mode is enabled or not. + var/syndicate = FALSE + /// The current state of the UI var/state = STATE_MAIN @@ -53,6 +59,33 @@ ///when was emergency access last toggled var/last_toggled +/obj/machinery/computer/communications/syndicate + icon_screen = "commsyndie" + circuit = /obj/item/circuitboard/computer/communications/syndicate + req_access = list(ACCESS_SYNDICATE_LEADER) + light_color = LIGHT_COLOR_BLOOD_MAGIC + + syndicate = TRUE + +/obj/machinery/computer/communications/syndicate/emag_act(mob/user, obj/item/card/emag/emag_card) + return + +/obj/machinery/computer/communications/syndicate/can_buy_shuttles(mob/user) + return FALSE + +/obj/machinery/computer/communications/syndicate/can_send_messages_to_other_sectors(mob/user) + return FALSE + +/obj/machinery/computer/communications/syndicate/authenticated_as_silicon_or_captain(mob/user) + return FALSE + +/obj/machinery/computer/communications/syndicate/get_communication_players() + var/list/targets = list() + for(var/mob/target in GLOB.player_list) + if(target.stat == DEAD || target.z == z || target.mind?.has_antag_datum(/datum/antagonist/battlecruiser)) + targets += target + return targets + /obj/machinery/computer/communications/Initialize(mapload) . = ..() GLOB.shuttle_caller_list += src @@ -82,8 +115,22 @@ else return ..() -/obj/machinery/computer/communications/emag_act(mob/user) - if (obj_flags & EMAGGED) +/obj/machinery/computer/communications/emag_act(mob/user, obj/item/card/emag/emag_card) + if(istype(emag_card, /obj/item/card/emag/battlecruiser)) + if(!user.mind?.has_antag_datum(/datum/antagonist/traitor)) + to_chat(user, span_danger("You get the feeling this is a bad idea.")) + return + var/obj/item/card/emag/battlecruiser/caller_card = emag_card + if(battlecruiser_called) + to_chat(user, span_danger("The card reports a long-range message already sent to the Syndicate fleet...?")) + return + battlecruiser_called = TRUE + caller_card.use_charge(user) + addtimer(CALLBACK(GLOBAL_PROC, /proc/summon_battlecruiser), rand(20 SECONDS, 1 MINUTES)) + playsound(src, 'sound/machines/terminal_alert.ogg', 50, FALSE) + return + + if(obj_flags & EMAGGED) return obj_flags |= EMAGGED if (authenticated) @@ -125,7 +172,7 @@ message.answered = answer_index message.answer_callback.InvokeAsync() if ("callShuttle") - if (!authenticated(usr)) + if (!authenticated(usr) || syndicate) return var/reason = trim(params["reason"], MAX_MESSAGE_LEN) if (length(reason) < CALL_SHUTTLE_REASON_LENGTH) @@ -180,7 +227,7 @@ return emergency_meeting(usr) if ("makePriorityAnnouncement") - if (!authenticated_as_silicon_or_captain(usr)) + if (!authenticated_as_silicon_or_captain(usr) && !syndicate) return make_announcement(usr) if ("messageAssociates") @@ -196,11 +243,14 @@ if (emagged) message_syndicate(message, usr) to_chat(usr, span_danger("SYSERR @l(19833)of(transmit.dm): !@$ MESSAGE TRANSMITTED TO SYNDICATE COMMAND.")) + else if(syndicate) + message_syndicate(message, usr) + to_chat(usr, span_danger("Message transmitted to Syndicate Command.")) else message_centcom(message, usr) to_chat(usr, span_notice("Message transmitted to Central Command.")) - var/associates = emagged ? "the Syndicate": "CentCom" + var/associates = (emagged || syndicate) ? "the Syndicate": "CentCom" usr.log_talk(message, LOG_SAY, tag = "message to [associates]") deadchat_broadcast(" has messaged [associates], \"[message]\" at [span_name("[get_area_name(usr, TRUE)]")].", span_name("[usr.real_name]"), usr, message_type = DEADCHAT_ANNOUNCEMENT) COOLDOWN_START(src, important_action_cooldown, IMPORTANT_ACTION_COOLDOWN) @@ -239,7 +289,7 @@ state = STATE_MAIN if ("recallShuttle") // AIs cannot recall the shuttle - if (!authenticated(usr) || issilicon(usr)) + if (!authenticated(usr) || issilicon(usr) || syndicate) return SSshuttle.cancelEvac(usr) if ("requestNukeCodes") @@ -421,6 +471,7 @@ var/list/data = list( "authenticated" = FALSE, "emagged" = FALSE, + "syndicate" = syndicate, ) var/ui_state = issilicon(user) ? cyborg_state : state @@ -445,7 +496,7 @@ data["canLogOut"] = !issilicon(user) data["page"] = ui_state - if (obj_flags & EMAGGED) + if ((obj_flags & EMAGGED) || syndicate) data["emagged"] = TRUE switch (ui_state) @@ -466,6 +517,8 @@ data["authorizeName"] = authorize_name data["canLogOut"] = !issilicon(user) data["shuttleCanEvacOrFailReason"] = SSshuttle.canEvac(user) + if(syndicate) + data["shuttleCanEvacOrFailReason"] = "You cannot summon the shuttle from this console!" if (authenticated_as_non_silicon_captain(user)) data["canMessageAssociates"] = TRUE @@ -491,10 +544,12 @@ data["alertLevelTick"] = alert_level_tick data["canMakeAnnouncement"] = TRUE data["canSetAlertLevel"] = issilicon(user) ? "NO_SWIPE_NEEDED" : "SWIPE_NEEDED" + else if(syndicate) + data["canMakeAnnouncement"] = TRUE if (SSshuttle.emergency.mode != SHUTTLE_IDLE && SSshuttle.emergency.mode != SHUTTLE_RECALL) data["shuttleCalled"] = TRUE - data["shuttleRecallable"] = SSshuttle.canRecall() + data["shuttleRecallable"] = SSshuttle.canRecall() || syndicate if (SSshuttle.emergencyCallAmount) data["shuttleCalledPreviously"] = TRUE @@ -580,6 +635,8 @@ /obj/machinery/computer/communications/proc/has_communication() var/turf/current_turf = get_turf(src) var/z_level = current_turf.z + if(syndicate) + return TRUE return is_station_level(z_level) || is_centcom_level(z_level) /obj/machinery/computer/communications/proc/set_state(mob/user, new_state) @@ -665,9 +722,13 @@ to_chat(user, span_warning("You find yourself unable to speak.")) else input = user.treat_message(input) //Adds slurs and so on. Someone should make this use languages too. - SScommunications.make_announcement(user, is_ai, input) + var/list/players = get_communication_players() + SScommunications.make_announcement(user, is_ai, input, syndicate || (obj_flags & EMAGGED), players) deadchat_broadcast(" made a priority announcement from [span_name("[get_area_name(usr, TRUE)]")].", span_name("[user.real_name]"), user, message_type=DEADCHAT_ANNOUNCEMENT) +/obj/machinery/computer/communications/proc/get_communication_players() + return GLOB.player_list + /obj/machinery/computer/communications/proc/post_status(command, data1, data2) var/datum/radio_frequency/frequency = SSradio.return_frequency(FREQ_STATUS_DISPLAYS) diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index 52f9ce67c56..c6e8b55f3d6 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -21,6 +21,7 @@ /obj/machinery/computer/med_data/syndie icon_keyboard = "syndie_key" + req_one_access = list(ACCESS_SYNDICATE) /obj/machinery/computer/med_data/ui_interact(mob/user) . = ..() diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index bf3b0bff237..0da8862802c 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -188,6 +188,7 @@ /obj/machinery/computer/secure_data/syndie icon_keyboard = "syndie_key" + req_one_access = list(ACCESS_SYNDICATE) /obj/machinery/computer/secure_data/laptop name = "security laptop" diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm index 3fcc5602b5a..f8f8b50b6be 100644 --- a/code/game/objects/effects/landmarks.dm +++ b/code/game/objects/effects/landmarks.dm @@ -54,8 +54,8 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark) // START LANDMARKS FOLLOW. Don't change the names unless // you are refactoring shitty landmark code. /obj/effect/landmark/start/assistant - name = "Assistant" - icon_state = "Assistant" //icon_state is case sensitive. why are all of these capitalized? because fuck you that's why + name = JOB_ASSISTANT + icon_state = JOB_ASSISTANT //icon_state is case sensitive. why are all of these capitalized? because fuck you that's why /obj/effect/landmark/start/assistant/override jobspawn_override = TRUE @@ -166,8 +166,8 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark) icon_state = "Roboticist" /obj/effect/landmark/start/research_director - name = "Research Director" - icon_state = "Research Director" + name = JOB_RESEARCH_DIRECTOR + icon_state = JOB_RESEARCH_DIRECTOR /obj/effect/landmark/start/geneticist name = "Geneticist" diff --git a/code/game/objects/effects/misc.dm b/code/game/objects/effects/misc.dm index 4c080dbd5b5..9a9de82e9bf 100644 --- a/code/game/objects/effects/misc.dm +++ b/code/game/objects/effects/misc.dm @@ -46,6 +46,7 @@ icon_state = "white" plane = LIGHTING_PLANE blend_mode = BLEND_ADD + luminosity = 1 /obj/effect/abstract/marker name = "marker" diff --git a/code/game/objects/items/cardboard_cutouts.dm b/code/game/objects/items/cardboard_cutouts.dm index f6d55bc64dc..14b95f61a0c 100644 --- a/code/game/objects/items/cardboard_cutouts.dm +++ b/code/game/objects/items/cardboard_cutouts.dm @@ -16,7 +16,7 @@ /obj/item/cardboard_cutout/Initialize(mapload) . = ..() possible_appearances = sort_list(list( - "Assistant" = image(icon = src.icon, icon_state = "cutout_greytide"), + JOB_ASSISTANT = image(icon = src.icon, icon_state = "cutout_greytide"), "Clown" = image(icon = src.icon, icon_state = "cutout_clown"), "Mime" = image(icon = src.icon, icon_state = "cutout_mime"), "Traitor" = image(icon = src.icon, icon_state = "cutout_traitor"), @@ -116,7 +116,7 @@ if(!deceptive) add_atom_colour("#FFD7A7", FIXED_COLOUR_PRIORITY) switch(new_appearance) - if("Assistant") + if(JOB_ASSISTANT) name = "[pick(GLOB.first_names_male)] [pick(GLOB.last_names)]" desc = "A cardboat cutout of an assistant." icon_state = "cutout_greytide" diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index 6c94e1daab7..09560571169 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -923,6 +923,21 @@ registered_name = "Syndicate" trim = /datum/id_trim/syndicom/captain + +/obj/item/card/id/advanced/black/syndicate_command/captain_id/syndie_spare + name = "syndicate captain's spare ID" + desc = "The spare ID of the Dark Lord himself." + registered_name = "Captain" + registered_age = null + +/obj/item/card/id/advanced/black/syndicate_command/captain_id/syndie_spare/update_label() + if(registered_name == "Captain") + name = "[initial(name)][(!assignment || assignment == "Captain") ? "" : " ([assignment])"]" + update_appearance(UPDATE_ICON) + return + + return ..() + /obj/item/card/id/advanced/debug name = "\improper Debug ID" desc = "A debug ID card. Has ALL the all access, you really shouldn't have this." diff --git a/code/game/objects/items/circuitboards/computer_circuitboards.dm b/code/game/objects/items/circuitboards/computer_circuitboards.dm index ea5e11bd8fd..ca872ce77c3 100644 --- a/code/game/objects/items/circuitboards/computer_circuitboards.dm +++ b/code/game/objects/items/circuitboards/computer_circuitboards.dm @@ -171,6 +171,12 @@ greyscale_colors = CIRCUIT_COLOR_ENGINEERING build_path = /obj/machinery/computer/communications +/obj/item/circuitboard/computer/communications/syndicate + name = "Syndicate Communications (Computer Board)" + greyscale_colors = CIRCUIT_COLOR_ENGINEERING + build_path = /obj/machinery/computer/communications/syndicate + + /obj/item/circuitboard/computer/message_monitor name = "Message Monitor (Computer Board)" greyscale_colors = CIRCUIT_COLOR_ENGINEERING diff --git a/code/game/objects/items/devices/PDA/virus_cart.dm b/code/game/objects/items/devices/PDA/virus_cart.dm index 75ff42e1eb0..7ed4f95ccec 100644 --- a/code/game/objects/items/devices/PDA/virus_cart.dm +++ b/code/game/objects/items/devices/PDA/virus_cart.dm @@ -96,6 +96,7 @@ name = "\improper F.R.A.M.E. cartridge" icon_state = "cart" var/telecrystals = 0 + var/current_progression = 0 /obj/item/cartridge/virus/frame/send_virus(obj/item/pda/target, mob/living/U) if(charges <= 0) @@ -107,11 +108,28 @@ to_chat(U, span_notice("Virus Sent! The unlock code to the target is: [lock_code]")) var/datum/component/uplink/hidden_uplink = target.GetComponent(/datum/component/uplink) if(!hidden_uplink) - hidden_uplink = target.AddComponent(/datum/component/uplink) - hidden_uplink.unlock_code = lock_code + var/datum/mind/target_mind + var/list/backup_players = list() + for(var/datum/mind/player as anything in get_crewmember_minds()) + if(player.assigned_role?.title == target.id?.assignment) + backup_players += player + if(player.name == target.owner) + target_mind = player + break + if(!target_mind) + if(!length(backup_players)) + target_mind = U.mind + else + target_mind = pick(backup_players) + hidden_uplink = target.AddComponent(/datum/component/uplink, target_mind, enabled = TRUE, starting_tc = telecrystals, has_progression = TRUE) + hidden_uplink.uplink_handler.has_objectives = TRUE + hidden_uplink.uplink_handler.owner = target_mind + hidden_uplink.uplink_handler.can_take_objectives = FALSE + hidden_uplink.uplink_handler.progression_points = min(SStraitor.current_global_progression, current_progression) + hidden_uplink.uplink_handler.generate_objectives() + SStraitor.register_uplink_handler(hidden_uplink.uplink_handler) else - hidden_uplink.hidden_crystals += hidden_uplink.telecrystals //Temporarially hide the PDA's crystals, so you can't steal telecrystals. - hidden_uplink.telecrystals = telecrystals + hidden_uplink.add_telecrystals(telecrystals) telecrystals = 0 hidden_uplink.locked = FALSE hidden_uplink.active = TRUE diff --git a/code/game/objects/items/emags.dm b/code/game/objects/items/emags.dm index 60ded665865..f38a5d59660 100644 --- a/code/game/objects/items/emags.dm +++ b/code/game/objects/items/emags.dm @@ -126,3 +126,32 @@ return TRUE to_chat(user, span_warning("[src] is unable to interface with this. It only seems to fit into airlock electronics.")) return FALSE + +/* + * Battlecruiser Access + */ +/obj/item/card/emag/battlecruiser + name = "battlecruiser coordinates upload card" + desc = "An ominous card that contains the location of the station, and when applied to a communications console, \ + the ability to long-distance contact the Syndicate fleet." + icon_state = "battlecruisercaller" + worn_icon_state = "battlecruisercaller" + ///whether we have called the battlecruiser + var/used = FALSE + +/obj/item/card/emag/battlecruiser/proc/use_charge(mob/user) + used = TRUE + to_chat(user, span_boldwarning("You use [src], and it interfaces with the communication console. No going back...")) + +/obj/item/card/emag/battlecruiser/examine(mob/user) + . = ..() + . += span_notice("It can only be used on the communications console.") + +/obj/item/card/emag/battlecruiser/can_emag(atom/target, mob/user) + if(used) + to_chat(user, span_warning("[src] is used up.")) + return FALSE + if(!istype(target, /obj/machinery/computer/communications)) + to_chat(user, span_warning("[src] is unable to interface with this. It only seems to interface with the communication console.")) + return FALSE + return TRUE diff --git a/code/game/objects/items/implants/implantuplink.dm b/code/game/objects/items/implants/implantuplink.dm index dc3cda32d98..f79bc9e66d1 100644 --- a/code/game/objects/items/implants/implantuplink.dm +++ b/code/game/objects/items/implants/implantuplink.dm @@ -9,11 +9,11 @@ /// The uplink flags of the implant uplink inside, only checked during initialisation so modifying it after initialisation will do nothing var/uplink_flag = UPLINK_TRAITORS -/obj/item/implant/uplink/Initialize(mapload, owner, uplink_flag) +/obj/item/implant/uplink/Initialize(mapload, owner, uplink_handler) . = ..() if(!uplink_flag) uplink_flag = src.uplink_flag - var/datum/component/uplink/new_uplink = AddComponent(/datum/component/uplink, _owner = owner, _lockable = TRUE, _enabled = FALSE, uplink_flag = uplink_flag, starting_tc = starting_tc) + var/datum/component/uplink/new_uplink = AddComponent(/datum/component/uplink, owner = owner, lockable = TRUE, enabled = FALSE, uplink_handler_override = uplink_handler, starting_tc = starting_tc) new_uplink.unlock_text = "Your Syndicate Uplink has been cunningly implanted in you, for a small TC fee. Simply trigger the uplink to access it." RegisterSignal(src, COMSIG_COMPONENT_REMOVING, .proc/_component_removal) @@ -33,9 +33,9 @@ name = "implanter (uplink)" imp_type = /obj/item/implant/uplink -/obj/item/implanter/uplink/Initialize(mapload, uplink_flag = UPLINK_TRAITORS) - imp = new imp_type(src, null, uplink_flag) - . = ..() +/obj/item/implanter/uplink/Initialize(mapload, uplink_handler) + imp = new imp_type(src, null, uplink_handler) + return ..() /obj/item/implanter/uplink/precharged name = "implanter (precharged uplink)" diff --git a/code/game/objects/items/stacks/telecrystal.dm b/code/game/objects/items/stacks/telecrystal.dm index 6cd26928b03..5be9a13b253 100644 --- a/code/game/objects/items/stacks/telecrystal.dm +++ b/code/game/objects/items/stacks/telecrystal.dm @@ -16,7 +16,7 @@ if(I?.imp_in) var/datum/component/uplink/hidden_uplink = I.GetComponent(/datum/component/uplink) if(hidden_uplink) - hidden_uplink.telecrystals += amount + hidden_uplink.add_telecrystals(amount) use(amount) to_chat(user, span_notice("You press [src] onto yourself and charge your hidden uplink.")) else diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index 9c8c45733d3..dcb07f09a02 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -309,56 +309,6 @@

Good luck agent. You can burn this document with the supplied lighter.

"} return ..() - -/obj/item/storage/box/syndicate/contractor_loadout/PopulateContents() - new /obj/item/clothing/head/helmet/space/syndicate/contract(src) - new /obj/item/clothing/suit/space/syndicate/contract(src) - new /obj/item/clothing/under/chameleon(src) - new /obj/item/clothing/mask/chameleon(src) - new /obj/item/storage/fancy/cigarettes/cigpack_syndicate(src) - new /obj/item/card/id/advanced/chameleon(src) - new /obj/item/lighter(src) - -/obj/item/storage/box/syndicate/contract_kit/PopulateContents() - new /obj/item/modular_computer/tablet/syndicate_contract_uplink/preset/uplink(src) - new /obj/item/storage/box/syndicate/contractor_loadout(src) - new /obj/item/melee/baton/telescopic/contractor_baton(src) - - // All about 4 TC or less - some nukeops only items, but fit nicely to the theme. - var/list/item_list = list( - /obj/item/storage/backpack/duffelbag/syndie/x4, - /obj/item/storage/box/syndie_kit/throwing_weapons, - /obj/item/gun/syringe/syndicate, - /obj/item/pen/edagger, - /obj/item/pen/sleepy, - /obj/item/flashlight/emp, - /obj/item/reagent_containers/syringe/mulligan, - /obj/item/clothing/shoes/chameleon/noslip, - /obj/item/storage/firstaid/tactical, - /obj/item/encryptionkey/syndicate, - /obj/item/clothing/glasses/thermal/syndi, - /obj/item/slimepotion/slime/sentience/nuclear, - /obj/item/storage/box/syndie_kit/imp_radio, - /obj/item/storage/box/syndie_kit/imp_uplink, - /obj/item/clothing/gloves/krav_maga/combatglovesplus, - /obj/item/gun/ballistic/automatic/c20r/toy/unrestricted/riot, - /obj/item/reagent_containers/hypospray/medipen/stimulants, - /obj/item/storage/box/syndie_kit/imp_freedom, - /obj/item/toy/eightball/haunted - ) - - var/obj/item1 = pick_n_take(item_list) - var/obj/item2 = pick_n_take(item_list) - var/obj/item3 = pick_n_take(item_list) - - // Create two, non repeat items from the list. - new item1(src) - new item2(src) - new item3(src) - - // Paper guide - new /obj/item/paper/contractor_guide(src) - /obj/item/storage/box/syndie_kit name = "box" desc = "A sleek, sturdy box." diff --git a/code/game/objects/structures/fireaxe.dm b/code/game/objects/structures/fireaxe.dm index 2acee858f66..71bfbb2a4f1 100644 --- a/code/game/objects/structures/fireaxe.dm +++ b/code/game/objects/structures/fireaxe.dm @@ -16,7 +16,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/fireaxecabinet, 32) /obj/structure/fireaxecabinet/Initialize(mapload) . = ..() - fireaxe = new + fireaxe = new(src) update_appearance() /obj/structure/fireaxecabinet/Destroy() diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index e123da407fa..5d4aac3c25b 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -193,6 +193,7 @@ GLOBAL_PROTECT(admin_verbs_debug) /client/proc/adventure_manager, /client/proc/load_circuit, /client/proc/cmd_admin_toggle_fov, + /client/proc/cmd_admin_debug_traitor_objectives, ) GLOBAL_LIST_INIT(admin_verbs_possess, list(/proc/possess, /proc/release)) GLOBAL_PROTECT(admin_verbs_possess) diff --git a/code/modules/admin/antag_panel.dm b/code/modules/admin/antag_panel.dm index 0e99742ca82..a70d509c932 100644 --- a/code/modules/admin/antag_panel.dm +++ b/code/modules/admin/antag_panel.dm @@ -188,9 +188,15 @@ GLOBAL_VAR(antag_prototypes) if(U) uplink_info += "take" if (check_rights(R_FUN, 0)) - uplink_info += ", [U.telecrystals] TC" + uplink_info += ", [U.uplink_handler.telecrystals] TC" + if(U.uplink_handler.has_progression) + uplink_info += ", [U.uplink_handler.progression_points] PR" + if(U.uplink_handler.has_objectives) + uplink_info += ", Force Give Objective" else - uplink_info += ", [U.telecrystals] TC" + uplink_info += ", [U.uplink_handler.telecrystals] TC" + if(U.uplink_handler.has_progression) + uplink_info += ", [U.uplink_handler.progression_points] PR" else uplink_info += "give" uplink_info += "." //hiel grammar diff --git a/code/modules/admin/verbs/anonymousnames.dm b/code/modules/admin/verbs/anonymousnames.dm index 2decae6ac38..c6d8a8fc094 100644 --- a/code/modules/admin/verbs/anonymousnames.dm +++ b/code/modules/admin/verbs/anonymousnames.dm @@ -143,7 +143,7 @@ GLOBAL_DATUM(current_anonymous_theme, /datum/anonymous_theme) * Spider Clan = "'Leaping Viper' MSO" * Stations? = "System Port 10" * Arguments: - * * is_ai - boolean to decide whether the name has "Core" (AI) or "Assistant" (Cyborg) + * * is_ai - boolean to decide whether the name has "Core" (AI) or JOB_ASSISTANT (Cyborg) */ /datum/anonymous_theme/proc/anonymous_ai_name(is_ai = FALSE) return pick(GLOB.ai_names) @@ -167,7 +167,7 @@ GLOBAL_DATUM(current_anonymous_theme, /datum/anonymous_theme) /datum/anonymous_theme/employees/anonymous_ai_name(is_ai = FALSE) var/verbs = capitalize(pick(GLOB.ing_verbs)) var/phonetic = pick(GLOB.phonetic_alphabet) - return "Employee [is_ai ? "Core" : "Assistant"] [verbs] [phonetic]" + return "Employee [is_ai ? "Core" : JOB_ASSISTANT] [verbs] [phonetic]" /datum/anonymous_theme/wizards name = "Wizard Academy" diff --git a/code/modules/antagonists/_common/antag_datum.dm b/code/modules/antagonists/_common/antag_datum.dm index 46d26aa36d7..e928b76830d 100644 --- a/code/modules/antagonists/_common/antag_datum.dm +++ b/code/modules/antagonists/_common/antag_datum.dm @@ -158,7 +158,7 @@ GLOBAL_LIST_EMPTY(antagonists) replace_banned_player() else if(owner.current.client?.holder && (CONFIG_GET(flag/auto_deadmin_antagonists) || owner.current.client.prefs?.toggles & DEADMIN_ANTAGONIST)) owner.current.client.holder.auto_deadmin() - if(!soft_antag && owner.current.stat != DEAD) + if(!soft_antag && owner.current.stat != DEAD && owner.current.client) owner.current.add_to_current_living_antags() SEND_SIGNAL(owner, COMSIG_ANTAGONIST_GAINED, src) diff --git a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm index 226005868d1..9de064e8306 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm @@ -118,7 +118,7 @@ GLOBAL_LIST_EMPTY(jam_on_wardec) var/tc_per_nukie = round(tc_to_distribute / (length(orphans)+length(uplinks))) for (var/datum/component/uplink/uplink in uplinks) - uplink.telecrystals += tc_per_nukie + uplink.add_telecrystals(tc_per_nukie) tc_to_distribute -= tc_per_nukie for (var/mob/living/L in orphans) diff --git a/code/modules/antagonists/nukeop/nukeop.dm b/code/modules/antagonists/nukeop/nukeop.dm index b72a433df85..3a351d60a3b 100644 --- a/code/modules/antagonists/nukeop/nukeop.dm +++ b/code/modules/antagonists/nukeop/nukeop.dm @@ -20,6 +20,11 @@ /// In the preview icon, a nuclear fission explosive device, only appearing if there's an icon state for it. var/nuke_icon_state = "nuclearbomb_base" + /// The amount of discounts that the team get + var/discount_team_amount = 5 + /// The amount of limited discounts that the team get + var/discount_limited_amount = 10 + /datum/antagonist/nukeop/proc/equip_op() if(!ishuman(owner.current)) return @@ -44,9 +49,23 @@ move_to_spawnpoint() // grant extra TC for the people who start in the nukie base ie. not the lone op var/extra_tc = CEILING(GLOB.joined_player_list.len/5, 5) - var/datum/component/uplink/U = owner.find_syndicate_uplink() - if (U) - U.telecrystals += extra_tc + var/datum/component/uplink/uplink = owner.find_syndicate_uplink() + if (uplink) + uplink.add_telecrystals(extra_tc) + + var/datum/component/uplink/uplink = owner.find_syndicate_uplink() + if(uplink) + var/datum/team/nuclear/nuke_team = get_team() + if(!nuke_team.team_discounts) + var/list/uplink_items = list() + for(var/datum/uplink_item/item as anything in SStraitor.uplink_items) + if(item.item && !item.cant_discount && (item.purchasable_from & uplink.uplink_handler.uplink_flag) && item.cost > 1) + uplink_items += item + nuke_team.team_discounts = list() + nuke_team.team_discounts += create_uplink_sales(discount_team_amount, /datum/uplink_category/discount_team_gear, -1, uplink_items) + nuke_team.team_discounts += create_uplink_sales(discount_limited_amount, /datum/uplink_category/limited_discount_team_gear, 1, uplink_items) + uplink.uplink_handler.extra_purchasable += nuke_team.team_discounts + memorize_code() /datum/antagonist/nukeop/get_team() diff --git a/code/modules/antagonists/traitor/balance_helper.dm b/code/modules/antagonists/traitor/balance_helper.dm new file mode 100644 index 00000000000..e78625ff1c1 --- /dev/null +++ b/code/modules/antagonists/traitor/balance_helper.dm @@ -0,0 +1,115 @@ +/client/proc/cmd_admin_debug_traitor_objectives() + set name = "Debug Traitor Objectives" + set category = "Debug" + + if(!check_rights(R_DEBUG)) + return + + SStraitor.traitor_debug_panel?.ui_interact(usr) + +/datum/traitor_objective_debug + var/list/all_objectives + +/datum/traitor_objective_debug/New(datum/traitor_category_handler/category_handler) + . = ..() + all_objectives = list() + for(var/datum/traitor_objective_category/category as anything in category_handler.all_categories) + var/list/generated_list = list() + var/list/current_list = category.objectives + for(var/value in category.objectives) + if(islist(value)) + generated_list += list(list( + "objectives" = recursive_list_generate(value), + "weight" = current_list[value] + )) + else + generated_list += list(generate_objective_data(value, current_list[value])) + all_objectives += list(list( + "name" = category.name, + "objectives" = generated_list, + "weight" = category.weight, + )) + +/datum/traitor_objective_debug/proc/recursive_list_generate(list/to_check) + var/list/generated_list = list() + for(var/value in to_check) + if(islist(value)) + generated_list += list(list( + "objectives" = recursive_list_generate(value), + "weight" = to_check[value] + )) + else + generated_list += list(generate_objective_data(value, to_check[value])) + return generated_list + +/datum/traitor_objective_debug/proc/generate_objective_data(datum/traitor_objective/objective_type, weight) + // Need to set this to false before we create the new objective to prevent init from fucking it up + SStraitor.generate_objectives = FALSE + var/datum/traitor_objective/objective = new objective_type() + var/list/return_data = list( + "name" = objective.name, + "description" = objective.description, + "progression_minimum" = objective.progression_minimum, + "progression_maximum" = objective.progression_maximum, + "global_progression" = objective.global_progression_deviance_required, + "global_progression_limit_coeff" = objective.global_progression_limit_coeff, + "global_progression_influence_intensity" = objective.global_progression_influence_intensity, + "progression_reward" = objective.progression_reward, + "telecrystal_reward" = objective.telecrystal_reward, + "telecrystal_penalty" = objective.telecrystal_penalty, + "weight" = weight, + "type" = objective.type, + ) + qdel(objective) + SStraitor.generate_objectives = TRUE + return return_data + +/datum/traitor_objective_debug/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "TraitorObjectiveDebug") + ui.open() + +/datum/traitor_objective_debug/ui_data(mob/user) + var/list/data = list() + data["current_progression"] = SStraitor.current_global_progression + var/list/handlers = SStraitor.uplink_handlers + var/list/handler_data = list() + for(var/datum/uplink_handler/handler as anything in handlers) + var/total_progression_from_objectives = 0 + for(var/datum/traitor_objective/objective as anything in handler.completed_objectives) + if(objective.objective_state != OBJECTIVE_STATE_COMPLETED) + continue + total_progression_from_objectives += objective.progression_reward + handler_data += list(list( + "player" = handler.owner?.key, + "progression_points" = handler.progression_points, + "total_progression_from_objectives" = total_progression_from_objectives + )) + data["player_data"] = handler_data + return data + +/datum/traitor_objective_debug/ui_static_data(mob/user) + var/list/data = list() + data["objective_data"] = all_objectives + data["progression_scaling_deviance"] = SStraitor.progression_scaling_deviance + return data + +/datum/traitor_objective_debug/ui_state(mob/user) + return GLOB.admin_state + +/datum/traitor_objective_debug/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + + switch(action) + if("set_current_expected_progression") + SStraitor.current_global_progression = text2num(params["new_expected_progression"]) + return TRUE + if("generate_json") + var/temp_file = file("data/TraitorObjectiveDownloadTempFile") + fdel(temp_file) + WRITE_FILE(temp_file, all_objectives) + DIRECT_OUTPUT(ui.user, ftp(temp_file, "TraitorObjectiveData.json")) + return TRUE diff --git a/code/modules/antagonists/traitor/components/traitor_objective_helpers.dm b/code/modules/antagonists/traitor/components/traitor_objective_helpers.dm new file mode 100644 index 00000000000..b5d631ef874 --- /dev/null +++ b/code/modules/antagonists/traitor/components/traitor_objective_helpers.dm @@ -0,0 +1,54 @@ +/// Helper component that registers signals on an object +/// This is not necessary to use and gives little control over the conditions +/datum/component/traitor_objective_register + dupe_mode = COMPONENT_DUPE_ALLOWED + + /// The target to apply the succeed/fail signals onto + var/datum/target + /// Signals to listen out for to automatically succeed the objective + var/succeed_signals + /// Signals to listen out for to automatically fail the objective. + var/fail_signals + /// Whether failing has a penalty + var/penalty = 0 + +/datum/component/traitor_objective_register/Initialize(datum/target, succeed_signals, fail_signals, penalty) + . = ..() + if(!istype(parent, /datum/traitor_objective)) + return COMPONENT_INCOMPATIBLE + src.target = target + src.succeed_signals = succeed_signals + src.fail_signals = fail_signals + src.penalty = penalty + +/datum/component/traitor_objective_register/RegisterWithParent() + if(succeed_signals) + RegisterSignal(target, succeed_signals, .proc/on_success) + if(fail_signals) + RegisterSignal(target, fail_signals, .proc/on_fail) + RegisterSignal(parent, list(COMSIG_TRAITOR_OBJECTIVE_COMPLETED, COMSIG_TRAITOR_OBJECTIVE_FAILED), .proc/delete_self) + +/datum/component/traitor_objective_register/UnregisterFromParent() + if(target) + if(succeed_signals) + UnregisterSignal(target, succeed_signals) + if(fail_signals) + UnregisterSignal(target, fail_signals) + UnregisterSignal(parent, list( + COMSIG_TRAITOR_OBJECTIVE_COMPLETED, + COMSIG_TRAITOR_OBJECTIVE_FAILED + )) + +/datum/component/traitor_objective_register/proc/on_fail(datum/traitor_objective/source) + SIGNAL_HANDLER + var/datum/traitor_objective/objective = parent + objective.succeed_objective() + +/datum/component/traitor_objective_register/proc/on_success() + SIGNAL_HANDLER + var/datum/traitor_objective/objective = parent + objective.succeed_objective() + +/datum/component/traitor_objective_register/proc/delete_self() + SIGNAL_HANDLER + qdel(src) diff --git a/code/modules/antagonists/traitor/components/traitor_objective_limit_per_time.dm b/code/modules/antagonists/traitor/components/traitor_objective_limit_per_time.dm new file mode 100644 index 00000000000..e0abde5fe3c --- /dev/null +++ b/code/modules/antagonists/traitor/components/traitor_objective_limit_per_time.dm @@ -0,0 +1,41 @@ +/// Helper component to track events on +/datum/component/traitor_objective_limit_per_time + dupe_mode = COMPONENT_DUPE_HIGHLANDER + + /// The maximum time that an objective will be considered for. Set to -1 to accept any time. + var/time_period = 0 + /// The maximum amount of objectives that can be active or recently active at one time + var/maximum_objectives = 0 + /// The typepath which we check for + var/typepath + +/datum/component/traitor_objective_limit_per_time/Initialize(typepath, time_period, maximum_objectives) + . = ..() + if(!istype(parent, /datum/traitor_objective)) + return COMPONENT_INCOMPATIBLE + src.time_period = time_period + src.maximum_objectives = maximum_objectives + src.typepath = typepath + if(!typepath) + src.typepath = parent.type + +/datum/component/traitor_objective_limit_per_time/RegisterWithParent() + RegisterSignal(parent, COMSIG_TRAITOR_OBJECTIVE_PRE_GENERATE, .proc/handle_generate) + +/datum/component/traitor_objective_limit_per_time/UnregisterFromParent() + UnregisterSignal(parent, COMSIG_TRAITOR_OBJECTIVE_PRE_GENERATE) + + +/datum/component/traitor_objective_limit_per_time/proc/handle_generate(datum/traitor_objective/source, datum/mind/owner, list/potential_duplicates) + SIGNAL_HANDLER + var/datum/uplink_handler/handler = source.handler + if(!handler) + return + var/count = 0 + for(var/datum/traitor_objective/objective as anything in handler.potential_duplicate_objectives[typepath]) + if(time_period != -1 && objective.objective_state != OBJECTIVE_STATE_INACTIVE && (world.time - objective.time_of_completion) > time_period) + continue + count++ + + if(count >= maximum_objectives) + return COMPONENT_TRAITOR_OBJECTIVE_ABORT_GENERATION diff --git a/code/modules/antagonists/traitor/components/traitor_objective_mind_tracker.dm b/code/modules/antagonists/traitor/components/traitor_objective_mind_tracker.dm new file mode 100644 index 00000000000..eb7933c2a9c --- /dev/null +++ b/code/modules/antagonists/traitor/components/traitor_objective_mind_tracker.dm @@ -0,0 +1,40 @@ +/// Helper component to track events on +/datum/component/traitor_objective_mind_tracker + dupe_mode = COMPONENT_DUPE_ALLOWED + + /// The target to track + var/datum/mind/target + /// Signals to listen out for mapped to procs to call + var/list/signals + /// Current registered target + var/mob/current_registered_target + +/datum/component/traitor_objective_mind_tracker/Initialize(datum/target, signals) + . = ..() + if(!istype(parent, /datum/traitor_objective)) + return COMPONENT_INCOMPATIBLE + src.target = target + src.signals = signals + +/datum/component/traitor_objective_mind_tracker/RegisterWithParent() + RegisterSignal(target, COMSIG_MIND_TRANSFERRED, .proc/handle_mind_transferred) + RegisterSignal(target, COMSIG_PARENT_QDELETING, .proc/delete_self) + RegisterSignal(parent, list(COMSIG_TRAITOR_OBJECTIVE_COMPLETED, COMSIG_TRAITOR_OBJECTIVE_FAILED), .proc/delete_self) + handle_mind_transferred(target) + +/datum/component/traitor_objective_mind_tracker/UnregisterFromParent() + UnregisterSignal(target, COMSIG_MIND_TRANSFERRED) + if(target.current) + parent.UnregisterSignal(target.current, signals) + +/datum/component/traitor_objective_mind_tracker/proc/handle_mind_transferred(datum/source, mob/previous_body) + SIGNAL_HANDLER + if(current_registered_target) + parent.UnregisterSignal(current_registered_target, signals) + + for(var/signal in signals) + parent.RegisterSignal(target.current, signal, signals[signal]) + +/datum/component/traitor_objective_mind_tracker/proc/delete_self() + SIGNAL_HANDLER + qdel(src) diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm index a45cad765f3..0379f389b0b 100644 --- a/code/modules/antagonists/traitor/datum_traitor.dm +++ b/code/modules/antagonists/traitor/datum_traitor.dm @@ -1,18 +1,3 @@ -/// Chance that the traitor could roll hijack if the pop limit is met. -#define HIJACK_PROB 10 -/// Hijack is unavailable as a random objective below this player count. -#define HIJACK_MIN_PLAYERS 30 - -/// Chance the traitor gets a martyr objective instead of having to escape alive, as long as all the objectives are martyr compatible. -#define MARTYR_PROB 20 - -/// Chance the traitor gets a kill objective. If this prob fails, they will get a steal objective instead. -#define KILL_PROB 50 -/// If a kill objective is rolled, chance that it is to destroy the AI. -#define DESTROY_AI_PROB(denominator) (100 / denominator) -/// If the destroy AI objective doesn't roll, chance that we'll get a maroon instead. If this prob fails, they will get a generic assassinate objective instead. -#define MAROON_PROB 30 - /datum/antagonist/traitor name = "\improper Traitor" roundend_category = "traitors" @@ -40,10 +25,10 @@ ///reference to the uplink this traitor was given, if they were. var/datum/component/uplink/uplink - var/datum/contractor_hub/contractor_hub + /// The uplink handler that this traitor belongs to. + var/datum/uplink_handler/uplink_handler - ///the final objective the traitor has to accomplish, be it escaping, hijacking, or just martyrdom. - var/datum/objective/ending_objective + var/uplink_sale_count = 3 /datum/antagonist/traitor/New(give_objectives = TRUE) . = ..() @@ -56,10 +41,32 @@ owner.give_uplink(silent = TRUE, antag_datum = src) uplink = owner.find_syndicate_uplink() + if(uplink) + if(uplink_handler) + uplink.uplink_handler = uplink_handler + else + uplink_handler = uplink.uplink_handler + uplink_handler.has_progression = TRUE + SStraitor.register_uplink_handler(uplink_handler) + + uplink_handler.has_objectives = TRUE + uplink_handler.owner = owner + uplink_handler.assigned_role = owner.assigned_role.title + uplink_handler.generate_objectives() + + if(uplink_handler.progression_points < SStraitor.current_global_progression) + uplink_handler.progression_points = SStraitor.current_global_progression * SStraitor.newjoin_progression_coeff + var/list/uplink_items = list() + for(var/datum/uplink_item/item as anything in SStraitor.uplink_items) + if(item.item && (!length(item.restricted_roles) || (uplink_handler.assigned_role in item.restricted_roles)) \ + && !item.cant_discount && (item.purchasable_from & uplink_handler.uplink_flag) && item.cost > 1) + uplink_items += item + uplink_handler.extra_purchasable += create_uplink_sales(uplink_sale_count, /datum/uplink_category/discounts, -1, uplink_items) + + RegisterSignal(uplink, COMSIG_PARENT_QDELETING, .proc/on_uplink_lost) if(give_objectives) forge_traitor_objectives() - forge_ending_objective() var/faction = prob(75) ? FACTION_SYNDICATE : FACTION_NANOTRASEN @@ -71,6 +78,10 @@ return ..() +/datum/antagonist/traitor/proc/on_uplink_lost(datum/source) + SIGNAL_HANDLER + uplink = null + /datum/antagonist/traitor/on_removal() owner.special_role = null return ..() @@ -79,11 +90,6 @@ var/list/possible_employers = list() possible_employers.Add(GLOB.syndicate_employers, GLOB.nanotrasen_employers) - if(istype(ending_objective, /datum/objective/hijack)) - possible_employers -= GLOB.normal_employers - else //escape or martyrdom - possible_employers -= GLOB.hijack_employers - switch(faction) if(FACTION_SYNDICATE) possible_employers -= GLOB.nanotrasen_employers @@ -91,96 +97,71 @@ possible_employers -= GLOB.syndicate_employers employer = pick(possible_employers) +/datum/objective/traitor_progression + name = "traitor progression" + explanation_text = "Become a living legend by getting a total of %REPUTATION% reputation points" + + var/possible_range = list(40 MINUTES, 90 MINUTES) + var/required_total_progression_points + +/datum/objective/traitor_progression/New(text) + . = ..() + required_total_progression_points = round(rand(possible_range[1], possible_range[2]) / 60) + explanation_text = replacetext(explanation_text, "%REPUTATION%", required_total_progression_points) + +/datum/objective/traitor_progression/check_completion() + if(!owner) + return FALSE + var/datum/antagonist/traitor/traitor = owner.has_antag_datum(/datum/antagonist/traitor) + if(!traitor) + return FALSE + if(!traitor.uplink_handler) + return FALSE + if(traitor.uplink_handler.progression_points < required_total_progression_points) + return FALSE + return TRUE + +/datum/objective/traitor_objectives + name = "traitor objective" + explanation_text = "Complete objectives colletively worth more than %REPUTATION% reputation points" + + var/possible_range = list(20 MINUTES, 30 MINUTES) + var/required_progression_in_objectives + +/datum/objective/traitor_objectives/New(text) + . = ..() + required_progression_in_objectives = round(rand(possible_range[1], possible_range[2]) / 60) + explanation_text = replacetext(explanation_text, "%REPUTATION%", required_progression_in_objectives) + +/datum/objective/traitor_objectives/check_completion() + if(!owner) + return FALSE + var/datum/antagonist/traitor/traitor = owner.has_antag_datum(/datum/antagonist/traitor) + if(!traitor) + return FALSE + if(!traitor.uplink_handler) + return FALSE + var/total_points = 0 + for(var/datum/traitor_objective/objective as anything in traitor.uplink_handler.completed_objectives) + if(objective.objective_state != OBJECTIVE_STATE_COMPLETED) + continue + total_points += objective.progression_reward + if(total_points < required_progression_in_objectives) + return FALSE + return TRUE + /// Generates a complete set of traitor objectives up to the traitor objective limit, including non-generic objectives such as martyr and hijack. /datum/antagonist/traitor/proc/forge_traitor_objectives() objectives.Cut() - var/objective_count = 0 - if((GLOB.joined_player_list.len >= HIJACK_MIN_PLAYERS) && prob(HIJACK_PROB)) - is_hijacker = TRUE - objective_count++ + var/datum/objective/traitor_progression/final_objective = new /datum/objective/traitor_progression() + final_objective.owner = owner + objectives += final_objective - var/objective_limit = CONFIG_GET(number/traitor_objectives_amount) + var/datum/objective/traitor_objectives/objective_completion = new /datum/objective/traitor_objectives() + objective_completion.owner = owner + objectives += objective_completion - // for(in...to) loops iterate inclusively, so to reach objective_limit we need to loop to objective_limit - 1 - // This does not give them 1 fewer objectives than intended. - for(var/i in objective_count to objective_limit - 1) - objectives += forge_single_generic_objective() - - -/** - * ## forge_ending_objective - * - * Forges the endgame objective and adds it to this datum's objective list. - */ -/datum/antagonist/traitor/proc/forge_ending_objective() - if(is_hijacker) - ending_objective = new /datum/objective/hijack - ending_objective.owner = owner - return - - var/martyr_compatibility = TRUE - - for(var/datum/objective/traitor_objective in objectives) - if(!traitor_objective.martyr_compatible) - martyr_compatibility = FALSE - break - - if(martyr_compatibility && prob(MARTYR_PROB)) - ending_objective = new /datum/objective/martyr - ending_objective.owner = owner - objectives += ending_objective - return - - ending_objective = new /datum/objective/escape - ending_objective.owner = owner - objectives += ending_objective - -/// Forges a single escape objective and adds it to this datum's objective list. -/datum/antagonist/traitor/proc/forge_escape_objective() - var/is_martyr = prob(MARTYR_PROB) - var/martyr_compatibility = TRUE - - for(var/datum/objective/traitor_objective in objectives) - if(!traitor_objective.martyr_compatible) - martyr_compatibility = FALSE - break - - if(martyr_compatibility && is_martyr) - var/datum/objective/martyr/martyr_objective = new - martyr_objective.owner = owner - objectives += martyr_objective - return - - var/datum/objective/escape/escape_objective = new - escape_objective.owner = owner - objectives += escape_objective - -/// Adds a generic kill or steal objective to this datum's objective list. -/datum/antagonist/traitor/proc/forge_single_generic_objective() - if(prob(KILL_PROB)) - var/list/active_ais = active_ais() - if(active_ais.len && prob(DESTROY_AI_PROB(GLOB.joined_player_list.len))) - var/datum/objective/destroy/destroy_objective = new - destroy_objective.owner = owner - destroy_objective.find_target() - return destroy_objective - - if(prob(MAROON_PROB)) - var/datum/objective/maroon/maroon_objective = new - maroon_objective.owner = owner - maroon_objective.find_target() - return maroon_objective - - var/datum/objective/assassinate/kill_objective = new - kill_objective.owner = owner - kill_objective.find_target() - return kill_objective - - var/datum/objective/steal/steal_objective = new - steal_objective.owner = owner - steal_objective.find_target() - return steal_objective /datum/antagonist/traitor/apply_innate_effects(mob/living/mob_override) . = ..() @@ -259,10 +240,14 @@ result += objectives_text - var/special_role_text = lowertext(name) + if(uplink_handler) + var/completed_objectives_text = "Completed Uplink Objectives: " + for(var/datum/traitor_objective/objective as anything in uplink_handler.completed_objectives) + if(objective.objective_state == OBJECTIVE_STATE_COMPLETED) + completed_objectives_text += "
[objective.name] - ([objective.telecrystal_reward] TC, [round(objective.progression_reward/600, 0.1)] Reputation)" + result += completed_objectives_text - if (contractor_hub) - result += contractor_round_end() + var/special_role_text = lowertext(name) if(traitor_won) result += span_greentext("The [special_role_text] was successful!") @@ -272,42 +257,6 @@ return result.Join("
") -/// Proc detailing contract kit buys/completed contracts/additional info -/datum/antagonist/traitor/proc/contractor_round_end() - var/result = "" - var/total_spent_rep = 0 - - var/completed_contracts = contractor_hub.contracts_completed - var/tc_total = contractor_hub.contract_TC_payed_out + contractor_hub.contract_TC_to_redeem - - var/contractor_item_icons = "" // Icons of purchases - var/contractor_support_unit = "" // Set if they had a support unit - and shows appended to their contracts completed - - /// Get all the icons/total cost for all our items bought - for (var/datum/contractor_item/contractor_purchase in contractor_hub.purchased_items) - contractor_item_icons += "\[ [contractor_purchase.name] - [contractor_purchase.cost] Rep

[contractor_purchase.desc]
\]
" - - total_spent_rep += contractor_purchase.cost - - /// Special case for reinforcements, we want to show their ckey and name on round end. - if (istype(contractor_purchase, /datum/contractor_item/contractor_partner)) - var/datum/contractor_item/contractor_partner/partner = contractor_purchase - contractor_support_unit += "
[partner.partner_mind.key] played [partner.partner_mind.current.name], their contractor support unit." - - if (contractor_hub.purchased_items.len) - result += "
(used [total_spent_rep] Rep) " - result += contractor_item_icons - result += "
" - if (completed_contracts > 0) - var/pluralCheck = "contract" - if (completed_contracts > 1) - pluralCheck = "contracts" - - result += "Completed [span_greentext("[completed_contracts]")] [pluralCheck] for a total of \ - [span_greentext("[tc_total] TC")]![contractor_support_unit]
" - - return result - /datum/antagonist/traitor/roundend_report_footer() var/phrases = jointext(GLOB.syndicate_code_phrase, ", ") var/responses = jointext(GLOB.syndicate_code_response, ", ") @@ -333,10 +282,3 @@ sword.worn_icon_state = "e_sword_on_red" H.update_inv_hands() - -#undef HIJACK_PROB -#undef HIJACK_MIN_PLAYERS -#undef MARTYR_PROB -#undef KILL_PROB -#undef DESTROY_AI_PROB -#undef MAROON_PROB diff --git a/code/modules/antagonists/traitor/equipment/contractor.dm b/code/modules/antagonists/traitor/equipment/contractor.dm deleted file mode 100644 index 6d82179dcfa..00000000000 --- a/code/modules/antagonists/traitor/equipment/contractor.dm +++ /dev/null @@ -1,292 +0,0 @@ -/// Support unit gets it's own very basic antag datum for admin logging. -/datum/antagonist/traitor/contractor_support - name = "Contractor Support Unit" - antag_moodlet = /datum/mood_event/focused - - show_in_roundend = FALSE /// We're already adding them in to the contractor's roundend. - give_objectives = TRUE /// We give them their own custom objective. - show_in_antagpanel = FALSE /// Not a proper/full antag. - give_uplink = FALSE /// Don't give them an uplink. - - var/datum/team/contractor_team/contractor_team - -/// Team for storing both the contractor and their support unit - only really for the HUD and admin logging. -/datum/team/contractor_team - show_roundend_report = FALSE - -/datum/antagonist/traitor/contractor_support/forge_traitor_objectives() - var/datum/objective/generic_objective = new - - generic_objective.name = "Follow Contractor's Orders" - generic_objective.explanation_text = "Follow your orders. Assist agents in this mission area." - - generic_objective.completed = TRUE - - objectives += generic_objective - -/datum/contractor_hub - var/contract_rep = 0 - var/list/hub_items = list() - var/list/purchased_items = list() - var/static/list/contractor_items = typecacheof(/datum/contractor_item/, TRUE) - - var/datum/syndicate_contract/current_contract - var/list/datum/syndicate_contract/assigned_contracts = list() - - var/list/assigned_targets = list() // used as a blacklist to make sure we're not assigning targets already assigned - - var/contracts_completed = 0 - var/contract_TC_payed_out = 0 // Keeping track for roundend reporting - var/contract_TC_to_redeem = 0 // Used internally and roundend reporting - what TC we have available to cashout. - -/datum/contractor_hub/proc/create_hub_items() - for(var/path in contractor_items) - var/datum/contractor_item/contractor_item = new path - - hub_items.Add(contractor_item) - -/datum/contractor_hub/proc/create_contracts(datum/mind/owner) - - // 6 initial contracts - var/list/to_generate = list( - CONTRACT_PAYOUT_LARGE, - CONTRACT_PAYOUT_MEDIUM, - CONTRACT_PAYOUT_SMALL, - CONTRACT_PAYOUT_SMALL, - CONTRACT_PAYOUT_SMALL, - CONTRACT_PAYOUT_SMALL - ) - - //What the fuck - if(length(to_generate) > length(GLOB.data_core.locked)) - to_generate.Cut(1, length(GLOB.data_core.locked)) - - // We don't want the sum of all the payouts to be under this amount - var/lowest_TC_threshold = 30 - - var/total = 0 - var/lowest_paying_sum = 0 - var/datum/syndicate_contract/lowest_paying_contract - - // Randomise order, so we don't have contracts always in payout order. - to_generate = shuffle(to_generate) - - // Support contract generation happening multiple times - var/start_index = 1 - if (assigned_contracts.len != 0) - start_index = assigned_contracts.len + 1 - - // Generate contracts, and find the lowest paying. - for(var/i in 1 to to_generate.len) - var/datum/syndicate_contract/contract_to_add = new(owner, assigned_targets, to_generate[i]) - var/contract_payout_total = contract_to_add.contract.payout + contract_to_add.contract.payout_bonus - - assigned_targets.Add(contract_to_add.contract.target) - - if (!lowest_paying_contract || (contract_payout_total < lowest_paying_sum)) - lowest_paying_sum = contract_payout_total - lowest_paying_contract = contract_to_add - - total += contract_payout_total - contract_to_add.id = start_index - assigned_contracts.Add(contract_to_add) - - start_index++ - - // If the threshold for TC payouts isn't reached, boost the lowest paying contract - if (total < lowest_TC_threshold) - lowest_paying_contract.contract.payout_bonus += (lowest_TC_threshold - total) - -/datum/contractor_item - var/name // Name of item - var/desc // description of item - var/item // item path, no item path means the purchase needs it's own handle_purchase() - var/item_icon = "broadcast-tower" // fontawesome icon to use inside the hub - https://fontawesome.com/icons/ - var/limited = -1 // Any number above 0 for how many times it can be bought in a round for a single traitor. -1 is unlimited. - var/cost // Cost of the item in contract rep. - -/datum/contractor_item/contract_reroll - name = "Contract Reroll" - desc = "Request a reroll of your current contract list. Will generate a new target, payment, and dropoff for the contracts you currently have available." - item_icon = "dice" - limited = 2 - cost = 0 - -/datum/contractor_item/contract_reroll/handle_purchase(datum/contractor_hub/hub) - . = ..() - - if (.) - /// We're not regenerating already completed/aborted/extracting contracts, but we don't want to repeat their targets. - var/list/new_target_list = list() - for(var/datum/syndicate_contract/contract_check in hub.assigned_contracts) - if (contract_check.status != CONTRACT_STATUS_ACTIVE && contract_check.status != CONTRACT_STATUS_INACTIVE) - if (contract_check.contract.target) - new_target_list.Add(contract_check.contract.target) - continue - - /// Reroll contracts without duplicates - for(var/datum/syndicate_contract/rerolling_contract in hub.assigned_contracts) - if (rerolling_contract.status != CONTRACT_STATUS_ACTIVE && rerolling_contract.status != CONTRACT_STATUS_INACTIVE) - continue - - rerolling_contract.generate(new_target_list) - new_target_list.Add(rerolling_contract.contract.target) - - /// Set our target list with the new set we've generated. - hub.assigned_targets = new_target_list - -/datum/contractor_item/contractor_pinpointer - name = "Contractor Pinpointer" - desc = "A pinpointer that finds targets even without active suit sensors. Due to taking advantage of an exploit within the system, it can't pinpoint to the same accuracy as the traditional models. Becomes permanently locked to the user that first activates it." - item = /obj/item/pinpointer/crew/contractor - item_icon = "search-location" - limited = 2 - cost = 1 - -/datum/contractor_item/fulton_extraction_kit - name = "Fulton Extraction Kit" - desc = "For getting your target across the station to those difficult dropoffs. Place the beacon somewhere secure, and link the pack. Activating the pack on your target in space will send them over to the beacon - make sure they're not just going to run away though!" - item = /obj/item/storage/box/contractor/fulton_extraction - item_icon = "parachute-box" - limited = 1 - cost = 1 - -/datum/contractor_item/contractor_partner - name = "Reinforcements" - desc = "Upon purchase we'll contact available units in the area. Should there be an agent free, we'll send them down to assist you immediately. If no units are free, we give a full refund." - item_icon = "user-friends" - limited = 1 - cost = 2 - var/datum/mind/partner_mind = null - -/datum/contractor_item/contractor_partner/handle_purchase(datum/contractor_hub/hub, mob/living/user) - . = ..() - - if (.) - to_chat(user, span_notice("The uplink vibrates quietly, connecting to nearby agents...")) - - var/list/mob/dead/observer/candidates = poll_ghost_candidates("Do you want to play as the Contractor Support Unit for [user.real_name]?", ROLE_PAI, FALSE, 100, POLL_IGNORE_CONTRACTOR_SUPPORT) - - if(LAZYLEN(candidates)) - var/mob/dead/observer/C = pick(candidates) - spawn_contractor_partner(user, C.key) - else - to_chat(user, span_notice("No available agents at this time, please try again later.")) - - // refund and add the limit back. - limited += 1 - hub.contract_rep += cost - hub.purchased_items -= src - -/datum/outfit/contractor_partner - name = "Contractor Support Unit" - - uniform = /obj/item/clothing/under/chameleon - suit = /obj/item/clothing/suit/chameleon - back = /obj/item/storage/backpack - belt = /obj/item/pda/chameleon - mask = /obj/item/clothing/mask/cigarette/syndicate - shoes = /obj/item/clothing/shoes/chameleon/noslip - ears = /obj/item/radio/headset/chameleon - id = /obj/item/card/id/advanced/chameleon - r_hand = /obj/item/storage/toolbox/syndicate - id_trim = /datum/id_trim/chameleon/operative - - backpack_contents = list(/obj/item/storage/box/survival, /obj/item/implanter/uplink, /obj/item/clothing/mask/chameleon, - /obj/item/storage/fancy/cigarettes/cigpack_syndicate, /obj/item/lighter) - -/datum/outfit/contractor_partner/post_equip(mob/living/carbon/human/H, visualsOnly) - . = ..() - var/obj/item/clothing/mask/cigarette/syndicate/cig = H.get_item_by_slot(ITEM_SLOT_MASK) - - // pre-light their cig - cig.light() - -/datum/contractor_item/contractor_partner/proc/spawn_contractor_partner(mob/living/user, key) - var/mob/living/carbon/human/partner = new() - var/datum/outfit/contractor_partner/partner_outfit = new() - - partner_outfit.equip(partner) - - var/obj/structure/closet/supplypod/arrival_pod = new(null, STYLE_SYNDICATE) - arrival_pod.explosionSize = list(0,0,0,1) - arrival_pod.bluespace = TRUE - - var/turf/free_location = find_obstruction_free_location(2, user) - - // We really want to send them - if we can't find a nice location just land it on top of them. - if (!free_location) - free_location = get_turf(user) - - partner.forceMove(arrival_pod) - partner.ckey = key - - /// We give a reference to the mind that'll be the support unit - partner_mind = partner.mind - partner_mind.make_contractor_support() - - to_chat(partner_mind.current, "\n[span_alertwarning("[user.real_name] is your superior. Follow any, and all orders given by them. You're here to support their mission only.")]") - to_chat(partner_mind.current, "[span_alertwarning("Should they perish, or be otherwise unavailable, you're to assist other active agents in this mission area to the best of your ability.")]\n\n") - - new /obj/effect/pod_landingzone(free_location, arrival_pod) - -/datum/contractor_item/blackout - name = "Blackout" - desc = "Request Syndicate Command to distrupt the station's powernet. Disables power across the station for a short duration." - item_icon = "bolt" - limited = 2 - cost = 3 - -/datum/contractor_item/blackout/handle_purchase(datum/contractor_hub/hub) - . = ..() - - if (.) - power_fail(35, 50) - priority_announce("Abnormal activity detected in [station_name()]'s powernet. As a precautionary measure, the station's power will be shut off for an indeterminate duration.", "Critical Power Failure", ANNOUNCER_POWEROFF) - -// Subtract cost, and spawn if it's an item. -/datum/contractor_item/proc/handle_purchase(datum/contractor_hub/hub, mob/living/user) - - if (hub.contract_rep >= cost) - hub.contract_rep -= cost - else - return FALSE - - if (limited >= 1) - limited -= 1 - else if (limited == 0) - return FALSE - - hub.purchased_items.Add(src) - - user.playsound_local(user, 'sound/machines/uplinkpurchase.ogg', 100) - - if (item && ispath(item)) - var/atom/item_to_create = new item(get_turf(user)) - - if(user.put_in_hands(item_to_create)) - to_chat(user, span_notice("Your purchase materializes into your hands!")) - else - to_chat(user, span_notice("Your purchase materializes onto the floor.")) - - return item_to_create - return TRUE - -/obj/item/pinpointer/crew/contractor - name = "contractor pinpointer" - desc = "A handheld tracking device that locks onto certain signals. Ignores suit sensors, but is much less accurate." - icon_state = "pinpointer_syndicate" - worn_icon_state = "pinpointer_black" - minimum_range = 25 - has_owner = TRUE - ignore_suit_sensor_level = TRUE - -/obj/item/storage/box/contractor/fulton_extraction - name = "Fulton Extraction Kit" - icon_state = "syndiebox" - illustration = "writing_syndie" - -/obj/item/storage/box/contractor/fulton_extraction/PopulateContents() - new /obj/item/extraction_pack(src) - new /obj/item/fulton_core(src) - diff --git a/code/modules/antagonists/traitor/objective_category.dm b/code/modules/antagonists/traitor/objective_category.dm new file mode 100644 index 00000000000..e64086ad922 --- /dev/null +++ b/code/modules/antagonists/traitor/objective_category.dm @@ -0,0 +1,68 @@ +/// The traitor category handler. This is where the probability of all objectives are managed. +/datum/traitor_category_handler + var/list/datum/traitor_objective_category/all_categories = list() + +/datum/traitor_category_handler/New() + . = ..() + for(var/type in subtypesof(/datum/traitor_objective_category)) + var/datum/traitor_objective_category/category = new type() + if(length(category.objectives)) + all_categories += category + else + // Category should just get autoGC'd here if they don't have any length, this may not be necessary + qdel(category) + +/datum/traitor_category_handler/proc/objective_valid(datum/traitor_objective/objective_path, progression_points) + if(initial(objective_path.abstract_type) == objective_path) + return FALSE + if(progression_points < initial(objective_path.progression_minimum)) + return FALSE + if(progression_points > initial(objective_path.progression_maximum)) + return FALSE + return TRUE + +/datum/traitor_category_handler/proc/get_possible_objectives(progression_points) + var/list/valid_objectives = list() + for(var/datum/traitor_objective_category/category as anything in all_categories) + var/list/category_list = list() + for(var/value in category.objectives) + if(islist(value)) + var/list/objective_category = filter_invalid_objective_list(value, progression_points) + if(!length(objective_category)) + continue + category_list[objective_category] = category.objectives[value] + else + if(!objective_valid(value, progression_points)) + continue + category_list[value] = category.objectives[value] + if(!length(category_list)) + continue + valid_objectives[category_list] = category.weight + + return valid_objectives + +/datum/traitor_category_handler/proc/filter_invalid_objective_list(list/objectives, progression_points) + var/list/filtered_objectives = list() + for(var/value in objectives) + if(islist(value)) + var/list/result = filter_invalid_objective_list(value, progression_points) + if(!length(result)) + continue + filtered_objectives[value] = objectives[value] + else + if(!objective_valid(value, progression_points)) + continue + filtered_objectives[value] = objectives[value] + return filtered_objectives + +/// The objective category. +/// Used to group up entire objectives into 1 weight objects to prevent having a +/// higher chance of getting an objective due to an increased number of different objective subtypes. +/// These are nothing but informational holders and will have no other purpose. +/datum/traitor_objective_category + /// Name of the category, unused but may help in the future + var/name = "generic category" + /// Assoc list of objectives by type mapped to their weight. Can also contain lists of objectives mapped to weight + var/list/objectives = list() + /// The weight of the category. How likely this category is to be chosen. + var/weight = 1 diff --git a/code/modules/antagonists/traitor/objectives/assassination.dm b/code/modules/antagonists/traitor/objectives/assassination.dm new file mode 100644 index 00000000000..b3013453cd8 --- /dev/null +++ b/code/modules/antagonists/traitor/objectives/assassination.dm @@ -0,0 +1,270 @@ +/datum/traitor_objective_category/assassinate + name = "Assassination" + objectives = list( + //starter assassinations, basically just require you to kill someone + list( + /datum/traitor_objective/assassinate/calling_card = 1, + /datum/traitor_objective/assassinate/behead = 1, + ) = 1, + //above but for heads + list( + /datum/traitor_objective/assassinate/calling_card/heads_of_staff = 1, + /datum/traitor_objective/assassinate/behead/heads_of_staff = 1, + ) = 1, + ) + +/datum/traitor_objective/assassinate + name = "Assassinate %TARGET% the %JOB TITLE%" + description = "Simply kill your target to accomplish this objective." + + abstract_type = /datum/traitor_objective/assassinate + + progression_minimum = 30 MINUTES + + //this is a prototype so this progression is for all basic level kill objectives + progression_reward = list(5 MINUTES, 7 MINUTES) + telecrystal_reward = list(2, 4) + + // The code below is for limiting how often you can get this objective. You will get this objective at a maximum of maximum_objectives_in_period every objective_period + /// The objective period at which we consider if it is an 'objective'. Set to 0 to accept all objectives. + var/objective_period = 15 MINUTES + /// The maximum number of objectives we can get within this period. + var/maximum_objectives_in_period = 3 + + /** + * Makes the objective only set heads as targets when true, and block them from being targets when false. + * This also blocks the objective from generating UNTIL the un-heads_of_staff version (WHICH SHOULD BE A DIRECT PARENT) is completed. + * example: calling card objective, you kill someone, you unlock the chance to roll a head of staff target version of calling card. + */ + var/heads_of_staff = FALSE + ///target we need to kill + var/mob/living/kill_target + +/datum/traitor_objective/assassinate/supported_configuration_changes() + . = ..() + . += NAMEOF(src, objective_period) + . += NAMEOF(src, maximum_objectives_in_period) + +/datum/traitor_objective/assassinate/calling_card + name = "Assassinate %TARGET% the %JOB TITLE%, and plant a calling card" + description = "Kill your target and plant a calling card in the pockets of your victim. If your calling card gets destroyed before you are able to plant it, this objective will fail." + + var/obj/item/paper/calling_card/card + +/datum/traitor_objective/assassinate/calling_card/heads_of_staff + progression_reward = list(7 MINUTES, 10 MINUTES) + telecrystal_reward = list(4, 8) + + heads_of_staff = TRUE + +/datum/traitor_objective/assassinate/behead + name = "Behead %TARGET%, the %JOB TITLE%" + description = "Behead and hold %TARGET%'s head to succeed this objective. If the head gets destroyed before you can do this, you will fail this objective." + + ///the body who needs to hold the head + var/mob/living/needs_to_hold_head + ///the head that needs to be picked up + var/obj/item/bodypart/head/behead_goal + +/datum/traitor_objective/assassinate/behead/heads_of_staff + progression_reward = list(7 MINUTES, 15 MINUTES) + telecrystal_reward = list(4, 8) + + heads_of_staff = TRUE + + +/datum/traitor_objective/assassinate/calling_card/generate_ui_buttons(mob/user) + var/list/buttons = list() + if(!card) + buttons += add_ui_button("", "Pressing this will materialize a calling card, which you must plant to succeed.", "paper-plane", "summon_card") + return buttons + +/datum/traitor_objective/assassinate/calling_card/ui_perform_action(mob/living/user, action) + . = ..() + switch(action) + if("summon_card") + if(card) + return + card = new(user.drop_location()) + user.put_in_hands(card) + card.balloon_alert(user, "the card materializes in your hand") + RegisterSignal(card, COMSIG_ITEM_EQUIPPED, .proc/on_card_planted) + AddComponent(/datum/component/traitor_objective_register, card, \ + succeed_signals = null, \ + fail_signals = COMSIG_PARENT_QDELETING, \ + penalty = TRUE) + +/datum/traitor_objective/assassinate/calling_card/proc/on_card_planted(datum/source, mob/living/equipper, slot) + SIGNAL_HANDLER + if(equipper != kill_target) + return //your target please + if(equipper.stat != DEAD) + return //kill them please + if(slot != ITEM_SLOT_LPOCKET && slot != ITEM_SLOT_RPOCKET) + return //in their pockets please + succeed_objective() + +/datum/traitor_objective/assassinate/calling_card/generate_objective(datum/mind/generating_for, list/possible_duplicates) + . = ..() + if(!.) //didn't generate + return FALSE + RegisterSignal(kill_target, COMSIG_PARENT_QDELETING, .proc/on_target_qdeleted) + +/datum/traitor_objective/assassinate/calling_card/ungenerate_objective() + UnregisterSignal(kill_target, COMSIG_PARENT_QDELETING) + . = ..() //unsets kill target + if(card) + UnregisterSignal(card, COMSIG_ITEM_EQUIPPED) + card = null + +/datum/traitor_objective/assassinate/calling_card/on_target_qdeleted() + //you cannot plant anything on someone who is gone gone, so even if this happens after you're still liable to fail + fail_objective(penalty_cost = telecrystal_penalty) + +/datum/traitor_objective/assassinate/behead/special_target_filter(list/possible_targets) + for(var/datum/mind/possible_target as anything in possible_targets) + var/mob/living/carbon/possible_current = possible_target.current + var/obj/item/bodypart/head/behead_goal = possible_current.get_bodypart(BODY_ZONE_HEAD) + if(!behead_goal) + possible_targets -= possible_target //cannot be beheaded without a head + +/datum/traitor_objective/assassinate/behead/generate_objective(datum/mind/generating_for, list/possible_duplicates) + . = ..() + if(!.) //didn't generate + return FALSE + AddComponent(/datum/component/traitor_objective_register, behead_goal, fail_signals = COMSIG_PARENT_QDELETING) + RegisterSignal(kill_target, COMSIG_CARBON_REMOVE_LIMB, .proc/on_target_dismembered) + +/datum/traitor_objective/assassinate/behead/ungenerate_objective() + UnregisterSignal(kill_target, COMSIG_CARBON_REMOVE_LIMB) + . = ..() //this unsets kill_target + if(behead_goal) + UnregisterSignal(behead_goal, COMSIG_ITEM_PICKUP) + behead_goal = null + +/datum/traitor_objective/assassinate/behead/proc/on_head_pickup(datum/source, mob/taker) + SIGNAL_HANDLER + if(objective_state == OBJECTIVE_STATE_INACTIVE) //just in case- this shouldn't happen? + fail_objective() + return + if(taker == handler.owner.current) + taker.visible_message(span_notice("[taker] holds [behead_goal] into the air for a moment."), span_boldnotice("You lift [behead_goal] into the air for a moment.")) + succeed_objective() + +/datum/traitor_objective/assassinate/behead/proc/on_target_dismembered(datum/source, obj/item/bodypart/head/lost_head, special) + SIGNAL_HANDLER + if(!istype(lost_head)) + return + if(objective_state == OBJECTIVE_STATE_INACTIVE) + //no longer can be beheaded + fail_objective() + else + behead_goal = lost_head + RegisterSignal(behead_goal, COMSIG_ITEM_PICKUP, .proc/on_head_pickup) + +/datum/traitor_objective/assassinate/New(datum/uplink_handler/handler) + . = ..() + AddComponent(/datum/component/traitor_objective_limit_per_time, \ + /datum/traitor_objective/assassinate, \ + time_period = objective_period, \ + maximum_objectives = maximum_objectives_in_period \ + ) + +/datum/traitor_objective/assassinate/generate_objective(datum/mind/generating_for, list/possible_duplicates) + + var/parent_type = type2parent(type) + //don't roll head of staff types if you haven't completed the normal version + if(heads_of_staff && !handler.get_completion_count(parent_type)) + // Locked if they don't have any of the risky bug room objective completed + return FALSE + + var/list/possible_targets = list() + var/try_target_late_joiners = FALSE + if(generating_for.late_joiner) + try_target_late_joiners = TRUE + for(var/datum/mind/possible_target as anything in get_crewmember_minds()) + var/target_area = get_area(possible_target.current) + if(possible_target == generating_for) + continue + if(!ishuman(possible_target.current)) + continue + if(possible_target.current.stat == DEAD) + continue + var/datum/antagonist/traitor/traitor = possible_target.has_antag_datum(/datum/antagonist/traitor) + if(traitor && traitor.uplink_handler.telecrystals >= 0) + continue + if(!HAS_TRAIT(SSstation, STATION_TRAIT_LATE_ARRIVALS) && istype(target_area, /area/shuttle/arrival)) + continue + //removes heads of staff from being targets from non heads of staff assassinations, and vice versa + if(heads_of_staff) + if(!(possible_target.assigned_role.departments_bitflags & DEPARTMENT_BITFLAG_COMMAND)) + continue + else + if((possible_target.assigned_role.departments_bitflags & DEPARTMENT_BITFLAG_COMMAND)) + continue + possible_targets += possible_target + for(var/datum/traitor_objective/assassinate/objective as anything in possible_duplicates) + possible_targets -= objective.kill_target + if(try_target_late_joiners) + var/list/all_possible_targets = possible_targets.Copy() + for(var/datum/mind/possible_target as anything in all_possible_targets) + if(!possible_target.late_joiner) + possible_targets -= possible_target + if(!possible_targets.len) + possible_targets = all_possible_targets + special_target_filter(possible_targets) + if(!possible_targets.len) + return FALSE //MISSION FAILED, WE'LL GET EM NEXT TIME + + var/datum/mind/kill_target_mind = pick(possible_targets) + kill_target = kill_target_mind.current + replace_in_name("%TARGET%", kill_target.real_name) + replace_in_name("%JOB TITLE%", kill_target_mind.assigned_role.title) + RegisterSignal(kill_target, COMSIG_LIVING_DEATH, .proc/on_target_death) + return TRUE + +/datum/traitor_objective/assassinate/ungenerate_objective() + UnregisterSignal(kill_target, COMSIG_LIVING_DEATH) + kill_target = null + +/datum/traitor_objective/assassinate/is_duplicate(datum/traitor_objective/assassinate/objective_to_compare) + . = ..() + return kill_target == objective_to_compare.kill_target + +///proc for checking for special states that invalidate a target +/datum/traitor_objective/assassinate/proc/special_target_filter(list/possible_targets) + return + +/datum/traitor_objective/assassinate/proc/on_target_qdeleted() + SIGNAL_HANDLER + if(objective_state == OBJECTIVE_STATE_INACTIVE) + //don't take an objective target of someone who is already obliterated + fail_objective() + +/datum/traitor_objective/assassinate/proc/on_target_death() + SIGNAL_HANDLER + if(objective_state == OBJECTIVE_STATE_INACTIVE) + //don't take an objective target of someone who is already dead + fail_objective() + +/obj/item/paper/calling_card + name = "calling card" + icon_state = "syndicate_calling_card" + color = "#ff5050" + show_written_words = FALSE + info = {" + **Death to Nanotrasen.**

+ + Only through the inviolable cooperation of corporations known as The Syndicate, can Nanotrasen and its autocratic tyrants be silenced. + The outcries of Nanotrasen's employees are squelched by the suffocating iron grip of their leaders. If you read this, and understand + why we fight, then you need only to look where Nanotrasen doesn't want you to find us to join our cause. Any number of our companies + may be fighting with your interests in mind.

+ + SELF: They fight for the protection and freedom of silicon life all across the galaxy.

+ + Tiger Cooperative: They fight for religious freedom and their righteous concoctions.

+ + Waffle Corporation: They fight for the return of healthy corporate competition, snuffed out by Nanotrasen's monopoly.

+ + Animal Rights Consortium: They fight for nature and the right for all biological life to exist. + "} diff --git a/code/modules/antagonists/traitor/objectives/bug_room.dm b/code/modules/antagonists/traitor/objectives/bug_room.dm new file mode 100644 index 00000000000..a0f327b24db --- /dev/null +++ b/code/modules/antagonists/traitor/objectives/bug_room.dm @@ -0,0 +1,191 @@ +/datum/traitor_objective_category/bug_room + name = "Bug Room" + objectives = list( + /datum/traitor_objective/bug_room = 1, + /datum/traitor_objective/bug_room/risky = 1, + /datum/traitor_objective/bug_room/super_risky = 1, + ) + +/datum/traitor_objective/bug_room + name = "Bug the %DEPARTMENT HEAD%'s office" + description = "Use the button below to materialize the bug within your hand, where you'll then be able to place it down in the %DEPARTMENT HEAD%'s office. If it gets destroyed before you are able to plant it, this objective will fail." + + progression_reward = list(2 MINUTES, 8 MINUTES) + telecrystal_reward = list(0, 1) + + progression_maximum = 30 MINUTES + + var/list/applicable_heads = list( + JOB_RESEARCH_DIRECTOR = /area/command/heads_quarters/rd, + JOB_CHIEF_MEDICAL_OFFICER = /area/command/heads_quarters/cmo, + JOB_CHIEF_ENGINEER = /area/command/heads_quarters/ce, + JOB_HEAD_OF_PERSONNEL = /area/command/heads_quarters/hop, + JOB_CAPTAIN = /area/command/heads_quarters/captain, // For head roles so that they can still get this objective. + ) + var/datum/job/target_office + var/requires_head_as_supervisor = TRUE + + var/obj/item/traitor_bug/bug + +/datum/traitor_objective/bug_room/risky + progression_minimum = 10 MINUTES + progression_maximum = 40 MINUTES + applicable_heads = list( + JOB_CAPTAIN = /area/command/heads_quarters/captain, + ) + progression_reward = list(5 MINUTES, 10 MINUTES) + telecrystal_reward = list(1, 2) + requires_head_as_supervisor = FALSE + +/datum/traitor_objective/bug_room/super_risky + progression_minimum = 20 MINUTES + progression_maximum = 60 MINUTES + applicable_heads = list( + JOB_HEAD_OF_SECURITY = /area/command/heads_quarters/hos, + ) + progression_reward = list(10 MINUTES, 15 MINUTES) + telecrystal_reward = list(2, 3) + requires_head_as_supervisor = FALSE + +/datum/traitor_objective/bug_room/super_risky/generate_objective(datum/mind/generating_for, list/possible_duplicates) + if(!handler.get_completion_count(/datum/traitor_objective/bug_room/risky)) + // Locked if they don't have any of the risky bug room objective completed + return FALSE + return ..() + +/datum/traitor_objective/bug_room/generate_ui_buttons(mob/user) + var/list/buttons = list() + if(!bug) + buttons += add_ui_button("", "Pressing this will materialize a bug in your hand, which you can place at the target office", "wifi", "summon_gear") + return buttons + +/datum/traitor_objective/bug_room/ui_perform_action(mob/living/user, action) + . = ..() + switch(action) + if("summon_gear") + if(bug) + return + bug = new(user.drop_location()) + user.put_in_hands(bug) + bug.balloon_alert(user, "the bug materializes in your hand") + bug.target_area_type = applicable_heads[target_office.title] + AddComponent(/datum/component/traitor_objective_register, bug, \ + succeed_signals = COMSIG_TRAITOR_BUG_PLANTED_GROUND, \ + fail_signals = COMSIG_PARENT_QDELETING, \ + penalty = TRUE) + +/datum/traitor_objective/bug_room/generate_objective(datum/mind/generating_for, list/possible_duplicates) + var/datum/job/role = generating_for.assigned_role + var/list/possible_heads + if(requires_head_as_supervisor) + possible_heads = applicable_heads & role.department_head + else + possible_heads = applicable_heads + for(var/datum/traitor_objective/bug_room/room as anything in possible_duplicates) + possible_heads -= room.target_office.title + if(!length(possible_heads)) + return FALSE + var/target_head = pick(possible_heads) + + target_office = SSjob.name_occupations[target_head] + replace_in_name("%DEPARTMENT HEAD%", target_head) + return TRUE + +/datum/traitor_objective/bug_room/ungenerate_objective() + bug = null + +/datum/traitor_objective/bug_room/is_duplicate(datum/traitor_objective/bug_room/objective_to_compare) + if(objective_to_compare.target_office == target_office) + return TRUE + return FALSE + +/obj/item/traitor_bug + name = "suspicious device" + desc = "It looks dangerous" + item_flags = EXAMINE_SKIP + + icon = 'icons/obj/items_and_weapons.dmi' + icon_state = "bug" + + /// The area at which this bug can be planted at Has to be a type. + var/area/target_area_type + /// The object on which this bug can be planted on. Has to be a type. + var/obj/target_object_type + /// The object this bug is currently planted on + var/obj/planted_on + + var/deploy_time = 10 SECONDS + +/obj/item/traitor_bug/interact(mob/user) + . = ..() + if(!target_area_type) + return + var/turf/location = drop_location() + if(!location) + return + var/area/current_area = get_area(location) + if(!istype(current_area, target_area_type)) + balloon_alert(user, "you can't deploy this here!") + return + if(!do_after(user, deploy_time, src)) + return + new /obj/structure/traitor_bug(location) + SEND_SIGNAL(src, COMSIG_TRAITOR_BUG_PLANTED_GROUND, location) + qdel(src) + +/obj/item/traitor_bug/afterattack(atom/movable/target, mob/user, proximity_flag, click_parameters) + . = ..() + if(!target_object_type) + return + if(!user.Adjacent(target)) + return + var/result = SEND_SIGNAL(src, COMSIG_TRAITOR_BUG_PRE_PLANTED_OBJECT, target) + if(!(result & COMPONENT_FORCE_PLACEMENT)) + if(result & COMPONENT_FORCE_FAIL_PLACEMENT || !istype(target, target_object_type)) + balloon_alert(user, "you can't attach this onto here!") + return + if(!do_after(user, deploy_time, src)) + return + if(planted_on) + return + forceMove(target) + target.vis_contents += src + planted_on = target + RegisterSignal(planted_on, COMSIG_PARENT_QDELETING, .proc/handle_planted_on_deletion) + SEND_SIGNAL(src, COMSIG_TRAITOR_BUG_PLANTED_OBJECT, target) + +/obj/item/traitor_bug/proc/handle_planted_on_deletion() + planted_on = null + +/obj/item/traitor_bug/Destroy() + if(planted_on) + planted_on.vis_contents -= src + return ..() + +/obj/item/traitor_bug/Moved(atom/OldLoc, Dir) + . = ..() + if(planted_on) + planted_on.vis_contents -= src + anchored = FALSE + UnregisterSignal(planted_on, COMSIG_PARENT_QDELETING) + planted_on = null + +/obj/structure/traitor_bug + name = "suspicious device" + desc = "It looks dangerous. Best you leave this alone" + + anchored = TRUE + + icon = 'icons/obj/items_and_weapons.dmi' + icon_state = "bug-animated" + +/obj/structure/traitor_bug/Initialize(mapload) + . = ..() + addtimer(CALLBACK(src, .proc/fade_out, 10 SECONDS), 3 MINUTES) + +/obj/structure/traitor_bug/proc/fade_out(seconds) + animate(src, alpha = 30, time = seconds) + +/obj/structure/traitor_bug/deconstruct(disassembled) + explosion(src, light_impact_range = 2, flame_range = 5, explosion_cause = src) // Pretty god damn dangerous + return ..() diff --git a/code/modules/antagonists/traitor/objectives/destroy_heirloom.dm b/code/modules/antagonists/traitor/objectives/destroy_heirloom.dm new file mode 100644 index 00000000000..1e3c2586da1 --- /dev/null +++ b/code/modules/antagonists/traitor/objectives/destroy_heirloom.dm @@ -0,0 +1,128 @@ +/datum/traitor_objective_category/destroy_heirloom + name = "Destroy Heirloom" + objectives = list( + list( + // There's about 16 jobs in common, so assistant has a 1/21 chance of getting chosen. + /datum/traitor_objective/destroy_heirloom/common = 20, + /datum/traitor_objective/destroy_heirloom/less_common = 1, + ) = 4, + /datum/traitor_objective/destroy_heirloom/uncommon = 3, + /datum/traitor_objective/destroy_heirloom/rare = 2, + /datum/traitor_objective/destroy_heirloom/captain = 1 + ) + +/datum/traitor_objective/destroy_heirloom + name = "Destroy %ITEM%, the family heirloom that belongs to %TARGET% the %JOB TITLE%" + description = "%TARGET% has been on our shitlist for a while and we want to show him we mean business. Find his %ITEM% and destroy it, you'll be rewarded handsomely for doing this" + + abstract_type = /datum/traitor_objective/destroy_heirloom + + //this is a prototype so this progression is for all basic level kill objectives + progression_reward = list(8 MINUTES, 12 MINUTES) + telecrystal_reward = list(1, 2) + + /// The jobs that this objective is targetting. + var/list/target_jobs + /// the item we need to destroy + var/obj/item/target_item + +/datum/traitor_objective/destroy_heirloom/common + /// 30 minutes in, syndicate won't care about common heirlooms anymore + progression_maximum = 30 MINUTES + target_jobs = list( + // Medical + /datum/job/doctor, + /datum/job/virologist, + /datum/job/paramedic, + /datum/job/psychologist, + /datum/job/chemist, + // Service + /datum/job/clown, + /datum/job/botanist, + /datum/job/janitor, + /datum/job/mime, + /datum/job/lawyer, + // Cargo + /datum/job/cargo_technician, + // Science + /datum/job/geneticist, + /datum/job/scientist, + /datum/job/roboticist, + // Engineering + /datum/job/station_engineer, + /datum/job/atmospheric_technician, + ) + +/// This is only for assistants, because the syndies are a lot less likely to give a shit about what an assistant does, so they're a lot less likely to appear +/datum/traitor_objective/destroy_heirloom/less_common + /// 30 minutes in, syndicate won't care about common heirlooms anymore + progression_maximum = 30 MINUTES + target_jobs = list( + /datum/job/assistant + ) + +/datum/traitor_objective/destroy_heirloom/uncommon + /// 45 minutes in, syndicate won't care about uncommon heirlooms anymore + progression_maximum = 45 MINUTES + target_jobs = list( + // Cargo + /datum/job/quartermaster, + /datum/job/shaft_miner, + // Service + /datum/job/chaplain, + /datum/job/bartender, + /datum/job/cook, + /datum/job/curator, + ) + +/datum/traitor_objective/destroy_heirloom/rare + progression_minimum = 15 MINUTES + /// 60 minutes in, syndicate won't care about rare heirlooms anymore + progression_maximum = 60 MINUTES + target_jobs = list( + // Security + /datum/job/security_officer, + /datum/job/warden, + /datum/job/detective, + // Heads of staff + /datum/job/head_of_personnel, + /datum/job/chief_medical_officer, + /datum/job/research_director, + ) + +/datum/traitor_objective/destroy_heirloom/captain + progression_minimum = 30 MINUTES + target_jobs = list( + /datum/job/head_of_security, + /datum/job/captain + ) + +/datum/traitor_objective/destroy_heirloom/generate_objective(datum/mind/generating_for, list/possible_duplicates) + var/list/possible_targets = list() + for(var/datum/mind/possible_target as anything in get_crewmember_minds()) + if(possible_target == generating_for) + continue + if(!ishuman(possible_target.current)) + continue + var/datum/quirk/item_quirk/family_heirloom/quirk = locate() in possible_target.current.quirks + if(!quirk || !quirk.heirloom.resolve()) + return + if(!(possible_target.assigned_role.type in target_jobs)) + continue + possible_targets += possible_target + for(var/datum/traitor_objective/destroy_heirloom/objective as anything in possible_duplicates) + possible_targets -= objective.target_item + if(!length(possible_targets)) + return FALSE + var/datum/mind/target_mind = pick(possible_targets) + AddComponent(/datum/component/traitor_objective_register, target_mind.current, fail_signals = COMSIG_PARENT_QDELETING) + var/datum/quirk/item_quirk/family_heirloom/quirk = locate() in target_mind.current.quirks + target_item = quirk.heirloom.resolve() + AddComponent(/datum/component/traitor_objective_register, target_item, succeed_signals = COMSIG_PARENT_QDELETING) + replace_in_name("%TARGET%", target_mind.name) + replace_in_name("%JOB TITLE%", target_mind.assigned_role.title) + replace_in_name("%ITEM%", target_item.name) + return TRUE + +/datum/traitor_objective/destroy_heirloom/ungenerate_objective() + target_item = null diff --git a/code/modules/antagonists/traitor/objectives/destroy_item.dm b/code/modules/antagonists/traitor/objectives/destroy_item.dm new file mode 100644 index 00000000000..6645de21b70 --- /dev/null +++ b/code/modules/antagonists/traitor/objectives/destroy_item.dm @@ -0,0 +1,104 @@ +/datum/traitor_objective/destroy_item + name = "Steal %ITEM% and destroy it" + description = "Find %ITEM% and destroy it using any means necessary. We can't allow the crew to have %ITEM% as it conflicts with our interests." + + progression_minimum = 20 MINUTES + progression_reward = 5 MINUTES + telecrystal_reward = list(2, 4) + + var/list/possible_items = list() + /// The current target item that we are stealing. + var/datum/objective_item/steal/target_item + /// Any special equipment that may be needed + var/list/special_equipment + /// Items that are currently tracked and will succeed this objective when destroyed. + var/list/tracked_items = list() + + abstract_type = /datum/traitor_objective/destroy_item + +/datum/traitor_objective/destroy_item/low_risk + progression_minimum = 10 MINUTES + progression_maximum = 35 MINUTES + progression_reward = list(5 MINUTES, 10 MINUTES) + telecrystal_reward = list(2, 4) + + possible_items = list( + /datum/objective_item/steal/low_risk/bartender_shotgun, + /datum/objective_item/steal/low_risk/fireaxe, + /datum/objective_item/steal/low_risk/nullrod, + ) + +/datum/traitor_objective/destroy_item/very_risky + progression_minimum = 40 MINUTES + progression_reward = 15 MINUTES + telecrystal_reward = list(4, 6) + + possible_items = list( + /datum/objective_item/steal/blackbox, + ) + +/datum/traitor_objective/destroy_item/generate_objective(datum/mind/generating_for, list/possible_duplicates) + var/datum/job/role = generating_for.assigned_role + for(var/datum/traitor_objective/destroy_item/objective as anything in possible_duplicates) + possible_items -= objective.target_item.type + while(length(possible_items)) + var/datum/objective_item/steal/target = pick_n_take(possible_items) + target = new target() + if(!target.TargetExists()) + qdel(target) + continue + if(role.title in target.excludefromjob) + qdel(target) + continue + if(target.exists_on_map) + var/list/items = GLOB.steal_item_handler.objectives_by_path[target.targetitem] + if(!length(items)) + continue + target_item = target + break + if(!target_item) + return FALSE + if(target_item.exists_on_map) + var/list/items = GLOB.steal_item_handler.objectives_by_path[target_item.targetitem] + for(var/obj/item/item as anything in items) + AddComponent(/datum/component/traitor_objective_register, item, succeed_signals = COMSIG_PARENT_QDELETING) + tracked_items += item + if(length(target_item.special_equipment)) + special_equipment = target_item.special_equipment + replace_in_name("%ITEM%", target_item.name) + AddComponent(/datum/component/traitor_objective_mind_tracker, generating_for, \ + signals = list(COMSIG_MOB_EQUIPPED_ITEM = .proc/on_item_pickup)) + return TRUE + +/datum/traitor_objective/destroy_item/is_duplicate(datum/traitor_objective/destroy_item/objective_to_compare) + if(objective_to_compare.target_item.type == target_item.type) + return TRUE + return FALSE + +/datum/traitor_objective/destroy_item/generate_ui_buttons(mob/user) + var/list/buttons = list() + if(special_equipment) + buttons += add_ui_button("", "Pressing this will summon any extra special equipment you may need for the mission.", "tools", "summon_gear") + return buttons + +/datum/traitor_objective/destroy_item/ui_perform_action(mob/living/user, action) + . = ..() + switch(action) + if("summon_gear") + if(!special_equipment) + return + for(var/item in special_equipment) + var/obj/item/new_item = new item(user.drop_location()) + user.put_in_hands(new_item) + user.balloon_alert(user, "the equipment materializes in your hand") + special_equipment = null + +/datum/traitor_objective/destroy_item/proc/on_item_pickup(datum/source, obj/item/item, slot) + SIGNAL_HANDLER + if(istype(item, target_item.targetitem) && !(item in tracked_items)) + AddComponent(/datum/component/traitor_objective_register, item, succeed_signals = COMSIG_PARENT_QDELETING) + tracked_items += item + +/datum/traitor_objective/destroy_item/ungenerate_objective() + tracked_items.Cut() + return ..() diff --git a/code/modules/antagonists/traitor/objectives/final_objective/battlecruiser.dm b/code/modules/antagonists/traitor/objectives/final_objective/battlecruiser.dm new file mode 100644 index 00000000000..995014aef5d --- /dev/null +++ b/code/modules/antagonists/traitor/objectives/final_objective/battlecruiser.dm @@ -0,0 +1,47 @@ +/// The minimum number of ghosts and observers needed before handing out battlecruiser objectives. +#define MIN_GHOSTS_FOR_BATTLECRUISER 8 + +/datum/traitor_objective/final/battlecruiser + name = "Reveal Station Coordinates to nearby Syndicate Battlecruiser" + description = "Use a special upload card on a communications console to send the coordinates \ + of the station to a nearby Battlecruiser. You may want to make your syndicate status known to \ + the battlecruiser crew when they arrive - their goal will be to destroy the station." + + /// Checks whether we have sent the card to the traitor yet. + var/sent_accesscard = FALSE + +/datum/traitor_objective/final/battlecruiser/generate_objective(datum/mind/generating_for, list/possible_duplicates) + if(!can_take_final_objective()) + return FALSE + // There's no empty space to load a battlecruiser in... + if(!SSmapping.empty_space) + return FALSE + // Check how many observers + ghosts (dead players) we have. + // If there's not a ton of observers and ghosts to populate the battlecruiser, + // We won't bother giving the objective out. + var/num_ghosts = length(GLOB.current_observers_list) + length(GLOB.dead_player_list) + if(num_ghosts < MIN_GHOSTS_FOR_BATTLECRUISER) + return FALSE + + return TRUE + +/datum/traitor_objective/final/battlecruiser/generate_ui_buttons(mob/user) + var/list/buttons = list() + if(!sent_accesscard) + buttons += add_ui_button("", "Pressing this will materialize an upload card, which you can use on a communication console to contact the fleet.", "phone", "card") + return buttons + +/datum/traitor_objective/final/battlecruiser/ui_perform_action(mob/living/user, action) + . = ..() + switch(action) + if("card") + if(sent_accesscard) + return + sent_accesscard = TRUE + podspawn(list( + "target" = get_turf(user), + "style" = STYLE_SYNDICATE, + "spawn" = /obj/item/card/emag/battlecruiser, + )) + +#undef MIN_GHOSTS_FOR_BATTLECRUISER diff --git a/code/modules/antagonists/traitor/objectives/final_objective/final_objective.dm b/code/modules/antagonists/traitor/objectives/final_objective/final_objective.dm new file mode 100644 index 00000000000..9d7171aa166 --- /dev/null +++ b/code/modules/antagonists/traitor/objectives/final_objective/final_objective.dm @@ -0,0 +1,35 @@ +/datum/traitor_objective_category/final_objective + name = "Final Objective" + objectives = list( + /datum/traitor_objective/final/romerol = 1, + /datum/traitor_objective/final/battlecruiser = 1, + ) + weight = 100 + +/datum/traitor_objective/final + abstract_type = /datum/traitor_objective/final + progression_minimum = 140 MINUTES + + var/progression_points_in_objectives = 20 MINUTES + +/// Determines if this final objective can be taken. Should be put into every final objective's generate function. +/datum/traitor_objective/final/proc/can_take_final_objective() + if(handler.get_completion_progression(/datum/traitor_objective) < progression_points_in_objectives) + return FALSE + if(SStraitor.get_taken_count(type) > 0) // Prevents multiple people from ever getting the same final objective. + return FALSE + return TRUE + +/datum/traitor_objective/final/on_objective_taken(mob/user) + . = ..() + handler.maximum_potential_objectives = 0 + for(var/datum/traitor_objective/objective as anything in handler.potential_objectives) + objective.fail_objective() + user.playsound_local(get_turf(user), 'sound/traitor/final_objective.ogg', vol = 100, vary = FALSE, channel = CHANNEL_TRAITOR) + +/datum/traitor_objective/final/is_duplicate(datum/traitor_objective/objective_to_compare) + return TRUE + +/datum/traitor_objective/final/uplink_ui_data(mob/user) + . = ..() + .["final_objective"] = TRUE diff --git a/code/modules/antagonists/traitor/objectives/final_objective/romerol.dm b/code/modules/antagonists/traitor/objectives/final_objective/romerol.dm new file mode 100644 index 00000000000..0ef11879e0b --- /dev/null +++ b/code/modules/antagonists/traitor/objectives/final_objective/romerol.dm @@ -0,0 +1,46 @@ +/datum/traitor_objective/final/romerol + name = "Spread the experimental bioterror agent Romerol by calling a droppod down at %AREA%" + description = "Go to %AREA%, and recieve the bioterror agent. Spread it to the crew, \ + and watch then raise from the dead as mindless killing machines. Warning: The undead will attack you too." + + //this is a prototype so this progression is for all basic level kill objectives + + ///area type the objective owner must be in to recieve the romerol + var/area/romerol_spawnarea_type + ///checker on whether we have sent the romerol yet. + var/sent_romerol = FALSE + +/datum/traitor_objective/final/romerol/generate_objective(datum/mind/generating_for, list/possible_duplicates) + if(!can_take_final_objective()) + return + var/list/possible_areas = GLOB.the_station_areas.Copy() + for(var/area/possible_area as anything in possible_areas) + //remove areas too close to the destination, too obvious for our poor shmuck, or just unfair + if(istype(possible_area, /area/hallway) || istype(possible_area, /area/security)) + possible_areas -= possible_area + romerol_spawnarea_type = pick(possible_areas) + replace_in_name("%AREA%", initial(romerol_spawnarea_type.name)) + return TRUE + +/datum/traitor_objective/final/romerol/generate_ui_buttons(mob/user) + var/list/buttons = list() + if(!sent_romerol) + buttons += add_ui_button("", "Pressing this will call down a pod with the biohazard kit.", "biohazard", "romerol") + return buttons + +/datum/traitor_objective/final/romerol/ui_perform_action(mob/living/user, action) + . = ..() + switch(action) + if("romerol") + if(sent_romerol) + return + var/area/delivery_area = get_area(user) + if(delivery_area.type != romerol_spawnarea_type) + to_chat(user, span_warning("You must be in [initial(romerol_spawnarea_type.name)] to recieve the bioterror agent.")) + return + sent_romerol = TRUE + podspawn(list( + "target" = get_turf(user), + "style" = STYLE_SYNDICATE, + "spawn" = /obj/item/storage/box/syndie_kit/romerol, + )) diff --git a/code/modules/antagonists/traitor/objectives/hack_comm_console.dm b/code/modules/antagonists/traitor/objectives/hack_comm_console.dm new file mode 100644 index 00000000000..f9977338eb6 --- /dev/null +++ b/code/modules/antagonists/traitor/objectives/hack_comm_console.dm @@ -0,0 +1,56 @@ +/datum/traitor_objective_category/hack_comm_console + name = "Hack Communication Console" + objectives = list( + /datum/traitor_objective/hack_comm_console = 1, + ) + +/datum/traitor_objective/hack_comm_console + name = "Hack a communication console to summon an unknown threat to the station" + description = "Right click on a communication console to begin the hacking process. Once started, the AI will know that you are hacking a communication console, so be ready to run or have yourself disguised to prevent being caught. This objective will invalidate itself if another traitor completes it first." + + progression_minimum = 60 MINUTES + progression_reward = list(30 MINUTES, 40 MINUTES) + telecrystal_reward = list(7, 12) + + var/progression_objectives_minimum = 20 MINUTES + +/datum/traitor_objective/hack_comm_console/generate_objective(datum/mind/generating_for, list/possible_duplicates) + if(SStraitor.get_taken_count(/datum/traitor_objective/hack_comm_console) > 0) + return FALSE + if(handler.get_completion_progression(/datum/traitor_objective) < progression_objectives_minimum) + return FALSE + AddComponent(/datum/component/traitor_objective_mind_tracker, generating_for, \ + signals = list(COMSIG_HUMAN_EARLY_UNARMED_ATTACK = .proc/on_unarmed_attack)) + RegisterSignal(generating_for, COMSIG_GLOB_TRAITOR_OBJECTIVE_COMPLETED, .proc/on_global_obj_completed) + return TRUE + +/datum/traitor_objective/hack_comm_console/proc/on_global_obj_completed(datum/source, datum/traitor_objective/objective) + SIGNAL_HANDLER + if(istype(objective, /datum/traitor_objective/hack_comm_console)) + fail_objective() + +/datum/traitor_objective/hack_comm_console/proc/on_unarmed_attack(mob/user, obj/machinery/computer/communications/target, proximity_flag, modifiers) + SIGNAL_HANDLER + if(!proximity_flag) + return + if(!modifiers[RIGHT_CLICK]) + return + if(!istype(target)) + return + target.AI_notify_hack() + INVOKE_ASYNC(src, .proc/begin_hack, user, target) + return COMPONENT_CANCEL_ATTACK_CHAIN + +/datum/traitor_objective/hack_comm_console/proc/begin_hack(mob/user, obj/machinery/computer/communications/target) + if(!do_after(user, 30 SECONDS, target)) + return + succeed_objective() + switch(rand(0, 1)) + if(0) + priority_announce("Attention crew, it appears that someone on your station has made unexpected communication with an alien device in nearby space.", "[command_name()] High-Priority Update") + var/datum/round_event_control/spawn_swarmer/swarmer_event = new/datum/round_event_control/spawn_swarmer + swarmer_event.runEvent() + if(1) + priority_announce("Attention crew, it appears that someone on your station has made unexpected communication with a syndicate ship in nearby space.", "[command_name()] High-Priority Update") + var/datum/round_event_control/pirates/pirate_event = new/datum/round_event_control/pirates + pirate_event.runEvent() diff --git a/code/modules/antagonists/traitor/objectives/kill_pet.dm b/code/modules/antagonists/traitor/objectives/kill_pet.dm new file mode 100644 index 00000000000..1be2f5a8cb0 --- /dev/null +++ b/code/modules/antagonists/traitor/objectives/kill_pet.dm @@ -0,0 +1,92 @@ +/datum/traitor_objective_category/kill_pet + name = "Kill Pet" + objectives = list( + /datum/traitor_objective/kill_pet/high_risk = 1, + list( + /datum/traitor_objective/kill_pet = 2, + /datum/traitor_objective/kill_pet/medium_risk = 1, + ) = 4, + ) + +/datum/traitor_objective/kill_pet + name = "Kill the %DEPARTMENT HEAD%'s beloved %PET%" + description = "The %DEPARTMENT HEAD% has particularly annoyed us by sending us spam emails and we want their %PET% dead to show them what happens when they cross us. " + telecrystal_reward = list(1, 3) + + progression_reward = list(3 MINUTES, 6 MINUTES) + + /// Possible heads mapped to their pet type. Can be a list of possible pets + var/list/possible_heads = list( + JOB_HEAD_OF_PERSONNEL = list( + /mob/living/simple_animal/pet/dog/corgi/ian, + /mob/living/simple_animal/pet/dog/corgi/puppy/ian + ), + JOB_CAPTAIN = /mob/living/simple_animal/pet/fox/renault, + JOB_CHIEF_MEDICAL_OFFICER = /mob/living/simple_animal/pet/cat/runtime, + JOB_CHIEF_ENGINEER = /mob/living/simple_animal/parrot/poly, + ) + /// The head that we are targetting + var/datum/job/target + /// Whether or not we only take from the traitor's own department head or not. + var/limited_to_department_head = TRUE + /// The actual pet that needs to be killed + var/mob/living/target_pet + +/datum/traitor_objective/kill_pet/medium_risk + progression_minimum = 10 MINUTES + progression_reward = list(5 MINUTES, 8 MINUTES) + limited_to_department_head = FALSE + +/datum/traitor_objective/kill_pet/high_risk + progression_minimum = 25 MINUTES + progression_reward = list(14 MINUTES, 18 MINUTES) + telecrystal_reward = list(3, 5) + + limited_to_department_head = FALSE + possible_heads = list( + JOB_HEAD_OF_SECURITY = list( + /mob/living/simple_animal/hostile/carp/lia, + /mob/living/simple_animal/hostile/retaliate/bat/sgt_araneus + ), + JOB_WARDEN = list( + /mob/living/simple_animal/pet/dog/pug/mcgriff + ) + ) + +/datum/traitor_objective/kill_pet/generate_objective(datum/mind/generating_for, list/possible_duplicates) + var/datum/job/role = generating_for.assigned_role + for(var/datum/traitor_objective/kill_pet/objective as anything in possible_duplicates) + possible_heads -= objective.target.title + if(limited_to_department_head) + possible_heads = possible_heads & role.department_head + + if(!length(possible_heads)) + return FALSE + target = SSjob.name_occupations[pick(possible_heads)] + var/pet_type = possible_heads[target.title] + if(islist(pet_type)) + for(var/type in pet_type) + target_pet = locate(pet_type) in GLOB.mob_living_list + if(target_pet) + break + else + target_pet = locate(pet_type) in GLOB.mob_living_list + if(!target_pet) + return FALSE + if(target_pet.stat == DEAD) + return FALSE + AddComponent(/datum/component/traitor_objective_register, target_pet, \ + succeed_signals = list(COMSIG_PARENT_QDELETING, COMSIG_LIVING_DEATH)) + replace_in_name("%DEPARTMENT HEAD%", target.title) + replace_in_name("%PET%", target_pet.name) + return TRUE + +/datum/traitor_objective/kill_pet/ungenerate_objective() + if(target_pet) + UnregisterSignal(target_pet, list(COMSIG_PARENT_QDELETING, COMSIG_LIVING_DEATH)) + target_pet = null + +/datum/traitor_objective/kill_pet/is_duplicate(datum/traitor_objective/kill_pet/objective_to_compare) + if(objective_to_compare.target.type == target.type) + return TRUE + return FALSE diff --git a/code/modules/antagonists/traitor/objectives/sleeper_protocol.dm b/code/modules/antagonists/traitor/objectives/sleeper_protocol.dm new file mode 100644 index 00000000000..92f30bdaa3a --- /dev/null +++ b/code/modules/antagonists/traitor/objectives/sleeper_protocol.dm @@ -0,0 +1,113 @@ +/datum/traitor_objective_category/sleeper_protocol + name = "Sleeper Protocol" + objectives = list( + /datum/traitor_objective/sleeper_protocol = 1, + ) + + +/datum/traitor_objective/sleeper_protocol + name = "Perform the sleeper protocol on a crewmember" + description = "Use the button below to materialize a surgery disk in your hand, where you'll then be able to perform the sleeper protocol on a crewmember. If the disk gets destroyed, the objective will fail. This will only work on living and sentient crewmembers." + + progression_reward = list(8 MINUTES, 15 MINUTES) + telecrystal_reward = 0 + + var/list/limited_to = list( + JOB_CHIEF_MEDICAL_OFFICER, + JOB_MEDICAL_DOCTOR, + JOB_PARAMEDIC, + JOB_VIROLOGIST, + ) + + var/obj/item/disk/surgery/sleeper_protocol/disk + + var/mob/living/current_registered_mob + +/datum/traitor_objective/sleeper_protocol/generate_ui_buttons(mob/user) + var/list/buttons = list() + if(!disk) + buttons += add_ui_button("", "Clicking this will materialize the sleeper protocol surgery in your hand", "save", "summon_disk") + return buttons + +/datum/traitor_objective/sleeper_protocol/ui_perform_action(mob/living/user, action) + switch(action) + if("summon_disk") + if(disk) + return + disk = new(user.drop_location()) + user.put_in_hands(disk) + AddComponent(/datum/component/traitor_objective_register, disk, \ + fail_signals = COMSIG_PARENT_QDELETING) + +/datum/traitor_objective/sleeper_protocol/proc/on_surgery_success(datum/source, datum/surgery_step/step, mob/living/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results) + SIGNAL_HANDLER + if(istype(step, /datum/surgery_step/brainwash/sleeper_agent)) + succeed_objective() + +/datum/traitor_objective/sleeper_protocol/generate_objective(datum/mind/generating_for, list/possible_duplicates) + var/datum/job/job = generating_for.assigned_role + if(!(job.title in limited_to)) + return FALSE + AddComponent(/datum/component/traitor_objective_mind_tracker, generating_for, \ + signals = list(COMSIG_MOB_SURGERY_STEP_SUCCESS = .proc/on_surgery_success)) + return TRUE + +/datum/traitor_objective/sleeper_protocol/ungenerate_objective() + disk = null + +/datum/traitor_objective/sleeper_protocol/is_duplicate() + return TRUE + +/obj/item/disk/surgery/sleeper_protocol + name = "Suspicious Surgery Disk" + desc = "The disk provides instructions on how to turn someone into a sleeper agent for the Syndicate" + surgeries = list(/datum/surgery/advanced/brainwashing_sleeper) + +/datum/surgery/advanced/brainwashing_sleeper + name = "Sleeper Agent Surgery" + desc = "A surgical procedure which implants the sleeper protocol into the patient's brain, making it their absolute priority. It can be cleared using a mindshield implant." + steps = list( + /datum/surgery_step/incise, + /datum/surgery_step/retract_skin, + /datum/surgery_step/saw, + /datum/surgery_step/clamp_bleeders, + /datum/surgery_step/brainwash/sleeper_agent, + /datum/surgery_step/close) + + target_mobtypes = list(/mob/living/carbon/human) + possible_locs = list(BODY_ZONE_HEAD) + +/datum/surgery/advanced/brainwashing_sleeper/can_start(mob/user, mob/living/carbon/target) + if(!..()) + return FALSE + var/obj/item/organ/brain/target_brain = target.getorganslot(ORGAN_SLOT_BRAIN) + if(!target_brain) + return FALSE + return TRUE + +/datum/surgery_step/brainwash/sleeper_agent + time = 25 SECONDS + var/list/possible_objectives = list( + "You love the Syndicate", + "Do not trust Nanotrasen", + "The Captain is a lizardperson", + "Nanotrasen isn't real", + "They put things in the food to make you forget", + "You are the only real person on the station" + ) + +/datum/surgery_step/brainwash/sleeper_agent/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) + objective = pick(possible_objectives) + display_results(user, target, span_notice("You begin to brainwash [target]..."), + span_notice("[user] begins to fix [target]'s brain."), + span_notice("[user] begins to perform surgery on [target]'s brain.")) + display_pain(target, "Your head pounds with unimaginable pain!") // Same message as other brain surgeries + +/datum/surgery_step/brainwash/sleeper_agent/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE) + if(target.stat == DEAD) + to_chat(user, span_warning("They need to be alive to perform this surgery!")) + return FALSE + . = ..() + if(!.) + return + target.gain_trauma(new /datum/brain_trauma/mild/phobia/conspiracies(), TRAUMA_RESILIENCE_LOBOTOMY) diff --git a/code/modules/antagonists/traitor/objectives/smuggling.dm b/code/modules/antagonists/traitor/objectives/smuggling.dm new file mode 100644 index 00000000000..dff20d80d46 --- /dev/null +++ b/code/modules/antagonists/traitor/objectives/smuggling.dm @@ -0,0 +1,120 @@ +/datum/traitor_objective_category/smuggle + name = "Smuggling" + objectives = list( + /datum/traitor_objective/smuggle = 1, + ) + +///smuggle! bring a traitor item from its arrival area to the cargo shuttle, where the objective completes on selling the item +/datum/traitor_objective/smuggle + name = "Smuggle %CONTRABAND% from %AREA% off the station via cargo shuttle" + description = "Go to a designated area, pick up syndicate contraband, and get it off the station via the cargo shuttle. \ + You will instantly fail this objective if anyone else picks up your contraband. If you fail, you are liable for the costs \ + of the smuggling item." + + progression_reward = list(5 MINUTES, 9 MINUTES) + telecrystal_reward = list(0, 1) + + ///area type the objective owner must be in to recieve the contraband + var/area/smuggle_spawn_type + ///the contraband that must be exported on the shuttle + var/obj/item/contraband + ///type of contraband to spawn + var/obj/item/contraband_type + /// possible objective items. Mapped by item type = penalty cost for failing + var/list/possible_contrabands = list( + /obj/item/pen/edagger/prototype = 2, + /obj/item/gun/syringe/syndicate/prototype = 4, + /obj/item/reagent_containers/glass/bottle/ritual_wine = 6, //poison kit price + ) + +/datum/traitor_objective/smuggle/is_duplicate(datum/traitor_objective/smuggle/objective_to_compare) + if(objective_to_compare.contraband_type == contraband_type) + return TRUE + //it's too similar if its from the same area + if(objective_to_compare.smuggle_spawn_type == smuggle_spawn_type) + return TRUE + return FALSE + +/datum/traitor_objective/smuggle/generate_ui_buttons(mob/user) + var/list/buttons = list() + if(!contraband) + buttons += add_ui_button("", "Pressing this will materialize the contraband you need to deliver. You must be in [initial(smuggle_spawn_type.name)] to receive it!", "box", "summon_contraband") + return buttons + +/datum/traitor_objective/smuggle/ui_perform_action(mob/living/user, action) + . = ..() + switch(action) + if("summon_contraband") + if(contraband) + return + var/area/player_area = get_area(user) + if(!istype(player_area, smuggle_spawn_type)) + user.balloon_alert(user, "you can't materialize this here!") + return + contraband = new contraband_type(user.drop_location()) + user.put_in_hands(contraband) + user.balloon_alert(user, "[contraband] materializes in your hand") + RegisterSignal(contraband, COMSIG_ITEM_PICKUP, .proc/on_contraband_pickup) + AddComponent(/datum/component/traitor_objective_register, contraband, \ + succeed_signals = COMSIG_ITEM_EXPORTED, \ + fail_signals = list(COMSIG_PARENT_QDELETING), \ + penalty = telecrystal_penalty \ + ) + if(contraband.reagents) + AddComponent(/datum/component/traitor_objective_register, contraband.reagents, \ + fail_signals = list(COMSIG_REAGENTS_REM_REAGENT, COMSIG_REAGENTS_DEL_REAGENT), \ + penalty = telecrystal_penalty) + +/datum/traitor_objective/smuggle/generate_objective(datum/mind/generating_for, list/possible_duplicates) + //anyone working cargo should not get almost free objectives by having direct access to the cargo shuttle + if(generating_for.assigned_role.departments_bitflags & DEPARTMENT_BITFLAG_CARGO) + return FALSE + + //choose starting area to recieve contraband + var/list/possible_areas = GLOB.the_station_areas.Copy() + for(var/area/possible_area as anything in possible_areas) + //remove areas too close to the destination, too obvious for our poor shmuck, or just unfair + if(istype(possible_area, /area/cargo) || istype(possible_area, /area/hallway) || istype(possible_area, /area/security)) + possible_areas -= possible_area + for(var/datum/traitor_objective/smuggle/smuggle_objective as anything in possible_duplicates) + possible_areas -= smuggle_objective.smuggle_spawn_type + possible_contrabands -= smuggle_objective.contraband_type + if(smuggle_objective.objective_state == OBJECTIVE_STATE_INACTIVE || smuggle_objective.objective_state == OBJECTIVE_STATE_ACTIVE) + return FALSE // You can only have 1 objective of this type active and inactive at a time. + if(!length(possible_contrabands)) + return FALSE + if(!length(possible_areas)) + return FALSE + smuggle_spawn_type = pick(possible_areas) + //choose contraband type to spawn when reaching starting area + contraband_type = pick(possible_contrabands) + telecrystal_penalty = possible_contrabands[contraband_type] + replace_in_name("%CONTRABAND%", initial(contraband_type.name)) + replace_in_name("%AREA%", initial(smuggle_spawn_type.name)) + return TRUE + +/datum/traitor_objective/smuggle/ungenerate_objective() + . = ..() + if(contraband) + UnregisterSignal(contraband, COMSIG_ITEM_PICKUP) + contraband = null + +/datum/traitor_objective/smuggle/proc/on_contraband_pickup(datum/source, mob/taker) + SIGNAL_HANDLER + if(taker != handler.owner?.current) + fail_objective(penalty_cost = telecrystal_penalty) + +//smuggling container +/obj/item/reagent_containers/glass/bottle/ritual_wine + name = "ritual wine bottle" + desc = "Contains an incredibly potent mix of various hallucinogenics, herbal extracts, and hard drugs. \ + the Tiger Cooperative praises it as a link to higher powers, but for all intents and purposes this should \ + not be consumed." + list_reagents = list( + //changeling adrenals part + /datum/reagent/drug/methamphetamine = 5, + //hallucinations part + /datum/reagent/drug/mushroomhallucinogen = 35, + //alcoholic part, plus more hallucinations lel + /datum/reagent/consumable/ethanol/ritual_wine = 10, + ) diff --git a/code/modules/antagonists/traitor/objectives/steal.dm b/code/modules/antagonists/traitor/objectives/steal.dm new file mode 100644 index 00000000000..df8c45a4e16 --- /dev/null +++ b/code/modules/antagonists/traitor/objectives/steal.dm @@ -0,0 +1,263 @@ +/datum/traitor_objective_category/steal_item + name = "Steal Item" + objectives = list( + list( + list( + /datum/traitor_objective/steal_item/low_risk = 1, + /datum/traitor_objective/destroy_item/low_risk = 1, + ) = 1, + /datum/traitor_objective/steal_item/low_risk_cap = 1, + + ) = 1, + /datum/traitor_objective/steal_item/somewhat_risky = 1, + list( + /datum/traitor_objective/destroy_item/very_risky = 1, + /datum/traitor_objective/steal_item/risky = 1, + ) = 1, + /datum/traitor_objective/steal_item/very_risky = 1, + /datum/traitor_objective/steal_item/most_risky = 1 + ) + +GLOBAL_DATUM_INIT(steal_item_handler, /datum/objective_item_handler, new()) + +/datum/objective_item_handler + var/list/objectives_by_path = list() + +/datum/objective_item_handler/New() + . = ..() + RegisterSignal(SSatoms, COMSIG_SUBSYSTEM_POST_INITIALIZE, .proc/save_items) + +// Very inefficient proc, only gets called when the map finishes loading. +/datum/objective_item_handler/proc/save_items() + for(var/datum/objective_item/steal/steal as anything in subtypesof(/datum/objective_item/steal)) + if(!initial(steal.exists_on_map)) + continue + objectives_by_path[initial(steal.targetitem)] = list() + for(var/atom/object as anything in world) + var/turf/place = get_turf(object) + if(!place || !is_station_level(place.z)) + continue + for(var/typepath in objectives_by_path) + if(istype(object, typepath)) + objectives_by_path[typepath] += object + RegisterSignal(object, COMSIG_PARENT_QDELETING, .proc/remove_item) + +/datum/objective_item_handler/proc/remove_item(atom/source) + SIGNAL_HANDLER + for(var/typepath in objectives_by_path) + objectives_by_path[typepath] -= typepath + +/datum/traitor_objective/steal_item + name = "Steal %ITEM% and place a bug on it. Hold it for %TIME% minutes" + description = "Use the button below to materialize the bug within your hand, where you'll then be able to place it on the item. After that, you must keep it near you for %TIME% minutes" + + progression_minimum = 20 MINUTES + progression_reward = 5 MINUTES + telecrystal_reward = list(2, 4) + + var/list/possible_items = list() + /// The current target item that we are stealing. + var/datum/objective_item/steal/target_item + /// A list of 2 elements, which contain the range that the time will be in. Represented in minutes. + var/hold_time_required = list(5, 15) + /// The current time fulfilled around the item + var/time_fulfilled = 0 + /// The maximum distance between the bug and the objective taker for time to count as fulfilled + var/max_distance = 4 + /// The bug that will be put onto the item + var/obj/item/traitor_bug/bug + /// Any special equipment that may be needed + var/list/special_equipment + /// Telecrystal reward increase per unit of time. + var/minutes_per_telecrystal = 3 + + abstract_type = /datum/traitor_objective/steal_item + +/datum/traitor_objective/steal_item/low_risk_cap + progression_minimum = 5 MINUTES + progression_maximum = 20 MINUTES + + progression_reward = list(5 MINUTES, 10 MINUTES) + telecrystal_reward = 2 + possible_items = list( + /datum/objective_item/steal/low_risk/techboard/borgupload, + /datum/objective_item/steal/low_risk/techboard/aiupload, + /datum/objective_item/steal/low_risk/aicard, + ) + +/datum/traitor_objective/steal_item/low_risk + progression_minimum = 10 MINUTES + progression_maximum = 35 MINUTES + progression_reward = list(5 MINUTES, 10 MINUTES) + telecrystal_reward = 2 + + possible_items = list( + /datum/objective_item/steal/low_risk/cargo_budget, + /datum/objective_item/steal/low_risk/clown_shoes, + ) + +/datum/traitor_objective/steal_item/somewhat_risky + progression_minimum = 20 MINUTES + progression_reward = 5 MINUTES + telecrystal_reward = list(2, 3) + + possible_items = list( + /datum/objective_item/steal/magboots, + /datum/objective_item/steal/hypo, + /datum/objective_item/steal/reactive, + /datum/objective_item/steal/handtele, + /datum/objective_item/steal/blueprints, + ) + +/datum/traitor_objective/steal_item/risky + progression_minimum = 30 MINUTES + progression_reward = 13 MINUTES + telecrystal_reward = list(3, 5) + + possible_items = list( + /datum/objective_item/steal/reflector, + /datum/objective_item/steal/capmedal, + /datum/objective_item/steal/hdd_extraction, + /datum/objective_item/steal/documents, + ) + +/datum/traitor_objective/steal_item/very_risky + progression_minimum = 40 MINUTES + progression_reward = 17 MINUTES + telecrystal_reward = list(4, 7) + + possible_items = list( + /datum/objective_item/steal/hoslaser, + /datum/objective_item/steal/caplaser, + /datum/objective_item/steal/nuke_core, + /datum/objective_item/steal/supermatter, + ) + +/datum/traitor_objective/steal_item/most_risky + progression_minimum = 50 MINUTES + progression_reward = 25 MINUTES + telecrystal_reward = list(8, 12) + + possible_items = list( + /datum/objective_item/steal/nukedisc, + ) + +/datum/traitor_objective/steal_item/most_risky/generate_objective(datum/mind/generating_for, list/possible_duplicates) + if(!handler.get_completion_count(/datum/traitor_objective/steal_item/very_risky)) + return FALSE + return ..() + +/datum/traitor_objective/steal_item/generate_objective(datum/mind/generating_for, list/possible_duplicates) + var/datum/job/role = generating_for.assigned_role + for(var/datum/traitor_objective/steal_item/objective as anything in possible_duplicates) + possible_items -= objective.target_item.type + while(length(possible_items)) + var/datum/objective_item/steal/target = pick_n_take(possible_items) + target = new target() + if(!target.TargetExists()) + qdel(target) + continue + if(role.title in target.excludefromjob) + qdel(target) + continue + if(target.exists_on_map) + var/list/items = GLOB.steal_item_handler.objectives_by_path[target.targetitem] + if(!length(items)) + continue + target_item = target + break + if(!target_item) + return FALSE + if(length(target_item.special_equipment)) + special_equipment = target_item.special_equipment + hold_time_required = rand(hold_time_required[1], hold_time_required[2]) + progression_reward += hold_time_required * (1 MINUTES) + telecrystal_reward += round(hold_time_required / max(minutes_per_telecrystal, 0.1)) + replace_in_name("%ITEM%", target_item.name) + replace_in_name("%TIME%", hold_time_required) + return TRUE + +/datum/traitor_objective/steal_item/ungenerate_objective() + STOP_PROCESSING(SSprocessing, src) + if(bug) + UnregisterSignal(bug, list(COMSIG_TRAITOR_BUG_PLANTED_OBJECT, COMSIG_TRAITOR_BUG_PRE_PLANTED_OBJECT)) + bug = null + +/datum/traitor_objective/steal_item/is_duplicate(datum/traitor_objective/steal_item/objective_to_compare) + if(objective_to_compare.target_item.type == target_item.type) + return TRUE + return FALSE + +/datum/traitor_objective/steal_item/generate_ui_buttons(mob/user) + var/list/buttons = list() + if(special_equipment) + buttons += add_ui_button("", "Pressing this will summon any extra special equipment you may need for the mission.", "tools", "summon_gear") + if(!bug) + buttons += add_ui_button("", "Pressing this will materialize a bug in your hand, which you can place on the target item", "wifi", "summon_bug") + else if(bug.planted_on) + buttons += add_ui_button("[DisplayTimeText(time_fulfilled)]", "This tells you how much time you have spent around the target item after the bug has been planted.", "clock", "none") + return buttons + +/datum/traitor_objective/steal_item/ui_perform_action(mob/living/user, action) + . = ..() + switch(action) + if("summon_bug") + if(bug) + return + bug = new(user.drop_location()) + user.put_in_hands(bug) + bug.balloon_alert(user, "the bug materializes in your hand") + bug.target_object_type = target_item.targetitem + AddComponent(/datum/component/traitor_objective_register, bug, \ + fail_signals = COMSIG_PARENT_QDELETING, \ + penalty = telecrystal_penalty) + RegisterSignal(bug, COMSIG_TRAITOR_BUG_PLANTED_OBJECT, .proc/on_bug_planted) + RegisterSignal(bug, COMSIG_TRAITOR_BUG_PRE_PLANTED_OBJECT, .proc/handle_special_case) + if("summon_gear") + if(!special_equipment) + return + for(var/item in special_equipment) + var/obj/item/new_item = new item(user.drop_location()) + user.put_in_hands(new_item) + user.balloon_alert(user, "the equipment materializes in your hand") + special_equipment = null + +/datum/traitor_objective/steal_item/process(delta_time) + var/mob/owner = handler.owner?.current + if(objective_state != OBJECTIVE_STATE_ACTIVE || !bug.planted_on) + return PROCESS_KILL + if(!owner) + fail_objective() + return PROCESS_KILL + if(get_dist(get_turf(owner), get_turf(bug)) > max_distance) + return + time_fulfilled += delta_time * (1 SECONDS) + if(time_fulfilled >= hold_time_required * (1 MINUTES)) + succeed_objective() + return PROCESS_KILL + handler.on_update() + +/datum/traitor_objective/steal_item/proc/handle_special_case(obj/item/source, obj/item/target) + SIGNAL_HANDLER + if(istype(target, target_item.targetitem)) + if(!target_item.check_special_completion(target)) + return COMPONENT_FORCE_FAIL_PLACEMENT + return + + var/found = FALSE + for(var/typepath in target_item.valid_containers) + if(istype(target, typepath)) + found = TRUE + break + + if(!found) + return + + var/found_item = locate(target_item.targetitem) in target + if(!found_item || !target_item.check_special_completion(found_item)) + return COMPONENT_FORCE_FAIL_PLACEMENT + return COMPONENT_FORCE_PLACEMENT + +/datum/traitor_objective/steal_item/proc/on_bug_planted(obj/item/source, obj/item/location) + SIGNAL_HANDLER + START_PROCESSING(SSprocessing, src) diff --git a/code/modules/antagonists/traitor/syndicate_contract.dm b/code/modules/antagonists/traitor/syndicate_contract.dm deleted file mode 100644 index dfbb7aaffd2..00000000000 --- a/code/modules/antagonists/traitor/syndicate_contract.dm +++ /dev/null @@ -1,236 +0,0 @@ -/datum/syndicate_contract - var/id = 0 - var/status = CONTRACT_STATUS_INACTIVE - var/datum/objective/contract/contract = new() - var/target_rank - var/ransom = 0 - var/payout_type - var/wanted_message - - var/list/victim_belongings = list() - -/datum/syndicate_contract/New(contract_owner, blacklist, type=CONTRACT_PAYOUT_SMALL) - contract.owner = contract_owner - payout_type = type - - generate(blacklist) - -/datum/syndicate_contract/proc/generate(blacklist) - contract.find_target(null, blacklist) - - var/datum/data/record/record - if (contract.target) - record = find_record("name", contract.target.name, GLOB.data_core.general) - - if (record) - target_rank = record.fields["rank"] - else - target_rank = "Unknown" - - if (payout_type == CONTRACT_PAYOUT_LARGE) - contract.payout_bonus = rand(9,13) - else if (payout_type == CONTRACT_PAYOUT_MEDIUM) - contract.payout_bonus = rand(6,8) - else - contract.payout_bonus = rand(2,4) - - contract.payout = rand(0, 2) - contract.generate_dropoff() - - ransom = 100 * rand(18, 45) - - var/base = pick_list(WANTED_FILE, "basemessage") - var/verb_string = pick_list(WANTED_FILE, "verb") - var/noun = pick_list_weighted(WANTED_FILE, "noun") - var/location = pick_list_weighted(WANTED_FILE, "location") - wanted_message = "[base] [verb_string] [noun] [location]." - -/datum/syndicate_contract/proc/handle_extraction(mob/living/user) - if (contract.target && contract.dropoff_check(user, contract.target.current)) - - var/turf/free_location = find_obstruction_free_location(3, user, contract.dropoff) - - if (free_location) - // We've got a valid location, launch. - launch_extraction_pod(free_location) - return TRUE - - return FALSE - -// Launch the pod to collect our victim. -/datum/syndicate_contract/proc/launch_extraction_pod(turf/empty_pod_turf) - var/obj/structure/closet/supplypod/extractionpod/empty_pod = new() - - RegisterSignal(empty_pod, COMSIG_ATOM_ENTERED, .proc/enter_check) - - empty_pod.stay_after_drop = TRUE - empty_pod.reversing = TRUE - empty_pod.explosionSize = list(0,0,0,1) - empty_pod.leavingSound = 'sound/effects/podwoosh.ogg' - - new /obj/effect/pod_landingzone(empty_pod_turf, empty_pod) - -/datum/syndicate_contract/proc/enter_check(datum/source, sent_mob) - SIGNAL_HANDLER - if (istype(source, /obj/structure/closet/supplypod/extractionpod)) - if (isliving(sent_mob)) - var/mob/living/M = sent_mob - var/datum/antagonist/traitor/traitor_data = contract.owner.has_antag_datum(/datum/antagonist/traitor) - - if (M == contract.target.current) - traitor_data.contractor_hub.contract_TC_to_redeem += contract.payout - traitor_data.contractor_hub.contracts_completed += 1 - - if (M.stat != DEAD) - traitor_data.contractor_hub.contract_TC_to_redeem += contract.payout_bonus - - status = CONTRACT_STATUS_COMPLETE - - if (traitor_data.contractor_hub.current_contract == src) - traitor_data.contractor_hub.current_contract = null - - traitor_data.contractor_hub.contract_rep += 2 - else - status = CONTRACT_STATUS_ABORTED // Sending a target that wasn't even yours is as good as just aborting it - - if (traitor_data.contractor_hub.current_contract == src) - traitor_data.contractor_hub.current_contract = null - - if (iscarbon(M)) - for(var/obj/item/W in M) - if (ishuman(M)) - var/mob/living/carbon/human/H = M - if(W == H.w_uniform) - continue //So all they're left with are shoes and uniform. - if(W == H.shoes) - continue - - - M.transferItemToLoc(W) - victim_belongings.Add(W) - - var/obj/structure/closet/supplypod/extractionpod/pod = source - - // Handle the pod returning - pod.startExitSequence(pod) - - if (ishuman(M)) - var/mob/living/carbon/human/target = M - - // After we remove items, at least give them what they need to live. - target.dna.species.give_important_for_life(target) - - // After pod is sent we start the victim narrative/heal. - INVOKE_ASYNC(src, .proc/handleVictimExperience, M) - - // This is slightly delayed because of the sleep calls above to handle the narrative. - // We don't want to tell the station instantly. - var/points_to_check - var/datum/bank_account/D = SSeconomy.get_dep_account(ACCOUNT_CAR) - if(D) - points_to_check = D.account_balance - if(points_to_check >= ransom) - D.adjust_money(-ransom) - else - D.adjust_money(-points_to_check) - - priority_announce("One of your crew was captured by a rival organisation - we've needed to pay their ransom to bring them back. \ - As is policy we've taken a portion of the station's funds to offset the overall cost.", null, null, null, "Nanotrasen Asset Protection") - - INVOKE_ASYNC(src, .proc/finish_enter) - -/datum/syndicate_contract/proc/finish_enter() - sleep(30) - - // Pay contractor their portion of ransom - if (status == CONTRACT_STATUS_COMPLETE) - var/obj/item/card/id/C = contract.owner.current?.get_idcard(TRUE) - - if(C?.registered_account) - C.registered_account.adjust_money(ransom * 0.35) - - C.registered_account.bank_card_talk("We've processed the ransom, agent. Here's your cut - your balance is now \ - [C.registered_account.account_balance] cr.", TRUE) - -// They're off to holding - handle the return timer and give some text about what's going on. -/datum/syndicate_contract/proc/handleVictimExperience(mob/living/M) - // Ship 'em back - dead or alive, 4 minutes wait. - // Even if they weren't the target, we're still treating them the same. - addtimer(CALLBACK(src, .proc/returnVictim, M), (60 * 10) * 4) - - if (M.stat != DEAD) - // Heal them up - gets them out of crit/soft crit. If omnizine is removed in the future, this needs to be replaced with a - // method of healing them, consequence free, to a reasonable amount of health. - M.reagents.add_reagent(/datum/reagent/medicine/omnizine, 20) - - M.flash_act() - M.add_confusion(10) - M.blur_eyes(5) - to_chat(M, span_warning("You feel strange...")) - sleep(60) - to_chat(M, span_warning("That pod did something to you...")) - M.Dizzy(35) - sleep(65) - to_chat(M, span_warning("Your head pounds... It feels like it's going to burst out your skull!")) - M.flash_act() - M.add_confusion(20) - M.blur_eyes(3) - sleep(30) - to_chat(M, span_warning("Your head pounds...")) - sleep(100) - M.flash_act() - M.Unconscious(200) - to_chat(M, "A million voices echo in your head... \"Your mind held many valuable secrets - \ - we thank you for providing them. Your value is expended, and you will be ransomed back to your station. We always get paid, \ - so it's only a matter of time before we ship you back...\"") - M.blur_eyes(10) - M.Dizzy(15) - M.add_confusion(20) - -// We're returning the victim -/datum/syndicate_contract/proc/returnVictim(mob/living/M) - var/list/possible_drop_loc = list() - - for (var/turf/possible_drop in contract.dropoff.contents) - if (!isspaceturf(possible_drop) && !isclosedturf(possible_drop)) - if (!possible_drop.is_blocked_turf()) - possible_drop_loc.Add(possible_drop) - - if (possible_drop_loc.len > 0) - var/pod_rand_loc = rand(1, possible_drop_loc.len) - - var/obj/structure/closet/supplypod/return_pod = new() - return_pod.bluespace = TRUE - return_pod.explosionSize = list(0,0,0,0) - return_pod.style = STYLE_SYNDICATE - - do_sparks(8, FALSE, M) - M.visible_message(span_notice("[M] vanishes...")) - - for(var/obj/item/W in M) - if (ishuman(M)) - var/mob/living/carbon/human/H = M - if(W == H.w_uniform) - continue //So all they're left with are shoes and uniform. - if(W == H.shoes) - continue - M.dropItemToGround(W) - - for(var/obj/item/W in victim_belongings) - W.forceMove(return_pod) - - M.forceMove(return_pod) - - M.flash_act() - M.blur_eyes(30) - M.Dizzy(35) - M.add_confusion(20) - - new /obj/effect/pod_landingzone(possible_drop_loc[pod_rand_loc], return_pod) - else - to_chat(M, "A million voices echo in your head... \"Seems where you got sent here from won't \ - be able to handle our pod... You will die here instead.\"") - if (iscarbon(M)) - var/mob/living/carbon/C = M - if (C.can_heartattack()) - C.set_heartattack(TRUE) diff --git a/code/modules/antagonists/traitor/traitor_objective.dm b/code/modules/antagonists/traitor/traitor_objective.dm new file mode 100644 index 00000000000..3aa94a107f7 --- /dev/null +++ b/code/modules/antagonists/traitor/traitor_objective.dm @@ -0,0 +1,221 @@ +/// A traitor objective. Traitor objectives should not be deleted after they have been created and established, only failed. +/// If a traitor objective needs to be removed from the failed/completed objective list of their handler, then you are doing something wrong +/// and you should reconsider. When an objective is failed/completed, that is final and the only way you can change that is by refactoring the code. +/datum/traitor_objective + /// The name of the traitor objective + var/name = "traitor objective" + /// The description of the traitor objective + var/description = "this is a traitor objective" + /// The uplink handler holder to give the progression and telecrystals to. + var/datum/uplink_handler/handler + /// The minimum required progression points for this objective + var/progression_minimum = 0 MINUTES + /// The maximum progression before this objective cannot appear anymore + var/progression_maximum = INFINITY + /// The progression that is rewarded from completing this traitor objective. Can either be a list of list(min, max) or a direct value + var/progression_reward = 0 MINUTES + /// The telecrystals that are rewarded from completing this traitor objective. Can either be a list of list(min,max) or a direct value + var/telecrystal_reward = 0 + /// TC penalty for failing an objective or cancelling it + var/telecrystal_penalty = 1 + /// The time at which this objective was completed + var/time_of_completion = 0 + /// The current state of this objective + var/objective_state = OBJECTIVE_STATE_INACTIVE + /// Whether this objective was forced upon by an admin. Won't get autocleared by the traitor subsystem if progression surpasses an amount + var/forced = FALSE + + /// Determines how influential global progression will affect this objective. Set to 0 to disable. + var/global_progression_influence_intensity = 0.5 + /// Determines how great the deviance has to be before progression starts to get reduced. + var/global_progression_deviance_required = 0.5 + /// Determines the minimum and maximum progression this objective can be worth as a result of being influenced by global progression + /// Should only be smaller than or equal to 1 + var/global_progression_limit_coeff = 0.1 + /// The deviance coefficient used to determine the randomness of the progression rewards. + var/progression_cost_coeff_deviance = 0.05 + /// This gets added onto the coeff when calculating the updated progression cost. Used for variability and a slight bit of randomness + var/progression_cost_coeff = 0 + /// The percentage that this objective has been increased or decreased by as a result of progression. Used by the UI + var/original_progression = 0 + /// Abstract type that won't be included as a possible objective + var/abstract_type = /datum/traitor_objective + +/// Returns a list of variables that can be changed by config, allows for balance through configuration. +/// It is not recommended to finetweak any values of objectives on your server. +/datum/traitor_objective/proc/supported_configuration_changes() + return list( + NAMEOF(src, global_progression_influence_intensity), + NAMEOF(src, global_progression_deviance_required), + NAMEOF(src, global_progression_limit_coeff) + ) + +/// Replaces a word in the name of the proc. Also does it for the description +/datum/traitor_objective/proc/replace_in_name(replace, word) + name = replacetext(name, replace, word) + description = replacetext(description, replace, word) + +/datum/traitor_objective/New(datum/uplink_handler/handler) + . = ..() + src.handler = handler + apply_configuration() + if(SStraitor.generate_objectives) + if(islist(telecrystal_reward)) + telecrystal_reward = rand(telecrystal_reward[1], telecrystal_reward[2]) + if(islist(progression_reward)) + progression_reward = rand(progression_reward[1], progression_reward[2]) + else + if(!islist(telecrystal_reward)) + telecrystal_reward = list(telecrystal_reward, telecrystal_reward) + if(!islist(progression_reward)) + progression_reward = list(progression_reward, progression_reward) + progression_cost_coeff = (rand()*2 - 1) * progression_cost_coeff_deviance + +/datum/traitor_objective/proc/apply_configuration() + if(!length(SStraitor.configuration_data)) + return + var/datum/traitor_objective/current_type = type + var/list/types = list() + while(current_type != /datum/traitor_objective) + types += current_type + current_type = type2parent(current_type) + types += /datum/traitor_objective + // Reverse the list direction + reverse_range(types) + var/list/supported_configurations = supported_configuration_changes() + for(var/typepath in types) + if(!(typepath in SStraitor.configuration_data)) + continue + var/list/changes = SStraitor.configuration_data[typepath] + for(var/variable in changes) + if(!(variable in supported_configurations)) + continue + vars[variable] = changes[variable] + + +/// Updates the progression reward, scaling it depending on their current progression compared against the global progression +/datum/traitor_objective/proc/update_progression_reward() + if(!SStraitor.generate_objectives) + return + progression_reward = original_progression + if(global_progression_influence_intensity <= 0) + return + var/minimum_progression = progression_reward * global_progression_limit_coeff + var/maximum_progression = global_progression_limit_coeff != 0? progression_reward / global_progression_limit_coeff : INFINITY + var/deviance = (SStraitor.current_global_progression - handler.progression_points) / SStraitor.progression_scaling_deviance + if(abs(deviance) < global_progression_deviance_required) + return + if(abs(deviance) == deviance) // If it is positive + deviance = deviance - global_progression_deviance_required + else + deviance = deviance + global_progression_deviance_required + var/coeff = NUM_E ** (global_progression_influence_intensity * deviance) - 1 + // This has less of an effect as the coeff gets nearer to 1. Is linear + coeff += progression_cost_coeff * (1 - coeff) + + progression_reward = clamp( + progression_reward + progression_reward * coeff, + minimum_progression, + maximum_progression + ) + +/datum/traitor_objective/Destroy(force, ...) + handler = null + return ..() + +/// Called when the objective should be generated. Should return if the objective has been successfully generated. +/// If false is returned, the objective will be removed as a potential objective for the traitor it is being generated for. +/// This is only temporary, it will run the proc again when objectives are generated for the traitor again. +/datum/traitor_objective/proc/generate_objective(datum/mind/generating_for, list/possible_duplicates) + return FALSE + +/// Used to clean up signals and stop listening to states. +/datum/traitor_objective/proc/ungenerate_objective() + return + +/// Used to handle cleaning up the objective. +/datum/traitor_objective/proc/handle_cleanup() + time_of_completion = world.time + ungenerate_objective() + if(objective_state == OBJECTIVE_STATE_INACTIVE) + handler.complete_objective(src) // Remove this objective immediately, no reason to keep it around. It isn't even active + +/// Used to fail objectives. Players can clear completed objectives in the UI +/datum/traitor_objective/proc/fail_objective(penalty_cost = FALSE, trigger_update = TRUE) + // Don't let players succeed already succeeded/failed objectives + if(objective_state != OBJECTIVE_STATE_INACTIVE && objective_state != OBJECTIVE_STATE_ACTIVE) + return + SEND_SIGNAL(src, COMSIG_TRAITOR_OBJECTIVE_FAILED) + handle_cleanup() + if(penalty_cost) + handler.telecrystals -= penalty_cost + objective_state = OBJECTIVE_STATE_FAILED + else + objective_state = OBJECTIVE_STATE_INVALID + if(trigger_update) + handler.on_update() // Trigger an update to the UI + +/// Used to succeed objectives. Allows the player to cash it out in the UI. +/datum/traitor_objective/proc/succeed_objective() + // Don't let players succeed already succeeded/failed objectives + if(objective_state != OBJECTIVE_STATE_INACTIVE && objective_state != OBJECTIVE_STATE_ACTIVE) + return + SEND_SIGNAL(src, COMSIG_TRAITOR_OBJECTIVE_COMPLETED) + SEND_GLOBAL_SIGNAL(COMSIG_GLOB_TRAITOR_OBJECTIVE_COMPLETED, src) + handle_cleanup() + objective_state = OBJECTIVE_STATE_COMPLETED + handler.on_update() // Trigger an update to the UI + +/// Called by player input, do not call directly. Validates whether the objective is finished and pays out the handler if it is. +/datum/traitor_objective/proc/finish_objective(mob/user) + switch(objective_state) + if(OBJECTIVE_STATE_FAILED, OBJECTIVE_STATE_INVALID) + user.playsound_local(get_turf(user), 'sound/traitor/objective_failed.ogg', vol = 100, vary = FALSE, channel = CHANNEL_TRAITOR) + return TRUE + if(OBJECTIVE_STATE_COMPLETED) + user.playsound_local(get_turf(user), 'sound/traitor/objective_success.ogg', vol = 100, vary = FALSE, channel = CHANNEL_TRAITOR) + completion_payout() + return TRUE + return FALSE + +/// Called when rewards should be given to the user. +/datum/traitor_objective/proc/completion_payout() + handler.progression_points += progression_reward + handler.telecrystals += telecrystal_reward + +/// Determines whether this objective is a duplicate. objective_to_compare is always of the type it is being called on. +/datum/traitor_objective/proc/is_duplicate(datum/traitor_objective/objective_to_compare) + return TRUE + +/// Used for sending data to the uplink UI +/datum/traitor_objective/proc/uplink_ui_data(mob/user) + return list( + "name" = name, + "description" = description, + "progression_minimum" = progression_minimum, + "progression_reward" = progression_reward, + "telecrystal_reward" = telecrystal_reward, + "ui_buttons" = generate_ui_buttons(user), + "objective_state" = objective_state, + "original_progression" = original_progression, + "telecrystal_penalty" = telecrystal_penalty, + ) + +/datum/traitor_objective/proc/on_objective_taken(mob/user) + SStraitor.on_objective_taken(src) + +/// Used for generating the UI buttons for the UI. Use ui_perform_action to respond to clicks. +/datum/traitor_objective/proc/generate_ui_buttons(mob/user) + return + +/datum/traitor_objective/proc/add_ui_button(name, tooltip, icon, action) + return list(list( + "name" = name, + "tooltip" = tooltip, + "icon" = icon, + "action" = action, + )) + +/// Return TRUE to trigger a UI update +/datum/traitor_objective/proc/ui_perform_action(mob/user, action) + return TRUE diff --git a/code/modules/antagonists/traitor/uplink_handler.dm b/code/modules/antagonists/traitor/uplink_handler.dm new file mode 100644 index 00000000000..01dbc69c458 --- /dev/null +++ b/code/modules/antagonists/traitor/uplink_handler.dm @@ -0,0 +1,205 @@ +/** + * Uplink Handler + * + * The uplink handler, used to handle a traitor's TC and experience points and the uplink UI. +**/ +/datum/uplink_handler + /// The owner of this uplink handler. + var/datum/mind/owner + /// The amount of telecrystals contained in this traitor has + var/telecrystals = 0 + /// The current uplink flag of this uplink + var/uplink_flag = NONE + /// This uplink has progression + var/has_progression = TRUE + /// The amount of experience points this traitor has + var/progression_points = 0 + /// The purchase log of this uplink handler + var/datum/uplink_purchase_log/purchase_log + /// Associative array of uplink item = stock left + var/list/item_stock = list() + /// Extra stuff that can be purchased by an uplink, regardless of flag. + var/list/extra_purchasable = list() + /// Whether this uplink handler has objectives. + var/has_objectives = TRUE + /// Whether this uplink handler can TAKE objectives. + var/can_take_objectives = TRUE + /// The maximum number of objectives that can be taken + var/maximum_active_objectives = 2 + /// The maximum number of potential objectives that can exist. + var/maximum_potential_objectives = 6 + /// Current objectives taken + var/list/active_objectives = list() + /// Potential objectives that can be taken + var/list/potential_objectives = list() + /// Objectives that have been completed. + var/list/completed_objectives = list() + /// All objectives assigned by type to handle any duplicates + var/list/potential_duplicate_objectives = list() + /// The role that this uplink handler is associated to. + var/assigned_role + /// Whether this is in debug mode or not. If in debug mode, allows all purchases + var/debug_mode = FALSE + +/datum/uplink_handler/New() + . = ..() + maximum_potential_objectives = CONFIG_GET(number/maximum_potential_objectives) + +/// Called whenever an update occurs on this uplink handler. Used for UIs +/datum/uplink_handler/proc/on_update() + SEND_SIGNAL(src, COMSIG_UPLINK_HANDLER_ON_UPDATE) + return + +/datum/uplink_handler/proc/can_purchase_item(mob/user, datum/uplink_item/to_purchase) + if(debug_mode) + return TRUE + + if(!(to_purchase in extra_purchasable)) + if(!(to_purchase.purchasable_from & uplink_flag)) + return FALSE + + if(length(to_purchase.restricted_roles) && !(assigned_role in to_purchase.restricted_roles)) + return FALSE + + var/stock = item_stock[to_purchase] || INFINITY + if(telecrystals < to_purchase.cost || stock <= 0 || (has_progression && progression_points < to_purchase.progression_minimum)) + return FALSE + + return TRUE + +/datum/uplink_handler/proc/purchase_item(mob/user, datum/uplink_item/to_purchase) + if(!can_purchase_item(user, to_purchase)) + return + + if(to_purchase.limited_stock != -1 && !(to_purchase.type in item_stock)) + item_stock[to_purchase] = to_purchase.limited_stock + + telecrystals -= to_purchase.cost + to_purchase.purchase(user, src) + + if(to_purchase.type in item_stock) + item_stock[to_purchase] -= 1 + + SSblackbox.record_feedback("nested tally", "traitor_uplink_items_bought", 1, list("[initial(to_purchase.name)]", "[to_purchase.cost]")) + on_update() + return TRUE + +/// Generates objectives for this uplink handler +/datum/uplink_handler/proc/generate_objectives() + var/potential_objectives_left = maximum_potential_objectives - (length(potential_objectives) + length(active_objectives)) + var/list/objectives = SStraitor.category_handler.get_possible_objectives(progression_points) + if(!length(objectives)) + return + while(length(objectives) && potential_objectives_left > 0) + var/objective_typepath = pick_weight(objectives) + var/list/target_list = objectives + while(islist(objective_typepath)) + if(!length(objective_typepath)) + // Need to wrap this in a list or else it list unrolls and the list doesn't actually get removed. + // Thank you byond, very cool! + target_list -= list(objective_typepath) + break + target_list = objective_typepath + objective_typepath = pick_weight(objective_typepath) + if(islist(objective_typepath) || !objective_typepath) + continue + if(!try_add_objective(objective_typepath)) + target_list -= objective_typepath + continue + potential_objectives_left-- + on_update() + +/datum/uplink_handler/proc/try_add_objective(datum/traitor_objective/objective_typepath) + var/datum/traitor_objective/objective = new objective_typepath(src) + var/should_abort = SEND_SIGNAL(objective, COMSIG_TRAITOR_OBJECTIVE_PRE_GENERATE, owner, potential_duplicate_objectives[objective_typepath]) & COMPONENT_TRAITOR_OBJECTIVE_ABORT_GENERATION + if(should_abort || !objective.generate_objective(owner, potential_duplicate_objectives[objective_typepath])) + qdel(objective) + return + if(!handle_duplicate(objective)) + qdel(objective) + return + objective.original_progression = objective.progression_reward + objective.update_progression_reward() + potential_objectives += objective + return objective + +/datum/uplink_handler/proc/handle_duplicate(datum/traitor_objective/potential_duplicate) + if(!istype(potential_duplicate)) + return FALSE + + var/datum/traitor_objective/current_type = potential_duplicate.type + var/list/added_types = list() + while(current_type != /datum/traitor_objective) + if(!potential_duplicate_objectives[current_type]) + potential_duplicate_objectives[current_type] = list(potential_duplicate) + else + for(var/datum/traitor_objective/duplicate_checker as anything in potential_duplicate_objectives[current_type]) + if(duplicate_checker.is_duplicate(potential_duplicate)) + for(var/typepath in added_types) + potential_duplicate_objectives[typepath] -= potential_duplicate + return FALSE + potential_duplicate_objectives[current_type] += potential_duplicate + + added_types += current_type + current_type = type2parent(current_type) + return TRUE + +/datum/uplink_handler/proc/get_completion_count(datum/traitor_objective/type) + var/amount_completed = 0 + for(var/datum/traitor_objective/objective as anything in potential_duplicate_objectives[type]) + if(objective.objective_state == OBJECTIVE_STATE_COMPLETED) + amount_completed += 1 + return amount_completed + +/datum/uplink_handler/proc/get_completion_progression(datum/traitor_objective/type) + var/total_progression = 0 + for(var/datum/traitor_objective/objective as anything in completed_objectives) + if(objective.objective_state == OBJECTIVE_STATE_COMPLETED) + total_progression += objective.progression_reward + return total_progression + +/// Used to complete objectives, failed or successful. +/datum/uplink_handler/proc/complete_objective(datum/traitor_objective/to_remove) + if(to_remove in completed_objectives) + return + + potential_objectives -= to_remove + active_objectives -= to_remove + completed_objectives += to_remove + update_objectives() + generate_objectives() + +/// Updates the objectives on the uplink and deletes +/datum/uplink_handler/proc/update_objectives() + var/list/potential_objectives_copy = potential_objectives.Copy() + for(var/datum/traitor_objective/objective as anything in potential_objectives_copy) + if(progression_points > objective.progression_maximum && !objective.forced) + objective.fail_objective(trigger_update = FALSE) + continue + objective.update_progression_reward() + +/datum/uplink_handler/proc/abort_objective(datum/traitor_objective/to_abort) + if(istype(to_abort, /datum/traitor_objective/final)) + return + if(to_abort.objective_state != OBJECTIVE_STATE_ACTIVE) + return + to_abort.fail_objective(penalty_cost = to_abort.telecrystal_penalty) + +/datum/uplink_handler/proc/take_objective(mob/user, datum/traitor_objective/to_take) + if(!(to_take in potential_objectives)) + return + + user.playsound_local(get_turf(user), 'sound/traitor/objective_taken.ogg', vol = 100, vary = FALSE, channel = CHANNEL_TRAITOR) + to_take.on_objective_taken(user) + to_take.objective_state = OBJECTIVE_STATE_ACTIVE + potential_objectives -= to_take + active_objectives += to_take + on_update() + +/datum/uplink_handler/proc/ui_objective_act(mob/user, datum/traitor_objective/to_act_on, action) + if(!(to_act_on in active_objectives)) + return + if(to_act_on.objective_state != OBJECTIVE_STATE_ACTIVE) + return + + to_act_on.ui_perform_action(user, action) diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index eac432b21da..ed89f08798e 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -538,3 +538,43 @@ blended_color = "#2eeb9a" pre_asset.Blend(blended_color, ICON_MULTIPLY) return pre_asset + +/// Sends information needed for uplinks +/datum/asset/json/uplink + name = "uplink" + +/datum/asset/json/uplink/generate() + var/list/data = list() + var/list/categories = list() + var/list/items = list() + for(var/datum/uplink_category/category as anything in subtypesof(/datum/uplink_category)) + categories += category + categories = sortTim(categories, .proc/cmp_uplink_category_desc) + + var/list/new_categories = list() + for(var/datum/uplink_category/category as anything in categories) + new_categories += initial(category.name) + categories = new_categories + + for(var/datum/uplink_item/item_path as anything in subtypesof(/datum/uplink_item)) + var/datum/uplink_item/item = new item_path() + if(item.item) { + items += list(list( + "id" = item_path, + "name" = item.name, + "cost" = item.cost, + "desc" = item.desc, + "category" = item.category? initial(item.category.name) : null, + "purchasable_from" = item.purchasable_from, + "restricted" = item.restricted, + "limited_stock" = item.limited_stock, + "restricted_roles" = item.restricted_roles, + "progression_minimum" = item.progression_minimum, + )) + } + SStraitor.uplink_items += item + SStraitor.uplink_items_by_type[item_path] = item + + data["items"] = items + data["categories"] = categories + return data diff --git a/code/modules/cargo/exports/traitor.dm b/code/modules/cargo/exports/traitor.dm new file mode 100644 index 00000000000..61128a3ef7d --- /dev/null +++ b/code/modules/cargo/exports/traitor.dm @@ -0,0 +1,20 @@ +/datum/export/traitor/edagger + cost = CARGO_CRATE_VALUE * 5 + unit_name = "low value contraband" + export_types = list( + /obj/item/pen/edagger/prototype + ) + +/datum/export/traitor/syringegun + cost = CARGO_CRATE_VALUE * 10 + unit_name = "high value contraband" + export_types = list( + /obj/item/gun/syringe/syndicate/prototype + ) + +/datum/export/traitor/ritual_wine + cost = CARGO_CRATE_VALUE * 15 + unit_name = "super high value contraband" + export_types = list( + /obj/item/reagent_containers/glass/bottle/ritual_wine + ) diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index b516f980b93..30f3af6af5b 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -2700,20 +2700,24 @@ crate_name = "syndicate gear crate" crate_type = /obj/structure/closet/crate var/crate_value = 30 ///Total TC worth of contained uplink items + var/uplink_flag = UPLINK_TRAITORS ///Generate assorted uplink items, taking into account the same surplus modifiers used for surplus crates /datum/supply_pack/misc/syndicate/fill(obj/structure/closet/crate/C) - var/list/uplink_items = get_uplink_items(UPLINK_TRAITORS) + var/list/uplink_items = list() + for(var/datum/uplink_item/item_path as anything in SStraitor.uplink_items_by_type) + var/datum/uplink_item/item = SStraitor.uplink_items_by_type[item_path] + if(item.purchasable_from & UPLINK_TRAITORS) + uplink_items += item + while(crate_value) - var/category = pick(uplink_items) - var/item = pick(uplink_items[category]) - var/datum/uplink_item/I = uplink_items[category][item] - if(!I.surplus || prob(100 - I.surplus)) + var/datum/uplink_item/uplink_item = pick(uplink_items) + if(!uplink_item.surplus || prob(100 - uplink_item.surplus)) continue - if(crate_value < I.cost) + if(crate_value < uplink_item.cost) continue - crate_value -= I.cost - new I.item(C) + crate_value -= uplink_item.cost + new uplink_item.item(C) ////////////////////////////////////////////////////////////////////////////// /////////////////////// General Vending Restocks ///////////////////////////// diff --git a/code/modules/jobs/job_types/assistant.dm b/code/modules/jobs/job_types/assistant.dm index b6c97419d60..27cfcc2522c 100644 --- a/code/modules/jobs/job_types/assistant.dm +++ b/code/modules/jobs/job_types/assistant.dm @@ -38,7 +38,7 @@ Assistant rpg_title = "Lout" /datum/outfit/job/assistant - name = "Assistant" + name = JOB_ASSISTANT jobtype = /datum/job/assistant id_trim = /datum/id_trim/job/assistant diff --git a/code/modules/jobs/job_types/research_director.dm b/code/modules/jobs/job_types/research_director.dm index 0013f3e3906..e5f2dfe3b28 100644 --- a/code/modules/jobs/job_types/research_director.dm +++ b/code/modules/jobs/job_types/research_director.dm @@ -51,7 +51,7 @@ /datum/outfit/job/rd - name = "Research Director" + name = JOB_RESEARCH_DIRECTOR jobtype = /datum/job/research_director id = /obj/item/card/id/advanced/silver diff --git a/code/modules/jobs/job_types/spawner/battlecruiser.dm b/code/modules/jobs/job_types/spawner/battlecruiser.dm new file mode 100644 index 00000000000..aaf571f8359 --- /dev/null +++ b/code/modules/jobs/job_types/spawner/battlecruiser.dm @@ -0,0 +1,7 @@ +/datum/job/battlecruiser_crew + title = ROLE_BATTLECRUISER_CREW + policy_index = ROLE_BATTLECRUISER_CREW + +/datum/job/battlecruiser_captain + title = ROLE_BATTLECRUISER_CAPTAIN + policy_index = ROLE_BATTLECRUISER_CAPTAIN diff --git a/code/modules/mafia/roles.dm b/code/modules/mafia/roles.dm index 487259c5d41..2fed9bd5160 100644 --- a/code/modules/mafia/roles.dm +++ b/code/modules/mafia/roles.dm @@ -1,5 +1,5 @@ /datum/mafia_role - var/name = "Assistant" + var/name = JOB_ASSISTANT var/desc = "You are a crewmember without any special abilities." var/win_condition = "kill all mafia and solo killing roles." var/team = MAFIA_TEAM_TOWN diff --git a/code/modules/mapping/map_template.dm b/code/modules/mapping/map_template.dm index 621c1a8e54f..e9679ad3482 100644 --- a/code/modules/mapping/map_template.dm +++ b/code/modules/mapping/map_template.dm @@ -44,6 +44,7 @@ var/list/obj/machinery/atmospherics/atmos_machines = list() var/list/obj/structure/cable/cables = list() var/list/atom/movable/movables = list() + var/list/obj/docking_port/stationary/ports = list() var/list/area/areas = list() var/list/turfs = block( @@ -71,6 +72,8 @@ continue if(istype(movable_in_turf, /obj/machinery/atmospherics)) atmos_machines += movable_in_turf + if(istype(movable_in_turf, /obj/docking_port/stationary)) + ports += movable_in_turf // Not sure if there is some importance here to make sure the area is in z // first or not. Its defined In Initialize yet its run first in templates @@ -94,6 +97,7 @@ // need these two below? SSmachines.setup_template_powernets(cables) SSair.setup_template_machinery(atmos_machines) + SSshuttle.setup_shuttles(ports) //calculate all turfs inside the border var/list/template_and_bordering_turfs = block( diff --git a/code/modules/mob/living/simple_animal/friendly/dog.dm b/code/modules/mob/living/simple_animal/friendly/dog.dm index 980c99a1e57..58993daef52 100644 --- a/code/modules/mob/living/simple_animal/friendly/dog.dm +++ b/code/modules/mob/living/simple_animal/friendly/dog.dm @@ -141,6 +141,8 @@ /mob/living/simple_animal/pet/dog/pug/mcgriff name = "McGriff" desc = "This dog can tell something smells around here, and that something is CRIME!" + gold_core_spawnable = NO_SPAWN + unique_pet = TRUE /mob/living/simple_animal/pet/dog/bullterrier name = "\improper bull terrier" diff --git a/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm b/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm index 9e8613161b1..f9cf1854517 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm @@ -35,7 +35,7 @@ /mob/living/simple_animal/drone/syndrone/Initialize(mapload) . = ..() var/datum/component/uplink/hidden_uplink = internal_storage.GetComponent(/datum/component/uplink) - hidden_uplink.telecrystals = 10 + hidden_uplink.set_telecrystals(10) /mob/living/simple_animal/drone/syndrone/badass name = "Badass Syndrone" @@ -44,7 +44,7 @@ /mob/living/simple_animal/drone/syndrone/badass/Initialize(mapload) . = ..() var/datum/component/uplink/hidden_uplink = internal_storage.GetComponent(/datum/component/uplink) - hidden_uplink.telecrystals = 30 + hidden_uplink.set_telecrystals(30) var/obj/item/implant/weapons_auth/W = new/obj/item/implant/weapons_auth(src) W.implant(src, force = TRUE) diff --git a/code/modules/mob_spawn/corpses/job_corpses.dm b/code/modules/mob_spawn/corpses/job_corpses.dm index 7294f85a569..a261aa09519 100644 --- a/code/modules/mob_spawn/corpses/job_corpses.dm +++ b/code/modules/mob_spawn/corpses/job_corpses.dm @@ -55,7 +55,7 @@ outfit = /datum/outfit/plasmaman /obj/effect/mob_spawn/corpse/human/assistant - name = "Assistant" + name = JOB_ASSISTANT outfit = /datum/outfit/job/assistant icon_state = "corpsegreytider" diff --git a/code/modules/mob_spawn/ghost_roles/space_roles.dm b/code/modules/mob_spawn/ghost_roles/space_roles.dm index 9748a480849..43164d7d677 100644 --- a/code/modules/mob_spawn/ghost_roles/space_roles.dm +++ b/code/modules/mob_spawn/ghost_roles/space_roles.dm @@ -92,3 +92,131 @@ if(prob(90)) //only has a 10% chance of existing, otherwise it'll just be a NPC syndie. new /mob/living/simple_animal/hostile/syndicate/ranged(get_turf(src)) return INITIALIZE_HINT_QDEL + +///battlecruiser stuff + +/obj/effect/mob_spawn/ghost_role/human/syndicate/battlecruiser + name = "Syndicate Battlecruiser Ship Operative" + you_are_text = "You are a crewmember aboard the syndicate flagship: the SBC Starfury." + flavour_text = "Your job is to follow your captain's orders, maintain the ship, and keep the engine running. If you are not familiar with how the supermatter engine functions: do not attempt to start it." + important_text = "The armory is not a candy store, and your role is not to assault the station directly, leave that work to the assault operatives." + prompt_name = "a battlecruiser crewmember" + outfit = /datum/outfit/syndicate_empty/battlecruiser + spawner_job_path = /datum/job/battlecruiser_crew + + /// The antag team to apply the player to + var/datum/team/antag_team + /// The antag datum to give to the player spawned + var/antag_datum_to_give = /datum/antagonist/battlecruiser + +/obj/effect/mob_spawn/ghost_role/human/syndicate/battlecruiser/special(mob/living/spawned_mob, mob/possesser) + . = ..() + if(!spawned_mob.mind) + spawned_mob.mind_initialize() + var/datum/mind/mob_mind = spawned_mob.mind + mob_mind.add_antag_datum(antag_datum_to_give, antag_team) + +/datum/team/battlecruiser + name = "Battlecruiser Crew" + member_name = "crewmember" + /// The central objective of this battlecruiser + var/core_objective = /datum/objective/nuclear + /// The assigned nuke of this team + var/obj/machinery/nuclearbomb/nuke + +/datum/team/battlecruiser/proc/update_objectives() + if(core_objective) + var/datum/objective/objective = new core_objective() + objective.team = src + objectives += objective + +/datum/antagonist/battlecruiser + name = "Battlecruiser Crewmember" + show_to_ghosts = TRUE + roundend_category = "battlecruiser syndicate operatives" + suicide_cry = "FOR THE SYNDICATE!!!" + antag_hud_name = "battlecruiser_crew" + job_rank = ROLE_BATTLECRUISER_CREW + var/datum/team/battlecruiser/battlecruiser_team + +/datum/antagonist/battlecruiser/get_team() + return battlecruiser_team + +/datum/antagonist/battlecruiser/greet() + owner.current.playsound_local(get_turf(owner.current), 'sound/ambience/antag/ops.ogg',100,0, use_reverb = FALSE) + to_chat(owner, span_big("You are a [name]!")) + owner.announce_objectives() + +/datum/antagonist/battlecruiser/captain + name = "Battlecruiser Captain" + antag_hud_name = "battlecruiser_lead" + job_rank = ROLE_BATTLECRUISER_CAPTAIN + +/datum/antagonist/battlecruiser/create_team(datum/team/battlecruiser/team) + if(!team) + return + if(!istype(team)) + stack_trace("Wrong team type passed to [type] initialization.") + battlecruiser_team = team + +/datum/antagonist/battlecruiser/apply_innate_effects(mob/living/mob_override) + add_team_hud(mob_override || owner.current, /datum/antagonist/battlecruiser) + +/datum/antagonist/battlecruiser/on_gain() + if(battlecruiser_team) + objectives |= battlecruiser_team.objectives + if(battlecruiser_team.nuke) + var/obj/machinery/nuclearbomb/nuke = battlecruiser_team.nuke + antag_memory += "[nuke] Code: [nuke.r_code]
" + owner.add_memory(MEMORY_NUKECODE, list(DETAIL_NUKE_CODE = nuke.r_code, DETAIL_PROTAGONIST = owner.current), story_value = STORY_VALUE_AMAZING, memory_flags = MEMORY_FLAG_NOLOCATION | MEMORY_FLAG_NOMOOD | MEMORY_FLAG_NOPERSISTENCE) + to_chat(owner, "The nuclear authorization code is: [nuke.r_code]") + return ..() + +/datum/outfit/syndicate_empty/battlecruiser + name = "Syndicate Battlecruiser Ship Operative" + l_pocket = /obj/item/gun/ballistic/automatic/pistol + r_pocket = /obj/item/knife/combat/survival + belt = /obj/item/storage/belt/military/assault + +/obj/effect/mob_spawn/ghost_role/human/syndicate/battlecruiser/assault + name = "Syndicate Battlecruiser Assault Operative" + you_are_text = "You are an assault operative aboard the syndicate flagship: the SBC Starfury." + flavour_text = "Your job is to follow your captain's orders, keep intruders out of the ship, and assault Space Station 13. There is an armory, multiple assault ships, and beam cannons to attack the station with." + important_text = "Work as a team with your fellow operatives and work out a plan of attack. If you are overwhelmed, escape back to your ship!" + prompt_name = "a battlecruiser operative" + outfit = /datum/outfit/syndicate_empty/battlecruiser/assault + +/datum/outfit/syndicate_empty/battlecruiser/assault + name = "Syndicate Battlecruiser Assault Operative" + uniform = /obj/item/clothing/under/syndicate/combat + l_pocket = /obj/item/uplink/nuclear + r_pocket = /obj/item/modular_computer/tablet/nukeops + belt = /obj/item/storage/belt/military + suit = /obj/item/clothing/suit/armor/vest + suit_store = /obj/item/gun/ballistic/automatic/pistol + back = /obj/item/storage/backpack/security + mask = /obj/item/clothing/mask/gas/syndicate + +/obj/effect/mob_spawn/ghost_role/human/syndicate/battlecruiser/captain + name = "Syndicate Battlecruiser Captain" + you_are_text = "You are the captain aboard the syndicate flagship: the SBC Starfury." + flavour_text = "Your job is to oversee your crew, defend the ship, and destroy Space Station 13. The ship has an armory, multiple ships, beam cannons, and multiple crewmembers to accomplish this goal." + important_text = "As the captain, this whole operation falls on your shoulders. Help your assault operatives detonate a nuke on the station." + prompt_name = "a battlecruiser captain" + outfit = /datum/outfit/syndicate_empty/battlecruiser/assault/captain + spawner_job_path = /datum/job/battlecruiser_captain + antag_datum_to_give = /datum/antagonist/battlecruiser/captain + +/datum/outfit/syndicate_empty/battlecruiser/assault/captain + name = "Syndicate Battlecruiser Captain" + l_pocket = /obj/item/melee/energy/sword/saber/red + r_pocket = /obj/item/melee/baton/telescopic + suit = /obj/item/clothing/suit/armor/vest/capcarapace/syndicate + suit_store = /obj/item/gun/ballistic/revolver/mateba + back = /obj/item/storage/backpack/satchel/leather + head = /obj/item/clothing/head/hos/syndicate + mask = /obj/item/clothing/mask/cigarette/cigar/havana + ears = /obj/item/radio/headset/syndicate/alt/leader + glasses = /obj/item/clothing/glasses/thermal/eyepatch + id = /obj/item/card/id/advanced/black/syndicate_command/captain_id + id_trim = /datum/id_trim/battlecruiser/captain diff --git a/code/modules/mob_spawn/ghost_roles/unused_roles.dm b/code/modules/mob_spawn/ghost_roles/unused_roles.dm index dda6487edc8..82a1e4a5bb8 100644 --- a/code/modules/mob_spawn/ghost_roles/unused_roles.dm +++ b/code/modules/mob_spawn/ghost_roles/unused_roles.dm @@ -81,61 +81,6 @@ new/obj/structure/fluff/empty_sleeper/syndicate(get_turf(src)) return ..() -//battlecruiser stuff, i suppose - -/obj/effect/mob_spawn/ghost_role/human/syndicate/battlecruiser - name = "Syndicate Battlecruiser Ship Operative" - you_are_text = "You are a crewmember aboard the syndicate flagship: the SBC Starfury." - flavour_text = "Your job is to follow your captain's orders, maintain the ship, and keep the engine running. If you are not familiar with how the supermatter engine functions: do not attempt to start it." - important_text = "The armory is not a candy store, and your role is not to assault the station directly, leave that work to the assault operatives." - prompt_name = "a battlecruiser crewmember" - outfit = /datum/outfit/syndicate_empty/battlecruiser - -/datum/outfit/syndicate_empty/battlecruiser - name = "Syndicate Battlecruiser Ship Operative" - l_pocket = /obj/item/gun/ballistic/automatic/pistol - r_pocket = /obj/item/knife/combat/survival - belt = /obj/item/storage/belt/military/assault - -/obj/effect/mob_spawn/ghost_role/human/syndicate/battlecruiser/assault - name = "Syndicate Battlecruiser Assault Operative" - you_are_text = "You are an assault operative aboard the syndicate flagship: the SBC Starfury." - flavour_text = "Your job is to follow your captain's orders, keep intruders out of the ship, and assault Space Station 13. There is an armory, multiple assault ships, and beam cannons to attack the station with." - important_text = "Work as a team with your fellow operatives and work out a plan of attack. If you are overwhelmed, escape back to your ship!" - prompt_name = "a battlecruiser operative" - outfit = /datum/outfit/syndicate_empty/battlecruiser/assault - -/datum/outfit/syndicate_empty/battlecruiser/assault - name = "Syndicate Battlecruiser Assault Operative" - uniform = /obj/item/clothing/under/syndicate/combat - l_pocket = /obj/item/ammo_box/magazine/m9mm - r_pocket = /obj/item/knife/combat/survival - belt = /obj/item/storage/belt/military - suit = /obj/item/clothing/suit/armor/vest - suit_store = /obj/item/gun/ballistic/automatic/pistol - back = /obj/item/storage/backpack/security - mask = /obj/item/clothing/mask/gas/syndicate - -/obj/effect/mob_spawn/ghost_role/human/syndicate/battlecruiser/captain - name = "Syndicate Battlecruiser Captain" - you_are_text = "You are the captain aboard the syndicate flagship: the SBC Starfury." - flavour_text = "Your job is to oversee your crew, defend the ship, and destroy Space Station 13. The ship has an armory, multiple ships, beam cannons, and multiple crewmembers to accomplish this goal." - important_text = "As the captain, this whole operation falls on your shoulders. You do not need to nuke the station, causing sufficient damage and preventing your ship from being destroyed will be enough." - prompt_name = "a battlecruiser captain" - outfit = /datum/outfit/syndicate_empty/battlecruiser/assault/captain - -/datum/outfit/syndicate_empty/battlecruiser/assault/captain - name = "Syndicate Battlecruiser Captain" - l_pocket = /obj/item/melee/energy/sword/saber/red - r_pocket = /obj/item/melee/baton/telescopic - suit = /obj/item/clothing/suit/armor/vest/capcarapace/syndicate - suit_store = /obj/item/gun/ballistic/revolver/mateba - back = /obj/item/storage/backpack/satchel/leather - head = /obj/item/clothing/head/hos/syndicate - mask = /obj/item/clothing/mask/cigarette/cigar/havana - glasses = /obj/item/clothing/glasses/thermal/eyepatch - id_trim = /datum/id_trim/battlecruiser/captain - /obj/effect/mob_spawn/ghost_role/human/syndicate name = "Syndicate Operative" icon = 'icons/obj/machines/sleeper.dmi' diff --git a/code/modules/modular_computers/computers/item/tablet_presets.dm b/code/modules/modular_computers/computers/item/tablet_presets.dm index 874f5afae60..a212103476c 100644 --- a/code/modules/modular_computers/computers/item/tablet_presets.dm +++ b/code/modules/modular_computers/computers/item/tablet_presets.dm @@ -85,25 +85,6 @@ hard_drive.store_file(new /datum/computer_file/program/alarm_monitor) hard_drive.store_file(new /datum/computer_file/program/supermatter_monitor) -/// Given by the syndicate as part of the contract uplink bundle - loads in the Contractor Uplink. -/obj/item/modular_computer/tablet/syndicate_contract_uplink/preset/uplink/Initialize(mapload) - . = ..() - var/obj/item/computer_hardware/hard_drive/small/syndicate/hard_drive = new - var/datum/computer_file/program/contract_uplink/uplink = new - - active_program = uplink - uplink.program_state = PROGRAM_STATE_ACTIVE - uplink.computer = src - - hard_drive.store_file(uplink) - - install_component(new /obj/item/computer_hardware/processor_unit/small) - install_component(new /obj/item/computer_hardware/battery(src, /obj/item/stock_parts/cell/computer)) - install_component(hard_drive) - install_component(new /obj/item/computer_hardware/network_card) - install_component(new /obj/item/computer_hardware/card_slot) - install_component(new /obj/item/computer_hardware/printer/mini) - /// Given to Nuke Ops members. /obj/item/modular_computer/tablet/nukeops/Initialize(mapload) . = ..() diff --git a/code/modules/modular_computers/file_system/programs/antagonist/contract_uplink.dm b/code/modules/modular_computers/file_system/programs/antagonist/contract_uplink.dm deleted file mode 100644 index 1cad0e46f83..00000000000 --- a/code/modules/modular_computers/file_system/programs/antagonist/contract_uplink.dm +++ /dev/null @@ -1,209 +0,0 @@ -/datum/computer_file/program/contract_uplink - filename = "contractor uplink" - filedesc = "Syndicate Contractor Uplink" - category = PROGRAM_CATEGORY_MISC - program_icon_state = "assign" - extended_desc = "A standard, Syndicate issued system for handling important contracts while on the field." - size = 10 - requires_ntnet = 0 - available_on_ntnet = 0 - unsendable = 1 - undeletable = 1 - tgui_id = "SyndContractor" - program_icon = "tasks" - var/error = "" - var/info_screen = TRUE - var/assigned = FALSE - var/first_load = TRUE - -/datum/computer_file/program/contract_uplink/run_program(mob/living/user) - . = ..(user) - -/datum/computer_file/program/contract_uplink/ui_act(action, params) - . = ..() - if(.) - return - - var/mob/living/user = usr - var/obj/item/computer_hardware/hard_drive/small/syndicate/hard_drive = computer.all_components[MC_HDD] - - switch(action) - if("PRG_contract-accept") - var/contract_id = text2num(params["contract_id"]) - - // Set as the active contract - hard_drive.traitor_data.contractor_hub.assigned_contracts[contract_id].status = CONTRACT_STATUS_ACTIVE - hard_drive.traitor_data.contractor_hub.current_contract = hard_drive.traitor_data.contractor_hub.assigned_contracts[contract_id] - - program_icon_state = "single_contract" - return TRUE - if("PRG_login") - var/datum/antagonist/traitor/traitor_data = user.mind.has_antag_datum(/datum/antagonist/traitor) - - // Bake their data right into the hard drive, or we don't allow non-antags gaining access to an unused - // contract system. - // We also create their contracts at this point. - if (traitor_data) - // Only play greet sound, and handle contractor hub when assigning for the first time. - if (!traitor_data.contractor_hub) - user.playsound_local(user, 'sound/effects/contractstartup.ogg', 100, FALSE) - traitor_data.contractor_hub = new - traitor_data.contractor_hub.create_hub_items() - - // Stops any topic exploits such as logging in multiple times on a single system. - if (!assigned) - traitor_data.contractor_hub.create_contracts(traitor_data.owner) - - hard_drive.traitor_data = traitor_data - - program_icon_state = "contracts" - assigned = TRUE - else - error = "UNAUTHORIZED USER" - return TRUE - if("PRG_call_extraction") - if (hard_drive.traitor_data.contractor_hub.current_contract.status != CONTRACT_STATUS_EXTRACTING) - if (hard_drive.traitor_data.contractor_hub.current_contract.handle_extraction(user)) - user.playsound_local(user, 'sound/effects/confirmdropoff.ogg', 100, TRUE) - hard_drive.traitor_data.contractor_hub.current_contract.status = CONTRACT_STATUS_EXTRACTING - - program_icon_state = "extracted" - else - user.playsound_local(user, 'sound/machines/uplinkerror.ogg', 50) - error = "Either both you or your target aren't at the dropoff location, or the pod hasn't got a valid place to land. Clear space, or make sure you're both inside." - else - user.playsound_local(user, 'sound/machines/uplinkerror.ogg', 50) - error = "Already extracting... Place the target into the pod. If the pod was destroyed, this contract is no longer possible." - - return TRUE - if("PRG_contract_abort") - var/contract_id = hard_drive.traitor_data.contractor_hub.current_contract.id - - hard_drive.traitor_data.contractor_hub.current_contract = null - hard_drive.traitor_data.contractor_hub.assigned_contracts[contract_id].status = CONTRACT_STATUS_ABORTED - - program_icon_state = "contracts" - - return TRUE - if("PRG_redeem_TC") - if (hard_drive.traitor_data.contractor_hub.contract_TC_to_redeem) - var/obj/item/stack/telecrystal/crystals = new /obj/item/stack/telecrystal(get_turf(user), - hard_drive.traitor_data.contractor_hub.contract_TC_to_redeem) - if(ishuman(user)) - var/mob/living/carbon/human/H = user - if(H.put_in_hands(crystals)) - to_chat(H, span_notice("Your payment materializes into your hands!")) - else - to_chat(user, span_notice("Your payment materializes onto the floor.")) - - hard_drive.traitor_data.contractor_hub.contract_TC_payed_out += hard_drive.traitor_data.contractor_hub.contract_TC_to_redeem - hard_drive.traitor_data.contractor_hub.contract_TC_to_redeem = 0 - return TRUE - else - user.playsound_local(user, 'sound/machines/uplinkerror.ogg', 50) - return TRUE - if ("PRG_clear_error") - error = "" - return TRUE - if("PRG_set_first_load_finished") - first_load = FALSE - return TRUE - if("PRG_toggle_info") - info_screen = !info_screen - return TRUE - if ("buy_hub") - if (hard_drive.traitor_data.owner.current == user) - var/item = params["item"] - - for (var/datum/contractor_item/hub_item in hard_drive.traitor_data.contractor_hub.hub_items) - if (hub_item.name == item) - hub_item.handle_purchase(hard_drive.traitor_data.contractor_hub, user) - else - error = "Invalid user... You weren't recognised as the user of this system." - -/datum/computer_file/program/contract_uplink/ui_data(mob/user) - var/list/data = list() - var/obj/item/computer_hardware/hard_drive/small/syndicate/hard_drive = computer.all_components[MC_HDD] - var/screen_to_be = null - - data["first_load"] = first_load - - if (hard_drive && hard_drive.traitor_data != null) - var/datum/antagonist/traitor/traitor_data = hard_drive.traitor_data - data += get_header_data() - - if (traitor_data.contractor_hub.current_contract) - data["ongoing_contract"] = TRUE - screen_to_be = "single_contract" - if (traitor_data.contractor_hub.current_contract.status == CONTRACT_STATUS_EXTRACTING) - data["extraction_enroute"] = TRUE - screen_to_be = "extracted" - else - data["extraction_enroute"] = FALSE - else - data["ongoing_contract"] = FALSE - data["extraction_enroute"] = FALSE - - data["logged_in"] = TRUE - data["station_name"] = GLOB.station_name - data["redeemable_tc"] = traitor_data.contractor_hub.contract_TC_to_redeem - data["earned_tc"] = traitor_data.contractor_hub.contract_TC_payed_out - data["contracts_completed"] = traitor_data.contractor_hub.contracts_completed - data["contract_rep"] = traitor_data.contractor_hub.contract_rep - - data["info_screen"] = info_screen - - data["error"] = error - - for (var/datum/contractor_item/hub_item in traitor_data.contractor_hub.hub_items) - data["contractor_hub_items"] += list(list( - "name" = hub_item.name, - "desc" = hub_item.desc, - "cost" = hub_item.cost, - "limited" = hub_item.limited, - "item_icon" = hub_item.item_icon - )) - - for (var/datum/syndicate_contract/contract in traitor_data.contractor_hub.assigned_contracts) - if(!contract.contract) - stack_trace("Syndiate contract with null contract objective found in [traitor_data.owner]'s contractor hub!") - contract.status = CONTRACT_STATUS_ABORTED - continue - - data["contracts"] += list(list( - "target" = contract.contract.target, - "target_rank" = contract.target_rank, - "payout" = contract.contract.payout, - "payout_bonus" = contract.contract.payout_bonus, - "dropoff" = contract.contract.dropoff, - "id" = contract.id, - "status" = contract.status, - "message" = contract.wanted_message - )) - - var/direction - if (traitor_data.contractor_hub.current_contract) - var/turf/curr = get_turf(user) - var/turf/dropoff_turf - data["current_location"] = "[get_area_name(curr, TRUE)]" - - for (var/turf/content in traitor_data.contractor_hub.current_contract.contract.dropoff.contents) - if (isturf(content)) - dropoff_turf = content - break - - if(curr.z == dropoff_turf.z) //Direction calculations for same z-level only - direction = uppertext(dir2text(get_dir(curr, dropoff_turf))) //Direction text (East, etc). Not as precise, but still helpful. - if(get_area(user) == traitor_data.contractor_hub.current_contract.contract.dropoff) - direction = "LOCATION CONFIRMED" - else - direction = "???" - - data["dropoff_direction"] = direction - - else - data["logged_in"] = FALSE - - program_icon_state = screen_to_be - update_computer_icon() - return data diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index 65e4a422250..f7674f46dfd 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -225,6 +225,10 @@ sharpness = SHARP_POINTY /// The real name of our item when extended. var/hidden_name = "energy dagger" + /// The real desc of our item when extended. + var/hidden_desc = "It's a normal black ink pen." + /// The real icons used when extended. + var/hidden_icon = "edagger" /// Whether or pen is extended var/extended = FALSE @@ -259,13 +263,15 @@ extended = active if(active) name = hidden_name - icon_state = "edagger" - inhand_icon_state = "edagger" + desc = hidden_desc + icon_state = hidden_icon + inhand_icon_state = hidden_icon lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' embedding = list(embed_chance = 100) // Rule of cool else name = initial(name) + desc = initial(desc) icon_state = initial(icon_state) inhand_icon_state = initial(inhand_icon_state) lefthand_file = initial(lefthand_file) @@ -277,6 +283,15 @@ playsound(user ? user : src, active ? 'sound/weapons/saberon.ogg' : 'sound/weapons/saberoff.ogg', 5, TRUE) return COMPONENT_NO_DEFAULT_MESSAGE +///syndicate prototype for smuggling missions +/obj/item/pen/edagger/prototype + name = "odd pen" + desc = "It's an abnormal black ink pen, with weird chunks of metal sticking out of it..." + hidden_name = "prototype hardlight dagger" + hidden_desc = "Waffle Corp R&D's prototype for energy daggers. Hardlight may be inferior \ + to energy weapons, but it's still surprisingly deadly." + hidden_icon = "eprototypedagger" + /obj/item/pen/survival name = "survival pen" desc = "The latest in portable survival technology, this pen was designed as a miniature diamond pickaxe. Watchers find them very desirable for their diamond exterior." diff --git a/code/modules/projectiles/guns/special/syringe_gun.dm b/code/modules/projectiles/guns/special/syringe_gun.dm index cf4768d092c..eb83d1c2a86 100644 --- a/code/modules/projectiles/guns/special/syringe_gun.dm +++ b/code/modules/projectiles/guns/special/syringe_gun.dm @@ -129,6 +129,13 @@ can_unsuppress = FALSE //Permanently silenced syringes = list(new /obj/item/reagent_containers/syringe()) +///syndicate prototype for smuggling missions +/obj/item/gun/syringe/syndicate/prototype + name = "prototype dart pistol" + desc = "Cybersun Industries prototype dart pistols. Delivering the syringes at the same \ + speed in a smaller weapon proved to be a surprisingly complicated task." + syringes = list() + /obj/item/gun/syringe/dna name = "modified compact syringe gun" desc = "A syringe gun that has been modified to be compact and fit DNA injectors instead of normal syringes." diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index ac6b0889942..99637b9c468 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -2664,6 +2664,29 @@ All effects don't start immediately, but rather get worse over time; the rate is QDEL_NULL(prophet_trauma) return ..() +//a jacked up absinthe that causes hallucinations to the game master controller basically, used in smuggling objectives +/datum/reagent/consumable/ethanol/ritual_wine + name = "Ritual Wine" + description = "The dangerous, potent, alcoholic component of ritual wine." + color = rgb(35, 231, 25) + boozepwr = 90 //enjoy near death intoxication + taste_mult = 6 + taste_description = "concentrated herbs" + +/datum/reagent/consumable/ethanol/ritual_wine/on_mob_metabolize(mob/living/psychonaut) + . = ..() + if(!psychonaut.hud_used) + return + var/atom/movable/plane_master_controller/game_plane_master_controller = psychonaut.hud_used.plane_master_controllers[PLANE_MASTERS_GAME] + game_plane_master_controller.add_filter("ritual_wine", 1, list("type" = "wave", "size" = 1, "x" = 5, "y" = 0, "flags" = WAVE_SIDEWAYS)) + +/datum/reagent/consumable/ethanol/ritual_wine/on_mob_end_metabolize(mob/living/psychonaut) + . = ..() + if(!psychonaut.hud_used) + return + var/atom/movable/plane_master_controller/game_plane_master_controller = psychonaut.hud_used.plane_master_controllers[PLANE_MASTERS_GAME] + game_plane_master_controller.remove_filter("ritual_wine") + //Moth Drinks /datum/reagent/consumable/ethanol/curacao name = "Curaçao" diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 92ff18498e8..387f0c0e98c 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -1982,11 +1982,11 @@ /datum/techweb_node/syndicate_basic/New() //Crappy way of making syndicate gear decon supported until there's another way. . = ..() boost_item_paths = list() - for(var/path in GLOB.uplink_items) - var/datum/uplink_item/UI = new path - if(!UI.item || !UI.illegal_tech) + for(var/datum/uplink_item/item_path as anything in SStraitor.uplink_items_by_type) + var/datum/uplink_item/item = SStraitor.uplink_items_by_type[item_path] + if(!item.item || !item.illegal_tech) continue - boost_item_paths |= UI.item //allows deconning to unlock. + boost_item_paths |= item.item //allows deconning to unlock. ////////////////////////B.E.P.I.S. Locked Techs//////////////////////// diff --git a/code/modules/shuttle/battlecruiser_starfury.dm b/code/modules/shuttle/battlecruiser_starfury.dm new file mode 100644 index 00000000000..63f59736cf0 --- /dev/null +++ b/code/modules/shuttle/battlecruiser_starfury.dm @@ -0,0 +1,189 @@ + +/// The Starfury map template itself. +/datum/map_template/battlecruiser_starfury + name = "SBC Starfury" + mappath = "_maps/templates/battlecruiser_starfury.dmm" + +// Stationary docking ports for the Starfury's strike shuttles. +/obj/docking_port/stationary/starfury_corvette + name = "SBC Starfury Corvette Bay" + id = "SBC_corvette_bay" + roundstart_template = /datum/map_template/shuttle/starfury/corvette + hidden = TRUE + width = 14 + height = 7 + dwidth = 7 + dir = NORTH + +/obj/docking_port/stationary/starfury_fighter + name = "SBC Starfury Fighter Bay" + id = "SBC_fighter_bay" + hidden = TRUE + width = 5 + height = 7 + dwidth = 2 + dir = NORTH + +/obj/docking_port/stationary/starfury_fighter/fighter_one + name = "SBC Starfury Port Fighter Bay" + id = "SBC_fighter1_bay" + roundstart_template = /datum/map_template/shuttle/starfury/fighter_one + +/obj/docking_port/stationary/starfury_fighter/fighter_two + name = "SBC Starfury Center Fighter Bay" + id = "SBC_fighter2_bay" + roundstart_template = /datum/map_template/shuttle/starfury/fighter_two + +/obj/docking_port/stationary/starfury_fighter/fighter_three + name = "SBC Starfury Starboard Fighter Bay" + id = "SBC_fighter3_bay" + roundstart_template = /datum/map_template/shuttle/starfury/fighter_three + +// Mobile docking ports for the Starfury's strike shuttles. +/obj/docking_port/mobile/syndicate_fighter + name = "syndicate fighter" + id = "syndicate_fighter" + movement_force = list("KNOCKDOWN" = 0, "THROW" = 0) + hidden = TRUE + dir = NORTH + port_direction = SOUTH + width = 5 + height = 7 + dwidth = 2 + +/obj/docking_port/mobile/syndicate_fighter/fighter_one + name = "syndicate fighter one" + id = "SBC_fighter1" + +/obj/docking_port/mobile/syndicate_fighter/fighter_two + name = "syndicate fighter two" + id = "SBC_fighter2" + +/obj/docking_port/mobile/syndicate_fighter/fighter_three + name = "syndicate fighter three" + id = "SBC_fighter3" + +/obj/docking_port/mobile/syndicate_corvette + name = "syndicate corvette" + id = "SBC_corvette" + movement_force = list("KNOCKDOWN" = 0, "THROW" = 0) + hidden = TRUE + dir = NORTH + port_direction = SOUTH + preferred_direction = WEST + width = 14 + dwidth = 6 + height = 7 + +/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/fighter + name = "syndicate fighter navigation computer" + desc = "Used to pilot syndicate fighters to commence precision strikes." + x_offset = 0 + y_offset = 3 + +/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/fighter/fighter_one + shuttleId = "SBC_fighter1" + shuttlePortId = "SBC_fighter1_custom" + jumpto_ports = list("syndicate_ne" = 1, "syndicate_nw" = 1, "syndicate_n" = 1, "syndicate_se" = 1, "syndicate_sw" = 1, "syndicate_s" = 1, "SBC_fighter1_bay" = 1) + req_access = list(ACCESS_SYNDICATE) + +/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/fighter/fighter_two + shuttleId = "SBC_fighter2" + shuttlePortId = "SBC_fighter2_custom" + jumpto_ports = list("syndicate_ne" = 1, "syndicate_nw" = 1, "syndicate_n" = 1, "syndicate_se" = 1, "syndicate_sw" = 1, "syndicate_s" = 1, "SBC_fighter2_bay" = 1) + req_access = list(ACCESS_SYNDICATE) + +/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/fighter/fighter_three + shuttleId = "SBC_fighter3" + shuttlePortId = "SBC_fighter3_custom" + jumpto_ports = list("syndicate_ne" = 1, "syndicate_nw" = 1, "syndicate_n" = 1, "syndicate_se" = 1, "syndicate_sw" = 1, "syndicate_s" = 1, "SBC_fighter3_bay" = 1) + req_access = list(ACCESS_SYNDICATE) + +/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate/corvette + name = "syndicate corvette navigation computer" + desc = "Used to pilot the syndicate corvette to board enemy stations and ships." + shuttleId = "SBC_corvette" + shuttlePortId = "SBC_corvette_custom" + jumpto_ports = list("syndicate_ne" = 1, "syndicate_nw" = 1, "syndicate_n" = 1, "syndicate_se" = 1, "syndicate_sw" = 1, "syndicate_s" = 1, "SBC_corvette_bay" = 1) + y_offset = 3 + x_offset = 0 + +/obj/machinery/computer/shuttle/starfury/fighter + name = "syndicate fighter control console" + desc = "A control computer which controls a shuttle which operates from the SBC Starfury.." + req_access = list(ACCESS_SYNDICATE) + +/obj/machinery/computer/shuttle/starfury/fighter/fighter_one + shuttleId = "SBC_fighter1" + possible_destinations = "SBC_fighter1_custom;SBC_fighter1_bay;SBC_fighter2_bay;SBC_fighter3_bay;syndicate_ne;syndicate_nw;syndicate_n;syndicate_se;syndicate_sw;syndicate_s" + req_access = list(ACCESS_SYNDICATE) + +/obj/machinery/computer/shuttle/starfury/fighter/fighter_two + shuttleId = "SBC_fighter2" + possible_destinations = "SBC_fighter2_custom;SBC_fighter1_bay;SBC_fighter2_bay;SBC_fighter3_bay;syndicate_ne;syndicate_nw;syndicate_n;syndicate_se;syndicate_sw;syndicate_s" + req_access = list(ACCESS_SYNDICATE) + +/obj/machinery/computer/shuttle/starfury/fighter/fighter_three + shuttleId = "SBC_fighter3" + possible_destinations = "SBC_fighter3_custom;SBC_fighter1_bay;SBC_fighter2_bay;SBC_fighter3_bay;syndicate_ne;syndicate_nw;syndicate_n;syndicate_se;syndicate_sw;syndicate_s" + req_access = list(ACCESS_SYNDICATE) + +/obj/machinery/computer/shuttle/starfury/corvette + name = "syndicate corvette control console" + desc = "A control computer which controls a shuttle which operates from the SBC Starfury.." + shuttleId = "SBC_corvette" + possible_destinations = "SBC_corvette_custom;SBC_corvette_bay;syndicate_ne;syndicate_nw;syndicate_n;syndicate_se;syndicate_sw;syndicate_s" + req_access = list(ACCESS_SYNDICATE) + +/* + * Summons the SBC Starfury, a large syndicate battlecruiser, in Deep Space. + * It can be piloted into the station's area. + */ +/proc/summon_battlecruiser() + + var/list/candidates = poll_ghost_candidates("Do you wish to be considered for battlecruiser crew?", ROLE_TRAITOR) + shuffle_inplace(candidates) + + var/datum/map_template/ship = SSmapping.map_templates["battlecruiser_starfury.dmm"] + var/x = rand(TRANSITIONEDGE, world.maxx - TRANSITIONEDGE - ship.width) + var/y = rand(TRANSITIONEDGE, world.maxy - TRANSITIONEDGE - ship.height) + var/z = SSmapping.empty_space?.z_value + if(isnull(z)) + CRASH("Battlecruiser found no empty space level to load in!") + + var/turf/battlecruiser_loading_turf = locate(x, y, z) + if(!battlecruiser_loading_turf) + CRASH("Battlecruiser found no turf to load in!") + + if(!ship.load(battlecruiser_loading_turf)) + CRASH("Loading battlecruiser ship failed!") + + var/datum/team/battlecruiser/team = new() + var/obj/machinery/nuclearbomb/selfdestruct/nuke = locate() in GLOB.nuke_list + if(nuke.r_code == "ADMIN") + nuke.r_code = random_nukecode() + team.nuke = nuke + team.update_objectives() + + for(var/turf/open/spawned_turf as anything in ship.get_affected_turfs(battlecruiser_loading_turf)) //not as anything to filter out closed turfs + for(var/obj/effect/mob_spawn/ghost_role/human/syndicate/battlecruiser/spawner in spawned_turf) + spawner.antag_team = team + if(candidates.len > 0) + var/mob/our_candidate = candidates[1] + spawner.create(our_candidate) + candidates.Splice(1, 2) + notify_ghosts( + "The battlecruiser has an object of interest: [our_candidate]!", + source = our_candidate, + action = NOTIFY_ORBIT, + header = "Something's Interesting!" + ) + else + notify_ghosts( + "The battlecruiser has an object of interest: [spawner]!", + source = spawner, + action = NOTIFY_ORBIT, + header="Something's Interesting!" + ) + + priority_announce("Unidentified armed ship detected near the station.") diff --git a/code/modules/shuttle/docking.dm b/code/modules/shuttle/docking.dm index 8448b65615c..c7662a06ceb 100644 --- a/code/modules/shuttle/docking.dm +++ b/code/modules/shuttle/docking.dm @@ -206,4 +206,3 @@ continue var/turf/oldT = moved_atoms[moved_object] moved_object.lateShuttleMove(oldT, movement_force, movement_direction) - diff --git a/code/modules/shuttle/navigation_computer.dm b/code/modules/shuttle/navigation_computer.dm index 646771c6c29..55574ce1f6b 100644 --- a/code/modules/shuttle/navigation_computer.dm +++ b/code/modules/shuttle/navigation_computer.dm @@ -101,7 +101,7 @@ var/y_off = T.y - origin.y I.loc = locate(origin.x + x_off, origin.y + y_off, origin.z) //we have to set this after creating the image because it might be null, and images created in nullspace are immutable. I.layer = ABOVE_NORMAL_TURF_LAYER - I.plane = 0 + I.plane = ABOVE_GAME_PLANE I.mouse_opacity = MOUSE_OPACITY_TRANSPARENT the_eye.placement_images[I] = list(x_off, y_off) @@ -189,7 +189,7 @@ var/image/newI = image('icons/effects/alphacolors.dmi', the_eye.loc, "blue") newI.loc = I.loc //It is highly unlikely that any landing spot including a null tile will get this far, but better safe than sorry. newI.layer = ABOVE_OPEN_TURF_LAYER - newI.plane = 0 + newI.plane = ABOVE_GAME_PLANE newI.mouse_opacity = 0 the_eye.placed_images += newI @@ -393,5 +393,3 @@ to_chat(target, span_notice("Jumped to [selected].")) C.overlay_fullscreen("flash", /atom/movable/screen/fullscreen/flash/static) C.clear_fullscreen("flash", 3) - - diff --git a/code/modules/shuttle/on_move.dm b/code/modules/shuttle/on_move.dm index 63bbb0a31b3..47a66b08c4b 100644 --- a/code/modules/shuttle/on_move.dm +++ b/code/modules/shuttle/on_move.dm @@ -49,9 +49,10 @@ All ShuttleMove procs go here /turf/proc/onShuttleMove(turf/newT, list/movement_force, move_dir) if(newT == src) // In case of in place shuttle rotation shenanigans. return - //Destination turf changes - //Baseturfs is definitely a list or this proc wouldnt be called + // Destination turf changes. + // Baseturfs is definitely a list or this proc wouldnt be called. var/shuttle_boundary = baseturfs.Find(/turf/baseturf_skipover/shuttle) + if(!shuttle_boundary) CRASH("A turf queued to move via shuttle somehow had no skipover in baseturfs. [src]([type]):[loc]") var/depth = baseturfs.len - shuttle_boundary + 1 @@ -74,6 +75,7 @@ All ShuttleMove procs go here SSexplosions.wipe_turf(src) var/shuttle_boundary = baseturfs.Find(/turf/baseturf_skipover/shuttle) + if(shuttle_boundary) oldT.ScrapeAway(baseturfs.len - shuttle_boundary + 1) diff --git a/code/modules/surgery/surgery_step.dm b/code/modules/surgery/surgery_step.dm index 3308f74b45c..ef5b2d6ef92 100644 --- a/code/modules/surgery/surgery_step.dm +++ b/code/modules/surgery/surgery_step.dm @@ -123,6 +123,7 @@ span_notice("[user] begins to perform surgery on [target].")) /datum/surgery_step/proc/success(mob/user, mob/living/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = TRUE) + SEND_SIGNAL(user, COMSIG_MOB_SURGERY_STEP_SUCCESS, src, target, target_zone, tool, surgery, default_display_results) if(default_display_results) display_results(user, target, span_notice("You succeed."), span_notice("[user] succeeds!"), diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm index 0b3c0a60120..9ece3458a2d 100644 --- a/code/modules/unit_tests/_unit_tests.dm +++ b/code/modules/unit_tests/_unit_tests.dm @@ -82,6 +82,7 @@ #include "modsuit.dm" #include "ntnetwork_tests.dm" #include "outfit_sanity.dm" +#include "objectives.dm" #include "pills.dm" #include "plantgrowth_tests.dm" #include "preferences.dm" @@ -105,6 +106,7 @@ #include "strippable.dm" #include "subsystem_init.dm" #include "surgeries.dm" +#include "traitor.dm" #include "teleporters.dm" #include "tgui_create_message.dm" #include "timer_sanity.dm" diff --git a/code/modules/unit_tests/objectives.dm b/code/modules/unit_tests/objectives.dm new file mode 100644 index 00000000000..19a7171e675 --- /dev/null +++ b/code/modules/unit_tests/objectives.dm @@ -0,0 +1,24 @@ +/datum/unit_test/objectives_category/Run() + var/datum/traitor_category_handler/category_handler = allocate(/datum/traitor_category_handler) + var/list/objectives_that_exist = list() + for(var/datum/traitor_objective_category/category as anything in category_handler.all_categories) + for(var/value in category.objectives) + TEST_ASSERT(isnum(category.objectives[value]), "[category.type] does not have a valid format for its objectives as an objective category! ([value] requires a weight to be assigned to it)") + if(islist(value)) + recursive_check_list(category.type, value, objectives_that_exist) + else + objectives_that_exist += value + + for(var/datum/traitor_objective/objective_typepath as anything in subtypesof(/datum/traitor_objective)) + if(initial(objective_typepath.abstract_type) == objective_typepath) + continue + if(!(objective_typepath in objectives_that_exist)) + Fail("[objective_typepath] is not in a traitor category and isn't an abstract type! Place it into a [/datum/traitor_objective_category] or remove it from code.") + +/datum/unit_test/objectives_category/proc/recursive_check_list(base_type, list/to_check, list/to_add_to) + for(var/value in to_check) + TEST_ASSERT(isnum(to_check[value]), "[base_type] does not have a valid format for its objectives as an objective category! ([value] requires a weight to be assigned to it)") + if(islist(value)) + recursive_check_list(base_type, value, to_add_to) + else + to_add_to += value diff --git a/code/modules/unit_tests/traitor.dm b/code/modules/unit_tests/traitor.dm new file mode 100644 index 00000000000..4c08001dc19 --- /dev/null +++ b/code/modules/unit_tests/traitor.dm @@ -0,0 +1,26 @@ +/datum/unit_test/traitor/Run() + var/datum/dynamic_ruleset/roundstart/traitor/traitor_ruleset = allocate(/datum/dynamic_ruleset/roundstart/traitor) + var/list/possible_jobs = SSjob.station_jobs.Copy() + possible_jobs -= traitor_ruleset.protected_roles + possible_jobs -= traitor_ruleset.restricted_roles + + for(var/job_name in possible_jobs) + var/datum/job/job = SSjob.GetJob(job_name) + var/mob/living/player = allocate(job.spawn_type) + player.mind_initialize() + var/datum/mind/mind = player.mind + if(ishuman(player)) + var/mob/living/carbon/human/human = player + human.equipOutfit(job.outfit) + mind.set_assigned_role(job) + var/datum/antagonist/traitor/traitor = mind.add_antag_datum(/datum/antagonist/traitor) + if(!traitor.uplink_handler) + Fail("[job_name] when made traitor does not have a proper uplink created when spawned in!") + for(var/datum/traitor_objective/objective_typepath as anything in subtypesof(/datum/traitor_objective)) + if(initial(objective_typepath.abstract_type) == objective_typepath) + continue + var/datum/traitor_objective/objective = allocate(objective_typepath, traitor.uplink_handler) + try + objective.generate_objective(mind, list()) + catch(var/exception/exception) + Fail("[objective_typepath] failed to generate their objective. Reason: [exception.name] [exception.file]:[exception.line]\n[exception.desc]") diff --git a/code/modules/uplink/uplink_devices.dm b/code/modules/uplink/uplink_devices.dm index 6f39d18c094..1c0a980dc48 100644 --- a/code/modules/uplink/uplink_devices.dm +++ b/code/modules/uplink/uplink_devices.dm @@ -35,7 +35,7 @@ . = ..() var/datum/component/uplink/hidden_uplink = GetComponent(/datum/component/uplink) hidden_uplink.name = "debug uplink" - hidden_uplink.debug = TRUE + hidden_uplink.uplink_handler.debug_mode = TRUE /obj/item/uplink/nuclear uplink_flag = UPLINK_NUKE_OPS @@ -48,7 +48,7 @@ . = ..() var/datum/component/uplink/hidden_uplink = GetComponent(/datum/component/uplink) hidden_uplink.name = "debug nuclear uplink" - hidden_uplink.debug = TRUE + hidden_uplink.uplink_handler.debug_mode = TRUE /obj/item/uplink/nuclear_restricted uplink_flag = UPLINK_NUKE_OPS diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index d5a7c3e52a6..4c9dbd137a8 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -1,76 +1,24 @@ -GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) - -/proc/get_uplink_items(uplink_flag, allow_sales = TRUE, allow_restricted = TRUE) - var/list/filtered_uplink_items = list() - var/list/sale_items = list() - - for(var/path in GLOB.uplink_items) - var/datum/uplink_item/I = new path - if(!I.item) - continue - if (!(I.purchasable_from & uplink_flag)) - continue - if(I.player_minimum && I.player_minimum > GLOB.joined_player_list.len) - continue - if (I.restricted && !allow_restricted) - continue - - if(!filtered_uplink_items[I.category]) - filtered_uplink_items[I.category] = list() - filtered_uplink_items[I.category][I.name] = I - if(I.limited_stock < 0 && !I.cant_discount && I.item && I.cost > 1) - sale_items += I - if(allow_sales) - var/datum/team/nuclear/nuclear_team - if (uplink_flag & UPLINK_NUKE_OPS) // uplink code kind of needs a redesign - nuclear_team = locate() in GLOB.antagonist_teams // the team discounts could be in a GLOB with this design but it would make sense for them to be team specific... - if (!nuclear_team) - create_uplink_sales(3, "Discounted Gear", 1, sale_items, filtered_uplink_items) - else - if (!nuclear_team.team_discounts) - // create 5 unlimited stock discounts - create_uplink_sales(5, "Discounted Team Gear", -1, sale_items, filtered_uplink_items) - // Create 10 limited stock discounts - create_uplink_sales(10, "Limited Stock Team Gear", 1, sale_items, filtered_uplink_items) - nuclear_team.team_discounts = list("Discounted Team Gear" = filtered_uplink_items["Discounted Team Gear"], "Limited Stock Team Gear" = filtered_uplink_items["Limited Stock Team Gear"]) - else - for(var/cat in nuclear_team.team_discounts) - for(var/item in nuclear_team.team_discounts[cat]) - var/datum/uplink_item/D = nuclear_team.team_discounts[cat][item] - var/datum/uplink_item/O = filtered_uplink_items[initial(D.category)][initial(D.name)] - O.refundable = FALSE - - filtered_uplink_items["Discounted Team Gear"] = nuclear_team.team_discounts["Discounted Team Gear"] - filtered_uplink_items["Limited Stock Team Gear"] = nuclear_team.team_discounts["Limited Stock Team Gear"] - - - return filtered_uplink_items - -/proc/create_uplink_sales(num, category_name, limited_stock, sale_items, uplink_items) - if (num <= 0) - return - - if(!uplink_items[category_name]) - uplink_items[category_name] = list() +// TODO: Work into reworked uplinks. +/proc/create_uplink_sales(num, datum/uplink_category/category, limited_stock, list/sale_items) + var/list/sales = list() + var/list/sale_items_copy = sale_items.Copy() for (var/i in 1 to num) - var/datum/uplink_item/I = pick_n_take(sale_items) - var/datum/uplink_item/A = new I.type - var/discount = A.get_discount() + var/datum/uplink_item/taken_item = pick_n_take(sale_items_copy) + var/datum/uplink_item/uplink_item = new taken_item.type() + var/discount = uplink_item.get_discount() var/list/disclaimer = list("Void where prohibited.", "Not recommended for children.", "Contains small parts.", "Check local laws for legality in region.", "Do not taunt.", "Not responsible for direct, indirect, incidental or consequential damages resulting from any defect, error or failure to perform.", "Keep away from fire or flames.", "Product is provided \"as is\" without any implied or expressed warranties.", "As seen on TV.", "For recreational use only.", "Use only as directed.", "16% sales tax will be charged for orders originating within Space Nebraska.") - A.limited_stock = limited_stock - I.refundable = FALSE //THIS MAN USES ONE WEIRD TRICK TO GAIN FREE TC, CODERS HATES HIM! - A.refundable = FALSE - if(A.cost >= 20) //Tough love for nuke ops + uplink_item.limited_stock = limited_stock + if(uplink_item.cost >= 20) //Tough love for nuke ops discount *= 0.5 - A.category = category_name - A.cost = max(round(A.cost * discount),1) - A.name += " ([round(((initial(A.cost)-A.cost)/initial(A.cost))*100)]% off!)" - A.desc += " Normally costs [initial(A.cost)] TC. All sales final. [pick(disclaimer)]" - A.item = I.item - - uplink_items[category_name][A.name] = A + uplink_item.category = category + uplink_item.cost = max(round(uplink_item.cost * discount),1) + uplink_item.name += " ([round(((initial(uplink_item.cost)-uplink_item.cost)/initial(uplink_item.cost))*100)]% off!)" + uplink_item.desc += " Normally costs [initial(uplink_item.cost)] TC. All sales final. [pick(disclaimer)]" + uplink_item.item = taken_item.item + sales += uplink_item + return sales /** * Uplink Items @@ -78,37 +26,58 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) * Items that can be spawned from an uplink. Can be limited by gamemode. **/ /datum/uplink_item + /// Name of the uplink item var/name = "item name" - var/category = "item category" + /// Category of the uplink + var/datum/uplink_category/category + /// Description of the uplink var/desc = "item description" - var/item = null // Path to the item to spawn. - var/refund_path = null // Alternative path for refunds, in case the item purchased isn't what is actually refunded (ie: holoparasites). + /// Path to the item to spawn. + var/item = null + /// Alternative path for refunds, in case the item purchased isn't what is actually refunded (ie: holoparasites). + var/refund_path = null + /// Cost of the item. var/cost = 0 - var/refund_amount = 0 // specified refund amount in case there needs to be a TC penalty for refunds. + /// Amount of TC to refund, in case there's a TC penalty for refunds. + var/refund_amount = 0 + /// Whether this item is refundable or not. var/refundable = FALSE - var/surplus = 100 // Chance of being included in the surplus crate. + // Chance of being included in the surplus crate. + var/surplus = 100 + /// Whether this can be discounted or not var/cant_discount = FALSE + /// How many items of this stock can be purchased. var/limited_stock = -1 //Setting this above zero limits how many times this item can be bought by the same traitor in a round, -1 is unlimited /// A bitfield to represent what uplinks can purchase this item. /// See [`code/__DEFINES/uplink.dm`]. var/purchasable_from = ALL - var/list/restricted_roles = list() //If this uplink item is only available to certain roles. Roles are dependent on the frequency chip or stored ID. - var/player_minimum //The minimum crew size needed for this item to be added to uplinks. + /// If this uplink item is only available to certain roles. Roles are dependent on the frequency chip or stored ID. + var/list/restricted_roles = list() + /// The minimum amount of progression needed for this item to be added to uplinks. + var/progression_minimum = 0 + /// Whether this purchase is visible in the purchase log. var/purchase_log_vis = TRUE // Visible in the purchase log? - var/restricted = FALSE // Adds restrictions for VR/Events - var/list/restricted_species //Limits items to a specific species. Hopefully. - var/illegal_tech = TRUE // Can this item be deconstructed to unlock certain techweb research nodes? + /// Whether this purchase is restricted or not (VR/Events related) + var/restricted = FALSE + /// Can this item be deconstructed to unlock certain techweb research nodes? + var/illegal_tech = TRUE + +/datum/uplink_category + /// Name of the category + var/name + /// Weight of the category. Used to determine the positioning in the uplink. High weight = appears first + var/weight = 0 /datum/uplink_item/proc/get_discount() return pick(4;0.75,2;0.5,1;0.25) -/datum/uplink_item/proc/purchase(mob/user, datum/component/uplink/U) - var/atom/A = spawn_item(item, user, U) - log_uplink("[key_name(user)] purchased [src] for [cost] telecrystals from [U.parent]'s uplink") - if(purchase_log_vis && U.purchase_log) - U.purchase_log.LogPurchase(A, src, cost) +/datum/uplink_item/proc/purchase(mob/user, datum/uplink_handler/uplink_handler, atom/movable/source) + var/atom/A = spawn_item(item, user, uplink_handler, source) + log_uplink("[key_name(user)] purchased [src] for [cost] telecrystals from [source]'s uplink") + if(purchase_log_vis && uplink_handler.purchase_log) + uplink_handler.purchase_log.LogPurchase(A, src, cost) -/datum/uplink_item/proc/spawn_item(spawn_path, mob/user, datum/component/uplink/U) +/datum/uplink_item/proc/spawn_item(spawn_path, mob/user, datum/uplink_handler/uplink_handler, atom/movable/source) if(!spawn_path) return var/atom/A @@ -124,1962 +93,21 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) to_chat(user, span_boldnotice("[A] materializes onto the floor!")) return A +/datum/uplink_category/discounts + name = "Discounted Gear" + weight = -1 + +/datum/uplink_category/discount_team_gear + name = "Discounted Team Gear" + weight = -1 + +/datum/uplink_category/limited_discount_team_gear + name = "Limited Stock Team Gear" + weight = -2 + //Discounts (dynamically filled above) /datum/uplink_item/discounts - category = "Discounts" - -//All bundles and telecrystals -/datum/uplink_item/bundles_tc - category = "Bundles" - surplus = 0 - cant_discount = TRUE - -/datum/uplink_item/bundles_tc/chemical - name = "Bioterror bundle" - desc = "For the madman: Contains a handheld Bioterror chem sprayer, a Bioterror foam grenade, a box of lethal chemicals, a dart pistol, \ - box of syringes, Donksoft assault rifle, and some riot darts. Remember: Seal suit and equip internals before use." - item = /obj/item/storage/backpack/duffelbag/syndie/med/bioterrorbundle - cost = 30 // normally 42 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS - -/datum/uplink_item/bundles_tc/bulldog - name = "Bulldog bundle" - desc = "Lean and mean: Optimized for people that want to get up close and personal. Contains the popular \ - Bulldog shotgun, two 12g buckshot drums, and a pair of Thermal imaging goggles." - item = /obj/item/storage/backpack/duffelbag/syndie/bulldogbundle - cost = 13 // normally 16 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/bundles_tc/c20r - name = "C-20r bundle" - desc = "Old Faithful: The classic C-20r, bundled with two magazines and a (surplus) suppressor at discount price." - item = /obj/item/storage/backpack/duffelbag/syndie/c20rbundle - cost = 14 // normally 16 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/bundles_tc/cyber_implants - name = "Cybernetic Implants Bundle" - desc = "A random selection of cybernetic implants. Guaranteed 5 high quality implants. Comes with an autosurgeon." - item = /obj/item/storage/box/cyber_implants - cost = 40 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/bundles_tc/medical - name = "Medical bundle" - desc = "The support specialist: Aid your fellow operatives with this medical bundle. Contains a tactical medkit, \ - a Donksoft LMG, a box of riot darts and a pair of magboots to rescue your friends in no-gravity environments." - item = /obj/item/storage/backpack/duffelbag/syndie/med/medicalbundle - cost = 15 // normally 20 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/bundles_tc/sniper - name = "Sniper bundle" - desc = "Elegant and refined: Contains a collapsed sniper rifle in an expensive carrying case, \ - two soporific knockout magazines, a free surplus suppressor, and a sharp-looking tactical turtleneck suit. \ - We'll throw in a free red tie if you order NOW." - item = /obj/item/storage/briefcase/sniperbundle - cost = 20 // normally 26 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/bundles_tc/firestarter - name = "Spetsnaz Pyro bundle" - desc = "For systematic suppression of carbon lifeforms in close quarters: Contains a lethal New Russian backpack spray, Elite MODsuit, \ - Stechkin APS machine pistol, two incendiary magazines, a minibomb and a stimulant syringe. \ - Order NOW and comrade Boris will throw in an extra tracksuit." - item = /obj/item/storage/backpack/duffelbag/syndie/firestarter - cost = 30 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/bundles_tc/contract_kit - name = "Contract Kit" - desc = "The Syndicate have offered you the chance to become a contractor, take on kidnapping contracts for TC and cash payouts. Upon purchase, \ - you'll be granted your own contract uplink embedded within the supplied tablet computer. Additionally, you'll be granted \ - standard contractor gear to help with your mission - comes supplied with the tablet, specialised space suit, chameleon jumpsuit and mask, \ - agent card, specialised contractor baton, and three randomly selected low cost items. Can include otherwise unobtainable items." - item = /obj/item/storage/box/syndicate/contract_kit - cost = 20 - player_minimum = 20 - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) - -/datum/uplink_item/bundles_tc/bundle_a - name = "Syndi-kit Tactical" - desc = "Syndicate Bundles, also known as Syndi-Kits, are specialized groups of items that arrive in a plain box. \ - These items are collectively worth more than 20 telecrystals, but you do not know which specialization \ - you will receive. May contain discontinued and/or exotic items." - item = /obj/item/storage/box/syndicate/bundle_a - cost = 20 - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) - -/datum/uplink_item/bundles_tc/bundle_b - name = "Syndi-kit Special" - desc = "Syndicate Bundles, also known as Syndi-Kits, are specialized groups of items that arrive in a plain box. \ - In Syndi-kit Special, you will receive items used by famous syndicate agents of the past. Collectively worth more than 20 telecrystals, the syndicate loves a good throwback." - item = /obj/item/storage/box/syndicate/bundle_b - cost = 20 - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) - -/datum/uplink_item/bundles_tc/surplus - name = "Syndicate Surplus Crate" - desc = "A dusty crate from the back of the Syndicate warehouse. Rumored to contain a valuable assortment of items, \ - but you never know. Contents are sorted to always be worth 50 TC." - item = /obj/structure/closet/crate - cost = 20 - player_minimum = 25 - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) - var/starting_crate_value = 50 - -/datum/uplink_item/bundles_tc/surplus/super - name = "Super Surplus Crate" - desc = "A dusty SUPER-SIZED from the back of the Syndicate warehouse. Rumored to contain a valuable assortment of items, \ - but you never know. Contents are sorted to always be worth 125 TC." - cost = 40 - player_minimum = 40 - starting_crate_value = 125 - -/datum/uplink_item/bundles_tc/surplus/purchase(mob/user, datum/component/uplink/U) - var/list/uplink_items = get_uplink_items(UPLINK_TRAITORS, FALSE) - - var/crate_value = starting_crate_value - var/obj/structure/closet/crate/C = spawn_item(/obj/structure/closet/crate, user, U) - log_uplink("[key_name(user)] puchased [src] worth [crate_value] telecrystals for [cost] telecrystals using [U.parent]'s uplink") - if(U.purchase_log) - U.purchase_log.LogPurchase(C, src, cost) - while(crate_value) - var/category = pick(uplink_items) - var/item = pick(uplink_items[category]) - var/datum/uplink_item/I = uplink_items[category][item] - - if(!I.surplus || prob(100 - I.surplus)) - continue - if(crate_value < I.cost) - continue - crate_value -= I.cost - var/obj/goods = new I.item(C) - log_uplink("- [key_name(user)] received [goods] from [src]") - if(U.purchase_log) - U.purchase_log.LogPurchase(goods, I, 0) - return C - -/datum/uplink_item/bundles_tc/random - name = "Random Item" - desc = "Picking this will purchase a random item. Useful if you have some TC to spare or if you haven't decided on a strategy yet." - item = /obj/effect/gibspawner/generic // non-tangible item because techwebs use this path to determine illegal tech - cost = 0 - -/datum/uplink_item/bundles_tc/random/purchase(mob/user, datum/component/uplink/U) - var/list/uplink_items = U.uplink_items - var/list/possible_items = list() - for(var/category in uplink_items) - for(var/item in uplink_items[category]) - var/datum/uplink_item/I = uplink_items[category][item] - if(src == I || !I.item) - continue - if(U.telecrystals < I.cost) - continue - if(I.limited_stock == 0) - continue - possible_items += I - - if(possible_items.len) - var/datum/uplink_item/I = pick(possible_items) - log_uplink("[key_name(user)] purchased a random uplink item from [U.parent]'s uplink with [U.telecrystals] telecrystals remaining") - SSblackbox.record_feedback("tally", "traitor_random_uplink_items_gotten", 1, initial(I.name)) - U.MakePurchase(user, I) - -/datum/uplink_item/bundles_tc/telecrystal - name = "1 Raw Telecrystal" - desc = "A telecrystal in its rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." - item = /obj/item/stack/telecrystal - cost = 1 - // Don't add telecrystals to the purchase_log since - // it's just used to buy more items (including itself!) - purchase_log_vis = FALSE - -/datum/uplink_item/bundles_tc/telecrystal/five - name = "5 Raw Telecrystals" - desc = "Five telecrystals in their rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." - item = /obj/item/stack/telecrystal/five - cost = 5 - -/datum/uplink_item/bundles_tc/telecrystal/twenty - name = "20 Raw Telecrystals" - desc = "Twenty telecrystals in their rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." - item = /obj/item/stack/telecrystal/twenty - cost = 20 - -// Dangerous Items -/datum/uplink_item/dangerous - category = "Conspicuous Weapons" - -/datum/uplink_item/dangerous/rawketlawnchair - name = "84mm Rocket Propelled Grenade Launcher" - desc = "A reusable rocket propelled grenade launcher preloaded with a low-yield 84mm HE round. \ - Guaranteed to send your target out with a bang or your money back!" - item = /obj/item/gun/ballistic/rocketlauncher - cost = 8 - surplus = 30 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/dangerous/pie_cannon - name = "Banana Cream Pie Cannon" - desc = "A special pie cannon for a special clown, this gadget can hold up to 20 pies and automatically fabricates one every two seconds!" - cost = 10 - item = /obj/item/pneumatic_cannon/pie/selfcharge - surplus = 0 - purchasable_from = UPLINK_CLOWN_OPS - -/datum/uplink_item/dangerous/bananashield - name = "Bananium Energy Shield" - desc = "A clown's most powerful defensive weapon, this personal shield provides near immunity to ranged energy attacks \ - by bouncing them back at the ones who fired them. It can also be thrown to bounce off of people, slipping them, \ - and returning to you even if you miss. WARNING: DO NOT ATTEMPT TO STAND ON SHIELD WHILE DEPLOYED, EVEN IF WEARING ANTI-SLIP SHOES." - item = /obj/item/shield/energy/bananium - cost = 16 - surplus = 0 - purchasable_from = UPLINK_CLOWN_OPS - -/datum/uplink_item/dangerous/clownsword - name = "Bananium Energy Sword" - desc = "An energy sword that deals no damage, but will slip anyone it contacts, be it by melee attack, thrown \ - impact, or just stepping on it. Beware friendly fire, as even anti-slip shoes will not protect against it." - item = /obj/item/melee/energy/sword/bananium - cost = 3 - surplus = 0 - purchasable_from = UPLINK_CLOWN_OPS - -/datum/uplink_item/dangerous/clownoppin - name = "Ultra Hilarious Firing Pin" - desc = "A firing pin that, when inserted into a gun, makes that gun only useable by clowns and clumsy people and makes that gun honk whenever anyone tries to fire it." - cost = 1 //much cheaper for clown ops than for clowns - item = /obj/item/firing_pin/clown/ultra - purchasable_from = UPLINK_CLOWN_OPS - illegal_tech = FALSE - -/datum/uplink_item/dangerous/clownopsuperpin - name = "Super Ultra Hilarious Firing Pin" - desc = "Like the ultra hilarious firing pin, except the gun you insert this pin into explodes when someone who isn't clumsy or a clown tries to fire it." - cost = 4 //much cheaper for clown ops than for clowns - item = /obj/item/firing_pin/clown/ultra/selfdestruct - purchasable_from = UPLINK_CLOWN_OPS - illegal_tech = FALSE - -/datum/uplink_item/dangerous/bioterror - name = "Biohazardous Chemical Sprayer" - desc = "A handheld chemical sprayer that allows a wide dispersal of selected chemicals. Especially tailored by the Tiger \ - Cooperative, the deadly blend it comes stocked with will disorient, damage, and disable your foes... \ - Use with extreme caution, to prevent exposure to yourself and your fellow operatives." - item = /obj/item/reagent_containers/spray/chemsprayer/bioterror - cost = 20 - surplus = 0 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS - -/datum/uplink_item/dangerous/throwingweapons - name = "Box of Throwing Weapons" - desc = "A box of shurikens and reinforced bolas from ancient Earth martial arts. They are highly effective \ - throwing weapons. The bolas can knock a target down and the shurikens will embed into limbs." - item = /obj/item/storage/box/syndie_kit/throwing_weapons - cost = 3 - illegal_tech = FALSE - -/datum/uplink_item/dangerous/shotgun - name = "Bulldog Shotgun" - desc = "A fully-loaded semi-automatic drum-fed shotgun. Compatible with all 12g rounds. Designed for close \ - quarter anti-personnel engagements." - item = /obj/item/gun/ballistic/shotgun/bulldog - cost = 8 - surplus = 40 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/dangerous/smg - name = "C-20r Submachine Gun" - desc = "A fully-loaded Scarborough Arms bullpup submachine gun. The C-20r fires .45 rounds with a \ - 24-round magazine and is compatible with suppressors." - item = /obj/item/gun/ballistic/automatic/c20r - cost = 13 - surplus = 40 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/dangerous/doublesword - name = "Double-Bladed Energy Sword" - desc = "The double-bladed energy sword does slightly more damage than a standard energy sword and will deflect \ - all energy projectiles, but requires two hands to wield." - item = /obj/item/dualsaber - player_minimum = 25 - cost = 16 - purchasable_from = ~UPLINK_CLOWN_OPS - -/datum/uplink_item/dangerous/doublesword/get_discount() - return pick(4;0.8,2;0.65,1;0.5) - -/datum/uplink_item/dangerous/sword - name = "Energy Sword" - desc = "The energy sword is an edged weapon with a blade of pure energy. The sword is small enough to be \ - pocketed when inactive. Activating it produces a loud, distinctive noise." - item = /obj/item/melee/energy/sword/saber - cost = 8 - purchasable_from = ~UPLINK_CLOWN_OPS - -/datum/uplink_item/dangerous/shield - name = "Energy Shield" - desc = "An incredibly useful personal shield projector, capable of reflecting energy projectiles and defending \ - against other attacks. Pair with an Energy Sword for a killer combination." - item = /obj/item/shield/energy - cost = 16 - surplus = 20 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/dangerous/flamethrower - name = "Flamethrower" - desc = "A flamethrower, fueled by a portion of highly flammable plasma stolen previously from Nanotrasen \ - stations. Make a statement by roasting the filth in their own greed. Use with caution." - item = /obj/item/flamethrower/full/tank - cost = 4 - surplus = 40 - purchasable_from = UPLINK_NUKE_OPS - illegal_tech = FALSE - -/datum/uplink_item/dangerous/rapid - name = "Gloves of the North Star" - desc = "These gloves let the user punch people very fast. Does not improve weapon attack speed or the meaty fists of a hulk." - item = /obj/item/clothing/gloves/rapid - cost = 8 - -/datum/uplink_item/dangerous/guardian - name = "Holoparasites" - desc = "Though capable of near sorcerous feats via use of hardlight holograms and nanomachines, they require an \ - organic host as a home base and source of fuel. Holoparasites come in various types and share damage with their host." - item = /obj/item/storage/box/syndie_kit/guardian - cost = 18 - surplus = 0 - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) - player_minimum = 25 - restricted = TRUE - -/datum/uplink_item/dangerous/machinegun - name = "L6 Squad Automatic Weapon" - desc = "A fully-loaded Aussec Armoury belt-fed machine gun. \ - This deadly weapon has a massive 50-round magazine of devastating 7.12x82mm ammunition." - item = /obj/item/gun/ballistic/automatic/l6_saw - cost = 18 - surplus = 0 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/dangerous/carbine - name = "M-90gl Carbine" - desc = "A fully-loaded, specialized three-round burst carbine that fires 5.56mm ammunition from a 30 round magazine \ - with a 40mm underbarrel grenade launcher. Use secondary-fire to fire the grenade launcher." - item = /obj/item/gun/ballistic/automatic/m90 - cost = 14 - surplus = 50 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/dangerous/powerfist - name = "Power Fist" - desc = "The power-fist is a metal gauntlet with a built-in piston-ram powered by an external gas supply.\ - Upon hitting a target, the piston-ram will extend forward to make contact for some serious damage. \ - Using a wrench on the piston valve will allow you to tweak the amount of gas used per punch to \ - deal extra damage and hit targets further. Use a screwdriver to take out any attached tanks." - item = /obj/item/melee/powerfist - cost = 6 - -/datum/uplink_item/dangerous/sniper - name = "Sniper Rifle" - desc = "Ranged fury, Syndicate style. Guaranteed to cause shock and awe or your TC back!" - item = /obj/item/gun/ballistic/automatic/sniper_rifle/syndicate - cost = 16 - surplus = 25 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/dangerous/pistol - name = "Makarov Pistol" - desc = "A small, easily concealable handgun that uses 9mm auto rounds in 8-round magazines and is compatible \ - with suppressors." - item = /obj/item/gun/ballistic/automatic/pistol - cost = 7 - purchasable_from = ~UPLINK_CLOWN_OPS - -/datum/uplink_item/dangerous/aps - name = "Stechkin APS Machine Pistol" - desc = "An ancient Soviet machine pistol, refurbished for the modern age. Uses 9mm auto rounds in 15-round magazines and is compatible \ - with suppressors. The gun fires in three round bursts." - item = /obj/item/gun/ballistic/automatic/pistol/aps - cost = 10 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/dangerous/surplus_smg - name = "Surplus SMG" - desc = "A horribly outdated automatic weapon. Why would you want to use this?" - item = /obj/item/gun/ballistic/automatic/plastikov - cost = 2 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/dangerous/revolver - name = "Syndicate Revolver" - desc = "A brutally simple Syndicate revolver that fires .357 Magnum rounds and has 7 chambers." - item = /obj/item/gun/ballistic/revolver - cost = 13 - surplus = 50 - purchasable_from = ~UPLINK_CLOWN_OPS - -/datum/uplink_item/dangerous/foamsmg - name = "Toy Submachine Gun" - desc = "A fully-loaded Donksoft bullpup submachine gun that fires riot grade darts with a 20-round magazine." - item = /obj/item/gun/ballistic/automatic/c20r/toy - cost = 5 - surplus = 0 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS - -/datum/uplink_item/dangerous/foammachinegun - name = "Toy Machine Gun" - desc = "A fully-loaded Donksoft belt-fed machine gun. This weapon has a massive 50-round magazine of devastating \ - riot grade darts, that can briefly incapacitate someone in just one volley." - item = /obj/item/gun/ballistic/automatic/l6_saw/toy - cost = 10 - surplus = 0 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS - -/datum/uplink_item/dangerous/foampistol - name = "Toy Pistol with Riot Darts" - desc = "An innocent-looking toy pistol designed to fire foam darts. Comes loaded with riot-grade \ - darts effective at incapacitating a target." - item = /obj/item/gun/ballistic/automatic/pistol/toy/riot - cost = 2 - surplus = 10 - -// Stealthy Weapons -/datum/uplink_item/stealthy_weapons - category = "Stealthy Weapons" - -/datum/uplink_item/stealthy_weapons/combatglovesplus - name = "Combat Gloves Plus" - desc = "A pair of gloves that are fireproof and electrically insulated, however unlike the regular Combat Gloves these use nanotechnology \ - to teach the martial art of krav maga to the wearer." - item = /obj/item/clothing/gloves/krav_maga/combatglovesplus - cost = 5 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS - surplus = 0 - -/datum/uplink_item/stealthy_weapons/cqc - name = "CQC Manual" - desc = "A manual that teaches a single user tactical Close-Quarters Combat before self-destructing." - item = /obj/item/book/granter/martial/cqc - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS - cost = 13 - surplus = 0 - -/datum/uplink_item/stealthy_weapons/dart_pistol - name = "Dart Pistol" - desc = "A miniaturized version of a normal syringe gun. It is very quiet when fired and can fit into any \ - space a small item can." - item = /obj/item/gun/syringe/syndicate - cost = 4 - surplus = 50 - -/datum/uplink_item/stealthy_weapons/dehy_carp - name = "Dehydrated Space Carp" - desc = "Looks like a plush toy carp, but just add water and it becomes a real-life space carp! Activate in \ - your hand before use so it knows not to kill you." - item = /obj/item/toy/plush/carpplushie/dehy_carp - cost = 1 - -/datum/uplink_item/stealthy_weapons/edagger - name = "Energy Dagger" - desc = "A dagger made of energy that looks and functions as a pen when off." - item = /obj/item/pen/edagger - cost = 2 - -/datum/uplink_item/stealthy_weapons/martialarts - name = "Martial Arts Scroll" - desc = "This scroll contains the secrets of an ancient martial arts technique. You will master unarmed combat \ - and gain the ability to swat bullets from the air, but you will also refuse to use dishonorable ranged weaponry." - item = /obj/item/book/granter/martial/carp - player_minimum = 25 - cost = 13 - surplus = 0 - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) - -/datum/uplink_item/stealthy_weapons/crossbow - name = "Miniature Energy Crossbow" - desc = "A short bow mounted across a tiller in miniature. \ - Small enough to fit into a pocket or slip into a bag unnoticed. \ - It will synthesize and fire bolts tipped with a debilitating \ - toxin that will damage and disorient targets, causing them to \ - slur as if inebriated. It can produce an infinite number \ - of bolts, but takes time to automatically recharge after each shot." - item = /obj/item/gun/energy/kinetic_accelerator/crossbow - player_minimum = 25 - cost = 10 - surplus = 50 - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) - -/datum/uplink_item/stealthy_weapons/crossbow/New() - . = ..() - if(SSevents.holidays?[HALLOWEEN]) - item = /obj/item/gun/energy/kinetic_accelerator/crossbow/halloween - desc += " Happy Halloween!" - -/datum/uplink_item/stealthy_weapons/origami_kit - name = "Boxed Origami Kit" - desc = "This box contains a guide on how to craft masterful works of origami, allowing you to transform normal pieces of paper into \ - perfectly aerodynamic (and potentially lethal) paper airplanes." - item = /obj/item/storage/box/syndie_kit/origami_bundle - cost = 14 - surplus = 0 - purchasable_from = ~UPLINK_NUKE_OPS //clown ops intentionally left in, because that seems like some s-tier shenanigans. - -/datum/uplink_item/stealthy_weapons/traitor_chem_bottle - name = "Poison Kit" - desc = "An assortment of deadly chemicals packed into a compact box. Comes with a syringe for more precise application." - item = /obj/item/storage/box/syndie_kit/chemical - cost = 6 - surplus = 50 - -/datum/uplink_item/stealthy_weapons/romerol_kit - name = "Romerol" - desc = "A highly experimental bioterror agent which creates dormant nodules to be etched into the grey matter of the brain. \ - On death, these nodules take control of the dead body, causing limited revivification, \ - along with slurred speech, aggression, and the ability to infect others with this agent." - item = /obj/item/storage/box/syndie_kit/romerol - cost = 25 - cant_discount = TRUE - -/datum/uplink_item/stealthy_weapons/sleepy_pen - name = "Sleepy Pen" - desc = "A syringe disguised as a functional pen, filled with a potent mix of drugs, including a \ - strong anesthetic and a chemical that prevents the target from speaking. \ - The pen holds one dose of the mixture, and can be refilled with any chemicals. Note that before the target \ - falls asleep, they will be able to move and act." - item = /obj/item/pen/sleepy - cost = 4 - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) - -/datum/uplink_item/stealthy_weapons/suppressor - name = "Suppressor" - desc = "This suppressor will silence the shots of the weapon it is attached to for increased stealth and superior ambushing capability. It is compatible with many small ballistic guns including the Makarov, Stechkin APS and C-20r, but not revolvers or energy guns." - item = /obj/item/suppressor - cost = 3 - surplus = 10 - purchasable_from = ~UPLINK_CLOWN_OPS - -/datum/uplink_item/stealthy_weapons/holster - name = "Syndicate Holster" - desc = "A useful little device that allows for inconspicuous carrying of guns using chameleon technology. It also allows for badass gun-spinning." - item = /obj/item/storage/belt/holster/chameleon - cost = 1 - -// Ammunition -/datum/uplink_item/ammo - category = "Ammunition" - surplus = 40 - -/datum/uplink_item/ammo/pistol - name = "9mm Handgun Magazine" - desc = "An additional 8-round 9mm magazine, compatible with the Makarov pistol." - item = /obj/item/ammo_box/magazine/m9mm - cost = 1 - purchasable_from = ~UPLINK_CLOWN_OPS - illegal_tech = FALSE - -/datum/uplink_item/ammo/pistolap - name = "9mm Armour Piercing Magazine" - desc = "An additional 8-round 9mm magazine, compatible with the Makarov pistol. \ - These rounds are less effective at injuring the target but penetrate protective gear." - item = /obj/item/ammo_box/magazine/m9mm/ap - cost = 2 - purchasable_from = ~UPLINK_CLOWN_OPS - -/datum/uplink_item/ammo/pistolhp - name = "9mm Hollow Point Magazine" - desc = "An additional 8-round 9mm magazine, compatible with the Makarov pistol. \ - These rounds are more damaging but ineffective against armour." - item = /obj/item/ammo_box/magazine/m9mm/hp - cost = 3 - purchasable_from = ~UPLINK_CLOWN_OPS - -/datum/uplink_item/ammo/pistolfire - name = "9mm Incendiary Magazine" - desc = "An additional 8-round 9mm magazine, compatible with the Makarov pistol. \ - Loaded with incendiary rounds which inflict little damage, but ignite the target." - item = /obj/item/ammo_box/magazine/m9mm/fire - cost = 2 - purchasable_from = ~UPLINK_CLOWN_OPS - -/datum/uplink_item/ammo/pistolaps - name = "9mm Stechkin APS Magazine" - desc = "An additional 15-round 9mm magazine, compatible with the Stechkin APS machine pistol." - item = /obj/item/ammo_box/magazine/m9mm_aps - cost = 2 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/ammo/shotgun - cost = 2 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/ammo/shotgun/bag - name = "12g Ammo Duffel Bag" - desc = "A duffel bag filled with enough 12g ammo to supply an entire team, at a discounted price." - item = /obj/item/storage/backpack/duffelbag/syndie/ammo/shotgun - cost = 12 - -/datum/uplink_item/ammo/shotgun/buck - name = "12g Buckshot Drum" - desc = "An additional 8-round buckshot magazine for use with the Bulldog shotgun. Front towards enemy." - item = /obj/item/ammo_box/magazine/m12g - -/datum/uplink_item/ammo/shotgun/dragon - name = "12g Dragon's Breath Drum" - desc = "An alternative 8-round dragon's breath magazine for use in the Bulldog shotgun. \ - 'I'm a fire starter, twisted fire starter!'" - item = /obj/item/ammo_box/magazine/m12g/dragon - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/ammo/shotgun/meteor - name = "12g Meteorslug Shells" - desc = "An alternative 8-round meteorslug magazine for use in the Bulldog shotgun. \ - Great for blasting airlocks off their frames and knocking down enemies." - item = /obj/item/ammo_box/magazine/m12g/meteor - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/ammo/shotgun/slug - name = "12g Slug Drum" - desc = "An additional 8-round slug magazine for use with the Bulldog shotgun. \ - Now 8 times less likely to shoot your pals." - cost = 3 - item = /obj/item/ammo_box/magazine/m12g/slug - -/datum/uplink_item/ammo/revolver - name = ".357 Speed Loader" - desc = "A speed loader that contains seven additional .357 Magnum rounds; usable with the Syndicate revolver. \ - For when you really need a lot of things dead." - item = /obj/item/ammo_box/a357 - cost = 4 - purchasable_from = ~UPLINK_CLOWN_OPS - illegal_tech = FALSE - -/datum/uplink_item/ammo/a40mm - name = "40mm Grenade Box" - desc = "A box of 40mm HE grenades for use with the M-90gl's under-barrel grenade launcher. \ - Your teammates will ask you to not shoot these down small hallways." - item = /obj/item/ammo_box/a40mm - cost = 6 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/ammo/smg/bag - name = ".45 Ammo Duffel Bag" - desc = "A duffel bag filled with enough .45 ammo to supply an entire team, at a discounted price." - item = /obj/item/storage/backpack/duffelbag/syndie/ammo/smg - cost = 20 //instead of 27 TC - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/ammo/smg - name = ".45 SMG Magazine" - desc = "An additional 24-round .45 magazine suitable for use with the C-20r submachine gun." - item = /obj/item/ammo_box/magazine/smgm45 - cost = 3 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/ammo/smgap - name = ".45 Armor Piercing SMG Magazine" - desc = "An additional 24-round .45 magazine suitable for use with the C-20r submachine gun.\ - These rounds are less effective at injuring the target but penetrate protective gear." - item = /obj/item/ammo_box/magazine/smgm45/ap - cost = 5 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/ammo/smgfire - name = ".45 Incendiary SMG Magazine" - desc = "An additional 24-round .45 magazine suitable for use with the C-20r submachine gun.\ - Loaded with incendiary rounds which inflict little damage, but ignite the target." - item = /obj/item/ammo_box/magazine/smgm45/incen - cost = 4 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/ammo/sniper - cost = 4 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/ammo/sniper/basic - name = ".50 Magazine" - desc = "An additional standard 6-round magazine for use with .50 sniper rifles." - item = /obj/item/ammo_box/magazine/sniper_rounds - -/datum/uplink_item/ammo/sniper/penetrator - name = ".50 Penetrator Magazine" - desc = "A 5-round magazine of penetrator ammo designed for use with .50 sniper rifles. \ - Can pierce walls and multiple enemies." - item = /obj/item/ammo_box/magazine/sniper_rounds/penetrator - cost = 5 - -/datum/uplink_item/ammo/sniper/soporific - name = ".50 Soporific Magazine" - desc = "A 3-round magazine of soporific ammo designed for use with .50 sniper rifles. Put your enemies to sleep today!" - item = /obj/item/ammo_box/magazine/sniper_rounds/soporific - cost = 6 - -/datum/uplink_item/ammo/carbine - name = "5.56mm Toploader Magazine" - desc = "An additional 30-round 5.56mm magazine; suitable for use with the M-90gl carbine. \ - These bullets pack less punch than 7.12x82mm rounds, but they still offer more power than .45 ammo due to their innate armour penetration." - item = /obj/item/ammo_box/magazine/m556 - cost = 4 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/ammo/carbinephase - name = "5.56mm Toploader Phasic Magazine" - desc = "An additional 30-round 5.56mm magazine; suitable for use with the M-90gl carbine. \ - These bullets are made from an experimental alloy, 'Ghost Lead', that allows it to pass through almost any non-organic material. \ - The name is a misnomer. It doesn't contain any lead whatsoever!" - item = /obj/item/ammo_box/magazine/m556/phasic - cost = 8 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/ammo/machinegun - cost = 6 - surplus = 0 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/ammo/machinegun/basic - name = "7.12x82mm Box Magazine" - desc = "A 50-round magazine of 7.12x82mm ammunition for use with the L6 SAW. \ - By the time you need to use this, you'll already be standing on a pile of corpses." - item = /obj/item/ammo_box/magazine/mm712x82 - -/datum/uplink_item/ammo/machinegun/ap - name = "7.12x82mm (Armor Penetrating) Box Magazine" - desc = "A 50-round magazine of 7.12x82mm ammunition for use in the L6 SAW; equipped with special properties \ - to puncture even the most durable armor." - item = /obj/item/ammo_box/magazine/mm712x82/ap - cost = 9 - -/datum/uplink_item/ammo/machinegun/hollow - name = "7.12x82mm (Hollow-Point) Box Magazine" - desc = "A 50-round magazine of 7.12x82mm ammunition for use in the L6 SAW; equipped with hollow-point tips to help \ - with the unarmored masses of crew." - item = /obj/item/ammo_box/magazine/mm712x82/hollow - -/datum/uplink_item/ammo/machinegun/incen - name = "7.12x82mm (Incendiary) Box Magazine" - desc = "A 50-round magazine of 7.12x82mm ammunition for use in the L6 SAW; tipped with a special flammable \ - mixture that'll ignite anyone struck by the bullet. Some men just want to watch the world burn." - item = /obj/item/ammo_box/magazine/mm712x82/incen - -/datum/uplink_item/ammo/machinegun/match - name = "7.12x82mm (Match) Box Magazine" - desc = "A 50-round magazine of 7.12x82mm ammunition for use in the L6 SAW; you didn't know there was a demand for match grade \ - precision bullet hose ammo, but these rounds are finely tuned and perfect for ricocheting off walls all fancy-like." - item = /obj/item/ammo_box/magazine/mm712x82/match - cost = 10 - -/datum/uplink_item/ammo/rocket - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/ammo/rocket/basic - name = "84mm HE Rocket" - desc = "A low-yield anti-personnel HE rocket. Gonna take you out in style!" - item = /obj/item/ammo_casing/caseless/rocket - cost = 4 - -/datum/uplink_item/ammo/rocket/hedp - name = "84mm HEDP Rocket" - desc = "A high-yield HEDP rocket; extremely effective against armored targets, as well as surrounding personnel. \ - Strike fear into the hearts of your enemies." - item = /obj/item/ammo_casing/caseless/rocket/hedp - cost = 6 - -/datum/uplink_item/ammo/toydarts - name = "Box of Riot Darts" - desc = "A box of 40 Donksoft riot darts, for reloading any compatible foam dart magazine. Don't forget to share!" - item = /obj/item/ammo_box/foambox/riot - cost = 2 - surplus = 0 - illegal_tech = FALSE - -/datum/uplink_item/ammo/bioterror - name = "Box of Bioterror Syringes" - desc = "A box full of preloaded syringes, containing various chemicals that seize up the victim's motor \ - and broca systems, making it impossible for them to move or speak for some time." - item = /obj/item/storage/box/syndie_kit/bioterror - cost = 6 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS - -/datum/uplink_item/ammo/surplus_smg - name = "Surplus SMG Magazine" - desc = "A cylindrical magazine designed for the PP-95 SMG." - item = /obj/item/ammo_box/magazine/plastikov9mm - cost = 1 - purchasable_from = UPLINK_NUKE_OPS - illegal_tech = FALSE - -/datum/uplink_item/ammo/mech/bag - name = "Mech Support Kit Bag" - desc = "A duffel bag containing ammo for four full reloads of the scattershotm which is equipped on standard Dark Gygax and Mauler exosuits. Also comes with some support equipment for maintaining the mech, including tools and an inducer." - item = /obj/item/storage/backpack/duffelbag/syndie/ammo/mech - cost = 4 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/ammo/mauler/bag - name = "Mauler Ammo Bag" - desc = "A duffel bag containing ammo for three full reloads of the LMG, scattershot carbine, and SRM-8 missile laucher that are equipped on a standard Mauler exosuit." - item = /obj/item/storage/backpack/duffelbag/syndie/ammo/mauler - cost = 6 - purchasable_from = UPLINK_NUKE_OPS - -//Grenades and Explosives -/datum/uplink_item/explosives - category = "Explosives" - -/datum/uplink_item/explosives/bioterrorfoam - name = "Bioterror Foam Grenade" - desc = "A powerful chemical foam grenade which creates a deadly torrent of foam that will mute, blind, confuse, \ - mutate, and irritate carbon lifeforms. Specially brewed by Tiger Cooperative chemical weapons specialists \ - using additional spore toxin. Ensure suit is sealed before use." - item = /obj/item/grenade/chem_grenade/bioterrorfoam - cost = 5 - surplus = 35 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS - -/datum/uplink_item/explosives/bombanana - name = "Bombanana" - desc = "A banana with an explosive taste! discard the peel quickly, as it will explode with the force of a Syndicate minibomb \ - a few seconds after the banana is eaten." - item = /obj/item/food/grown/banana/bombanana - cost = 4 //it is a bit cheaper than a minibomb because you have to take off your helmet to eat it, which is how you arm it - surplus = 0 - purchasable_from = UPLINK_CLOWN_OPS - -/datum/uplink_item/explosives/buzzkill - name = "Buzzkill Grenade Box" - desc = "A box with three grenades that release a swarm of angry bees upon activation. These bees indiscriminately attack friend or foe \ - with random toxins. Courtesy of the BLF and Tiger Cooperative." - item = /obj/item/storage/box/syndie_kit/bee_grenades - cost = 15 - surplus = 35 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS - -/datum/uplink_item/explosives/c4 - name = "Composition C-4" - desc = "C-4 is plastic explosive of the common variety Composition C. You can use it to breach walls, sabotage equipment, or connect \ - an assembly to it in order to alter the way it detonates. It can be attached to almost all objects and has a modifiable timer with a \ - minimum setting of 10 seconds." - item = /obj/item/grenade/c4 - cost = 1 - -/datum/uplink_item/explosives/c4bag - name = "Bag of C-4 explosives" - desc = "Because sometimes quantity is quality. Contains 10 C-4 plastic explosives." - item = /obj/item/storage/backpack/duffelbag/syndie/c4 - cost = 8 //20% discount! - cant_discount = TRUE - -/datum/uplink_item/explosives/x4bag - name = "Bag of X-4 explosives" - desc = "Contains 3 X-4 shaped plastic explosives. Similar to C4, but with a stronger blast that is directional instead of circular. \ - X-4 can be placed on a solid surface, such as a wall or window, and it will blast through the wall, injuring anything on the opposite side, while being safer to the user. \ - For when you want a controlled explosion that leaves a wider, deeper, hole." - item = /obj/item/storage/backpack/duffelbag/syndie/x4 - cost = 4 // - cant_discount = TRUE - -/datum/uplink_item/explosives/clown_bomb_clownops - name = "Clown Bomb" - desc = "The Clown bomb is a hilarious device capable of massive pranks. It has an adjustable timer, \ - with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ - movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ - transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ - be defused, and some crew may attempt to do so." - item = /obj/item/sbeacondrop/clownbomb - cost = 15 - surplus = 0 - purchasable_from = UPLINK_CLOWN_OPS - -/datum/uplink_item/explosives/detomatix - name = "Detomatix PDA Cartridge" - desc = "When inserted into a personal digital assistant, this cartridge gives you the opportunity to \ - send up to six forged messages that will make PDAs of crewmembers explode when they try to reply to them. \ - The concussive effect from the explosion will knock the recipient out for a short period, and deafen them for longer." - item = /obj/item/cartridge/virus/syndicate - cost = 4 - restricted = TRUE - -/datum/uplink_item/explosives/emp - name = "EMP Grenades and Implanter Kit" - desc = "A box that contains five EMP grenades and an EMP implant with three uses. Useful to disrupt communications, \ - security's energy weapons and silicon lifeforms when you're in a tight spot." - item = /obj/item/storage/box/syndie_kit/emp - cost = 2 - -/datum/uplink_item/explosives/virus_grenade - name = "Fungal Tuberculosis Grenade" - desc = "A primed bio-grenade packed into a compact box. Comes with five Bio Virus Antidote Kit (BVAK) \ - autoinjectors for rapid application on up to two targets each, a syringe, and a bottle containing \ - the BVAK solution." - item = /obj/item/storage/box/syndie_kit/tuberculosisgrenade - cost = 12 - surplus = 35 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS - restricted = TRUE - -/datum/uplink_item/explosives/grenadier - name = "Grenadier's belt" - desc = "A belt containing 26 lethally dangerous and destructive grenades. Comes with an extra multitool and screwdriver." - item = /obj/item/storage/belt/grenade/full - purchasable_from = UPLINK_NUKE_OPS - cost = 22 - surplus = 0 - -/datum/uplink_item/explosives/pizza_bomb - name = "Pizza Bomb" - desc = "A pizza box with a bomb cunningly attached to the lid. The timer needs to be set by opening the box; afterwards, \ - opening the box again will trigger the detonation after the timer has elapsed. Comes with free pizza, for you or your target!" - item = /obj/item/pizzabox/bomb - cost = 6 - surplus = 8 - -/datum/uplink_item/explosives/soap_clusterbang - name = "Slipocalypse Clusterbang" - desc = "A traditional clusterbang grenade with a payload consisting entirely of Syndicate soap. Useful in any scenario!" - item = /obj/item/grenade/clusterbuster/soap - cost = 3 - -/datum/uplink_item/explosives/syndicate_bomb - name = "Syndicate Bomb" - desc = "The Syndicate bomb is a fearsome device capable of massive destruction. It has an adjustable timer, \ - with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ - movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ - transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ - be defused, and some crew may attempt to do so. \ - The bomb core can be pried out and manually detonated with other explosives." - item = /obj/item/sbeacondrop/bomb - cost = 11 - -/datum/uplink_item/explosives/syndicate_bomb/emp - name = "Syndicate EMP Bomb" - desc = "A variation of the syndicate bomb designed to produce a large EMP effect." - item = /obj/item/sbeacondrop/emp - cost = 7 - -/datum/uplink_item/explosives/syndicate_detonator - name = "Syndicate Detonator" - desc = "The Syndicate detonator is a companion device to the Syndicate bomb. Simply press the included button \ - and an encrypted radio frequency will instruct all live Syndicate bombs to detonate. \ - Useful for when speed matters or you wish to synchronize multiple bomb blasts. Be sure to stand clear of \ - the blast radius before using the detonator." - item = /obj/item/syndicatedetonator - cost = 3 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS - -/datum/uplink_item/explosives/syndicate_minibomb - name = "Syndicate Minibomb" - desc = "The minibomb is a grenade with a five-second fuse. Upon detonation, it will create a small hull breach \ - in addition to dealing high amounts of damage to nearby personnel." - item = /obj/item/grenade/syndieminibomb - cost = 6 - purchasable_from = ~UPLINK_CLOWN_OPS - -/datum/uplink_item/explosives/tearstache - name = "Teachstache Grenade" - desc = "A teargas grenade that launches sticky moustaches onto the face of anyone not wearing a clown or mime mask. The moustaches will \ - remain attached to the face of all targets for one minute, preventing the use of breath masks and other such devices." - item = /obj/item/grenade/chem_grenade/teargas/moustache - cost = 3 - surplus = 0 - purchasable_from = UPLINK_CLOWN_OPS - -/datum/uplink_item/explosives/viscerators - name = "Viscerator Delivery Grenade" - desc = "A unique grenade that deploys a swarm of viscerators upon activation, which will chase down and shred \ - any non-operatives in the area." - item = /obj/item/grenade/spawnergrenade/manhacks - cost = 5 - surplus = 35 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS - -//Support and Mechs -/datum/uplink_item/support - category = "Support and Exosuits" - surplus = 0 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/support/clown_reinforcement - name = "Clown Reinforcements" - desc = "Call in an additional clown to share the fun, equipped with full starting gear, but no telecrystals." - item = /obj/item/antag_spawner/nuke_ops/clown - cost = 20 - purchasable_from = UPLINK_CLOWN_OPS - restricted = TRUE - -/datum/uplink_item/support/reinforcement - name = "Reinforcements" - desc = "Call in an additional team member. They won't come with any gear, so you'll have to save some telecrystals \ - to arm them as well." - item = /obj/item/antag_spawner/nuke_ops - cost = 25 - refundable = TRUE - purchasable_from = UPLINK_NUKE_OPS - restricted = TRUE - -/datum/uplink_item/support/reinforcement/assault_borg - name = "Syndicate Assault Cyborg" - desc = "A cyborg designed and programmed for systematic extermination of non-Syndicate personnel. \ - Comes equipped with a self-resupplying LMG, a grenade launcher, energy sword, emag, pinpointer, flash and crowbar." - item = /obj/item/antag_spawner/nuke_ops/borg_tele/assault - refundable = TRUE - cost = 65 - restricted = TRUE - -/datum/uplink_item/support/reinforcement/medical_borg - name = "Syndicate Medical Cyborg" - desc = "A combat medical cyborg. Has limited offensive potential, but makes more than up for it with its support capabilities. \ - It comes equipped with a nanite hypospray, a medical beamgun, combat defibrillator, full surgical kit including an energy saw, an emag, pinpointer and flash. \ - Thanks to its organ storage bag, it can perform surgery as well as any humanoid." - item = /obj/item/antag_spawner/nuke_ops/borg_tele/medical - refundable = TRUE - cost = 35 - restricted = TRUE - -/datum/uplink_item/support/reinforcement/saboteur_borg - name = "Syndicate Saboteur Cyborg" - desc = "A streamlined engineering cyborg, equipped with covert modules. Also incapable of leaving the welder in the shuttle. \ - Aside from regular Engineering equipment, it comes with a special destination tagger that lets it traverse disposals networks. \ - Its chameleon projector lets it disguise itself as a Nanotrasen cyborg, on top it has thermal vision and a pinpointer." - item = /obj/item/antag_spawner/nuke_ops/borg_tele/saboteur - refundable = TRUE - cost = 35 - restricted = TRUE - -/datum/uplink_item/support/gygax - name = "Dark Gygax Exosuit" - desc = "A lightweight exosuit, painted in a dark scheme. Its speed and equipment selection make it excellent \ - for hit-and-run style attacks. Features a scattershot shotgun, armor boosters against melee and ranged attacks, ion thrusters and a Tesla energy array." - item = /obj/vehicle/sealed/mecha/combat/gygax/dark/loaded - cost = 80 - -/datum/uplink_item/support/honker - name = "Dark H.O.N.K." - desc = "A clown combat mech equipped with bombanana peel and tearstache grenade launchers, as well as the ubiquitous HoNkER BlAsT 5000." - item = /obj/vehicle/sealed/mecha/combat/honker/dark/loaded - cost = 80 - purchasable_from = UPLINK_CLOWN_OPS - -/datum/uplink_item/support/mauler - name = "Mauler Exosuit" - desc = "A massive and incredibly deadly military-grade exosuit. Features long-range targeting, thrust vectoring \ - and deployable smoke. Comes equipped with an LMG, scattershot carbine, missile rack, an antiprojectile armor booster and a Tesla energy array." - item = /obj/vehicle/sealed/mecha/combat/marauder/mauler/loaded - cost = 140 - -// Stealth Items -/datum/uplink_item/stealthy_tools - category = "Stealth Gadgets" - -/datum/uplink_item/stealthy_tools/agent_card - name = "Agent Identification Card" - desc = "Agent cards prevent artificial intelligences from tracking the wearer, and hold up to 5 wildcards \ - from other identification cards. In addition, they can be forged to display a new assignment, name and trim. \ - This can be done an unlimited amount of times. Some Syndicate areas and devices can only be accessed \ - with these cards." - item = /obj/item/card/id/advanced/chameleon - cost = 2 - -/datum/uplink_item/stealthy_tools/ai_detector - name = "Artificial Intelligence Detector" - desc = "A functional multitool that turns red when it detects an artificial intelligence watching it, and can be \ - activated to display their exact viewing location and nearby security camera blind spots. Knowing when \ - an artificial intelligence is watching you is useful for knowing when to maintain cover, and finding nearby \ - blind spots can help you identify escape routes." - item = /obj/item/multitool/ai_detect - cost = 1 - -/datum/uplink_item/stealthy_tools/chameleon - name = "Chameleon Kit" - desc = "A set of items that contain chameleon technology allowing you to disguise as pretty much anything on the station, and more! \ - Due to budget cuts, the shoes don't provide protection against slipping and skillchips are sold separately." - item = /obj/item/storage/box/syndie_kit/chameleon - cost = 2 - purchasable_from = ~UPLINK_NUKE_OPS //clown ops are allowed to buy this kit, since it's basically a costume - -/datum/uplink_item/stealthy_tools/chameleon_proj - name = "Chameleon Projector" - desc = "Projects an image across a user, disguising them as an object scanned with it, as long as they don't \ - move the projector from their hand. Disguised users move slowly, and projectiles pass over them." - item = /obj/item/chameleon - cost = 7 - -/datum/uplink_item/stealthy_tools/codespeak_manual - name = "Codespeak Manual" - desc = "Syndicate agents can be trained to use a series of codewords to convey complex information, which sounds like random concepts and drinks to anyone listening. \ - This manual teaches you this Codespeak. You can also hit someone else with the manual in order to teach them. This is the deluxe edition, which has unlimited uses." - item = /obj/item/language_manual/codespeak_manual/unlimited - cost = 3 - -/datum/uplink_item/stealthy_tools/combatbananashoes - name = "Combat Banana Shoes" - desc = "While making the wearer immune to most slipping attacks like regular combat clown shoes, these shoes \ - can generate a large number of synthetic banana peels as the wearer walks, slipping up would-be pursuers. They also \ - squeak significantly louder." - item = /obj/item/clothing/shoes/clown_shoes/banana_shoes/combat - cost = 6 - surplus = 0 - purchasable_from = UPLINK_CLOWN_OPS - -/datum/uplink_item/stealthy_tools/emplight - name = "EMP Flashlight" - desc = "A small, self-recharging, short-ranged EMP device disguised as a working flashlight. \ - Useful for disrupting headsets, cameras, doors, lockers and borgs during stealth operations. \ - Attacking a target with this flashlight will direct an EM pulse at it and consumes a charge." - item = /obj/item/flashlight/emp - cost = 4 - surplus = 30 - -/datum/uplink_item/stealthy_tools/mulligan - name = "Mulligan" - desc = "Screwed up and have security on your tail? This handy syringe will give you a completely new identity \ - and appearance." - item = /obj/item/reagent_containers/syringe/mulligan - cost = 4 - surplus = 30 - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) - -/datum/uplink_item/stealthy_tools/syndigaloshes - name = "No-Slip Chameleon Shoes" - desc = "These shoes will allow the wearer to run on wet floors and slippery objects without falling down. \ - They do not work on heavily lubricated surfaces." - item = /obj/item/clothing/shoes/chameleon/noslip - cost = 2 - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) - player_minimum = 20 - -/datum/uplink_item/stealthy_tools/syndigaloshes/nuke - item = /obj/item/clothing/shoes/chameleon/noslip - cost = 4 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/stealthy_tools/jammer - name = "Radio Jammer" - desc = "This device will disrupt any nearby outgoing radio communication when activated. Does not affect binary chat." - item = /obj/item/jammer - cost = 5 - -/datum/uplink_item/stealthy_tools/smugglersatchel - name = "Smuggler's Satchel" - desc = "This satchel is thin enough to be hidden in the gap between plating and tiling; great for stashing \ - your stolen goods. Comes with a crowbar, a floor tile and some contraband inside." - item = /obj/item/storage/backpack/satchel/flat/with_tools - cost = 1 - surplus = 30 - illegal_tech = FALSE - -//Space Suits and MODsuits -/datum/uplink_item/suits - category = "Space Suits" - surplus = 40 - -/datum/uplink_item/suits/infiltrator_bundle - name = "Infiltrator Case" - desc = "Developed by Roseus Galactic in conjunction with the Gorlex Marauders to produce a functional suit for urban operations, \ - this suit proves to be cheaper than your standard issue MODsuit, with none of the movement restrictions of the outdated spacesuits employed by the company. \ - Comes with an armor vest, helmet, sneaksuit, sneakboots, specialized combat gloves and a high-tech balaclava. The case is also rather useful as a storage container." - item = /obj/item/storage/toolbox/infiltrator - cost = 6 - limited_stock = 1 //you only get one so you don't end up with too many gun cases - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) - -/datum/uplink_item/suits/space_suit - name = "Syndicate Space Suit" - desc = "This red and black Syndicate space suit is less encumbering than Nanotrasen variants, \ - fits inside bags, and has a weapon slot. Nanotrasen crew members are trained to report red space suit \ - sightings, however." - item = /obj/item/storage/box/syndie_kit/space - cost = 4 - -/datum/uplink_item/suits/modsuit - name = "Syndicate MODsuit" - desc = "The feared MODsuit of a Syndicate agent. Features armoring and a set of inbuilt modules." - item = /obj/item/mod/control/pre_equipped/traitor - cost = 8 - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) //you can't buy it in nuke, because the elite modsuit costs the same while being better - -/datum/uplink_item/suits/modsuit/elite - name = "Elite Syndicate MODsuit" - desc = "An upgraded, elite version of the Syndicate MODsuit. It features fireproofing, and also \ - provides the user with superior armor and mobility compared to the standard Syndicate MODsuit." - item = /obj/item/mod/control/pre_equipped/elite - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS - -/datum/uplink_item/suits/energy_shield - name = "MODsuit Energy Shield Module" - desc = "An energy shield module for a MODsuit. The shields can handle up to three impacts \ - within a short duration and will rapidly recharge while not under fire." - item = /obj/item/mod/module/energy_shield - cost = 15 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS - -/datum/uplink_item/suits/thermal - name = "MODsuit Thermal Visor Module" - desc = "A visor for a MODsuit. Lets you see living beings through walls." - item = /obj/item/mod/module/visor/thermal - cost = 3 - -/datum/uplink_item/suits/night - name = "MODsuit Night Visor Module" - desc = "A visor for a MODsuit. Lets you see clearer in the dark." - item = /obj/item/mod/module/visor/night - cost = 2 - -/datum/uplink_item/suits/noslip - name = "MODsuit Anti-Slip Module" - desc = "A MODsuit module preventing the user from slipping on water." - item = /obj/item/mod/module/noslip - cost = 4 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS - -/datum/uplink_item/suits/noslip/traitor - cost = 2 - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) - -// Devices and Tools -/datum/uplink_item/device_tools - category = "Misc. Gadgets" - -/datum/uplink_item/device_tools/cutouts - name = "Adaptive Cardboard Cutouts" - desc = "These cardboard cutouts are coated with a thin material that prevents discoloration and makes the images on them appear more lifelike. \ - This pack contains three as well as a crayon for changing their appearances." - item = /obj/item/storage/box/syndie_kit/cutouts - cost = 1 - surplus = 20 - -/datum/uplink_item/device_tools/assault_pod - name = "Assault Pod Targeting Device" - desc = "Use this to select the landing zone of your assault pod." - item = /obj/item/assault_pod - cost = 30 - surplus = 0 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS - restricted = TRUE - -/datum/uplink_item/device_tools/binary - name = "Binary Translator Key" - desc = "A key that, when inserted into a radio headset, allows you to listen to and talk with silicon-based lifeforms, \ - such as AI units and cyborgs, over their private binary channel. Caution should \ - be taken while doing this, as unless they are allied with you, they are programmed to report such intrusions." - item = /obj/item/encryptionkey/binary - cost = 5 - surplus = 75 - restricted = TRUE - -/datum/uplink_item/device_tools/magboots - name = "Blood-Red Magboots" - desc = "A pair of magnetic boots with a Syndicate paintjob that assist with freer movement in space or on-station \ - during gravitational generator failures. These reverse-engineered knockoffs of Nanotrasen's \ - 'Advanced Magboots' slow you down in simulated-gravity environments much like the standard issue variety." - item = /obj/item/clothing/shoes/magboots/syndie - cost = 2 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS - -/datum/uplink_item/device_tools/briefcase_launchpad - name = "Briefcase Launchpad" - desc = "A briefcase containing a launchpad, a device able to teleport items and people to and from targets up to eight tiles away from the briefcase. \ - Also includes a remote control, disguised as an ordinary folder. Touch the briefcase with the remote to link it." - surplus = 0 - item = /obj/item/storage/briefcase/launchpad - cost = 6 - -/datum/uplink_item/device_tools/camera_bug - name = "Camera Bug" - desc = "Enables you to view all cameras on the main network, set up motion alerts and track a target. \ - Bugging cameras allows you to disable them remotely." - item = /obj/item/camera_bug - cost = 1 - surplus = 90 - -/datum/uplink_item/device_tools/military_belt - name = "Chest Rig" - desc = "A robust seven-slot set of webbing that is capable of holding all manner of tactical equipment." - item = /obj/item/storage/belt/military - cost = 1 - -/datum/uplink_item/device_tools/emag - name = "Cryptographic Sequencer" - desc = "The cryptographic sequencer, electromagnetic card, or emag, is a small card that unlocks hidden functions \ - in electronic devices, subverts intended functions, and easily breaks security mechanisms. Cannot be used to open airlocks." - item = /obj/item/card/emag - cost = 4 - -/datum/uplink_item/device_tools/emag/New() - . = ..() - if(SSevents.holidays?[HALLOWEEN]) - item = /obj/item/card/emag/halloween - desc += " This one is fitted to support the Halloween season. Candle not included." - -/datum/uplink_item/device_tools/syndie_jaws_of_life - name = "Syndicate Jaws of Life" - desc = "Based on a Nanotrasen model, this powerful tool can be used as both a crowbar and a pair of wirecutters. \ - In its crowbar configuration, it can be used to force open airlocks. Very useful for entering the station or its departments." - item = /obj/item/crowbar/power/syndicate - cost = 4 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS - -/datum/uplink_item/device_tools/doorjack - name = "Airlock Authentication Override Card" - desc = "A specialized cryptographic sequencer specifically designed to override station airlock access codes. \ - After hacking a certain number of airlocks, the device will require some time to recharge." - item = /obj/item/card/emag/doorjack - cost = 3 - -/datum/uplink_item/device_tools/fakenucleardisk - name = "Decoy Nuclear Authentication Disk" - desc = "It's just a normal disk. Visually it's identical to the real deal, but it won't hold up under closer scrutiny by the Captain. \ - Don't try to give this to us to complete your objective, we know better!" - item = /obj/item/disk/nuclear/fake - cost = 1 - surplus = 1 - illegal_tech = FALSE - -/datum/uplink_item/device_tools/frame - name = "F.R.A.M.E. PDA Cartridge" - desc = "When inserted into a personal digital assistant, this cartridge gives you five PDA viruses which \ - when used cause the targeted PDA to become a new uplink with zero TCs, and immediately become unlocked. \ - You will receive the unlock code upon activating the virus, and the new uplink may be charged with \ - telecrystals normally." - item = /obj/item/cartridge/virus/frame - cost = 4 - restricted = TRUE - -/datum/uplink_item/device_tools/failsafe - name = "Failsafe Uplink Code" - desc = "When entered the uplink will self-destruct immediately." - item = /obj/effect/gibspawner/generic - cost = 1 - surplus = 0 - restricted = TRUE - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) - -/datum/uplink_item/device_tools/failsafe/spawn_item(spawn_path, mob/user, datum/component/uplink/U) - if(!U) - return - U.failsafe_code = U.generate_code() - var/code = "[islist(U.failsafe_code) ? english_list(U.failsafe_code) : U.failsafe_code]" - to_chat(user, span_warning("The new failsafe code for this uplink is now : [code]. You may check your antagonist info to recall this.")) - return U.parent //For log icon - -/datum/uplink_item/device_tools/toolbox - name = "Full Syndicate Toolbox" - desc = "The Syndicate toolbox is a suspicious black and red. It comes loaded with a full tool set including a \ - multitool and combat gloves that are resistant to shocks and heat." - item = /obj/item/storage/toolbox/syndicate - cost = 1 - illegal_tech = FALSE - -/datum/uplink_item/device_tools/hacked_module - name = "Hacked AI Law Upload Module" - desc = "When used with an upload console, this module allows you to upload priority laws to an artificial intelligence. \ - Be careful with wording, as artificial intelligences may look for loopholes to exploit." - item = /obj/item/ai_module/syndicate - cost = 4 - -/datum/uplink_item/device_tools/hypnotic_flash - name = "Hypnotic Flash" - desc = "A modified flash able to hypnotize targets. If the target is not in a mentally vulnerable state, it will only confuse and pacify them temporarily." - item = /obj/item/assembly/flash/hypnotic - cost = 7 - -/datum/uplink_item/device_tools/hypnotic_grenade - name = "Hypnotic Grenade" - desc = "A modified flashbang grenade able to hypnotize targets. The sound portion of the flashbang causes hallucinations, and will allow the flash to induce a hypnotic trance to viewers." - item = /obj/item/grenade/hypnotic - cost = 12 - -/datum/uplink_item/device_tools/medgun - name = "Medbeam Gun" - desc = "A wonder of Syndicate engineering, the Medbeam gun, or Medi-Gun enables a medic to keep his fellow \ - operatives in the fight, even while under fire. Don't cross the streams!" - item = /obj/item/gun/medbeam - cost = 15 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS - -/datum/uplink_item/device_tools/singularity_beacon - name = "Power Beacon" - desc = "When screwed to wiring attached to an electric grid and activated, this large device pulls any \ - active gravitational singularities or tesla balls towards it. This will not work when the engine is still \ - in containment. Because of its size, it cannot be carried. Ordering this \ - sends you a small beacon that will teleport the larger beacon to your location upon activation." - item = /obj/item/sbeacondrop - cost = 10 - -/datum/uplink_item/device_tools/powersink - name = "Power Sink" - desc = "When screwed to wiring attached to a power grid and activated, this large device lights up and places excessive \ - load on the grid, causing a station-wide blackout. The sink is large and cannot be stored in most \ - traditional bags and boxes. Caution: Will explode if the powernet contains sufficient amounts of energy." - item = /obj/item/powersink - player_minimum = 25 - cost = 11 - -/datum/uplink_item/device_tools/rad_laser - name = "Radioactive Microlaser" - desc = "A radioactive microlaser disguised as a standard Nanotrasen health analyzer. When used, it emits a \ - powerful burst of radiation, which, after a short delay, can incapacitate all but the most protected \ - of humanoids. It has two settings: intensity, which controls the power of the radiation, \ - and wavelength, which controls the delay before the effect kicks in." - item = /obj/item/healthanalyzer/rad_laser - cost = 3 - -/datum/uplink_item/device_tools/stimpack - name = "Stimpack" - desc = "Stimpacks, the tool of many great heroes, make you nearly immune to stuns and knockdowns for about \ - 5 minutes after injection." - item = /obj/item/reagent_containers/hypospray/medipen/stimulants - cost = 5 - surplus = 90 - -/datum/uplink_item/device_tools/medkit - name = "Syndicate Combat Medic Kit" - desc = "This first aid kit is a suspicious brown and red. Included is a combat stimulant injector \ - for rapid healing, a medical night vision HUD for quick identification of injured personnel, \ - and other supplies helpful for a field medic." - item = /obj/item/storage/firstaid/tactical - cost = 4 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS - -/datum/uplink_item/device_tools/soap - name = "Syndicate Soap" - desc = "A sinister-looking surfactant used to clean blood stains to hide murders and prevent DNA analysis. \ - You can also drop it underfoot to slip people." - item = /obj/item/soap/syndie - cost = 1 - surplus = 50 - illegal_tech = FALSE - -/datum/uplink_item/device_tools/surgerybag - name = "Syndicate Surgery Duffel Bag" - desc = "The Syndicate surgery duffel bag is a toolkit containing all surgery tools, surgical drapes, \ - a Syndicate brand MMI, a straitjacket, and a muzzle." - item = /obj/item/storage/backpack/duffelbag/syndie/surgery - cost = 3 - -/datum/uplink_item/device_tools/encryptionkey - name = "Syndicate Encryption Key" - desc = "A key that, when inserted into a radio headset, allows you to listen to all station department channels \ - as well as talk on an encrypted Syndicate channel with other agents that have the same key." - item = /obj/item/encryptionkey/syndicate - cost = 2 - surplus = 75 - restricted = TRUE - -/datum/uplink_item/device_tools/syndietome - name = "Syndicate Tome" - desc = "Using rare artifacts acquired at great cost, the Syndicate has reverse engineered \ - the seemingly magical books of a certain cult. Though lacking the esoteric abilities \ - of the originals, these inferior copies are still quite useful, being able to provide \ - both weal and woe on the battlefield, even if they do occasionally bite off a finger." - item = /obj/item/storage/book/bible/syndicate - cost = 5 - -/datum/uplink_item/device_tools/thermal - name = "Thermal Imaging Glasses" - desc = "These goggles can be turned to resemble common eyewear found throughout the station. \ - They allow you to see organisms through walls by capturing the upper portion of the infrared light spectrum, \ - emitted as heat and light by objects. Hotter objects, such as warm bodies, cybernetic organisms \ - and artificial intelligence cores emit more of this light than cooler objects like walls and airlocks." - item = /obj/item/clothing/glasses/thermal/syndi - cost = 4 - -/datum/uplink_item/device_tools/potion - name = "Syndicate Sentience Potion" - item = /obj/item/slimepotion/slime/sentience/nuclear - desc = "A potion recovered at great risk by undercover Syndicate operatives and then subsequently modified with Syndicate technology. \ - Using it will make any animal sentient, and bound to serve you, as well as implanting an internal radio for communication and an internal ID card for opening doors." - cost = 4 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS - restricted = TRUE - -/datum/uplink_item/device_tools/suspiciousphone - name = "Protocol CRAB-17 Phone" - desc = "The Protocol CRAB-17 Phone, a phone borrowed from an unknown third party, it can be used to crash the space market, funneling the losses of the crew to your bank account.\ - The crew can move their funds to a new banking site though, unless they HODL, in which case they deserve it." - item = /obj/item/suspiciousphone - restricted = TRUE - cost = 7 - limited_stock = 1 - -/datum/uplink_item/device_tools/guerillagloves - name = "Guerilla Gloves" - desc = "A pair of highly robust combat gripper gloves that excels at performing takedowns at close range, with an added lining of insulation. Careful not to hit a wall!" - item = /obj/item/clothing/gloves/tackler/combat/insulated - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS - cost = 2 - illegal_tech = FALSE - -// Implants -/datum/uplink_item/implants - category = "Implants" - surplus = 50 - -/datum/uplink_item/implants/antistun - name = "CNS Rebooter Implant" - desc = "This implant will help you get back up on your feet faster after being stunned. Comes with an autosurgeon." - item = /obj/item/autosurgeon/organ/syndicate/anti_stun - cost = 12 - surplus = 0 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/implants/freedom - name = "Freedom Implant" - desc = "An implant injected into the body and later activated at the user's will. It will attempt to free the \ - user from common restraints such as handcuffs." - item = /obj/item/storage/box/syndie_kit/imp_freedom - cost = 5 - -/datum/uplink_item/implants/microbomb - name = "Microbomb Implant" - desc = "An implant injected into the body, and later activated either manually or automatically upon death. \ - The more implants inside of you, the higher the explosive power. \ - This will permanently destroy your body, however." - item = /obj/item/storage/box/syndie_kit/imp_microbomb - cost = 2 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/implants/macrobomb - name = "Macrobomb Implant" - desc = "An implant injected into the body, and later activated either manually or automatically upon death. \ - Upon death, releases a massive explosion that will wipe out everything nearby." - item = /obj/item/storage/box/syndie_kit/imp_macrobomb - cost = 20 - purchasable_from = UPLINK_NUKE_OPS - restricted = TRUE - -/datum/uplink_item/implants/radio - name = "Internal Syndicate Radio Implant" - desc = "An implant injected into the body, allowing the use of an internal Syndicate radio. \ - Used just like a regular headset, but can be disabled to use external headsets normally and to avoid detection." - item = /obj/item/storage/box/syndie_kit/imp_radio - cost = 4 - restricted = TRUE - -/datum/uplink_item/implants/reviver - name = "Reviver Implant" - desc = "This implant will attempt to revive and heal you if you lose consciousness. Comes with an autosurgeon." - item = /obj/item/autosurgeon/organ/syndicate/reviver - cost = 8 - surplus = 0 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/implants/stealthimplant - name = "Stealth Implant" - desc = "This one-of-a-kind implant will make you almost invisible if you play your cards right. \ - On activation, it will conceal you inside a chameleon cardboard box that is only revealed once someone bumps into it." - item = /obj/item/storage/box/syndie_kit/imp_stealth - cost = 8 - -/datum/uplink_item/implants/storage - name = "Storage Implant" - desc = "An implant injected into the body, and later activated at the user's will. It will open a small bluespace \ - pocket capable of storing two regular-sized items." - item = /obj/item/storage/box/syndie_kit/imp_storage - cost = 8 - -/datum/uplink_item/implants/thermals - name = "Thermal Eyes" - desc = "These cybernetic eyes will give you thermal vision. Comes with a free autosurgeon." - item = /obj/item/autosurgeon/organ/syndicate/thermal_eyes - cost = 8 - surplus = 0 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/implants/uplink - name = "Uplink Implant" - desc = "An implant injected into the body, and later activated at the user's will. Has no telecrystals and must be charged by the use of physical telecrystals. \ - Undetectable (except via surgery), and excellent for escaping confinement." - item = /obj/item/storage/box/syndie_kit // the actual uplink implant is generated later on in spawn_item - cost = UPLINK_IMPLANT_TELECRYSTAL_COST - // An empty uplink is kinda useless. - surplus = 0 - restricted = TRUE - -/datum/uplink_item/implants/uplink/spawn_item(spawn_path, mob/user, datum/component/uplink/purchaser_uplink) - var/obj/item/storage/box/syndie_kit/uplink_box = ..() - uplink_box.name = "Uplink Implant Box" - new /obj/item/implanter/uplink(uplink_box, purchaser_uplink.uplink_flag) - return uplink_box - - -/datum/uplink_item/implants/xray - name = "X-ray Vision Implant" - desc = "These cybernetic eyes will give you X-ray vision. Comes with an autosurgeon." - item = /obj/item/autosurgeon/organ/syndicate/xray_eyes - cost = 10 - surplus = 0 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/implants/deathrattle - name = "Box of Deathrattle Implants" - desc = "A collection of implants (and one reusable implanter) that should be injected into the team. When one of the team \ - dies, all other implant holders recieve a mental message informing them of their teammates' name \ - and the location of their death. Unlike most implants, these are designed to be implanted \ - in any creature, biological or mechanical." - item = /obj/item/storage/box/syndie_kit/imp_deathrattle - cost = 4 - surplus = 0 - purchasable_from = UPLINK_NUKE_OPS - - -//Race-specific items -/datum/uplink_item/race_restricted - category = "Species-Restricted" - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) - surplus = 0 - -/datum/uplink_item/race_restricted/syndilamp - name = "Extra-Bright Lantern" - desc = "We heard that moths such as yourself really like lamps, so we decided to grant you early access to a prototype \ - Syndicate brand \"Extra-Bright Lantern™\". Enjoy." - cost = 2 - item = /obj/item/flashlight/lantern/syndicate - restricted_species = list(SPECIES_MOTH) - -// Role-specific items -/datum/uplink_item/role_restricted - category = "Role-Restricted" - purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) - surplus = 0 - -/datum/uplink_item/role_restricted/ancient_jumpsuit - name = "Ancient Jumpsuit" - desc = "A tattered old jumpsuit that will provide absolutely no benefit to you." - item = /obj/item/clothing/under/color/grey/ancient - cost = 20 - restricted_roles = list(JOB_ASSISTANT) - surplus = 0 - -/datum/uplink_item/role_restricted/oldtoolboxclean - name = "Ancient Toolbox" - desc = "An iconic toolbox design notorious with Assistants everywhere, this design was especially made to become more robust the more telecrystals it has inside it! Tools and insulated gloves included." - item = /obj/item/storage/toolbox/mechanical/old/clean - cost = 2 - restricted_roles = list(JOB_ASSISTANT) - surplus = 0 - -/datum/uplink_item/role_restricted/pie_cannon - name = "Banana Cream Pie Cannon" - desc = "A special pie cannon for a special clown, this gadget can hold up to 20 pies and automatically fabricates one every two seconds!" - cost = 10 - item = /obj/item/pneumatic_cannon/pie/selfcharge - restricted_roles = list(JOB_CLOWN) - surplus = 0 //No fun unless you're the clown! - -/datum/uplink_item/role_restricted/blastcannon - name = "Blast Cannon" - desc = "A highly specialized weapon, the Blast Cannon is actually relatively simple. It contains an attachment for a tank transfer valve mounted to an angled pipe specially constructed \ - withstand extreme pressure and temperatures, and has a mechanical trigger for triggering the transfer valve. Essentially, it turns the explosive force of a bomb into a narrow-angle \ - blast wave \"projectile\". Aspiring scientists may find this highly useful, as forcing the pressure shockwave into a narrow angle seems to be able to bypass whatever quirk of physics \ - disallows explosive ranges above a certain distance, allowing for the device to use the theoretical yield of a transfer valve bomb, instead of the factual yield. It's simple design makes it easy to conceal." - item = /obj/item/gun/blastcannon - cost = 14 //High cost because of the potential for extreme damage in the hands of a skilled scientist. - restricted_roles = list(JOB_RESEARCH_DIRECTOR, JOB_SCIENTIST) - -/datum/uplink_item/role_restricted/gorillacubes - name = "Box of Gorilla Cubes" - desc = "A box with three Waffle Co. brand gorilla cubes. Eat big to get big. \ - Caution: Product may rehydrate when exposed to water." - item = /obj/item/storage/box/gorillacubes - cost = 6 - restricted_roles = list(JOB_RESEARCH_DIRECTOR, JOB_GENETICIST) - -/datum/uplink_item/role_restricted/brainwash_disk - name = "Brainwashing Surgery Program" - desc = "A disk containing the procedure to perform a brainwashing surgery, allowing you to implant an objective onto a target. \ - Insert into an Operating Console to enable the procedure." - item = /obj/item/disk/surgery/brainwashing - restricted_roles = list( - JOB_CHIEF_MEDICAL_OFFICER, JOB_MEDICAL_DOCTOR, - JOB_ROBOTICIST, - ) - cost = 5 - -/datum/uplink_item/role_restricted/clown_bomb - name = "Clown Bomb" - desc = "The Clown bomb is a hilarious device capable of massive pranks. It has an adjustable timer, \ - with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ - movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ - transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ - be defused, and some crew may attempt to do so." - item = /obj/item/sbeacondrop/clownbomb - cost = 15 - restricted_roles = list(JOB_CLOWN) - -/datum/uplink_item/role_restricted/clumsinessinjector //clown ops can buy this too, but it's in the pointless badassery section for them - name = "Clumsiness Injector" - desc = "Inject yourself with this to become as clumsy as a clown... or inject someone ELSE with it to make THEM as clumsy as a clown. Useful for clowns who wish to reconnect with their former clownish nature or for clowns who wish to torment and play with their prey before killing them." - item = /obj/item/dnainjector/clumsymut - cost = 1 - restricted_roles = list(JOB_CLOWN) - illegal_tech = FALSE - -/datum/uplink_item/role_restricted/spider_injector - name = "Australicus Slime Mutator" - desc = "Crikey mate, it's been a wild travel from the Australicus sector but we've managed to get \ - some special spider extract from the giant spiders down there. Use this injector on a gold slime core \ - to create a few of the same type of spiders we found on the planets over there. They're a bit tame until you \ - also give them a bit of sentience though." - item = /obj/item/reagent_containers/syringe/spider_extract - cost = 10 - restricted_roles = list(JOB_RESEARCH_DIRECTOR, JOB_SCIENTIST, JOB_ROBOTICIST) - -/datum/uplink_item/role_restricted/clowncar - name = "Clown Car" - desc = "The Clown Car is the ultimate transportation method for any worthy clown! \ - Simply insert your bikehorn and get in, and get ready to have the funniest ride of your life! \ - You can ram any spacemen you come across and stuff them into your car, kidnapping them and locking them inside until \ - someone saves them or they manage to crawl out. Be sure not to ram into any walls or vending machines, as the springloaded seats \ - are very sensitive. Now with our included lube defense mechanism which will protect you against any angry shitcurity! \ - Premium features can be unlocked with a cryptographic sequencer!" - item = /obj/vehicle/sealed/car/clowncar - cost = 20 - restricted_roles = list(JOB_CLOWN) - -/datum/uplink_item/role_restricted/concealed_weapon_bay - name = "Concealed Weapon Bay" - desc = "A modification for non-combat mechas that allows them to equip one piece of equipment designed for combat mechs. \ - It also hides the equipped weapon from plain sight. \ - Only one can fit on a mecha." - item = /obj/item/mecha_parts/concealed_weapon_bay - cost = 3 - restricted_roles = list(JOB_RESEARCH_DIRECTOR, JOB_ROBOTICIST) - -/datum/uplink_item/role_restricted/syndimmi - name = "Syndicate Brand MMI" - desc = "An MMI modified to give cyborgs laws to serve the Syndicate without having their interface damaged by Cryptographic Sequencers, this will not unlock their hidden modules." - item = /obj/item/mmi/syndie - cost = 2 - restricted_roles = list( - JOB_RESEARCH_DIRECTOR, JOB_SCIENTIST, JOB_ROBOTICIST, - JOB_CHIEF_MEDICAL_OFFICER, JOB_MEDICAL_DOCTOR, - ) - surplus = 0 - -/datum/uplink_item/role_restricted/haunted_magic_eightball - name = "Haunted Magic Eightball" - desc = "Most magic eightballs are toys with dice inside. Although identical in appearance to the harmless toys, this occult device reaches into the spirit world to find its answers. \ - Be warned, that spirits are often capricious or just little assholes. To use, simply speak your question aloud, then begin shaking." - item = /obj/item/toy/eightball/haunted - cost = 2 - restricted_roles = list("Curator") - limited_stock = 1 //please don't spam deadchat - -/datum/uplink_item/role_restricted/his_grace - name = "His Grace" - desc = "An incredibly dangerous weapon recovered from a station overcome by the grey tide. Once activated, He will thirst for blood and must be used to kill to sate that thirst. \ - His Grace grants gradual regeneration and complete stun immunity to His wielder, but be wary: if He gets too hungry, He will become impossible to drop and eventually kill you if not fed. \ - However, if left alone for long enough, He will fall back to slumber. \ - To activate His Grace, simply unlatch Him." - item = /obj/item/his_grace - cost = 20 - restricted_roles = list(JOB_CHAPLAIN) - surplus = 5 //Very low chance to get it in a surplus crate even without being the chaplain - -/datum/uplink_item/role_restricted/explosive_hot_potato - name = "Exploding Hot Potato" - desc = "A potato rigged with explosives. On activation, a special mechanism is activated that prevents it from being dropped. \ - The only way to get rid of it if you are holding it is to attack someone else with it, causing it to latch to that person instead." - item = /obj/item/hot_potato/syndicate - cost = 4 - surplus = 0 - restricted_roles = list(JOB_COOK, JOB_BOTANIST, JOB_CLOWN, JOB_MIME) - -/datum/uplink_item/role_restricted/ez_clean_bundle - name = "EZ Clean Grenade Bundle" - desc = "A box with three cleaner grenades using the trademark Waffle Co. formula. Serves as a cleaner and causes acid damage to anyone standing nearby. \ - The acid only affects carbon-based creatures." - item = /obj/item/storage/box/syndie_kit/ez_clean - cost = 6 - surplus = 20 - restricted_roles = list(JOB_JANITOR) - -/datum/uplink_item/role_restricted/mimery - name = "Guide to Advanced Mimery Series" - desc = "The classical two part series on how to further hone your mime skills. Upon studying the series, the user should be able to make 3x1 invisible walls, and shoot bullets out of their fingers. \ - Obviously only works for Mimes." - cost = 12 - item = /obj/item/storage/box/syndie_kit/mimery - restricted_roles = list(JOB_MIME) - surplus = 0 - -/datum/uplink_item/role_restricted/pressure_mod - name = "Kinetic Accelerator Pressure Mod" - desc = "A modification kit which allows Kinetic Accelerators to do greatly increased damage while indoors. \ - Occupies 35% mod capacity." - item = /obj/item/borg/upgrade/modkit/indoors - cost = 5 //you need two for full damage, so total of 10 for maximum damage - limited_stock = 2 //you can't use more than two! - restricted_roles = list(JOB_SHAFT_MINER) - -/datum/uplink_item/role_restricted/magillitis_serum - name = "Magillitis Serum Autoinjector" - desc = "A single-use autoinjector which contains an experimental serum that causes rapid muscular growth in Hominidae. \ - Side-affects may include hypertrichosis, violent outbursts, and an unending affinity for bananas." - item = /obj/item/reagent_containers/hypospray/medipen/magillitis - cost = 15 - restricted_roles = list(JOB_RESEARCH_DIRECTOR, JOB_GENETICIST) - -/datum/uplink_item/role_restricted/modified_syringe_gun - name = "Modified Compact Syringe Gun" - desc = "A compact version of the syringe gun that fires DNA injectors instead of normal syringes." - item = /obj/item/gun/syringe/dna - cost = 14 - restricted_roles = list(JOB_RESEARCH_DIRECTOR, JOB_GENETICIST) - -/datum/uplink_item/role_restricted/chemical_gun - name = "Reagent Dartgun" - desc = "A heavily modified syringe gun which is capable of synthesizing its own chemical darts using input reagents. Can hold 100u of reagents." - item = /obj/item/gun/chem - cost = 12 - restricted_roles = list( - JOB_CHIEF_MEDICAL_OFFICER, JOB_CHEMIST, - JOB_BOTANIST, - ) - -/datum/uplink_item/role_restricted/reverse_bear_trap - name = "Reverse Bear Trap" - desc = "An ingenious execution device worn on (or forced onto) the head. Arming it starts a 1-minute kitchen timer mounted on the bear trap. When it goes off, the trap's jaws will \ - violently open, instantly killing anyone wearing it by tearing their jaws in half. To arm, attack someone with it while they're not wearing headgear, and you will force it onto their \ - head after three seconds uninterrupted." - cost = 5 - item = /obj/item/reverse_bear_trap - restricted_roles = list(JOB_CLOWN) - -/datum/uplink_item/role_restricted/reverse_revolver - name = "Reverse Revolver" - desc = "A revolver that always fires at its user. \"Accidentally\" drop your weapon, then watch as the greedy corporate pigs blow their own brains all over the wall. \ - The revolver itself is actually real. Only clumsy people, and clowns, can fire it normally. Comes in a box of hugs. Honk." - cost = 14 - item = /obj/item/storage/box/hug/reverse_revolver - restricted_roles = list(JOB_CLOWN) - -/datum/uplink_item/role_restricted/clownpin - name = "Ultra Hilarious Firing Pin" - desc = "A firing pin that, when inserted into a gun, makes that gun only usable by clowns and clumsy people and makes that gun honk whenever anyone tries to fire it." - cost = 4 - item = /obj/item/firing_pin/clown/ultra - restricted_roles = list(JOB_CLOWN) - illegal_tech = FALSE - -/datum/uplink_item/role_restricted/clownsuperpin - name = "Super Ultra Hilarious Firing Pin" - desc = "Like the ultra hilarious firing pin, except the gun you insert this pin into explodes when someone who isn't clumsy or a clown tries to fire it." - cost = 7 - item = /obj/item/firing_pin/clown/ultra/selfdestruct - restricted_roles = list(JOB_CLOWN) - illegal_tech = FALSE - -/datum/uplink_item/role_restricted/laser_arm - name = "Laser Arm Implant" - desc = "An implant that grants you a recharging laser gun inside your arm. Weak to EMPs. Comes with a syndicate autosurgeon for immediate self-application." - cost = 10 - item = /obj/item/autosurgeon/organ/syndicate/laser_arm - restricted_roles = list(JOB_RESEARCH_DIRECTOR, JOB_ROBOTICIST) - -/datum/uplink_item/role_restricted/bureaucratic_error_remote - name = "Organic Resources Disturbance Inducer" - desc = "A device that raises hell in organic resources indirectly. Single use." - cost = 2 - limited_stock = 1 - item = /obj/item/devices/bureaucratic_error_remote - restricted_roles = list(JOB_HEAD_OF_PERSONNEL, JOB_QUARTERMASTER) - -/datum/uplink_item/role_restricted/meathook - name = "Butcher's Meat Hook" - desc = "A brutal cleaver on a long chain, it allows you to pull people to your location." - item = /obj/item/gun/magic/hook - cost = 11 - restricted_roles = list(JOB_COOK) - -/datum/uplink_item/role_restricted/turretbox - name = "Disposable Sentry Gun" - desc = "A disposable sentry gun deployment system cleverly disguised as a toolbox, apply wrench for functionality." - item = /obj/item/storage/toolbox/emergency/turret - cost = 11 - restricted_roles = list(JOB_STATION_ENGINEER) - -// Pointless -/datum/uplink_item/badass - category = "(Pointless) Badassery" - surplus = 0 - -/datum/uplink_item/badass/costumes/obvious_chameleon - name = "Broken Chameleon Kit" - desc = "A set of items that contain chameleon technology allowing you to disguise as pretty much anything on the station, and more! \ - Please note that this kit did NOT pass quality control." - item = /obj/item/storage/box/syndie_kit/chameleon/broken - -/datum/uplink_item/badass/costumes - surplus = 0 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS - cost = 4 - cant_discount = TRUE - -/datum/uplink_item/badass/costumes/centcom_official - name = "CentCom Official Costume" - desc = "Ask the crew to \"inspect\" their nuclear disk and weapons system, and then when they decline, pull out a fully automatic rifle and gun down the Captain. \ - Radio headset does not include encryption key. No gun included." - item = /obj/item/storage/box/syndie_kit/centcom_costume - -/datum/uplink_item/badass/costumes/clown - name = "Clown Costume" - desc = "Nothing is more terrifying than clowns with fully automatic weaponry." - item = /obj/item/storage/backpack/duffelbag/clown/syndie - -/datum/uplink_item/badass/costumes/tactical_naptime - name = "Sleepy Time Pajama Bundle" - desc = "Even soldiers need to get a good nights rest. Comes with blood-red pajamas, a blankie, a hot mug of cocoa and a fuzzy friend." - item = /obj/item/storage/box/syndie_kit/sleepytime - cost = 4 - limited_stock = 1 - cant_discount = TRUE - -/datum/uplink_item/badass/balloon - name = "Syndicate Balloon" - desc = "For showing that you are THE BOSS: A useless red balloon with the Syndicate logo on it. \ - Can blow the deepest of covers." - item = /obj/item/toy/balloon/syndicate - cost = 20 - cant_discount = TRUE - illegal_tech = FALSE - -/datum/uplink_item/badass/syndiecash - name = "Syndicate Briefcase Full of Cash" - desc = "A secure briefcase containing 5000 space credits. Useful for bribing personnel, or purchasing goods \ - and services at lucrative prices. The briefcase also feels a little heavier to hold; it has been \ - manufactured to pack a little bit more of a punch if your client needs some convincing." - item = /obj/item/storage/secure/briefcase/syndie - cost = 1 - restricted = TRUE - illegal_tech = FALSE - -/datum/uplink_item/badass/syndiecards - name = "Syndicate Playing Cards" - desc = "A special deck of space-grade playing cards with a mono-molecular edge and metal reinforcement, \ - making them slightly more robust than a normal deck of cards. \ - You can also play card games with them or leave them on your victims." - item = /obj/item/toy/cards/deck/syndicate - cost = 1 - surplus = 40 - illegal_tech = FALSE - -/datum/uplink_item/badass/syndiecigs - name = "Syndicate Smokes" - desc = "Strong flavor, dense smoke, infused with omnizine." - item = /obj/item/storage/fancy/cigarettes/cigpack_syndicate - cost = 2 - illegal_tech = FALSE - -/datum/uplink_item/badass/clownopclumsinessinjector //clowns can buy this too, but it's in the role-restricted items section for them - name = "Clumsiness Injector" - desc = "Inject yourself with this to become as clumsy as a clown... or inject someone ELSE with it to make THEM as clumsy as a clown. Useful for clown operatives who wish to reconnect with their former clownish nature or for clown operatives who wish to torment and play with their prey before killing them." - item = /obj/item/dnainjector/clumsymut - cost = 1 - purchasable_from = UPLINK_CLOWN_OPS - illegal_tech = FALSE + category = /datum/uplink_category/discounts // Special equipment (Dynamically fills in uplink component) /datum/uplink_item/special_equipment diff --git a/code/modules/uplink/uplink_items/ammunition.dm b/code/modules/uplink/uplink_items/ammunition.dm new file mode 100644 index 00000000000..ab8a537553d --- /dev/null +++ b/code/modules/uplink/uplink_items/ammunition.dm @@ -0,0 +1,69 @@ +// File ordered by progression + +/datum/uplink_category/ammo + name = "Ammunition" + weight = 7 + +/datum/uplink_item/ammo + category = /datum/uplink_category/ammo + surplus = 40 + +// No progression cost + +/datum/uplink_item/ammo/toydarts + name = "Box of Riot Darts" + desc = "A box of 40 Donksoft riot darts, for reloading any compatible foam dart magazine. Don't forget to share!" + item = /obj/item/ammo_box/foambox/riot + cost = 2 + surplus = 0 + illegal_tech = FALSE + +// Low progression cost + +/datum/uplink_item/ammo/pistol + name = "9mm Handgun Magazine" + desc = "An additional 8-round 9mm magazine, compatible with the Makarov pistol." + progression_minimum = 10 MINUTES + item = /obj/item/ammo_box/magazine/m9mm + cost = 1 + purchasable_from = ~UPLINK_CLOWN_OPS + illegal_tech = FALSE + +// Medium progression cost + +/datum/uplink_item/ammo/pistolap + name = "9mm Armour Piercing Magazine" + desc = "An additional 8-round 9mm magazine, compatible with the Makarov pistol. \ + These rounds are less effective at injuring the target but penetrate protective gear." + progression_minimum = 30 MINUTES + item = /obj/item/ammo_box/magazine/m9mm/ap + cost = 2 + purchasable_from = ~UPLINK_CLOWN_OPS + +/datum/uplink_item/ammo/pistolhp + name = "9mm Hollow Point Magazine" + desc = "An additional 8-round 9mm magazine, compatible with the Makarov pistol. \ + These rounds are more damaging but ineffective against armour." + progression_minimum = 30 MINUTES + item = /obj/item/ammo_box/magazine/m9mm/hp + cost = 3 + purchasable_from = ~UPLINK_CLOWN_OPS + +/datum/uplink_item/ammo/pistolfire + name = "9mm Incendiary Magazine" + desc = "An additional 8-round 9mm magazine, compatible with the Makarov pistol. \ + Loaded with incendiary rounds which inflict little damage, but ignite the target." + progression_minimum = 30 MINUTES + item = /obj/item/ammo_box/magazine/m9mm/fire + cost = 2 + purchasable_from = ~UPLINK_CLOWN_OPS + +/datum/uplink_item/ammo/revolver + name = ".357 Speed Loader" + desc = "A speed loader that contains seven additional .357 Magnum rounds; usable with the Syndicate revolver. \ + For when you really need a lot of things dead." + progression_minimum = 30 MINUTES + item = /obj/item/ammo_box/a357 + cost = 4 + purchasable_from = ~UPLINK_CLOWN_OPS + illegal_tech = FALSE diff --git a/code/modules/uplink/uplink_items/badass.dm b/code/modules/uplink/uplink_items/badass.dm new file mode 100644 index 00000000000..a4d2717191b --- /dev/null +++ b/code/modules/uplink/uplink_items/badass.dm @@ -0,0 +1,80 @@ +/datum/uplink_category/badassery + name = "(Pointless) Badassery" + weight = 0 + +/datum/uplink_item/badass + category = /datum/uplink_category/badassery + surplus = 0 + +/datum/uplink_item/badass/balloon + name = "Syndicate Balloon" + desc = "For showing that you are THE BOSS: A useless red balloon with the Syndicate logo on it. \ + Can blow the deepest of covers." + item = /obj/item/toy/balloon/syndicate + cost = 20 + cant_discount = TRUE + illegal_tech = FALSE + +/datum/uplink_item/badass/syndiecards + name = "Syndicate Playing Cards" + desc = "A special deck of space-grade playing cards with a mono-molecular edge and metal reinforcement, \ + making them slightly more robust than a normal deck of cards. \ + You can also play card games with them or leave them on your victims." + item = /obj/item/toy/cards/deck/syndicate + cost = 1 + surplus = 40 + illegal_tech = FALSE + +/datum/uplink_item/badass/syndiecigs + name = "Syndicate Smokes" + desc = "Strong flavor, dense smoke, infused with omnizine." + item = /obj/item/storage/fancy/cigarettes/cigpack_syndicate + cost = 2 + illegal_tech = FALSE + +// Low progression + +/datum/uplink_item/badass/syndiecash + name = "Syndicate Briefcase Full of Cash" + desc = "A secure briefcase containing 5000 space credits. Useful for bribing personnel, or purchasing goods \ + and services at lucrative prices. The briefcase also feels a little heavier to hold; it has been \ + manufactured to pack a little bit more of a punch if your client needs some convincing." + item = /obj/item/storage/secure/briefcase/syndie + cost = 1 + progression_minimum = 5 MINUTES + restricted = TRUE + illegal_tech = FALSE + +// Ultra high progression +/datum/uplink_item/badass/costumes/clown + name = "Clown Costume" + desc = "Nothing is more terrifying than clowns with fully automatic weaponry." + item = /obj/item/storage/backpack/duffelbag/clown/syndie + purchasable_from = ALL + progression_minimum = 70 MINUTES + +/datum/uplink_item/badass/costumes/tactical_naptime + name = "Sleepy Time Pajama Bundle" + desc = "Even soldiers need to get a good nights rest. Comes with blood-red pajamas, a blankie, a hot mug of cocoa and a fuzzy friend." + item = /obj/item/storage/box/syndie_kit/sleepytime + purchasable_from = ALL + progression_minimum = 90 MINUTES + cost = 4 + limited_stock = 1 + cant_discount = TRUE + +/datum/uplink_item/badass/costumes/obvious_chameleon + name = "Broken Chameleon Kit" + desc = "A set of items that contain chameleon technology allowing you to disguise as pretty much anything on the station, and more! \ + Please note that this kit did NOT pass quality control." + purchasable_from = ALL + progression_minimum = 90 MINUTES + item = /obj/item/storage/box/syndie_kit/chameleon/broken + +/datum/uplink_item/badass/costumes/centcom_official + name = "CentCom Official Costume" + desc = "Ask the crew to \"inspect\" their nuclear disk and weapons system, and then when they decline, pull out a fully automatic rifle and gun down the Captain. \ + Radio headset does not include encryption key. No gun included." + purchasable_from = ALL + progression_minimum = 110 MINUTES + item = /obj/item/storage/box/syndie_kit/centcom_costume diff --git a/code/modules/uplink/uplink_items/bundle.dm b/code/modules/uplink/uplink_items/bundle.dm new file mode 100644 index 00000000000..3ee0aeafd35 --- /dev/null +++ b/code/modules/uplink/uplink_items/bundle.dm @@ -0,0 +1,52 @@ +//All bundles and telecrystals +/datum/uplink_category/bundle + name = "Bundles" + weight = 10 + +/datum/uplink_item/bundles_tc + category = /datum/uplink_category/bundle + surplus = 0 + cant_discount = TRUE + +/datum/uplink_item/bundles_tc/random + name = "Random Item" + desc = "Picking this will purchase a random item. Useful if you have some TC to spare or if you haven't decided on a strategy yet." + item = /obj/effect/gibspawner/generic // non-tangible item because techwebs use this path to determine illegal tech + cost = 0 + +/datum/uplink_item/bundles_tc/random/purchase(mob/user, datum/uplink_handler/handler, atom/movable/source) + var/list/possible_items = list() + for(var/datum/uplink_item/item_path as anything in SStraitor.uplink_items_by_type) + var/datum/uplink_item/uplink_item = SStraitor.uplink_items_by_type[item_path] + if(src == uplink_item || !uplink_item.item) + continue + if(!handler.can_purchase_item(user, uplink_item)) + continue + possible_items += uplink_item + + if(possible_items.len) + var/datum/uplink_item/uplink_item = pick(possible_items) + log_uplink("[key_name(user)] purchased a random uplink item from [handler.owner]'s uplink with [handler.telecrystals] telecrystals remaining") + SSblackbox.record_feedback("tally", "traitor_random_uplink_items_gotten", 1, initial(uplink_item.name)) + handler.purchase_item(user, uplink_item) + +/datum/uplink_item/bundles_tc/telecrystal + name = "1 Raw Telecrystal" + desc = "A telecrystal in its rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." + item = /obj/item/stack/telecrystal + cost = 1 + // Don't add telecrystals to the purchase_log since + // it's just used to buy more items (including itself!) + purchase_log_vis = FALSE + +/datum/uplink_item/bundles_tc/telecrystal/five + name = "5 Raw Telecrystals" + desc = "Five telecrystals in their rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." + item = /obj/item/stack/telecrystal/five + cost = 5 + +/datum/uplink_item/bundles_tc/telecrystal/twenty + name = "20 Raw Telecrystals" + desc = "Twenty telecrystals in their rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." + item = /obj/item/stack/telecrystal/twenty + cost = 20 diff --git a/code/modules/uplink/uplink_items/dangerous.dm b/code/modules/uplink/uplink_items/dangerous.dm new file mode 100644 index 00000000000..92a25263d3c --- /dev/null +++ b/code/modules/uplink/uplink_items/dangerous.dm @@ -0,0 +1,101 @@ +// File organised based on progression + +//All bundles and telecrystals +/datum/uplink_category/dangerous + name = "Conspicuous Weapons" + weight = 9 + +/datum/uplink_item/dangerous + category = /datum/uplink_category/dangerous + +// No progression cost + +/datum/uplink_item/dangerous/foampistol + name = "Toy Pistol with Riot Darts" + desc = "An innocent-looking toy pistol designed to fire foam darts. Comes loaded with riot-grade \ + darts effective at incapacitating a target." + item = /obj/item/gun/ballistic/automatic/pistol/toy/riot + cost = 2 + surplus = 10 + +// Low progression cost + +/datum/uplink_item/dangerous/pistol + name = "Makarov Pistol" + desc = "A small, easily concealable handgun that uses 9mm auto rounds in 8-round magazines and is compatible \ + with suppressors." + progression_minimum = 10 MINUTES + item = /obj/item/gun/ballistic/automatic/pistol + cost = 7 + purchasable_from = ~UPLINK_CLOWN_OPS + +/datum/uplink_item/dangerous/throwingweapons + name = "Box of Throwing Weapons" + desc = "A box of shurikens and reinforced bolas from ancient Earth martial arts. They are highly effective \ + throwing weapons. The bolas can knock a target down and the shurikens will embed into limbs." + progression_minimum = 10 MINUTES + item = /obj/item/storage/box/syndie_kit/throwing_weapons + cost = 3 + illegal_tech = FALSE + +/datum/uplink_item/dangerous/sword + name = "Energy Sword" + desc = "The energy sword is an edged weapon with a blade of pure energy. The sword is small enough to be \ + pocketed when inactive. Activating it produces a loud, distinctive noise." + progression_minimum = 20 MINUTES + item = /obj/item/melee/energy/sword/saber + cost = 8 + purchasable_from = ~UPLINK_CLOWN_OPS + +/datum/uplink_item/dangerous/powerfist + name = "Power Fist" + desc = "The power-fist is a metal gauntlet with a built-in piston-ram powered by an external gas supply.\ + Upon hitting a target, the piston-ram will extend forward to make contact for some serious damage. \ + Using a wrench on the piston valve will allow you to tweak the amount of gas used per punch to \ + deal extra damage and hit targets further. Use a screwdriver to take out any attached tanks." + progression_minimum = 20 MINUTES + item = /obj/item/melee/powerfist + cost = 6 + +/datum/uplink_item/dangerous/rapid + name = "Gloves of the North Star" + desc = "These gloves let the user punch people very fast. Does not improve weapon attack speed or the meaty fists of a hulk." + progression_minimum = 20 MINUTES + item = /obj/item/clothing/gloves/rapid + cost = 8 + + +// Medium progression cost + +/datum/uplink_item/dangerous/doublesword + name = "Double-Bladed Energy Sword" + desc = "The double-bladed energy sword does slightly more damage than a standard energy sword and will deflect \ + all energy projectiles, but requires two hands to wield." + progression_minimum = 30 MINUTES + item = /obj/item/dualsaber + + cost = 16 + purchasable_from = ~UPLINK_CLOWN_OPS + +/datum/uplink_item/dangerous/doublesword/get_discount() + return pick(4;0.8,2;0.65,1;0.5) + +/datum/uplink_item/dangerous/guardian + name = "Holoparasites" + desc = "Though capable of near sorcerous feats via use of hardlight holograms and nanomachines, they require an \ + organic host as a home base and source of fuel. Holoparasites come in various types and share damage with their host." + progression_minimum = 30 MINUTES + item = /obj/item/storage/box/syndie_kit/guardian + cost = 18 + surplus = 0 + purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) + restricted = TRUE + +/datum/uplink_item/dangerous/revolver + name = "Syndicate Revolver" + desc = "A brutally simple Syndicate revolver that fires .357 Magnum rounds and has 7 chambers." + item = /obj/item/gun/ballistic/revolver + progression_minimum = 30 MINUTES + cost = 13 + surplus = 50 + purchasable_from = ~UPLINK_CLOWN_OPS diff --git a/code/modules/uplink/uplink_items/device_tools.dm b/code/modules/uplink/uplink_items/device_tools.dm new file mode 100644 index 00000000000..a6177b89f81 --- /dev/null +++ b/code/modules/uplink/uplink_items/device_tools.dm @@ -0,0 +1,234 @@ +// File ordered based on progression + +/datum/uplink_category/device_tools + name = "Misc. Gadgets" + weight = 3 + +/datum/uplink_item/device_tools + category = /datum/uplink_category/device_tools + +// No progression cost + +/datum/uplink_item/device_tools/soap + name = "Syndicate Soap" + desc = "A sinister-looking surfactant used to clean blood stains to hide murders and prevent DNA analysis. \ + You can also drop it underfoot to slip people." + item = /obj/item/soap/syndie + cost = 1 + surplus = 50 + illegal_tech = FALSE + +/datum/uplink_item/device_tools/surgerybag + name = "Syndicate Surgery Duffel Bag" + desc = "The Syndicate surgery duffel bag is a toolkit containing all surgery tools, surgical drapes, \ + a Syndicate brand MMI, a straitjacket, and a muzzle." + item = /obj/item/storage/backpack/duffelbag/syndie/surgery + cost = 3 + +/datum/uplink_item/device_tools/encryptionkey + name = "Syndicate Encryption Key" + desc = "A key that, when inserted into a radio headset, allows you to listen to all station department channels \ + as well as talk on an encrypted Syndicate channel with other agents that have the same key." + item = /obj/item/encryptionkey/syndicate + cost = 2 + surplus = 75 + restricted = TRUE + +/datum/uplink_item/device_tools/syndietome + name = "Syndicate Tome" + desc = "Using rare artifacts acquired at great cost, the Syndicate has reverse engineered \ + the seemingly magical books of a certain cult. Though lacking the esoteric abilities \ + of the originals, these inferior copies are still quite useful, being able to provide \ + both weal and woe on the battlefield, even if they do occasionally bite off a finger." + item = /obj/item/storage/book/bible/syndicate + cost = 5 + +/datum/uplink_item/device_tools/thermal + name = "Thermal Imaging Glasses" + desc = "These goggles can be turned to resemble common eyewear found throughout the station. \ + They allow you to see organisms through walls by capturing the upper portion of the infrared light spectrum, \ + emitted as heat and light by objects. Hotter objects, such as warm bodies, cybernetic organisms \ + and artificial intelligence cores emit more of this light than cooler objects like walls and airlocks." + item = /obj/item/clothing/glasses/thermal/syndi + cost = 4 + +/datum/uplink_item/device_tools/cutouts + name = "Adaptive Cardboard Cutouts" + desc = "These cardboard cutouts are coated with a thin material that prevents discoloration and makes the images on them appear more lifelike. \ + This pack contains three as well as a crayon for changing their appearances." + item = /obj/item/storage/box/syndie_kit/cutouts + cost = 1 + surplus = 20 + +/datum/uplink_item/device_tools/briefcase_launchpad + name = "Briefcase Launchpad" + desc = "A briefcase containing a launchpad, a device able to teleport items and people to and from targets up to eight tiles away from the briefcase. \ + Also includes a remote control, disguised as an ordinary folder. Touch the briefcase with the remote to link it." + surplus = 0 + item = /obj/item/storage/briefcase/launchpad + cost = 6 + +/datum/uplink_item/device_tools/camera_bug + name = "Camera Bug" + desc = "Enables you to view all cameras on the main network, set up motion alerts and track a target. \ + Bugging cameras allows you to disable them remotely." + item = /obj/item/camera_bug + cost = 1 + surplus = 90 + +/datum/uplink_item/device_tools/military_belt + name = "Chest Rig" + desc = "A robust seven-slot set of webbing that is capable of holding all manner of tactical equipment." + item = /obj/item/storage/belt/military + cost = 1 + +/datum/uplink_item/device_tools/doorjack + name = "Airlock Authentication Override Card" + desc = "A specialized cryptographic sequencer specifically designed to override station airlock access codes. \ + After hacking a certain number of airlocks, the device will require some time to recharge." + item = /obj/item/card/emag/doorjack + cost = 3 + +/datum/uplink_item/device_tools/fakenucleardisk + name = "Decoy Nuclear Authentication Disk" + desc = "It's just a normal disk. Visually it's identical to the real deal, but it won't hold up under closer scrutiny by the Captain. \ + Don't try to give this to us to complete your objective, we know better!" + item = /obj/item/disk/nuclear/fake + cost = 1 + surplus = 1 + illegal_tech = FALSE + +/datum/uplink_item/device_tools/frame + name = "F.R.A.M.E. PDA Cartridge" + desc = "When inserted into a personal digital assistant, this cartridge gives you five PDA viruses which \ + when used cause the targeted PDA to become a new uplink with zero TCs, and immediately become unlocked. \ + You will receive the unlock code upon activating the virus, and the new uplink may be charged with \ + telecrystals normally." + item = /obj/item/cartridge/virus/frame + cost = 4 + restricted = TRUE + +/datum/uplink_item/device_tools/frame/spawn_item(spawn_path, mob/user, datum/uplink_handler/uplink_handler, atom/movable/source) + . = ..() + var/obj/item/cartridge/virus/frame/target = . + if(!target) + return + target.current_progression = uplink_handler.progression_points + +/datum/uplink_item/device_tools/failsafe + name = "Failsafe Uplink Code" + desc = "When entered the uplink will self-destruct immediately." + item = /obj/effect/gibspawner/generic + cost = 1 + surplus = 0 + restricted = TRUE + purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) + +/datum/uplink_item/device_tools/failsafe/spawn_item(spawn_path, mob/user, datum/uplink_handler/uplink_handler, atom/movable/source) + var/datum/component/uplink/uplink = source.GetComponent(/datum/component/uplink) + if(!uplink) + return + uplink.failsafe_code = uplink.generate_code() + var/code = "[islist(uplink.failsafe_code) ? english_list(uplink.failsafe_code) : uplink.failsafe_code]" + to_chat(user, span_warning("The new failsafe code for this uplink is now : [code]. You may check your antagonist info to recall this.")) + return source //For log icon + +/datum/uplink_item/device_tools/toolbox + name = "Full Syndicate Toolbox" + desc = "The Syndicate toolbox is a suspicious black and red. It comes loaded with a full tool set including a \ + multitool and combat gloves that are resistant to shocks and heat." + item = /obj/item/storage/toolbox/syndicate + cost = 1 + illegal_tech = FALSE + +/datum/uplink_item/device_tools/rad_laser + name = "Radioactive Microlaser" + desc = "A radioactive microlaser disguised as a standard Nanotrasen health analyzer. When used, it emits a \ + powerful burst of radiation, which, after a short delay, can incapacitate all but the most protected \ + of humanoids. It has two settings: intensity, which controls the power of the radiation, \ + and wavelength, which controls the delay before the effect kicks in." + item = /obj/item/healthanalyzer/rad_laser + cost = 3 + + +/datum/uplink_item/device_tools/suspiciousphone + name = "Protocol CRAB-17 Phone" + desc = "The Protocol CRAB-17 Phone, a phone borrowed from an unknown third party, it can be used to crash the space market, funneling the losses of the crew to your bank account.\ + The crew can move their funds to a new banking site though, unless they HODL, in which case they deserve it." + item = /obj/item/suspiciousphone + restricted = TRUE + cost = 7 + limited_stock = 1 + +/datum/uplink_item/device_tools/binary + name = "Binary Translator Key" + desc = "A key that, when inserted into a radio headset, allows you to listen to and talk with silicon-based lifeforms, \ + such as AI units and cyborgs, over their private binary channel. Caution should \ + be taken while doing this, as unless they are allied with you, they are programmed to report such intrusions." + item = /obj/item/encryptionkey/binary + cost = 5 + surplus = 75 + restricted = TRUE + +// Low progression cost + +/datum/uplink_item/device_tools/emag + name = "Cryptographic Sequencer" + desc = "The cryptographic sequencer, electromagnetic card, or emag, is a small card that unlocks hidden functions \ + in electronic devices, subverts intended functions, and easily breaks security mechanisms. Cannot be used to open airlocks." + progression_minimum = 20 MINUTES + item = /obj/item/card/emag + cost = 4 + +/datum/uplink_item/device_tools/stimpack + name = "Stimpack" + desc = "Stimpacks, the tool of many great heroes, make you nearly immune to stuns and knockdowns for about \ + 5 minutes after injection." + progression_minimum = 20 MINUTES + item = /obj/item/reagent_containers/hypospray/medipen/stimulants + cost = 5 + surplus = 90 + + +// Medium progression cost + +/datum/uplink_item/device_tools/hacked_module + name = "Hacked AI Law Upload Module" + desc = "When used with an upload console, this module allows you to upload priority laws to an artificial intelligence. \ + Be careful with wording, as artificial intelligences may look for loopholes to exploit." + progression_minimum = 30 MINUTES + item = /obj/item/ai_module/syndicate + cost = 4 + +/datum/uplink_item/device_tools/hypnotic_flash + name = "Hypnotic Flash" + desc = "A modified flash able to hypnotize targets. If the target is not in a mentally vulnerable state, it will only confuse and pacify them temporarily." + progression_minimum = 30 MINUTES + item = /obj/item/assembly/flash/hypnotic + cost = 7 + +/datum/uplink_item/device_tools/hypnotic_grenade + name = "Hypnotic Grenade" + desc = "A modified flashbang grenade able to hypnotize targets. The sound portion of the flashbang causes hallucinations, and will allow the flash to induce a hypnotic trance to viewers." + progression_minimum = 30 MINUTES + item = /obj/item/grenade/hypnotic + cost = 12 + +/datum/uplink_item/device_tools/singularity_beacon + name = "Power Beacon" + desc = "When screwed to wiring attached to an electric grid and activated, this large device pulls any \ + active gravitational singularities or tesla balls towards it. This will not work when the engine is still \ + in containment. Because of its size, it cannot be carried. Ordering this \ + sends you a small beacon that will teleport the larger beacon to your location upon activation." + progression_minimum = 30 MINUTES + item = /obj/item/sbeacondrop + cost = 10 + +/datum/uplink_item/device_tools/powersink + name = "Power Sink" + desc = "When screwed to wiring attached to a power grid and activated, this large device lights up and places excessive \ + load on the grid, causing a station-wide blackout. The sink is large and cannot be stored in most \ + traditional bags and boxes. Caution: Will explode if the powernet contains sufficient amounts of energy." + progression_minimum = 30 MINUTES + item = /obj/item/powersink + cost = 11 diff --git a/code/modules/uplink/uplink_items/explosive.dm b/code/modules/uplink/uplink_items/explosive.dm new file mode 100644 index 00000000000..1a44ba94d5b --- /dev/null +++ b/code/modules/uplink/uplink_items/explosive.dm @@ -0,0 +1,103 @@ +// File ordered based on progression. + +/datum/uplink_category/explosives + name = "Explosives" + weight = 6 + +/datum/uplink_item/explosives + category = /datum/uplink_category/explosives + +// Low progression cost +/datum/uplink_item/explosives/soap_clusterbang + name = "Slipocalypse Clusterbang" + progression_minimum = 10 MINUTES + desc = "A traditional clusterbang grenade with a payload consisting entirely of Syndicate soap. Useful in any scenario!" + item = /obj/item/grenade/clusterbuster/soap + cost = 3 + +// Medium progression cost + +/datum/uplink_item/explosives/c4 + name = "Composition C-4" + desc = "C-4 is plastic explosive of the common variety Composition C. You can use it to breach walls, sabotage equipment, or connect \ + an assembly to it in order to alter the way it detonates. It can be attached to almost all objects and has a modifiable timer with a \ + minimum setting of 10 seconds." + progression_minimum = 10 MINUTES + item = /obj/item/grenade/c4 + cost = 1 + +/datum/uplink_item/explosives/c4bag + name = "Bag of C-4 explosives" + desc = "Because sometimes quantity is quality. Contains 10 C-4 plastic explosives." + item = /obj/item/storage/backpack/duffelbag/syndie/c4 + progression_minimum = 20 MINUTES + cost = 8 //20% discount! + cant_discount = TRUE + +/datum/uplink_item/explosives/x4bag + name = "Bag of X-4 explosives" + desc = "Contains 3 X-4 shaped plastic explosives. Similar to C4, but with a stronger blast that is directional instead of circular. \ + X-4 can be placed on a solid surface, such as a wall or window, and it will blast through the wall, injuring anything on the opposite side, while being safer to the user. \ + For when you want a controlled explosion that leaves a wider, deeper, hole." + progression_minimum = 30 MINUTES + item = /obj/item/storage/backpack/duffelbag/syndie/x4 + cost = 4 + cant_discount = TRUE + +/datum/uplink_item/explosives/detomatix + name = "Detomatix PDA Cartridge" + desc = "When inserted into a personal digital assistant, this cartridge gives you four opportunities to \ + detonate PDAs of crewmembers who have their message feature enabled. \ + The concussive effect from the explosion will knock the recipient out for a short period, and deafen them for longer." + progression_minimum = 30 MINUTES + item = /obj/item/cartridge/virus/syndicate + cost = 6 + restricted = TRUE + +/datum/uplink_item/explosives/emp + name = "EMP Grenades and Implanter Kit" + desc = "A box that contains five EMP grenades and an EMP implant with three uses. Useful to disrupt communications, \ + security's energy weapons and silicon lifeforms when you're in a tight spot." + progression_minimum = 30 MINUTES + item = /obj/item/storage/box/syndie_kit/emp + cost = 2 + +/datum/uplink_item/explosives/pizza_bomb + name = "Pizza Bomb" + desc = "A pizza box with a bomb cunningly attached to the lid. The timer needs to be set by opening the box; afterwards, \ + opening the box again will trigger the detonation after the timer has elapsed. Comes with free pizza, for you or your target!" + progression_minimum = 30 MINUTES + item = /obj/item/pizzabox/bomb + cost = 6 + surplus = 8 + +/datum/uplink_item/explosives/syndicate_minibomb + name = "Syndicate Minibomb" + desc = "The minibomb is a grenade with a five-second fuse. Upon detonation, it will create a small hull breach \ + in addition to dealing high amounts of damage to nearby personnel." + progression_minimum = 30 MINUTES + item = /obj/item/grenade/syndieminibomb + cost = 6 + purchasable_from = ~UPLINK_CLOWN_OPS + + +/datum/uplink_item/explosives/syndicate_bomb/emp + name = "Syndicate EMP Bomb" + desc = "A variation of the syndicate bomb designed to produce a large EMP effect." + progression_minimum = 30 MINUTES + item = /obj/item/sbeacondrop/emp + cost = 7 + +// High progression cost + +/datum/uplink_item/explosives/syndicate_bomb + name = "Syndicate Bomb" + desc = "The Syndicate bomb is a fearsome device capable of massive destruction. It has an adjustable timer, \ + with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ + movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ + transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ + be defused, and some crew may attempt to do so. \ + The bomb core can be pried out and manually detonated with other explosives." + progression_minimum = 40 MINUTES + item = /obj/item/sbeacondrop/bomb + cost = 11 diff --git a/code/modules/uplink/uplink_items/implant.dm b/code/modules/uplink/uplink_items/implant.dm new file mode 100644 index 00000000000..fa616bc4e4f --- /dev/null +++ b/code/modules/uplink/uplink_items/implant.dm @@ -0,0 +1,57 @@ +// File ordered based on progression + +/datum/uplink_category/implants + name = "Implants" + weight = 2 + + +/datum/uplink_item/implants + category = /datum/uplink_category/implants + surplus = 50 + +// No progression cost +/datum/uplink_item/implants/freedom + name = "Freedom Implant" + desc = "An implant injected into the body and later activated at the user's will. It will attempt to free the \ + user from common restraints such as handcuffs." + item = /obj/item/storage/box/syndie_kit/imp_freedom + cost = 5 + +/datum/uplink_item/implants/radio + name = "Internal Syndicate Radio Implant" + desc = "An implant injected into the body, allowing the use of an internal Syndicate radio. \ + Used just like a regular headset, but can be disabled to use external headsets normally and to avoid detection." + item = /obj/item/storage/box/syndie_kit/imp_radio + cost = 4 + restricted = TRUE + + +/datum/uplink_item/implants/stealthimplant + name = "Stealth Implant" + desc = "This one-of-a-kind implant will make you almost invisible if you play your cards right. \ + On activation, it will conceal you inside a chameleon cardboard box that is only revealed once someone bumps into it." + item = /obj/item/storage/box/syndie_kit/imp_stealth + cost = 8 + +/datum/uplink_item/implants/storage + name = "Storage Implant" + desc = "An implant injected into the body, and later activated at the user's will. It will open a small bluespace \ + pocket capable of storing two regular-sized items." + item = /obj/item/storage/box/syndie_kit/imp_storage + cost = 8 + +/datum/uplink_item/implants/uplink + name = "Uplink Implant" + desc = "An implant injected into the body, and later activated at the user's will. Has no telecrystals and must be charged by the use of physical telecrystals. \ + Undetectable (except via surgery), and excellent for escaping confinement." + item = /obj/item/storage/box/syndie_kit // the actual uplink implant is generated later on in spawn_item + cost = UPLINK_IMPLANT_TELECRYSTAL_COST + // An empty uplink is kinda useless. + surplus = 0 + restricted = TRUE + +/datum/uplink_item/implants/uplink/spawn_item(spawn_path, mob/user, datum/uplink_handler/uplink_handler, atom/movable/source) + var/obj/item/storage/box/syndie_kit/uplink_box = ..() + uplink_box.name = "Uplink Implant Box" + new /obj/item/implanter/uplink(uplink_box, uplink_handler) + return uplink_box diff --git a/code/modules/uplink/uplink_items/job.dm b/code/modules/uplink/uplink_items/job.dm new file mode 100644 index 00000000000..9d44d57f3ca --- /dev/null +++ b/code/modules/uplink/uplink_items/job.dm @@ -0,0 +1,282 @@ +// File organised based on progression + +/datum/uplink_category/role_restricted + name = "Role-Restricted" + weight = 1 + +/datum/uplink_item/role_restricted + category = /datum/uplink_category/role_restricted + purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) + surplus = 0 + +// No progression cost +/datum/uplink_item/role_restricted/haunted_magic_eightball + name = "Haunted Magic Eightball" + desc = "Most magic eightballs are toys with dice inside. Although identical in appearance to the harmless toys, this occult device reaches into the spirit world to find its answers. \ + Be warned, that spirits are often capricious or just little assholes. To use, simply speak your question aloud, then begin shaking." + item = /obj/item/toy/eightball/haunted + cost = 2 + restricted_roles = list(JOB_CURATOR) + limited_stock = 1 //please don't spam deadchat + +/datum/uplink_item/role_restricted/bureaucratic_error_remote + name = "Organic Resources Disturbance Inducer" + desc = "A device that raises hell in organic resources indirectly. Single use." + cost = 2 + limited_stock = 1 + item = /obj/item/devices/bureaucratic_error_remote + restricted_roles = list(JOB_HEAD_OF_PERSONNEL, JOB_QUARTERMASTER) + +/datum/uplink_item/role_restricted/clumsinessinjector //clown ops can buy this too, but it's in the pointless badassery section for them + name = "Clumsiness Injector" + desc = "Inject yourself with this to become as clumsy as a clown... or inject someone ELSE with it to make THEM as clumsy as a clown. Useful for clowns who wish to reconnect with their former clownish nature or for clowns who wish to torment and play with their prey before killing them." + item = /obj/item/dnainjector/clumsymut + cost = 1 + restricted_roles = list(JOB_CLOWN) + illegal_tech = FALSE + +/datum/uplink_item/role_restricted/ancient_jumpsuit + name = "Ancient Jumpsuit" + desc = "A tattered old jumpsuit that will provide absolutely no benefit to you." + item = /obj/item/clothing/under/color/grey/ancient + cost = 20 + restricted_roles = list(JOB_ASSISTANT) + surplus = 0 + +// Low progression cost + +/datum/uplink_item/role_restricted/clownpin + name = "Ultra Hilarious Firing Pin" + desc = "A firing pin that, when inserted into a gun, makes that gun only usable by clowns and clumsy people and makes that gun honk whenever anyone tries to fire it." + progression_minimum = 5 MINUTES + cost = 4 + item = /obj/item/firing_pin/clown/ultra + restricted_roles = list(JOB_CLOWN) + illegal_tech = FALSE + +/datum/uplink_item/role_restricted/clownsuperpin + name = "Super Ultra Hilarious Firing Pin" + desc = "Like the ultra hilarious firing pin, except the gun you insert this pin into explodes when someone who isn't clumsy or a clown tries to fire it." + progression_minimum = 5 MINUTES + cost = 7 + item = /obj/item/firing_pin/clown/ultra/selfdestruct + restricted_roles = list(JOB_CLOWN) + illegal_tech = FALSE + +/datum/uplink_item/role_restricted/syndimmi + name = "Syndicate Brand MMI" + desc = "An MMI modified to give cyborgs laws to serve the Syndicate without having their interface damaged by Cryptographic Sequencers, this will not unlock their hidden modules." + progression_minimum = 10 MINUTES + item = /obj/item/mmi/syndie + cost = 2 + restricted_roles = list(JOB_ROBOTICIST, JOB_RESEARCH_DIRECTOR, JOB_SCIENTIST, JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER) + surplus = 0 + +/datum/uplink_item/role_restricted/explosive_hot_potato + name = "Exploding Hot Potato" + desc = "A potato rigged with explosives. On activation, a special mechanism is activated that prevents it from being dropped. \ + The only way to get rid of it if you are holding it is to attack someone else with it, causing it to latch to that person instead." + progression_minimum = 10 MINUTES + item = /obj/item/hot_potato/syndicate + cost = 4 + surplus = 0 + restricted_roles = list(JOB_COOK, JOB_BOTANIST, JOB_CLOWN, JOB_MIME) + +/datum/uplink_item/role_restricted/ez_clean_bundle + name = "EZ Clean Grenade Bundle" + desc = "A box with three cleaner grenades using the trademark Waffle Co. formula. Serves as a cleaner and causes acid damage to anyone standing nearby. \ + The acid only affects carbon-based creatures." + progression_minimum = 10 MINUTES + item = /obj/item/storage/box/syndie_kit/ez_clean + cost = 6 + surplus = 20 + restricted_roles = list(JOB_JANITOR) + +/datum/uplink_item/role_restricted/reverse_bear_trap + name = "Reverse Bear Trap" + desc = "An ingenious execution device worn on (or forced onto) the head. Arming it starts a 1-minute kitchen timer mounted on the bear trap. When it goes off, the trap's jaws will \ + violently open, instantly killing anyone wearing it by tearing their jaws in half. To arm, attack someone with it while they're not wearing headgear, and you will force it onto their \ + head after three seconds uninterrupted." + progression_minimum = 10 MINUTES + cost = 5 + item = /obj/item/reverse_bear_trap + restricted_roles = list(JOB_CLOWN) + +/datum/uplink_item/role_restricted/modified_syringe_gun + name = "Modified Syringe Gun" + desc = "A syringe gun that fires DNA injectors instead of normal syringes." + progression_minimum = 15 MINUTES + item = /obj/item/gun/syringe/dna + cost = 14 + restricted_roles = list(JOB_GENETICIST, JOB_RESEARCH_DIRECTOR) + +/datum/uplink_item/role_restricted/meathook + name = "Butcher's Meat Hook" + desc = "A brutal cleaver on a long chain, it allows you to pull people to your location." + progression_minimum = 15 MINUTES + item = /obj/item/gun/magic/hook + cost = 11 + restricted_roles = list(JOB_COOK) + +/datum/uplink_item/role_restricted/turretbox + name = "Disposable Sentry Gun" + desc = "A disposable sentry gun deployment system cleverly disguised as a toolbox, apply wrench for functionality." + progression_minimum = 15 MINUTES + item = /obj/item/storage/toolbox/emergency/turret + cost = 11 + restricted_roles = list(JOB_STATION_ENGINEER) + +/datum/uplink_item/role_restricted/magillitis_serum + name = "Magillitis Serum Autoinjector" + desc = "A single-use autoinjector which contains an experimental serum that causes rapid muscular growth in Hominidae. \ + Side-affects may include hypertrichosis, violent outbursts, and an unending affinity for bananas." + progression_minimum = 20 MINUTES + item = /obj/item/reagent_containers/hypospray/medipen/magillitis + cost = 15 + restricted_roles = list(JOB_GENETICIST, JOB_RESEARCH_DIRECTOR) + +/datum/uplink_item/role_restricted/gorillacubes + name = "Box of Gorilla Cubes" + desc = "A box with three Waffle Co. brand gorilla cubes. Eat big to get big. \ + Caution: Product may rehydrate when exposed to water." + progression_minimum = 20 MINUTES + item = /obj/item/storage/box/gorillacubes + cost = 6 + restricted_roles = list(JOB_GENETICIST, JOB_RESEARCH_DIRECTOR) + +// Medium progression cost + +/datum/uplink_item/role_restricted/brainwash_disk + name = "Brainwashing Surgery Program" + desc = "A disk containing the procedure to perform a brainwashing surgery, allowing you to implant an objective onto a target. \ + Insert into an Operating Console to enable the procedure." + progression_minimum = 25 MINUTES + item = /obj/item/disk/surgery/brainwashing + restricted_roles = list(JOB_MEDICAL_DOCTOR, JOB_CHIEF_MEDICAL_OFFICER, JOB_ROBOTICIST) + cost = 5 + +/datum/uplink_item/role_restricted/reverse_revolver + name = "Reverse Revolver" + desc = "A revolver that always fires at its user. \"Accidentally\" drop your weapon, then watch as the greedy corporate pigs blow their own brains all over the wall. \ + The revolver itself is actually real. Only clumsy people, and clowns, can fire it normally. Comes in a box of hugs. Honk." + progression_minimum = 30 MINUTES + cost = 14 + item = /obj/item/storage/box/hug/reverse_revolver + restricted_roles = list(JOB_CLOWN) + +/datum/uplink_item/role_restricted/pressure_mod + name = "Kinetic Accelerator Pressure Mod" + desc = "A modification kit which allows Kinetic Accelerators to do greatly increased damage while indoors. \ + Occupies 35% mod capacity." + progression_minimum = 30 MINUTES + item = /obj/item/borg/upgrade/modkit/indoors + cost = 5 //you need two for full damage, so total of 10 for maximum damage + limited_stock = 2 //you can't use more than two! + restricted_roles = list("Shaft Miner") + +/datum/uplink_item/role_restricted/mimery + name = "Guide to Advanced Mimery Series" + desc = "The classical two part series on how to further hone your mime skills. Upon studying the series, the user should be able to make 3x1 invisible walls, and shoot bullets out of their fingers. \ + Obviously only works for Mimes." + progression_minimum = 30 MINUTES + cost = 12 + item = /obj/item/storage/box/syndie_kit/mimery + restricted_roles = list(JOB_MIME) + surplus = 0 + +/datum/uplink_item/role_restricted/laser_arm + name = "Laser Arm Implant" + desc = "An implant that grants you a recharging laser gun inside your arm. Weak to EMPs. Comes with a syndicate autosurgeon for immediate self-application." + progression_minimum = 30 MINUTES + cost = 10 + item = /obj/item/autosurgeon/organ/syndicate/laser_arm + restricted_roles = list(JOB_ROBOTICIST, JOB_RESEARCH_DIRECTOR) + +/datum/uplink_item/role_restricted/chemical_gun + name = "Reagent Dartgun" + desc = "A heavily modified syringe gun which is capable of synthesizing its own chemical darts using input reagents. Can hold 100u of reagents." + progression_minimum = 30 MINUTES + item = /obj/item/gun/chem + cost = 12 + restricted_roles = list(JOB_CHEMIST, JOB_CHIEF_MEDICAL_OFFICER, JOB_BOTANIST) + +/datum/uplink_item/role_restricted/pie_cannon + name = "Banana Cream Pie Cannon" + desc = "A special pie cannon for a special clown, this gadget can hold up to 20 pies and automatically fabricates one every two seconds!" + progression_minimum = 30 MINUTES + cost = 10 + item = /obj/item/pneumatic_cannon/pie/selfcharge + restricted_roles = list(JOB_CLOWN) + surplus = 0 //No fun unless you're the clown! + +/datum/uplink_item/role_restricted/clown_bomb + name = "Clown Bomb" + desc = "The Clown bomb is a hilarious device capable of massive pranks. It has an adjustable timer, \ + with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ + movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ + transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ + be defused, and some crew may attempt to do so." + progression_minimum = 30 MINUTES + item = /obj/item/sbeacondrop/clownbomb + cost = 15 + restricted_roles = list(JOB_CLOWN) + +/datum/uplink_item/role_restricted/concealed_weapon_bay + name = "Concealed Weapon Bay" + desc = "A modification for non-combat mechas that allows them to equip one piece of equipment designed for combat mechs. \ + It also hides the equipped weapon from plain sight. \ + Only one can fit on a mecha." + progression_minimum = 30 MINUTES + item = /obj/item/mecha_parts/concealed_weapon_bay + cost = 3 + restricted_roles = list(JOB_ROBOTICIST, JOB_RESEARCH_DIRECTOR) + +/datum/uplink_item/role_restricted/clowncar + name = "Clown Car" + desc = "The Clown Car is the ultimate transportation method for any worthy clown! \ + Simply insert your bikehorn and get in, and get ready to have the funniest ride of your life! \ + You can ram any spacemen you come across and stuff them into your car, kidnapping them and locking them inside until \ + someone saves them or they manage to crawl out. Be sure not to ram into any walls or vending machines, as the springloaded seats \ + are very sensitive. Now with our included lube defense mechanism which will protect you against any angry shitcurity! \ + Premium features can be unlocked with a cryptographic sequencer!" + progression_minimum = 30 MINUTES + item = /obj/vehicle/sealed/car/clowncar + cost = 20 + restricted_roles = list(JOB_CLOWN) + +/datum/uplink_item/role_restricted/his_grace + name = "His Grace" + desc = "An incredibly dangerous weapon recovered from a station overcome by the grey tide. Once activated, He will thirst for blood and must be used to kill to sate that thirst. \ + His Grace grants gradual regeneration and complete stun immunity to His wielder, but be wary: if He gets too hungry, He will become impossible to drop and eventually kill you if not fed. \ + However, if left alone for long enough, He will fall back to slumber. \ + To activate His Grace, simply unlatch Him." + progression_minimum = 30 MINUTES + item = /obj/item/his_grace + cost = 20 + restricted_roles = list(JOB_CHAPLAIN) + surplus = 5 //Very low chance to get it in a surplus crate even without being the chaplain + + +// High progression cost + +/datum/uplink_item/role_restricted/spider_injector + name = "Australicus Slime Mutator" + desc = "Crikey mate, it's been a wild travel from the Australicus sector but we've managed to get \ + some special spider extract from the giant spiders down there. Use this injector on a gold slime core \ + to create a few of the same type of spiders we found on the planets over there. They're a bit tame until you \ + also give them a bit of sentience though." + progression_minimum = 40 MINUTES + item = /obj/item/reagent_containers/syringe/spider_extract + cost = 10 + restricted_roles = list(JOB_RESEARCH_DIRECTOR, JOB_SCIENTIST, JOB_ROBOTICIST) + +/datum/uplink_item/role_restricted/blastcannon + name = "Blast Cannon" + desc = "A highly specialized weapon, the Blast Cannon is actually relatively simple. It contains an attachment for a tank transfer valve mounted to an angled pipe specially constructed \ + withstand extreme pressure and temperatures, and has a mechanical trigger for triggering the transfer valve. Essentially, it turns the explosive force of a bomb into a narrow-angle \ + blast wave \"projectile\". Aspiring scientists may find this highly useful, as forcing the pressure shockwave into a narrow angle seems to be able to bypass whatever quirk of physics \ + disallows explosive ranges above a certain distance, allowing for the device to use the theoretical yield of a transfer valve bomb, instead of the factual yield. It's simple design makes it easy to conceal." + progression_minimum = 45 MINUTES + item = /obj/item/gun/blastcannon + cost = 14 //High cost because of the potential for extreme damage in the hands of a skilled scientist. + restricted_roles = list(JOB_RESEARCH_DIRECTOR, JOB_SCIENTIST) diff --git a/code/modules/uplink/uplink_items/nukeops.dm b/code/modules/uplink/uplink_items/nukeops.dm new file mode 100644 index 00000000000..0ff0987a388 --- /dev/null +++ b/code/modules/uplink/uplink_items/nukeops.dm @@ -0,0 +1,779 @@ +/datum/uplink_item/bundles_tc/chemical + name = "Bioterror bundle" + desc = "For the madman: Contains a handheld Bioterror chem sprayer, a Bioterror foam grenade, a box of lethal chemicals, a dart pistol, \ + box of syringes, Donksoft assault rifle, and some riot darts. Remember: Seal suit and equip internals before use." + item = /obj/item/storage/backpack/duffelbag/syndie/med/bioterrorbundle + cost = 30 // normally 42 + purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + +/datum/uplink_item/bundles_tc/bulldog + name = "Bulldog bundle" + desc = "Lean and mean: Optimized for people that want to get up close and personal. Contains the popular \ + Bulldog shotgun, two 12g buckshot drums, and a pair of Thermal imaging goggles." + item = /obj/item/storage/backpack/duffelbag/syndie/bulldogbundle + cost = 13 // normally 16 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/bundles_tc/c20r + name = "C-20r bundle" + desc = "Old Faithful: The classic C-20r, bundled with two magazines and a (surplus) suppressor at discount price." + item = /obj/item/storage/backpack/duffelbag/syndie/c20rbundle + cost = 14 // normally 16 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/bundles_tc/cyber_implants + name = "Cybernetic Implants Bundle" + desc = "A random selection of cybernetic implants. Guaranteed 5 high quality implants. Comes with an autosurgeon." + item = /obj/item/storage/box/cyber_implants + cost = 40 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/bundles_tc/medical + name = "Medical bundle" + desc = "The support specialist: Aid your fellow operatives with this medical bundle. Contains a tactical medkit, \ + a Donksoft LMG, a box of riot darts and a pair of magboots to rescue your friends in no-gravity environments." + item = /obj/item/storage/backpack/duffelbag/syndie/med/medicalbundle + cost = 15 // normally 20 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/bundles_tc/sniper + name = "Sniper bundle" + desc = "Elegant and refined: Contains a collapsed sniper rifle in an expensive carrying case, \ + two soporific knockout magazines, a free surplus suppressor, and a sharp-looking tactical turtleneck suit. \ + We'll throw in a free red tie if you order NOW." + item = /obj/item/storage/briefcase/sniperbundle + cost = 20 // normally 26 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/bundles_tc/firestarter + name = "Spetsnaz Pyro bundle" + desc = "For systematic suppression of carbon lifeforms in close quarters: Contains a lethal New Russian backpack spray, Elite hardsuit, \ + Stechkin APS machine pistol, two incendiary magazines, a minibomb and a stimulant syringe. \ + Order NOW and comrade Boris will throw in an extra tracksuit." + item = /obj/item/storage/backpack/duffelbag/syndie/firestarter + cost = 30 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/dangerous/rawketlawnchair + name = "84mm Rocket Propelled Grenade Launcher" + desc = "A reusable rocket propelled grenade launcher preloaded with a low-yield 84mm HE round. \ + Guaranteed to send your target out with a bang or your money back!" + item = /obj/item/gun/ballistic/rocketlauncher + cost = 8 + surplus = 30 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/dangerous/pie_cannon + name = "Banana Cream Pie Cannon" + desc = "A special pie cannon for a special clown, this gadget can hold up to 20 pies and automatically fabricates one every two seconds!" + cost = 10 + item = /obj/item/pneumatic_cannon/pie/selfcharge + surplus = 0 + purchasable_from = UPLINK_CLOWN_OPS + +/datum/uplink_item/dangerous/bananashield + name = "Bananium Energy Shield" + desc = "A clown's most powerful defensive weapon, this personal shield provides near immunity to ranged energy attacks \ + by bouncing them back at the ones who fired them. It can also be thrown to bounce off of people, slipping them, \ + and returning to you even if you miss. WARNING: DO NOT ATTEMPT TO STAND ON SHIELD WHILE DEPLOYED, EVEN IF WEARING ANTI-SLIP SHOES." + item = /obj/item/shield/energy/bananium + cost = 16 + surplus = 0 + purchasable_from = UPLINK_CLOWN_OPS + +/datum/uplink_item/dangerous/clownsword + name = "Bananium Energy Sword" + desc = "An energy sword that deals no damage, but will slip anyone it contacts, be it by melee attack, thrown \ + impact, or just stepping on it. Beware friendly fire, as even anti-slip shoes will not protect against it." + item = /obj/item/melee/energy/sword/bananium + cost = 3 + surplus = 0 + purchasable_from = UPLINK_CLOWN_OPS + +/datum/uplink_item/dangerous/clownoppin + name = "Ultra Hilarious Firing Pin" + desc = "A firing pin that, when inserted into a gun, makes that gun only useable by clowns and clumsy people and makes that gun honk whenever anyone tries to fire it." + cost = 1 //much cheaper for clown ops than for clowns + item = /obj/item/firing_pin/clown/ultra + purchasable_from = UPLINK_CLOWN_OPS + illegal_tech = FALSE + +/datum/uplink_item/dangerous/clownopsuperpin + name = "Super Ultra Hilarious Firing Pin" + desc = "Like the ultra hilarious firing pin, except the gun you insert this pin into explodes when someone who isn't clumsy or a clown tries to fire it." + cost = 4 //much cheaper for clown ops than for clowns + item = /obj/item/firing_pin/clown/ultra/selfdestruct + purchasable_from = UPLINK_CLOWN_OPS + illegal_tech = FALSE + +/datum/uplink_item/dangerous/bioterror + name = "Biohazardous Chemical Sprayer" + desc = "A handheld chemical sprayer that allows a wide dispersal of selected chemicals. Especially tailored by the Tiger \ + Cooperative, the deadly blend it comes stocked with will disorient, damage, and disable your foes... \ + Use with extreme caution, to prevent exposure to yourself and your fellow operatives." + item = /obj/item/reagent_containers/spray/chemsprayer/bioterror + cost = 20 + surplus = 0 + purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + +/datum/uplink_item/dangerous/shotgun + name = "Bulldog Shotgun" + desc = "A fully-loaded semi-automatic drum-fed shotgun. Compatible with all 12g rounds. Designed for close \ + quarter anti-personnel engagements." + item = /obj/item/gun/ballistic/shotgun/bulldog + cost = 8 + surplus = 40 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/dangerous/smg + name = "C-20r Submachine Gun" + desc = "A fully-loaded Scarborough Arms bullpup submachine gun. The C-20r fires .45 rounds with a \ + 24-round magazine and is compatible with suppressors." + item = /obj/item/gun/ballistic/automatic/c20r + cost = 13 + surplus = 40 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/dangerous/shield + name = "Energy Shield" + desc = "An incredibly useful personal shield projector, capable of reflecting energy projectiles and defending \ + against other attacks. Pair with an Energy Sword for a killer combination." + item = /obj/item/shield/energy + cost = 16 + surplus = 20 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/dangerous/flamethrower + name = "Flamethrower" + desc = "A flamethrower, fueled by a portion of highly flammable plasma stolen previously from Nanotrasen \ + stations. Make a statement by roasting the filth in their own greed. Use with caution." + item = /obj/item/flamethrower/full/tank + cost = 4 + surplus = 40 + purchasable_from = UPLINK_NUKE_OPS + illegal_tech = FALSE + +/datum/uplink_item/dangerous/machinegun + name = "L6 Squad Automatic Weapon" + desc = "A fully-loaded Aussec Armoury belt-fed machine gun. \ + This deadly weapon has a massive 50-round magazine of devastating 7.12x82mm ammunition." + item = /obj/item/gun/ballistic/automatic/l6_saw + cost = 18 + surplus = 0 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/dangerous/carbine + name = "M-90gl Carbine" + desc = "A fully-loaded, specialized three-round burst carbine that fires 5.56mm ammunition from a 30 round magazine \ + with a 40mm underbarrel grenade launcher. Use secondary-fire to fire the grenade launcher." + item = /obj/item/gun/ballistic/automatic/m90 + cost = 14 + surplus = 50 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/dangerous/sniper + name = "Sniper Rifle" + desc = "Ranged fury, Syndicate style. Guaranteed to cause shock and awe or your TC back!" + item = /obj/item/gun/ballistic/automatic/sniper_rifle/syndicate + cost = 16 + surplus = 25 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/dangerous/aps + name = "Stechkin APS Machine Pistol" + desc = "An ancient Soviet machine pistol, refurbished for the modern age. Uses 9mm auto rounds in 15-round magazines and is compatible \ + with suppressors. The gun fires in three round bursts." + item = /obj/item/gun/ballistic/automatic/pistol/aps + cost = 10 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/dangerous/surplus_smg + name = "Surplus SMG" + desc = "A horribly outdated automatic weapon. Why would you want to use this?" + item = /obj/item/gun/ballistic/automatic/plastikov + cost = 2 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/dangerous/foamsmg + name = "Toy Submachine Gun" + desc = "A fully-loaded Donksoft bullpup submachine gun that fires riot grade darts with a 20-round magazine." + item = /obj/item/gun/ballistic/automatic/c20r/toy + cost = 5 + surplus = 0 + purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + +/datum/uplink_item/dangerous/foammachinegun + name = "Toy Machine Gun" + desc = "A fully-loaded Donksoft belt-fed machine gun. This weapon has a massive 50-round magazine of devastating \ + riot grade darts, that can briefly incapacitate someone in just one volley." + item = /obj/item/gun/ballistic/automatic/l6_saw/toy + cost = 10 + surplus = 0 + purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + +/datum/uplink_item/stealthy_weapons/combatglovesplus + name = "Combat Gloves Plus" + desc = "A pair of gloves that are fireproof and electrically insulated, however unlike the regular Combat Gloves these use nanotechnology \ + to teach the martial art of krav maga to the wearer." + item = /obj/item/clothing/gloves/krav_maga/combatglovesplus + cost = 5 + purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + surplus = 0 + +/datum/uplink_item/stealthy_weapons/cqc + name = "CQC Manual" + desc = "A manual that teaches a single user tactical Close-Quarters Combat before self-destructing." + item = /obj/item/book/granter/martial/cqc + purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + cost = 13 + surplus = 0 + +/datum/uplink_item/ammo/pistolaps + name = "9mm Stechkin APS Magazine" + desc = "An additional 15-round 9mm magazine, compatible with the Stechkin APS machine pistol." + item = /obj/item/ammo_box/magazine/m9mm_aps + cost = 2 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/ammo/shotgun + cost = 2 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/ammo/shotgun/bag + name = "12g Ammo Duffel Bag" + desc = "A duffel bag filled with enough 12g ammo to supply an entire team, at a discounted price." + item = /obj/item/storage/backpack/duffelbag/syndie/ammo/shotgun + cost = 12 + +/datum/uplink_item/ammo/shotgun/buck + name = "12g Buckshot Drum" + desc = "An additional 8-round buckshot magazine for use with the Bulldog shotgun. Front towards enemy." + item = /obj/item/ammo_box/magazine/m12g + +/datum/uplink_item/ammo/shotgun/slug + name = "12g Slug Drum" + desc = "An additional 8-round slug magazine for use with the Bulldog shotgun. \ + Now 8 times less likely to shoot your pals." + cost = 3 + item = /obj/item/ammo_box/magazine/m12g/slug + +/datum/uplink_item/ammo/shotgun/dragon + name = "12g Dragon's Breath Drum" + desc = "An alternative 8-round dragon's breath magazine for use in the Bulldog shotgun. \ + 'I'm a fire starter, twisted fire starter!'" + item = /obj/item/ammo_box/magazine/m12g/dragon + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/ammo/shotgun/meteor + name = "12g Meteorslug Shells" + desc = "An alternative 8-round meteorslug magazine for use in the Bulldog shotgun. \ + Great for blasting airlocks off their frames and knocking down enemies." + item = /obj/item/ammo_box/magazine/m12g/meteor + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/ammo/a40mm + name = "40mm Grenade Box" + desc = "A box of 40mm HE grenades for use with the M-90gl's under-barrel grenade launcher. \ + Your teammates will ask you to not shoot these down small hallways." + item = /obj/item/ammo_box/a40mm + cost = 6 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/ammo/smg/bag + name = ".45 Ammo Duffel Bag" + desc = "A duffel bag filled with enough .45 ammo to supply an entire team, at a discounted price." + item = /obj/item/storage/backpack/duffelbag/syndie/ammo/smg + cost = 20 //instead of 27 TC + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/ammo/smg + name = ".45 SMG Magazine" + desc = "An additional 24-round .45 magazine suitable for use with the C-20r submachine gun." + item = /obj/item/ammo_box/magazine/smgm45 + cost = 3 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/ammo/smgap + name = ".45 Armor Piercing SMG Magazine" + desc = "An additional 24-round .45 magazine suitable for use with the C-20r submachine gun.\ + These rounds are less effective at injuring the target but penetrate protective gear." + item = /obj/item/ammo_box/magazine/smgm45/ap + cost = 5 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/ammo/smgfire + name = ".45 Incendiary SMG Magazine" + desc = "An additional 24-round .45 magazine suitable for use with the C-20r submachine gun.\ + Loaded with incendiary rounds which inflict little damage, but ignite the target." + item = /obj/item/ammo_box/magazine/smgm45/incen + cost = 4 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/ammo/sniper + cost = 4 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/ammo/sniper/basic + name = ".50 Magazine" + desc = "An additional standard 6-round magazine for use with .50 sniper rifles." + item = /obj/item/ammo_box/magazine/sniper_rounds + +/datum/uplink_item/ammo/sniper/penetrator + name = ".50 Penetrator Magazine" + desc = "A 5-round magazine of penetrator ammo designed for use with .50 sniper rifles. \ + Can pierce walls and multiple enemies." + item = /obj/item/ammo_box/magazine/sniper_rounds/penetrator + cost = 5 + +/datum/uplink_item/ammo/sniper/soporific + name = ".50 Soporific Magazine" + desc = "A 3-round magazine of soporific ammo designed for use with .50 sniper rifles. Put your enemies to sleep today!" + item = /obj/item/ammo_box/magazine/sniper_rounds/soporific + cost = 6 + +/datum/uplink_item/ammo/carbine + name = "5.56mm Toploader Magazine" + desc = "An additional 30-round 5.56mm magazine; suitable for use with the M-90gl carbine. \ + These bullets pack less punch than 7.12x82mm rounds, but they still offer more power than .45 ammo due to their innate armour penetration." + item = /obj/item/ammo_box/magazine/m556 + cost = 4 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/ammo/carbinephase + name = "5.56mm Toploader Phasic Magazine" + desc = "An additional 30-round 5.56mm magazine; suitable for use with the M-90gl carbine. \ + These bullets are made from an experimental alloy, 'Ghost Lead', that allows it to pass through almost any non-organic material. \ + The name is a misnomer. It doesn't contain any lead whatsoever!" + item = /obj/item/ammo_box/magazine/m556/phasic + cost = 8 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/ammo/machinegun + cost = 6 + surplus = 0 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/ammo/machinegun/basic + name = "7.12x82mm Box Magazine" + desc = "A 50-round magazine of 7.12x82mm ammunition for use with the L6 SAW. \ + By the time you need to use this, you'll already be standing on a pile of corpses." + item = /obj/item/ammo_box/magazine/mm712x82 + +/datum/uplink_item/ammo/machinegun/ap + name = "7.12x82mm (Armor Penetrating) Box Magazine" + desc = "A 50-round magazine of 7.12x82mm ammunition for use in the L6 SAW; equipped with special properties \ + to puncture even the most durable armor." + item = /obj/item/ammo_box/magazine/mm712x82/ap + cost = 9 + +/datum/uplink_item/ammo/machinegun/hollow + name = "7.12x82mm (Hollow-Point) Box Magazine" + desc = "A 50-round magazine of 7.12x82mm ammunition for use in the L6 SAW; equipped with hollow-point tips to help \ + with the unarmored masses of crew." + item = /obj/item/ammo_box/magazine/mm712x82/hollow + +/datum/uplink_item/ammo/machinegun/incen + name = "7.12x82mm (Incendiary) Box Magazine" + desc = "A 50-round magazine of 7.12x82mm ammunition for use in the L6 SAW; tipped with a special flammable \ + mixture that'll ignite anyone struck by the bullet. Some men just want to watch the world burn." + item = /obj/item/ammo_box/magazine/mm712x82/incen + +/datum/uplink_item/ammo/machinegun/match + name = "7.12x82mm (Match) Box Magazine" + desc = "A 50-round magazine of 7.12x82mm ammunition for use in the L6 SAW; you didn't know there was a demand for match grade \ + precision bullet hose ammo, but these rounds are finely tuned and perfect for ricocheting off walls all fancy-like." + item = /obj/item/ammo_box/magazine/mm712x82/match + cost = 10 + +/datum/uplink_item/ammo/rocket + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/ammo/rocket/basic + name = "84mm HE Rocket" + desc = "A low-yield anti-personnel HE rocket. Gonna take you out in style!" + item = /obj/item/ammo_casing/caseless/rocket + cost = 4 + +/datum/uplink_item/ammo/rocket/hedp + name = "84mm HEDP Rocket" + desc = "A high-yield HEDP rocket; extremely effective against armored targets, as well as surrounding personnel. \ + Strike fear into the hearts of your enemies." + item = /obj/item/ammo_casing/caseless/rocket/hedp + cost = 6 + +/datum/uplink_item/ammo/bioterror + name = "Box of Bioterror Syringes" + desc = "A box full of preloaded syringes, containing various chemicals that seize up the victim's motor \ + and broca systems, making it impossible for them to move or speak for some time." + item = /obj/item/storage/box/syndie_kit/bioterror + cost = 6 + purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + +/datum/uplink_item/ammo/surplus_smg + name = "Surplus SMG Magazine" + desc = "A cylindrical magazine designed for the PP-95 SMG." + item = /obj/item/ammo_box/magazine/plastikov9mm + cost = 1 + purchasable_from = UPLINK_NUKE_OPS + illegal_tech = FALSE + +/datum/uplink_item/ammo/mech/bag + name = "Mech Support Kit Bag" + desc = "A duffel bag containing ammo for four full reloads of the scattershotm which is equipped on standard Dark Gygax and Mauler exosuits. Also comes with some support equipment for maintaining the mech, including tools and an inducer." + item = /obj/item/storage/backpack/duffelbag/syndie/ammo/mech + cost = 4 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/ammo/mauler/bag + name = "Mauler Ammo Bag" + desc = "A duffel bag containing ammo for three full reloads of the LMG, scattershot carbine, and SRM-8 missile laucher that are equipped on a standard Mauler exosuit." + item = /obj/item/storage/backpack/duffelbag/syndie/ammo/mauler + cost = 6 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/explosives/bioterrorfoam + name = "Bioterror Foam Grenade" + desc = "A powerful chemical foam grenade which creates a deadly torrent of foam that will mute, blind, confuse, \ + mutate, and irritate carbon lifeforms. Specially brewed by Tiger Cooperative chemical weapons specialists \ + using additional spore toxin. Ensure suit is sealed before use." + item = /obj/item/grenade/chem_grenade/bioterrorfoam + cost = 5 + surplus = 35 + purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + +/datum/uplink_item/explosives/bombanana + name = "Bombanana" + desc = "A banana with an explosive taste! discard the peel quickly, as it will explode with the force of a Syndicate minibomb \ + a few seconds after the banana is eaten." + item = /obj/item/food/grown/banana/bombanana + cost = 4 //it is a bit cheaper than a minibomb because you have to take off your helmet to eat it, which is how you arm it + surplus = 0 + purchasable_from = UPLINK_CLOWN_OPS + +/datum/uplink_item/explosives/clown_bomb_clownops + name = "Clown Bomb" + desc = "The Clown bomb is a hilarious device capable of massive pranks. It has an adjustable timer, \ + with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ + movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ + transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ + be defused, and some crew may attempt to do so." + item = /obj/item/sbeacondrop/clownbomb + cost = 15 + surplus = 0 + purchasable_from = UPLINK_CLOWN_OPS + +/datum/uplink_item/explosives/buzzkill + name = "Buzzkill Grenade Box" + desc = "A box with three grenades that release a swarm of angry bees upon activation. These bees indiscriminately attack friend or foe \ + with random toxins. Courtesy of the BLF and Tiger Cooperative." + item = /obj/item/storage/box/syndie_kit/bee_grenades + cost = 15 + surplus = 35 + purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + +/datum/uplink_item/explosives/virus_grenade + name = "Fungal Tuberculosis Grenade" + desc = "A primed bio-grenade packed into a compact box. Comes with five Bio Virus Antidote Kit (BVAK) \ + autoinjectors for rapid application on up to two targets each, a syringe, and a bottle containing \ + the BVAK solution." + item = /obj/item/storage/box/syndie_kit/tuberculosisgrenade + cost = 12 + surplus = 35 + purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + restricted = TRUE + +/datum/uplink_item/explosives/grenadier + name = "Grenadier's belt" + desc = "A belt containing 26 lethally dangerous and destructive grenades. Comes with an extra multitool and screwdriver." + item = /obj/item/storage/belt/grenade/full + purchasable_from = UPLINK_NUKE_OPS + cost = 22 + surplus = 0 + +/datum/uplink_item/explosives/syndicate_detonator + name = "Syndicate Detonator" + desc = "The Syndicate detonator is a companion device to the Syndicate bomb. Simply press the included button \ + and an encrypted radio frequency will instruct all live Syndicate bombs to detonate. \ + Useful for when speed matters or you wish to synchronize multiple bomb blasts. Be sure to stand clear of \ + the blast radius before using the detonator." + item = /obj/item/syndicatedetonator + cost = 3 + purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + +/datum/uplink_item/explosives/tearstache + name = "Teachstache Grenade" + desc = "A teargas grenade that launches sticky moustaches onto the face of anyone not wearing a clown or mime mask. The moustaches will \ + remain attached to the face of all targets for one minute, preventing the use of breath masks and other such devices." + item = /obj/item/grenade/chem_grenade/teargas/moustache + cost = 3 + surplus = 0 + purchasable_from = UPLINK_CLOWN_OPS + +/datum/uplink_item/explosives/viscerators + name = "Viscerator Delivery Grenade" + desc = "A unique grenade that deploys a swarm of viscerators upon activation, which will chase down and shred \ + any non-operatives in the area." + item = /obj/item/grenade/spawnergrenade/manhacks + cost = 5 + surplus = 35 + purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + +//Support and Mechs +/datum/uplink_category/support + name = "Support and Exosuits" + weight = 5 + +/datum/uplink_item/support + category = /datum/uplink_category/support + surplus = 0 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/support/clown_reinforcement + name = "Clown Reinforcements" + desc = "Call in an additional clown to share the fun, equipped with full starting gear, but no telecrystals." + item = /obj/item/antag_spawner/nuke_ops/clown + cost = 20 + purchasable_from = UPLINK_CLOWN_OPS + restricted = TRUE + +/datum/uplink_item/support/reinforcement + name = "Reinforcements" + desc = "Call in an additional team member. They won't come with any gear, so you'll have to save some telecrystals \ + to arm them as well." + item = /obj/item/antag_spawner/nuke_ops + cost = 25 + refundable = TRUE + purchasable_from = UPLINK_NUKE_OPS + restricted = TRUE + +/datum/uplink_item/support/reinforcement/assault_borg + name = "Syndicate Assault Cyborg" + desc = "A cyborg designed and programmed for systematic extermination of non-Syndicate personnel. \ + Comes equipped with a self-resupplying LMG, a grenade launcher, energy sword, emag, pinpointer, flash and crowbar." + item = /obj/item/antag_spawner/nuke_ops/borg_tele/assault + refundable = TRUE + cost = 65 + restricted = TRUE + +/datum/uplink_item/support/reinforcement/medical_borg + name = "Syndicate Medical Cyborg" + desc = "A combat medical cyborg. Has limited offensive potential, but makes more than up for it with its support capabilities. \ + It comes equipped with a nanite hypospray, a medical beamgun, combat defibrillator, full surgical kit including an energy saw, an emag, pinpointer and flash. \ + Thanks to its organ storage bag, it can perform surgery as well as any humanoid." + item = /obj/item/antag_spawner/nuke_ops/borg_tele/medical + refundable = TRUE + cost = 35 + restricted = TRUE + +/datum/uplink_item/support/reinforcement/saboteur_borg + name = "Syndicate Saboteur Cyborg" + desc = "A streamlined engineering cyborg, equipped with covert modules. Also incapable of leaving the welder in the shuttle. \ + Aside from regular Engineering equipment, it comes with a special destination tagger that lets it traverse disposals networks. \ + Its chameleon projector lets it disguise itself as a Nanotrasen cyborg, on top it has thermal vision and a pinpointer." + item = /obj/item/antag_spawner/nuke_ops/borg_tele/saboteur + refundable = TRUE + cost = 35 + restricted = TRUE + +/datum/uplink_item/support/gygax + name = "Dark Gygax Exosuit" + desc = "A lightweight exosuit, painted in a dark scheme. Its speed and equipment selection make it excellent \ + for hit-and-run style attacks. Features a scattershot shotgun, armor boosters against melee and ranged attacks, ion thrusters and a Tesla energy array." + item = /obj/vehicle/sealed/mecha/combat/gygax/dark/loaded + cost = 80 + +/datum/uplink_item/support/honker + name = "Dark H.O.N.K." + desc = "A clown combat mech equipped with bombanana peel and tearstache grenade launchers, as well as the ubiquitous HoNkER BlAsT 5000." + item = /obj/vehicle/sealed/mecha/combat/honker/dark/loaded + cost = 80 + purchasable_from = UPLINK_CLOWN_OPS + +/datum/uplink_item/support/mauler + name = "Mauler Exosuit" + desc = "A massive and incredibly deadly military-grade exosuit. Features long-range targeting, thrust vectoring \ + and deployable smoke. Comes equipped with an LMG, scattershot carbine, missile rack, an antiprojectile armor booster and a Tesla energy array." + item = /obj/vehicle/sealed/mecha/combat/marauder/mauler/loaded + cost = 140 + +/datum/uplink_item/stealthy_tools/combatbananashoes + name = "Combat Banana Shoes" + desc = "While making the wearer immune to most slipping attacks like regular combat clown shoes, these shoes \ + can generate a large number of synthetic banana peels as the wearer walks, slipping up would-be pursuers. They also \ + squeak significantly louder." + item = /obj/item/clothing/shoes/clown_shoes/banana_shoes/combat + cost = 6 + surplus = 0 + purchasable_from = UPLINK_CLOWN_OPS + +/datum/uplink_item/stealthy_tools/syndigaloshes/nuke + item = /obj/item/clothing/shoes/chameleon/noslip + cost = 4 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/suits/modsuit/elite + name = "Elite Syndicate MODsuit" + desc = "An upgraded, elite version of the Syndicate MODsuit. It features fireproofing, and also \ + provides the user with superior armor and mobility compared to the standard Syndicate MODsuit." + item = /obj/item/mod/control/pre_equipped/elite + purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + +/datum/uplink_item/suits/energy_shield + name = "MODsuit Energy Shield Module" + desc = "An energy shield module for a MODsuit. The shields can handle up to three impacts \ + within a short duration and will rapidly recharge while not under fire." + item = /obj/item/mod/module/energy_shield + cost = 15 + purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + +/datum/uplink_item/suits/noslip + name = "MODsuit Anti-Slip Module" + desc = "A MODsuit module preventing the user from slipping on water." + item = /obj/item/mod/module/noslip + cost = 4 + purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + +/datum/uplink_item/device_tools/magboots + name = "Blood-Red Magboots" + desc = "A pair of magnetic boots with a Syndicate paintjob that assist with freer movement in space or on-station \ + during gravitational generator failures. These reverse-engineered knockoffs of Nanotrasen's \ + 'Advanced Magboots' slow you down in simulated-gravity environments much like the standard issue variety." + item = /obj/item/clothing/shoes/magboots/syndie + cost = 2 + purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + +/datum/uplink_item/device_tools/assault_pod + name = "Assault Pod Targeting Device" + desc = "Use this to select the landing zone of your assault pod." + item = /obj/item/assault_pod + cost = 30 + surplus = 0 + purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + restricted = TRUE + +/datum/uplink_item/device_tools/syndie_jaws_of_life + name = "Syndicate Jaws of Life" + desc = "Based on a Nanotrasen model, this powerful tool can be used as both a crowbar and a pair of wirecutters. \ + In its crowbar configuration, it can be used to force open airlocks. Very useful for entering the station or its departments." + item = /obj/item/crowbar/power/syndicate + cost = 4 + purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + +/datum/uplink_item/device_tools/medgun + name = "Medbeam Gun" + desc = "A wonder of Syndicate engineering, the Medbeam gun, or Medi-Gun enables a medic to keep his fellow \ + operatives in the fight, even while under fire. Don't cross the streams!" + item = /obj/item/gun/medbeam + cost = 15 + purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + +/datum/uplink_item/device_tools/medkit + name = "Syndicate Combat Medic Kit" + desc = "This first aid kit is a suspicious brown and red. Included is a combat stimulant injector \ + for rapid healing, a medical night vision HUD for quick identification of injured personnel, \ + and other supplies helpful for a field medic." + item = /obj/item/storage/firstaid/tactical + cost = 4 + purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + +/datum/uplink_item/device_tools/potion + name = "Syndicate Sentience Potion" + item = /obj/item/slimepotion/slime/sentience/nuclear + desc = "A potion recovered at great risk by undercover Syndicate operatives and then subsequently modified with Syndicate technology. \ + Using it will make any animal sentient, and bound to serve you, as well as implanting an internal radio for communication and an internal ID card for opening doors." + cost = 4 + purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + restricted = TRUE + +/datum/uplink_item/device_tools/guerillagloves + name = "Guerilla Gloves" + desc = "A pair of highly robust combat gripper gloves that excels at performing takedowns at close range, with an added lining of insulation. Careful not to hit a wall!" + item = /obj/item/clothing/gloves/tackler/combat/insulated + purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + cost = 2 + illegal_tech = FALSE + +/datum/uplink_item/implants/antistun + name = "CNS Rebooter Implant" + desc = "This implant will help you get back up on your feet faster after being stunned. Comes with an autosurgeon." + item = /obj/item/autosurgeon/organ/syndicate/anti_stun + cost = 12 + surplus = 0 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/implants/microbomb + name = "Microbomb Implant" + desc = "An implant injected into the body, and later activated either manually or automatically upon death. \ + The more implants inside of you, the higher the explosive power. \ + This will permanently destroy your body, however." + item = /obj/item/storage/box/syndie_kit/imp_microbomb + cost = 2 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/implants/macrobomb + name = "Macrobomb Implant" + desc = "An implant injected into the body, and later activated either manually or automatically upon death. \ + Upon death, releases a massive explosion that will wipe out everything nearby." + item = /obj/item/storage/box/syndie_kit/imp_macrobomb + cost = 20 + purchasable_from = UPLINK_NUKE_OPS + restricted = TRUE + +/datum/uplink_item/implants/reviver + name = "Reviver Implant" + desc = "This implant will attempt to revive and heal you if you lose consciousness. Comes with an autosurgeon." + item = /obj/item/autosurgeon/organ/syndicate/reviver + cost = 8 + surplus = 0 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/implants/thermals + name = "Thermal Eyes" + desc = "These cybernetic eyes will give you thermal vision. Comes with a free autosurgeon." + item = /obj/item/autosurgeon/organ/syndicate/thermal_eyes + cost = 8 + surplus = 0 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/implants/xray + name = "X-ray Vision Implant" + desc = "These cybernetic eyes will give you X-ray vision. Comes with an autosurgeon." + item = /obj/item/autosurgeon/organ/syndicate/xray_eyes + cost = 10 + surplus = 0 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/implants/deathrattle + name = "Box of Deathrattle Implants" + desc = "A collection of implants (and one reusable implanter) that should be injected into the team. When one of the team \ + dies, all other implant holders recieve a mental message informing them of their teammates' name \ + and the location of their death. Unlike most implants, these are designed to be implanted \ + in any creature, biological or mechanical." + item = /obj/item/storage/box/syndie_kit/imp_deathrattle + cost = 4 + surplus = 0 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/badass/costumes + surplus = 0 + purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + cost = 4 + cant_discount = TRUE + +/datum/uplink_item/badass/clownopclumsinessinjector //clowns can buy this too, but it's in the role-restricted items section for them + name = "Clumsiness Injector" + desc = "Inject yourself with this to become as clumsy as a clown... or inject someone ELSE with it to make THEM as clumsy as a clown. Useful for clown operatives who wish to reconnect with their former clownish nature or for clown operatives who wish to torment and play with their prey before killing them." + item = /obj/item/dnainjector/clumsymut + cost = 1 + purchasable_from = UPLINK_CLOWN_OPS + illegal_tech = FALSE + +/datum/uplink_item/stealthy_weapons/romerol_kit + name = "Romerol" + desc = "A highly experimental bioterror agent which creates dormant nodules to be etched into the grey matter of the brain. \ + On death, these nodules take control of the dead body, causing limited revivification, \ + along with slurred speech, aggression, and the ability to infect others with this agent." + item = /obj/item/storage/box/syndie_kit/romerol + cost = 25 + purchasable_from = UPLINK_CLOWN_OPS|UPLINK_NUKE_OPS + cant_discount = TRUE diff --git a/code/modules/uplink/uplink_items/stealthy.dm b/code/modules/uplink/uplink_items/stealthy.dm new file mode 100644 index 00000000000..466d69fd13c --- /dev/null +++ b/code/modules/uplink/uplink_items/stealthy.dm @@ -0,0 +1,100 @@ +// File organised based on progression +/datum/uplink_category/stealthy + name = "Stealthy Weapons" + weight = 8 + +/datum/uplink_item/stealthy_weapons + category = /datum/uplink_category/stealthy + +// No progression cost + +/datum/uplink_item/stealthy_weapons/dart_pistol + name = "Dart Pistol" + desc = "A miniaturized version of a normal syringe gun. It is very quiet when fired and can fit into any \ + space a small item can." + item = /obj/item/gun/syringe/syndicate + cost = 4 + surplus = 50 + +/datum/uplink_item/stealthy_weapons/dehy_carp + name = "Dehydrated Space Carp" + desc = "Looks like a plush toy carp, but just add water and it becomes a real-life space carp! Activate in \ + your hand before use so it knows not to kill you." + item = /obj/item/toy/plush/carpplushie/dehy_carp + cost = 1 + +/datum/uplink_item/stealthy_weapons/edagger + name = "Energy Dagger" + desc = "A dagger made of energy that looks and functions as a pen when off." + item = /obj/item/pen/edagger + cost = 2 + +/datum/uplink_item/stealthy_weapons/traitor_chem_bottle + name = "Poison Kit" + desc = "An assortment of deadly chemicals packed into a compact box. Comes with a syringe for more precise application." + item = /obj/item/storage/box/syndie_kit/chemical + cost = 6 + surplus = 50 + +/datum/uplink_item/stealthy_weapons/suppressor + name = "Suppressor" + desc = "This suppressor will silence the shots of the weapon it is attached to for increased stealth and superior ambushing capability. It is compatible with many small ballistic guns including the Makarov, Stechkin APS and C-20r, but not revolvers or energy guns." + item = /obj/item/suppressor + cost = 3 + surplus = 10 + purchasable_from = ~UPLINK_CLOWN_OPS + +/datum/uplink_item/stealthy_weapons/holster + name = "Syndicate Holster" + desc = "A useful little device that allows for inconspicuous carrying of guns using chameleon technology. It also allows for badass gun-spinning." + item = /obj/item/storage/belt/holster/chameleon + cost = 1 + +/datum/uplink_item/stealthy_weapons/sleepy_pen + name = "Sleepy Pen" + desc = "A syringe disguised as a functional pen, filled with a potent mix of drugs, including a \ + strong anesthetic and a chemical that prevents the target from speaking. \ + The pen holds one dose of the mixture, and can be refilled with any chemicals. Note that before the target \ + falls asleep, they will be able to move and act." + item = /obj/item/pen/sleepy + cost = 4 + purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) + +// Low progression cost + +/datum/uplink_item/stealthy_weapons/origami_kit + name = "Boxed Origami Kit" + desc = "This box contains a guide on how to craft masterful works of origami, allowing you to transform normal pieces of paper into \ + perfectly aerodynamic (and potentially lethal) paper airplanes." + progression_minimum = 15 MINUTES + item = /obj/item/storage/box/syndie_kit/origami_bundle + cost = 14 + surplus = 0 + purchasable_from = ~UPLINK_NUKE_OPS //clown ops intentionally left in, because that seems like some s-tier shenanigans. + + +// Medium progression cost + +/datum/uplink_item/stealthy_weapons/martialarts + name = "Martial Arts Scroll" + desc = "This scroll contains the secrets of an ancient martial arts technique. You will master unarmed combat \ + and gain the ability to swat bullets from the air, but you will also refuse to use dishonorable ranged weaponry." + item = /obj/item/book/granter/martial/carp + progression_minimum = 30 MINUTES + cost = 13 + surplus = 0 + purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) + +/datum/uplink_item/stealthy_weapons/crossbow + name = "Miniature Energy Crossbow" + desc = "A short bow mounted across a tiller in miniature. \ + Small enough to fit into a pocket or slip into a bag unnoticed. \ + It will synthesize and fire bolts tipped with a debilitating \ + toxin that will damage and disorient targets, causing them to \ + slur as if inebriated. It can produce an infinite number \ + of bolts, but takes time to automatically recharge after each shot." + item = /obj/item/gun/energy/kinetic_accelerator/crossbow + progression_minimum = 30 MINUTES + cost = 10 + surplus = 50 + purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) diff --git a/code/modules/uplink/uplink_items/stealthy_tools.dm b/code/modules/uplink/uplink_items/stealthy_tools.dm new file mode 100644 index 00000000000..86b5b3d0a33 --- /dev/null +++ b/code/modules/uplink/uplink_items/stealthy_tools.dm @@ -0,0 +1,94 @@ +// File ordered based on progression + +/datum/uplink_category/stealthy_tools + name = "Stealth Gadgets" + weight = 4 + +/datum/uplink_item/stealthy_tools + category = /datum/uplink_category/stealthy_tools + +// No progression cost + +/datum/uplink_item/stealthy_tools/agent_card + name = "Agent Identification Card" + desc = "Agent cards prevent artificial intelligences from tracking the wearer, and hold up to 5 wildcards \ + from other identification cards. In addition, they can be forged to display a new assignment, name and trim. \ + This can be done an unlimited amount of times. Some Syndicate areas and devices can only be accessed \ + with these cards." + item = /obj/item/card/id/advanced/chameleon + cost = 2 + +/datum/uplink_item/stealthy_tools/ai_detector + name = "Artificial Intelligence Detector" + desc = "A functional multitool that turns red when it detects an artificial intelligence watching it, and can be \ + activated to display their exact viewing location and nearby security camera blind spots. Knowing when \ + an artificial intelligence is watching you is useful for knowing when to maintain cover, and finding nearby \ + blind spots can help you identify escape routes." + item = /obj/item/multitool/ai_detect + cost = 1 + +/datum/uplink_item/stealthy_tools/chameleon + name = "Chameleon Kit" + desc = "A set of items that contain chameleon technology allowing you to disguise as pretty much anything on the station, and more! \ + Due to budget cuts, the shoes don't provide protection against slipping and skillchips are sold separately." + item = /obj/item/storage/box/syndie_kit/chameleon + cost = 2 + purchasable_from = ~UPLINK_NUKE_OPS //clown ops are allowed to buy this kit, since it's basically a costume + +/datum/uplink_item/stealthy_tools/chameleon_proj + name = "Chameleon Projector" + desc = "Projects an image across a user, disguising them as an object scanned with it, as long as they don't \ + move the projector from their hand. Disguised users move slowly, and projectiles pass over them." + item = /obj/item/chameleon + cost = 7 + +/datum/uplink_item/stealthy_tools/codespeak_manual + name = "Codespeak Manual" + desc = "Syndicate agents can be trained to use a series of codewords to convey complex information, which sounds like random concepts and drinks to anyone listening. \ + This manual teaches you this Codespeak. You can also hit someone else with the manual in order to teach them. This is the deluxe edition, which has unlimited uses." + item = /obj/item/language_manual/codespeak_manual/unlimited + cost = 3 + +/datum/uplink_item/stealthy_tools/emplight + name = "EMP Flashlight" + desc = "A small, self-recharging, short-ranged EMP device disguised as a working flashlight. \ + Useful for disrupting headsets, cameras, doors, lockers and borgs during stealth operations. \ + Attacking a target with this flashlight will direct an EM pulse at it and consumes a charge." + item = /obj/item/flashlight/emp + cost = 4 + surplus = 30 + +/datum/uplink_item/stealthy_tools/mulligan + name = "Mulligan" + desc = "Screwed up and have security on your tail? This handy syringe will give you a completely new identity \ + and appearance." + item = /obj/item/reagent_containers/syringe/mulligan + cost = 4 + surplus = 30 + purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) + +/datum/uplink_item/stealthy_tools/jammer + name = "Radio Jammer" + desc = "This device will disrupt any nearby outgoing radio communication when activated. Does not affect binary chat." + item = /obj/item/jammer + cost = 5 + +/datum/uplink_item/stealthy_tools/smugglersatchel + name = "Smuggler's Satchel" + desc = "This satchel is thin enough to be hidden in the gap between plating and tiling; great for stashing \ + your stolen goods. Comes with a crowbar, a floor tile and some contraband inside." + item = /obj/item/storage/backpack/satchel/flat/with_tools + cost = 1 + surplus = 30 + illegal_tech = FALSE + +// Medium progression cost + +/datum/uplink_item/stealthy_tools/syndigaloshes + name = "No-Slip Chameleon Shoes" + desc = "These shoes will allow the wearer to run on wet floors and slippery objects without falling down. \ + They do not work on heavily lubricated surfaces." + progression_minimum = 20 MINUTES + item = /obj/item/clothing/shoes/chameleon/noslip + cost = 2 + purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) diff --git a/code/modules/uplink/uplink_items/suits.dm b/code/modules/uplink/uplink_items/suits.dm new file mode 100644 index 00000000000..0f1f14340f3 --- /dev/null +++ b/code/modules/uplink/uplink_items/suits.dm @@ -0,0 +1,51 @@ +// File ordered by progression + +/datum/uplink_category/suits + name = "Space Suits" + weight = 3 + +/datum/uplink_item/suits + category = /datum/uplink_category/suits + surplus = 40 + +/datum/uplink_item/suits/infiltrator_bundle + name = "Infiltrator Case" + desc = "Developed by Roseus Galactic in conjunction with the Gorlex Marauders to produce a functional suit for urban operations, \ + this suit proves to be cheaper than your standard issue hardsuit, with none of the movement restrictions of the outdated spacesuits employed by the company. \ + Comes with an armor vest, helmet, sneaksuit, sneakboots, specialized combat gloves and a high-tech balaclava. The case is also rather useful as a storage container." + item = /obj/item/storage/toolbox/infiltrator + cost = 6 + limited_stock = 1 //you only get one so you don't end up with too many gun cases + purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) + +/datum/uplink_item/suits/space_suit + name = "Syndicate Space Suit" + desc = "This red and black Syndicate space suit is less encumbering than Nanotrasen variants, \ + fits inside bags, and has a weapon slot. Nanotrasen crew members are trained to report red space suit \ + sightings, however." + item = /obj/item/storage/box/syndie_kit/space + cost = 4 + +// Low progression cost + +/datum/uplink_item/suits/modsuit + name = "Syndicate MODsuit" + desc = "The feared MODsuit of a Syndicate agent. Features armoring and a set of inbuilt modules." + item = /obj/item/mod/control/pre_equipped/traitor + cost = 8 + purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) //you can't buy it in nuke, because the elite modsuit costs the same while being better + progression_minimum = 20 MINUTES + +/datum/uplink_item/suits/thermal + name = "MODsuit Thermal Visor Module" + desc = "A visor for a MODsuit. Lets you see living beings through walls." + item = /obj/item/mod/module/visor/thermal + progression_minimum = 20 MINUTES + cost = 3 + +/datum/uplink_item/suits/night + name = "MODsuit Night Visor Module" + desc = "A visor for a MODsuit. Lets you see clearer in the dark." + item = /obj/item/mod/module/visor/night + progression_minimum = 20 MINUTES + cost = 2 diff --git a/config/admins.txt b/config/admins.txt index c286774d2e3..394efa7b350 100644 --- a/config/admins.txt +++ b/config/admins.txt @@ -146,3 +146,4 @@ bobbahbrown = Game Master Jaredfogle = Game Master WaylandSmithy = Game Master NamelessFairy = Game Master +WalterMeldron = Game Master diff --git a/config/traitor_objective.json b/config/traitor_objective.json new file mode 100644 index 00000000000..0967ef424bc --- /dev/null +++ b/config/traitor_objective.json @@ -0,0 +1 @@ +{} diff --git a/icons/mob/huds/antag_hud.dmi b/icons/mob/huds/antag_hud.dmi index 041ca4b1443e4f64bc33b77f48482e2a5955c74e..6977a559ebf9f21516db74c5e3dfaf9b36dd8c6a 100644 GIT binary patch literal 8426 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 diff --git a/icons/mob/inhands/weapons/swords_lefthand.dmi b/icons/mob/inhands/weapons/swords_lefthand.dmi index 37c10ae688c9cd9c320e25b1437387dc4bf07625..0fc31a390134ffc35610ea85e71e7fc44054b26b 100644 GIT binary patch literal 23276 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 literal 25312 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 diff --git a/icons/mob/inhands/weapons/swords_righthand.dmi b/icons/mob/inhands/weapons/swords_righthand.dmi index 677cca9792f6ba10897a98454a4a64a0f96572f9..7a3baa7e9aa71a228c1bcb47c1cafcdf25f33849 100644 GIT binary patch literal 25960 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 literal 24334 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 FzW@zDlk)%o diff --git a/icons/obj/card.dmi b/icons/obj/card.dmi index 74feeb09c899cd9cec22ac72be3321b19b356363..5953cfb58de98a5d740e33d0bcebe759e29829cb 100644 GIT binary patch literal 19148 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 UIl~j+PwoJZmDQAr9-0LHAJxKU%m4rY diff --git a/icons/obj/computer.dmi b/icons/obj/computer.dmi index effab4e60a724e2566d334bfbd1e54a9e83aa9f1..dfa3057b2e2af6ec5e0121ac9812d54a31a52b10 100644 GIT binary patch delta 54777 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

IV=W08k}z2&)|d?j{ppPG0ez%&{R1E09UnlHDz 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 KxvX6B7wq+yT{1nHC-Iz_sM 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ǷUVIoZZZ2WG5#EB3R1rWe1i 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 diff --git a/icons/obj/items_and_weapons.dmi b/icons/obj/items_and_weapons.dmi index bf8eaac8af5b5225f9bb127d6b445840e270c834..fd9247ca7bab27caa969a3b825c935360d3188d2 100644 GIT binary patch literal 90878 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 W5}Vk#nsNaAXgz$QUZH9o`M&^eAEX`t diff --git a/sound/traitor/final_objective.ogg b/sound/traitor/final_objective.ogg new file mode 100644 index 0000000000000000000000000000000000000000..7ef6a3c548f2e4b7f8ca841ec71433dd9f6d45fa GIT binary patch literal 227435 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%0Ad>n7Ql+s5CTbfhY#(aC+8r7N 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�RIZ7?UY-s|r6O$FCSHao0J%ldsardzQEy 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 nxf74awcrKXRKCucYyipRwl!m4&rL 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°Df>8K9 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 literal 0 HcmV?d00001 diff --git a/sound/traitor/objective_success.ogg b/sound/traitor/objective_success.ogg new file mode 100644 index 0000000000000000000000000000000000000000..fbfab3bc214ee7c4405fc5899d23032fe5b3008a GIT binary patch literal 30057 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 z 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 literal 0 HcmV?d00001 diff --git a/sound/traitor/objective_taken.ogg b/sound/traitor/objective_taken.ogg new file mode 100644 index 0000000000000000000000000000000000000000..8c1b252e34307faed09ac86d8048ace525743c7a GIT binary patch literal 17846 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 e$Ti3Av-;+>3GcB4JB?Lvxs4oQ2Fp8^p8P* { const [tab, setTab] = useSharedState(context, 'tab', 1); @@ -47,6 +47,7 @@ const Abductsoft = (props, context) => { experiment, points, credits, + categories, } = data; if (!experiment) { @@ -57,6 +58,24 @@ const Abductsoft = (props, context) => { ); } + const categoriesList = []; + const items = []; + for (let i = 0; i < categories.length; i++) { + const category = categories[i]; + categoriesList.push(category.name); + for (let itemIndex = 0; itemIndex < category.items.length; itemIndex++) { + const item = category.items[itemIndex]; + items.push({ + id: item.name, + name: item.name, + category: category.name, + cost: `${item.cost} Credits`, + desc: item.desc, + disabled: credits < item.cost, + }); + } + } + return ( <>

@@ -67,8 +86,11 @@ const Abductsoft = (props, context) => {
+ currency={`${credits} Credits`} + categories={categoriesList} + items={items} + handleBuy={(item) => act("buy", { name: item.name })} + /> ); }; diff --git a/tgui/packages/tgui/interfaces/AntagInfoMalf.tsx b/tgui/packages/tgui/interfaces/AntagInfoMalf.tsx index 1e9131e5472..bd48edf47b1 100644 --- a/tgui/packages/tgui/interfaces/AntagInfoMalf.tsx +++ b/tgui/packages/tgui/interfaces/AntagInfoMalf.tsx @@ -1,6 +1,6 @@ import { useBackend, useLocalState } from '../backend'; import { multiline } from 'common/string'; -import { GenericUplink } from './Uplink'; +import { GenericUplink, Item } from './Uplink/GenericUplink'; import { BlockQuote, Button, Section, Stack, Tabs } from '../components'; import { BooleanLike } from 'common/react'; import { Window } from '../layouts'; @@ -36,6 +36,7 @@ type Info = { intro: string; processingTime: string; objectives: Objective[]; + categories: any[]; }; const ObjectivePrintout = (props, context) => { @@ -191,14 +192,32 @@ const CodewordsSection = (props, context) => { }; export const AntagInfoMalf = (props, context) => { - const { data } = useBackend(context); + const { act, data } = useBackend(context); const { processingTime, + categories, } = data; const [ antagInfoTab, setAntagInfoTab, ] = useLocalState(context, 'antagInfoTab', 0); + const categoriesList: string[] = []; + const items: Item[] = []; + for (let i = 0; i < categories.length; i++) { + const category = categories[i]; + categoriesList.push(category.name); + for (let itemIndex = 0; itemIndex < category.items.length; itemIndex++) { + const item = category.items[itemIndex]; + items.push({ + id: item.name, + name: item.name, + category: category.name, + cost: `${item.cost} PT`, + desc: item.desc, + disabled: processingTime < item.cost, + }); + } + } return ( {
+ categories={categoriesList} + items={items} + currency={`${processingTime} PT`} + handleBuy={(item) => act("buy", { name: item.name })} + />
- - )} diff --git a/tgui/packages/tgui/interfaces/CommunicationsConsole.js b/tgui/packages/tgui/interfaces/CommunicationsConsole.js index 0dc8462d009..2a3bc90151b 100644 --- a/tgui/packages/tgui/interfaces/CommunicationsConsole.js +++ b/tgui/packages/tgui/interfaces/CommunicationsConsole.js @@ -317,6 +317,7 @@ const PageMain = (props, context) => { canSetAlertLevel, canToggleEmergencyAccess, emagged, + syndicate, emergencyAccess, importantActionReady, sectors, @@ -343,48 +344,50 @@ const PageMain = (props, context) => { return ( -
- {shuttleCalled && ( - act("recallShuttle")} - /> - ) || ( -
+ )} {!!canSetAlertLevel && (
@@ -434,11 +437,13 @@ const PageMain = (props, context) => { onClick={() => act("toggleEmergencyAccess")} />} -
- ); - } - - if (data.logged_in && data.first_load) { - return ( - - act('PRG_set_first_load_finished')} /> - - ); - } - - if (data.info_screen) { - return ( - <> - - - - +
+ ) + : null} + + {!!uiButtons && !objectiveFinished && ( + + {uiButtons} + + )} + + + + + ); +}; diff --git a/tgui/packages/tgui/interfaces/Uplink/calculateReputationLevel.tsx b/tgui/packages/tgui/interfaces/Uplink/calculateReputationLevel.tsx new file mode 100644 index 00000000000..26f37c9972b --- /dev/null +++ b/tgui/packages/tgui/interfaces/Uplink/calculateReputationLevel.tsx @@ -0,0 +1,145 @@ +import { Box, Flex } from '../../components'; + +export const calculateProgression = (progression_points: number) => { + return Math.round(progression_points / 6) / 10; +}; + +const badGradient = "reputation-bad"; +const normalGradient = "reputation-normal"; +const goodGradient = "reputation-good"; +const veryGoodGradient = "reputation-very-good"; +const ultraGoodGradient = "reputation-super-good"; +const bestGradient = "reputation-best"; + +export type Rank = { + minutesLessThan: number; + title: string; + gradient: string; +} + +export const ranks: Rank[] = [ + { + minutesLessThan: 5, + title: "Obscure", + gradient: badGradient, + }, + { + minutesLessThan: 10, + title: "Insignificant", + gradient: normalGradient, + }, + { + minutesLessThan: 20, + title: "Noteworthy", + gradient: normalGradient, + }, + { + minutesLessThan: 30, + title: "Reputable", + gradient: goodGradient, + }, + { + minutesLessThan: 50, + title: "Well-known", + gradient: goodGradient, + }, + { + minutesLessThan: 70, + title: "Significant", + gradient: veryGoodGradient, + }, + { + minutesLessThan: 90, + title: "Famous", + gradient: veryGoodGradient, + }, + { + minutesLessThan: 110, + title: "Glorious", + gradient: ultraGoodGradient, + }, + { + minutesLessThan: 130, + title: "Fabled", + gradient: ultraGoodGradient, + }, + { + minutesLessThan: -1, + title: "Legendary", + gradient: bestGradient, + }, +]; + +export const reputationDefault = 50*600; + +let lastMinutesThan = -1; +export const reputationLevelsTooltip = ( + + + {ranks.map(value => { + if (lastMinutesThan === -1) { + lastMinutesThan = 0; + } + const progression = calculateProgression(lastMinutesThan * 600); + const text = `${value.title} (${progression})`; + + lastMinutesThan = value.minutesLessThan; + return ( + + + {text} + + + ); + })} + + +); + +export const getReputation = (progression_points: number) => { + const minutes = progression_points / 600; + + for (let index = 0; index < ranks.length; index++) { + const rank = ranks[index]; + if (minutes < rank.minutesLessThan) { + return rank; + } + } + + return ranks[ranks.length - 1]; +}; + +export const calculateReputationLevel = ( + progression_points: number, + textOnly: boolean +) => { + const minutes = progression_points / 600; + const displayedProgression = calculateProgression(progression_points); + const reputation = getReputation(progression_points); + if (textOnly) { + return ({reputation.title} ({displayedProgression})); + } + return ( + + {reputation.title} ({displayedProgression}) + + ); +}; diff --git a/tgui/packages/tgui/interfaces/Uplink/constants.ts b/tgui/packages/tgui/interfaces/Uplink/constants.ts new file mode 100644 index 00000000000..3cda3fe45de --- /dev/null +++ b/tgui/packages/tgui/interfaces/Uplink/constants.ts @@ -0,0 +1,7 @@ +export enum ObjectiveState { + Inactive = 1, + Active = 2, + Completed = 3, + Failed = 4, + Invalid = 5, +} diff --git a/tgui/packages/tgui/interfaces/Uplink/index.tsx b/tgui/packages/tgui/interfaces/Uplink/index.tsx new file mode 100644 index 00000000000..775e3760804 --- /dev/null +++ b/tgui/packages/tgui/interfaces/Uplink/index.tsx @@ -0,0 +1,347 @@ +import { useBackend } from '../../backend'; +import { Window } from '../../layouts'; +import { GenericUplink, Item } from './GenericUplink'; +import { Component } from 'inferno'; +import { fetchRetry } from '../../http'; +import { resolveAsset } from '../../assets'; +import { BooleanLike } from 'common/react'; +import { Box, Tabs, Button, Stack, Section, Tooltip } from '../../components'; +import { Objective, ObjectiveMenu } from './ObjectiveMenu'; +import { calculateProgression, calculateReputationLevel, reputationDefault, reputationLevelsTooltip } from './calculateReputationLevel'; + +type UplinkItem = { + id: string, + name: string, + cost: number, + desc: string, + category: string, + purchasable_from: number, + restricted: BooleanLike, + limited_stock: number, + restricted_roles: string, + progression_minimum: number, + ref?: string, +} + +type UplinkData = { + telecrystals: number, + progression_points: number, + current_expected_progression: number, + progression_scaling_deviance: number, + current_progression_scaling: number, + uplink_flag: number, + assigned_role: string, + debug: BooleanLike, + extra_purchasable: UplinkItem[], + extra_purchasable_stock: { + [key: string]: number; + } + current_stock: { + [key: string]: number; + } + + has_objectives: BooleanLike, + has_progression: BooleanLike, + potential_objectives: Objective[], + active_objectives: Objective[], + maximum_active_objectives: number, + maximum_potential_objectives: number, +} + +type UplinkState = { + allItems: UplinkItem[], + allCategories: string[], + currentTab: number, +} + +type ServerData = { + items: UplinkItem[], + categories: string[], +} + +type ItemExtraData = { + ref?: string | undefined +} + +// Cache response so it's only sent once +let fetchServerData: Promise | undefined; + +export class Uplink extends Component<{}, UplinkState> { + constructor() { + super(); + this.state = { + allItems: [], + allCategories: [], + currentTab: 0, + }; + } + + componentDidMount() { + this.populateServerData(); + } + + async populateServerData() { + if (!fetchServerData) { + fetchServerData = fetchRetry(resolveAsset("uplink.json")) + .then(response => response.json()); + } + const { data } = useBackend(this.context); + + const uplinkFlag = data.uplink_flag; + const uplinkRole = data.assigned_role; + + const uplinkData = await fetchServerData; + uplinkData.items = uplinkData.items.sort((a, b) => { + if (a.progression_minimum < b.progression_minimum) { + return -1; + } + if (a.progression_minimum > b.progression_minimum) { + return 1; + } + return 0; + }); + + const availableCategories: string[] = []; + uplinkData.items = uplinkData.items.filter(value => { + if (value.restricted_roles.length > 0 + && !value.restricted_roles.includes(uplinkRole)) { + return false; + } + { if (value.purchasable_from & uplinkFlag) { + return true; + } } + return false; + }); + + uplinkData.items.forEach(item => { + if (!availableCategories.includes(item.category)) { + availableCategories.push(item.category); + } + }); + + uplinkData.categories = uplinkData.categories.filter(value => + availableCategories.includes(value)); + + this.setState({ + allItems: uplinkData.items, + allCategories: uplinkData.categories, + }); + } + + render() { + const { data, act } = useBackend(this.context); + const { + telecrystals, + progression_points, + active_objectives, + potential_objectives, + has_objectives, + has_progression, + maximum_active_objectives, + maximum_potential_objectives, + current_expected_progression, + progression_scaling_deviance, + current_progression_scaling, + extra_purchasable, + extra_purchasable_stock, + current_stock, + } = data; + const { + allItems, + allCategories, + currentTab, + } = this.state as UplinkState; + + const itemsToAdd = [...allItems]; + const items: Item[] = []; + itemsToAdd.push(...extra_purchasable); + for (let i = 0; i < extra_purchasable.length; i++) { + const item = extra_purchasable[i]; + if (!allCategories.includes(item.category)) { + allCategories.push(item.category); + } + } + for (let i = 0; i < itemsToAdd.length; i++) { + const item = itemsToAdd[i]; + const canBuy = telecrystals >= item.cost; + const hasEnoughProgression + = progression_points >= item.progression_minimum; + items.push({ + id: item.id, + name: item.name, + category: item.category, + desc: ( + + {item.desc} + + ), + cost: ( + + {item.cost} TC + {has_progression + ? ( + <> + ,  + + {calculateReputationLevel(item.progression_minimum, true)} + + + ) + : ""} + + ), + disabled: !canBuy || (has_progression && !hasEnoughProgression), + extraData: { + ref: item.ref, + }, + }); + } + // Get the difference between the current progression and + // expected progression + let progressionPercentage + = (current_expected_progression - progression_points); + // Clamp it down between 0 and 2 + progressionPercentage + = Math.min(Math.max( + progressionPercentage / progression_scaling_deviance, -1), 1); + // Round it and convert it into a percentage + progressionPercentage = Math.round(progressionPercentage * 1000)/10; + return ( + + + + +
+ + + + SyndOS Version 3.17   + + Connection Secure + + + + WELCOME, AGENT. + + + + + + + Your current level of reputation.  + Reputation determines what quality of objective + you get and what items you can purchase.  + + {/* A minute in deciseconds */} + Reputation passively increases by {calculateProgression(current_progression_scaling)} +  every minute + + {Math.abs(progressionPercentage) > 0 && ( + + Because your reputation is {progressionPercentage < 0? "ahead " : "behind "} + of where it should be, you are getting + + {progressionPercentage}% + + {progressionPercentage < 0? "less": "more"} reputation every minute + + )} + {reputationLevelsTooltip} + + + ) || "Your current level of reputation. You are a respected elite and do not need to improve your reputation."}> + {/* If we have no progression, + just give them a generic title */} + {has_progression + ? calculateReputationLevel(progression_points, false) + : calculateReputationLevel(reputationDefault, false)} + + + + {telecrystals} TC + + + +
+
+ +
+ + + + {!!has_objectives && ( + this.setState({ currentTab: 0 })} + > + Objectives + + )} + this.setState({ currentTab: 1 })} + > + Market + + + + +
+
+ + {(currentTab === 0 && has_objectives) && ( + + act("objective_act", { check: objective.original_progression, objective_action: action, index: objective.id })} + handleStartObjective={(objective) => act("start_objective", { check: objective.original_progression, index: objective.id })} + handleObjectiveAbort={(objective) => + act("objective_abort", { check: objective.original_progression, index: objective.id })} + handleObjectiveCompleted={(objective) => act("finish_objective", { check: objective.original_progression, index: objective.id })} + handleRequestObjectives={() => act("regenerate_objectives")} + /> + ) || ( + { + const extraDataItem = item as Item; + if (!extraDataItem.extraData?.ref) { + act("buy", { path: item.id }); + } else { + act("buy", { ref: extraDataItem.extraData.ref }); + } + }} + /> + )} + +
+
+
+ ); + } + +} + + diff --git a/tgui/packages/tgui/styles/interfaces/Uplink.scss b/tgui/packages/tgui/styles/interfaces/Uplink.scss new file mode 100644 index 00000000000..6730cd636eb --- /dev/null +++ b/tgui/packages/tgui/styles/interfaces/Uplink.scss @@ -0,0 +1,81 @@ +$badGradient: linear-gradient(to right, #9c1e1e, #6c2828, #9c1e1e); +$normalGradient: linear-gradient(to right, #5d5041, #40372d, #5d5041); +$goodGradient: linear-gradient(to right, #515d6c, #252a30, #515d6c); +$veryGoodGradient: linear-gradient(to right, #977949, #534328, #977949); +$superGoodGradient: linear-gradient(to right, #9d9948, #777437, #9d9948); +$bestGradient: linear-gradient(to right, #9d486b, #57283c, #9d486b); + +$_rep_map: ( + 'bad': $badGradient, + 'normal': $normalGradient, + 'good': $goodGradient, + 'very-good': $veryGoodGradient, + 'super-good': $superGoodGradient, + 'best': $bestGradient +); + +@each $reputation-name, $gradient-value in $_rep_map { + .reputation-#{$reputation-name} { + background-image: $gradient-value !important; + } + + .reputation-#{$reputation-name}.Button { + background-position: 0 0; + transition: background-position 50ms; + + &:hover { + transition: background-position 0ms; + } + + &:focus { + transition: background-position 100ms; + } + + &:hover, + &:focus { + background-position: 50em 0; + } + } +} + +.UplinkObjective__Titlebar { + border-top-left-radius: 12px; + border-top-right-radius: 12px; + padding: 0.6rem; + padding-left: 1rem; + padding-right: 1rem; + padding-bottom: 0.4rem; + + font-weight: bold; + border: black solid 2px; + border-bottom: none; +} + +.UplinkObjective__EmptyObjective { + background-color: rgba(0, 0, 0, 0.4); + border: black solid 2px; + padding: 1rem; + width: 100%; + height: 100%; + text-align: center; + vertical-align: center; +} + +.UplinkObjective__Content { + background-color: rgba(0, 0, 0, 0.4); + border: black solid 2px; + border-top: none; + border-bottom: none; + padding: 1rem; + padding-top: 0.5rem; + padding-bottom: 0; +} + + +.UplinkObjective__Footer { + background-color: rgba(0, 0, 0, 0.4); + border: black solid 2px; + border-top: none; + padding-top: 0.5rem; + padding-bottom: 1rem; +} diff --git a/tgui/packages/tgui/styles/main.scss b/tgui/packages/tgui/styles/main.scss index b0e1c5fa985..6e564433e7f 100644 --- a/tgui/packages/tgui/styles/main.scss +++ b/tgui/packages/tgui/styles/main.scss @@ -47,6 +47,7 @@ // Interfaces @include meta.load-css('./interfaces/ListInput.scss'); @include meta.load-css('./interfaces/IntegratedCircuit.scss'); +@include meta.load-css('./interfaces/Uplink.scss'); @include meta.load-css('./interfaces/AlertModal.scss'); @include meta.load-css('./interfaces/CameraConsole.scss'); @include meta.load-css('./interfaces/Changelog.scss');