From ec54dacb23b28dc95a60ff6b401b9618203b2655 Mon Sep 17 00:00:00 2001 From: James Date: Sat, 29 Jan 2022 22:54:09 +0000 Subject: [PATCH] Lots of changes Adds fan to stop air escaping Adds turrets to slave shuttle, default setting to stun Adds a few more buyable slave shipments Modifies shipment costs to be cheaper Stops the station from being able to spam the slaver comms by rapidly buying/unbuying a slave Allows the slavers to edit a slave's price using the traitor panel to add slaver status to a player no longer teleports them to the slaver spawn or wipes their existing gear. And other stuff I can't remember --- _maps/shuttles/slaveship_basic-old.dmm | 1196 +++++++++++++++++ _maps/shuttles/slaveship_basic.dmm | 41 +- .../game/machinery/computer/communications.dm | 27 +- .../code/game/machinery/computer/slavery.dm | 32 +- .../machinery/porta_turret/portable_turret.dm | 11 + .../object/items/devices/radio/electropack.dm | 26 +- .../game/object/items/storage/backpack.dm | 11 + .../modules/admin/verbs/one_click_antag.dm | 2 + .../slaver/equipment/orderable_gear.dm | 69 +- .../slaver/equipment/slaver_items.dm | 45 + .../code/modules/antagonists/slaver/slaver.dm | 9 +- .../reagents/reagent_containers/bottle.dm | 5 + .../reagents/reagent_containers/spray.dm | 2 + tgstation.dme | 4 + .../tgui/interfaces/CommunicationsConsole.js | 8 +- tgui/packages/tgui/interfaces/SlaveConsole.js | 45 +- 16 files changed, 1473 insertions(+), 60 deletions(-) create mode 100644 _maps/shuttles/slaveship_basic-old.dmm create mode 100644 modular_splurt/code/game/machinery/porta_turret/portable_turret.dm create mode 100644 modular_splurt/code/game/object/items/storage/backpack.dm create mode 100644 modular_splurt/code/modules/reagents/reagent_containers/bottle.dm create mode 100644 modular_splurt/code/modules/reagents/reagent_containers/spray.dm diff --git a/_maps/shuttles/slaveship_basic-old.dmm b/_maps/shuttles/slaveship_basic-old.dmm new file mode 100644 index 0000000000..393ce380d1 --- /dev/null +++ b/_maps/shuttles/slaveship_basic-old.dmm @@ -0,0 +1,1196 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"af" = ( +/obj/machinery/computer/camera_advanced/shuttle_docker/slaver, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"ak" = ( +/obj/machinery/computer/shuttle/slaver, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"ax" = ( +/turf/closed/wall/r_wall/syndicate, +/area/shuttle/slaveship) +"ay" = ( +/obj/machinery/computer/camera_advanced/syndie, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"aA" = ( +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"bj" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"bK" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"bN" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"bP" = ( +/obj/machinery/computer/med_data/syndie, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"bV" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/turretid{ + pixel_x = -32; + req_access = null + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"cc" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"ce" = ( +/obj/machinery/porta_turret/slaver{ + dir = 5 + }, +/turf/closed/wall/r_wall/syndicate, +/area/shuttle/slaveship) +"ct" = ( +/turf/open/floor/plating, +/area/shuttle/slaveship) +"cy" = ( +/obj/structure/shuttle/engine/propulsion/left, +/turf/open/floor/plating, +/area/shuttle/slaveship) +"cO" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/button/door{ + id = "slaveshipshutters"; + name = "Cockpit Shutter Control"; + pixel_y = -26 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"ev" = ( +/obj/effect/turf_decal/tile/brown, +/obj/effect/turf_decal/tile/brown{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/slaveship) +"ez" = ( +/obj/machinery/porta_turret/slaver{ + dir = 10 + }, +/turf/closed/wall/r_wall/syndicate, +/area/shuttle/slaveship) +"fI" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/item/radio, +/obj/item/radio, +/obj/item/radio, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"gc" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/mech_bay_recharge_floor, +/area/shuttle/slaveship) +"gZ" = ( +/obj/machinery/door/airlock/hatch{ + req_access_txt = "152" + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"hR" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"iP" = ( +/obj/item/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/item/storage/firstaid/o2, +/obj/item/storage/firstaid/toxin{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"kG" = ( +/obj/item/reagent_containers/glass/bottle/epinephrine{ + pixel_x = 6 + }, +/obj/item/reagent_containers/glass/bottle/charcoal{ + pixel_x = -3 + }, +/obj/item/reagent_containers/glass/bottle/epinephrine{ + pixel_x = -3; + pixel_y = 8 + }, +/obj/item/reagent_containers/glass/bottle/charcoal{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/reagent_containers/syringe/epinephrine{ + pixel_x = 3; + pixel_y = -2 + }, +/obj/item/reagent_containers/syringe/epinephrine{ + pixel_x = 2; + pixel_y = 8 + }, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/bot_white, +/obj/item/stack/medical/mesh, +/obj/item/stack/medical/gauze, +/obj/item/stack/medical/suture, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"le" = ( +/obj/structure/bed/roller, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"mA" = ( +/obj/machinery/sleeper{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"ph" = ( +/obj/item/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/fire, +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue, +/obj/item/storage/firstaid/brute{ + pixel_x = -3; + pixel_y = -3 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"pj" = ( +/obj/structure/grille, +/obj/structure/window/plastitanium, +/obj/machinery/door/poddoor/shutters{ + id = "slaveshipshutters"; + name = "blast shutters" + }, +/turf/open/floor/plating, +/area/shuttle/slaveship) +"pl" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"po" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/mask/muzzle, +/obj/item/clothing/glasses/sunglasses/blindfold{ + pixel_y = 4 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"qc" = ( +/obj/machinery/sleeper{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"qT" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"rc" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"sn" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"sv" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"um" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"uy" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plating, +/area/shuttle/slaveship) +"uZ" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/chair/comfy/shuttle, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"vV" = ( +/obj/machinery/computer/crew/syndie, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"wl" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"xr" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/slaveship) +"xX" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"yJ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/suit_storage_unit/mining/eva, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/slaveship) +"zI" = ( +/obj/machinery/door/poddoor{ + id = "slaveshipdoor" + }, +/obj/machinery/button/door{ + id = "slaveshipdoor"; + name = "external door control"; + pixel_y = 26; + req_access_txt = "152" + }, +/obj/docking_port/mobile{ + dheight = 1; + dir = 8; + dwidth = 10; + height = 15; + hidden = 1; + id = "slaver"; + movement_force = list("KNOCKDOWN" = 0, "THROW" = 0); + name = "slaveship"; + port_direction = 4; + width = 22 + }, +/obj/structure/fans/tiny, +/turf/open/floor/plating, +/area/shuttle/slaveship) +"zT" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/open/floor/plating, +/area/shuttle/slaveship) +"Aw" = ( +/obj/machinery/door/window/westright, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"Cd" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/suit_storage_unit/mining/eva, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/slaveship) +"Cj" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/slaveship) +"CM" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"Dj" = ( +/obj/effect/turf_decal/caution/stand_clear/white{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/slaveship) +"DB" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plating, +/area/shuttle/slaveship) +"Ey" = ( +/turf/closed/wall/r_wall/syndicate/nodiagonal, +/area/shuttle/slaveship) +"ET" = ( +/obj/machinery/porta_turret/slaver{ + dir = 9 + }, +/turf/closed/wall/r_wall/syndicate, +/area/shuttle/slaveship) +"Fm" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/suit_storage_unit/mining/eva, +/turf/open/floor/mineral/plastitanium, +/area/shuttle/slaveship) +"FG" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/rack, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"Gj" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"Go" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"GC" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/slaveship) +"GG" = ( +/obj/machinery/light, +/obj/structure/chair/comfy/shuttle{ + dir = 1 + }, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"Iw" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/bed/matress, +/turf/open/floor/plating, +/area/shuttle/slaveship) +"JG" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plating, +/area/shuttle/slaveship) +"Lr" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/light, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"LG" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plating, +/area/shuttle/slaveship) +"MJ" = ( +/turf/template_noop, +/area/template_noop) +"Pl" = ( +/obj/structure/table/reinforced, +/obj/item/storage/box/handcuffs{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/box/handcuffs, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"Qd" = ( +/obj/machinery/computer/mech_bay_power_console, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"Qz" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"Rv" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/recharge_station, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"RD" = ( +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/mech_bay_recharge_port{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"RL" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"Sv" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"Sw" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"TF" = ( +/obj/effect/turf_decal/tile/brown{ + dir = 1 + }, +/obj/effect/turf_decal/tile/brown{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/slaveship) +"Uc" = ( +/obj/machinery/porta_turret/slaver{ + dir = 6 + }, +/turf/closed/wall/r_wall/syndicate, +/area/shuttle/slaveship) +"Uo" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/item/clipboard, +/obj/item/folder/red, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"Uv" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/light, +/turf/open/floor/plating, +/area/shuttle/slaveship) +"UL" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/bed/matress, +/turf/open/floor/plating, +/area/shuttle/slaveship) +"Vy" = ( +/obj/machinery/door/airlock/hatch{ + req_access_txt = "152" + }, +/turf/open/floor/plating, +/area/shuttle/slaveship) +"VS" = ( +/obj/structure/table/reinforced, +/obj/item/storage/toolbox/mechanical, +/obj/item/storage/toolbox/electrical{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/obj/item/multitool, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"VW" = ( +/obj/structure/table/reinforced, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/item/extinguisher/mini{ + pixel_x = 4 + }, +/obj/item/clothing/head/welding, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"Wi" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/gloves/combat, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/light, +/obj/item/flashlight/seclite, +/obj/item/flashlight/seclite{ + pixel_x = 2; + pixel_y = 4 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"Wk" = ( +/obj/structure/window/plastitanium, +/obj/structure/grille, +/turf/open/floor/plating, +/area/shuttle/slaveship) +"WK" = ( +/obj/structure/chair/comfy/shuttle, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"Xl" = ( +/turf/open/floor/mineral/plastitanium/red, +/area/shuttle/slaveship) +"XG" = ( +/obj/structure/bed/matress, +/obj/effect/decal/cleanable/blood, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plating, +/area/shuttle/slaveship) +"XN" = ( +/obj/structure/shuttle/engine/heater, +/obj/effect/spawner/structure/window/plastitanium/pirate, +/obj/structure/window/reinforced/tinted{ + layer = 3.1 + }, +/turf/open/floor/plating/airless, +/area/shuttle/slaveship) +"Yh" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/item/pickaxe, +/obj/item/storage/bag/ore, +/obj/item/pickaxe, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) +"ZZ" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/shuttle/slaveship) + +(1,1,1) = {" +MJ +MJ +MJ +MJ +MJ +MJ +MJ +MJ +MJ +MJ +MJ +MJ +MJ +MJ +ax +ax +ax +ax +ax +ez +MJ +MJ +"} +(2,1,1) = {" +MJ +MJ +MJ +MJ +MJ +MJ +MJ +MJ +ET +ax +ax +ax +ax +ax +ax +Iw +DB +DB +XG +XN +cy +MJ +"} +(3,1,1) = {" +MJ +MJ +MJ +MJ +MJ +MJ +MJ +MJ +ax +yJ +Fm +xr +Fm +Cd +ax +JG +ct +ct +Uv +XN +zT +MJ +"} +(4,1,1) = {" +ET +ax +ax +ax +ax +MJ +MJ +MJ +ax +sn +aA +aA +aA +CM +ax +LG +ct +uy +UL +XN +cy +MJ +"} +(5,1,1) = {" +ax +bP +bV +bK +ax +ax +ax +ax +ax +um +aA +xX +aA +FG +ax +Wk +Vy +Wk +Wk +Ey +ax +MJ +"} +(6,1,1) = {" +pj +vV +sv +bN +ax +iP +kG +ph +ax +ax +gZ +Wk +gZ +ax +Ey +aA +aA +aA +aA +Pl +XN +cy +"} +(7,1,1) = {" +pj +af +aA +cc +ax +hR +aA +aA +aA +qT +aA +aA +aA +qT +gZ +aA +Xl +Xl +aA +po +XN +cy +"} +(8,1,1) = {" +pj +ak +sv +aA +gZ +aA +Xl +Xl +Xl +Xl +Xl +Xl +Xl +aA +Wk +aA +ev +TF +aA +pl +XN +zT +"} +(9,1,1) = {" +pj +ay +aA +cO +ax +hR +aA +aA +aA +rc +aA +aA +aA +rc +gZ +aA +Xl +Xl +aA +wl +XN +cy +"} +(10,1,1) = {" +pj +Qz +bj +Lr +ax +mA +le +qc +ax +ax +gZ +Wk +gZ +ax +Ey +aA +aA +aA +aA +wl +XN +zT +"} +(11,1,1) = {" +ax +Uo +Go +fI +ax +ax +ax +ax +ax +WK +aA +aA +aA +Gj +ax +Rv +Aw +ZZ +VS +Ey +ax +MJ +"} +(12,1,1) = {" +ce +ax +ax +ax +ax +MJ +MJ +MJ +ax +uZ +aA +aA +aA +GG +ax +Qd +aA +aA +VW +XN +cy +MJ +"} +(13,1,1) = {" +MJ +MJ +MJ +MJ +MJ +MJ +MJ +MJ +ax +WK +Cj +Dj +GC +Gj +ax +gc +Sw +aA +Wi +XN +cy +MJ +"} +(14,1,1) = {" +MJ +MJ +MJ +MJ +MJ +MJ +MJ +MJ +ce +ax +ax +zI +ax +ax +ax +RD +RL +Sv +Yh +XN +zT +MJ +"} +(15,1,1) = {" +MJ +MJ +MJ +MJ +MJ +MJ +MJ +MJ +MJ +MJ +MJ +MJ +MJ +MJ +ax +ax +ax +ax +ax +Uc +MJ +MJ +"} diff --git a/_maps/shuttles/slaveship_basic.dmm b/_maps/shuttles/slaveship_basic.dmm index e8949d7494..b80de7529f 100644 --- a/_maps/shuttles/slaveship_basic.dmm +++ b/_maps/shuttles/slaveship_basic.dmm @@ -79,6 +79,10 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/machinery/turretid{ + pixel_x = -32; + req_access = null + }, /turf/open/floor/plasteel/dark, /area/shuttle/slaveship) "cc" = ( @@ -312,6 +316,12 @@ }, /turf/open/floor/plasteel/dark, /area/shuttle/slaveship) +"tc" = ( +/obj/machinery/porta_turret/slaver{ + dir = 10 + }, +/turf/closed/wall/r_wall/syndicate, +/area/shuttle/slaveship) "um" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ @@ -405,6 +415,7 @@ port_direction = 4; width = 22 }, +/obj/structure/fans/tiny, /turf/open/floor/plating, /area/shuttle/slaveship) "zT" = ( @@ -421,6 +432,18 @@ }, /turf/open/floor/plasteel/dark, /area/shuttle/slaveship) +"Bt" = ( +/obj/machinery/porta_turret/slaver{ + dir = 9 + }, +/turf/closed/wall/r_wall/syndicate, +/area/shuttle/slaveship) +"BQ" = ( +/obj/machinery/porta_turret/slaver{ + dir = 5 + }, +/turf/closed/wall/r_wall/syndicate, +/area/shuttle/slaveship) "Cd" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ @@ -792,6 +815,12 @@ /obj/item/pickaxe, /turf/open/floor/plasteel/dark, /area/shuttle/slaveship) +"YG" = ( +/obj/machinery/porta_turret/slaver{ + dir = 6 + }, +/turf/closed/wall/r_wall/syndicate, +/area/shuttle/slaveship) "ZZ" = ( /obj/structure/window/reinforced{ dir = 8 @@ -825,7 +854,7 @@ ax ax ax ax -ax +tc MJ MJ "} @@ -838,7 +867,7 @@ MJ MJ MJ MJ -ax +Bt ax ax ax @@ -878,7 +907,7 @@ zT MJ "} (4,1,1) = {" -ax +Bt ax ax ax @@ -1070,7 +1099,7 @@ ax MJ "} (12,1,1) = {" -ax +BQ ax ax ax @@ -1126,7 +1155,7 @@ MJ MJ MJ MJ -ax +BQ ax ax zI @@ -1161,7 +1190,7 @@ ax ax ax ax -ax +YG MJ MJ "} diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 3ce0e6a671..1b9141ab01 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -352,25 +352,23 @@ for(var/tracked_slave in GLOB.tracked_slaves) var/obj/item/electropack/shockcollar/slave/C = tracked_slave - if (REF(C) == boughtID) + if (REF(C) == boughtID) // Get collar var/datum/bank_account/bank = SSeconomy.get_dep_account(ACCOUNT_CAR) if(bank) if(C.bought) bank.adjust_money(C.price) - GLOB.slavers_credits_deposits -= C.price - C.bought = FALSE + C.setBought(FALSE) for(var/obj/machinery/computer/slavery/tracked_slave_console in GLOB.tracked_slave_consoles) - tracked_slave_console.radioAnnounce("The station has recalled the ransom funds for [C.loc.name]") + tracked_slave_console.radioAnnounce("The station has recalled the ransom funds for [C.loc.name].") else bank.adjust_money(-C.price) - GLOB.slavers_credits_deposits += C.price - C.bought = TRUE + C.setBought(TRUE) for(var/obj/machinery/computer/slavery/tracked_slave_console in GLOB.tracked_slave_consoles) - tracked_slave_console.radioAnnounce("The station has paid the ransom funds for [C.loc.name]") + tracked_slave_console.radioAnnounce("The station has paid the ransom funds for [C.loc.name].") break /obj/machinery/computer/communications/ui_data(mob/user) @@ -444,10 +442,17 @@ slave["bought"] = C.bought slave["price"] = C.price - if(bank && !C.bought && bank.account_balance < C.price) - slave["cannotafford"] = TRUE - else - slave["cannotafford"] = FALSE + var/canToggleRansom = FALSE + var/ransomFeedback = "" + var/ransomChangeCooldown = C.nextRansomChange - world.time + + if(ransomChangeCooldown > 0) // On cooldown. + ransomFeedback += " (can undo in [round(ransomChangeCooldown / 10)])" + else if (C.bought || (bank && bank.account_balance >= C.price)) // Slave already bought + canToggleRansom = TRUE + + slave["cantoggleransom"] = canToggleRansom + slave["toggleransomfeedback"] = ransomFeedback slaves += list(slave) //Add this slave to the list of slaves data["slaves"] = slaves diff --git a/modular_splurt/code/game/machinery/computer/slavery.dm b/modular_splurt/code/game/machinery/computer/slavery.dm index 6be7d0ac1e..c5f7cf2925 100644 --- a/modular_splurt/code/game/machinery/computer/slavery.dm +++ b/modular_splurt/code/game/machinery/computer/slavery.dm @@ -65,6 +65,13 @@ /obj/machinery/computer/slavery/ui_data(mob/user) var/list/data = list() + if (world.time < GLOB.slavers_last_announcement + 300) + data["intercomrecharging"] = TRUE + else + data["intercomrecharging"] = FALSE + + var/datum/bank_account/bank = SSeconomy.get_dep_account(ACCOUNT_CAR) + data["cargocredits"] = bank.account_balance data["credits"] = GLOB.slavers_credits_balance data["compactMode"] = compact_mode var/list/slaves = list() @@ -84,6 +91,7 @@ slave["id"] = REF(C) slave["name"] = L.real_name slave["price"] = C.price + slave["pricechangecooldown"] = round((C.nextPriceChange - world.time) / 10) slave["bought"] = C.bought slave["shockcooldown"] = C.shock_cooldown; slave["inexportbay"] = FALSE @@ -156,17 +164,26 @@ GLOB.slavers_last_announcement = world.time if("setPrice") - var/newPrice = input(usr, "The station will need to pay this to get the slave back.", "Set slave price", 5000) as num - if(!newPrice) + var/newPrice = input(usr, "The station will need to pay this to get the slave back.", "Set slave price", collar.price) as num + if(!newPrice) // Blank input + return + + if (collar.bought) // The slave has already been pair for as we try to change the price + say("The station has already paid the ransom, we can't change the price now!") + return + + if (collar.nextPriceChange - world.time > 0) // Another user changed it already just now + say("The price has already changed recently. Please wait [round((collar.nextPriceChange - world.time) / 10)] seconds.") return newPrice = clamp(round(newPrice), 1, 1000000) - collar.price = newPrice - var/mob/living/M = collar.loc - priority_announce("[M.real_name] has been captured. Send us [newPrice]cr to get them back!.", sender_override = "[GLOB.slavers_team_name] Transmission") + + if (newPrice == collar.price) // New price is same as the old price + return + + collar.setPrice(newPrice) if("export") - GLOB.slavers_credits_deposits -= collar.price GLOB.slavers_credits_balance += collar.price GLOB.slavers_credits_total += collar.price GLOB.slavers_slaves_sold++ @@ -196,6 +213,9 @@ collar.receive_signal(signal) if("release") + var/datum/bank_account/bank = SSeconomy.get_dep_account(ACCOUNT_CAR) + if (collar.bought && bank) // If the slave was paid for by the station, but we removed their slave collar for some reason, we return the money to the station. + bank.adjust_money(collar.price) qdel(collar) if("compact_toggle") diff --git a/modular_splurt/code/game/machinery/porta_turret/portable_turret.dm b/modular_splurt/code/game/machinery/porta_turret/portable_turret.dm new file mode 100644 index 0000000000..04ec6e62d0 --- /dev/null +++ b/modular_splurt/code/game/machinery/porta_turret/portable_turret.dm @@ -0,0 +1,11 @@ +/obj/machinery/porta_turret/slaver + always_up = 1 + use_power = NO_POWER_USE + has_cover = 0 + scan_range = 9 + req_access = list() + icon_state = "standard_stun" + faction = list(ROLE_SLAVER) + +/obj/machinery/porta_turret/slaver/assess_perp(mob/living/carbon/human/perp) + return 10 //Slaver turrets shoot everything not in their faction diff --git a/modular_splurt/code/game/object/items/devices/radio/electropack.dm b/modular_splurt/code/game/object/items/devices/radio/electropack.dm index 1d91e80e44..1eccc097f3 100644 --- a/modular_splurt/code/game/object/items/devices/radio/electropack.dm +++ b/modular_splurt/code/game/object/items/devices/radio/electropack.dm @@ -2,8 +2,10 @@ name = "slave collar" desc = "A reinforced metal collar. This one has a shock element and tracker installed." - var/price = 0 - var/bought = FALSE + var/price = 0 // The ransom amount + var/bought = FALSE // Has the station paid the ransom + var/nextPriceChange = 0 // Last time the price was changed + var/nextRansomChange = 0 // Last time the ransom was paid / cancelled shockStrength = 400 shockCooldown = 200 code = -1 @@ -18,6 +20,7 @@ visible_message("The [src] detaches from [src.loc]'s neck.", \ "The [src] detaches from your neck.") playsound(get_turf(src.loc), 'sound/machines/terminal_eject_disc.ogg', 50, 1) + GLOB.tracked_slaves -= src . = ..() @@ -34,3 +37,22 @@ if(slot == SLOT_NECK) playsound(get_turf(M), 'sound/machines/triple_beep.ogg', 50, 1) ADD_TRAIT(src, TRAIT_NODROP, CLOTHING_TRAIT) + +/obj/item/electropack/shockcollar/slave/proc/setPrice(newPrice) + var/mob/living/M = loc + var/announceMessage = "[M.real_name] has been captured. Send us [newPrice]cr with your communications console to get them back!" + if (price) // If price has already been set once, we are just changing it + if (newPrice > price) // Price has increased + announceMessage = "[M.real_name]'s ransom has increased to [newPrice]cr." + else // Price has decreased + announceMessage = "[M.real_name]'s ransom has decreased to [newPrice]cr." + + + price = newPrice + nextPriceChange = world.time + 3000 // Cannot be changed again for 5 minutes + priority_announce(announceMessage, sender_override = "[GLOB.slavers_team_name] Transmission") + + +/obj/item/electropack/shockcollar/slave/proc/setBought(isBought) + bought = isBought + nextRansomChange = world.time + 1200 // Cannot be changed again for 2 minutes diff --git a/modular_splurt/code/game/object/items/storage/backpack.dm b/modular_splurt/code/game/object/items/storage/backpack.dm new file mode 100644 index 0000000000..b612c32248 --- /dev/null +++ b/modular_splurt/code/game/object/items/storage/backpack.dm @@ -0,0 +1,11 @@ +/obj/item/storage/backpack/duffelbag/syndie/med/sleeperbundle + desc = "A large duffel bag containing various knockout chemicals, a handheld chem sprayer, tear gas grenade, a Donksoft assault rifle, box of riot grade darts, a dart pistol, and a box of syringes." + +/obj/item/storage/backpack/duffelbag/syndie/med/sleeperbundle/PopulateContents() + new /obj/item/reagent_containers/spray/chemsprayer/sleeper(src) + new /obj/item/storage/box/syndie_kit/sleeper(src) + new /obj/item/gun/syringe/syndicate(src) + new /obj/item/storage/box/syringes(src) + new /obj/item/grenade/chem_grenade/teargas(src) + new /obj/item/grenade/chem_grenade/teargas(src) + new /obj/item/grenade/chem_grenade/teargas(src) diff --git a/modular_splurt/code/modules/admin/verbs/one_click_antag.dm b/modular_splurt/code/modules/admin/verbs/one_click_antag.dm index 46102a8e0e..302b1a21ff 100644 --- a/modular_splurt/code/modules/admin/verbs/one_click_antag.dm +++ b/modular_splurt/code/modules/admin/verbs/one_click_antag.dm @@ -34,6 +34,8 @@ new_character.mind.add_antag_datum(/datum/antagonist/slaver/leader) else new_character.mind.add_antag_datum(/datum/antagonist/slaver,slaver_team) + + priority_announce("Unidentified ship detected near the station.", "Enemy communication intercepted. Security level elevated.", "intercept") return 1 else return 0 diff --git a/modular_splurt/code/modules/antagonists/slaver/equipment/orderable_gear.dm b/modular_splurt/code/modules/antagonists/slaver/equipment/orderable_gear.dm index 74cf995ec8..6349d7d0d0 100644 --- a/modular_splurt/code/modules/antagonists/slaver/equipment/orderable_gear.dm +++ b/modular_splurt/code/modules/antagonists/slaver/equipment/orderable_gear.dm @@ -20,7 +20,7 @@ GLOBAL_LIST_INIT(slaver_gear, subtypesof(/datum/slaver_gear)) id = "slave_collar" build_path = /obj/item/storage/box/slave_collars category = "Slaving" - cost = 3000 + cost = 500 /datum/slaver_gear/jammers name = "Radio Jammers" @@ -28,7 +28,7 @@ GLOBAL_LIST_INIT(slaver_gear, subtypesof(/datum/slaver_gear)) id = "jammers" build_path = /obj/item/storage/box/jammers category = "Slaving" - cost = 4000 + cost = 1000 /datum/slaver_gear/gloves name = "Combat Krav Maga Gloves" @@ -36,7 +36,7 @@ GLOBAL_LIST_INIT(slaver_gear, subtypesof(/datum/slaver_gear)) id = "gloves" build_path = /obj/item/storage/box/krav_gloves category = "Slaving" - cost = 7000 + cost = 1750 /datum/slaver_gear/pens name = "Sleepy Pens" @@ -44,7 +44,7 @@ GLOBAL_LIST_INIT(slaver_gear, subtypesof(/datum/slaver_gear)) id = "pens" build_path = /obj/item/storage/box/pens category = "Slaving" - cost = 3500 + cost = 1500 /datum/slaver_gear/codespeak name = "Codespeak Manual" @@ -52,7 +52,24 @@ GLOBAL_LIST_INIT(slaver_gear, subtypesof(/datum/slaver_gear)) id = "codespeak" build_path = /obj/item/codespeak_manual/unlimited category = "Slaving" - cost = 3000 + cost = 1250 + +/datum/slaver_gear/chameleon + name = "Chameleon Kit" + description = "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." + id = "chameleon" + build_path = /obj/item/storage/box/syndie_kit/chameleon + category = "Slaving" + cost = 1000 + +/datum/slaver_gear/policing + name = "Policing Kit" + description = "Strobe shield x 1. Strobe replacement bulbs x 2. Stunbaton x 1. Box of handcuffs x 1." + id = "policing" + build_path = /obj/structure/closet/crate/policing_shipment + category = "Slaving" + cost = 2000 /datum/slaver_gear/slaver_gear name = "Slaver Gear" @@ -60,7 +77,15 @@ GLOBAL_LIST_INIT(slaver_gear, subtypesof(/datum/slaver_gear)) id = "slaver_gear" build_path = /obj/structure/closet/crate/slaver_loadout category = "Slaving" - cost = 3500 + cost = 750 + +/datum/slaver_gear/x4 + name = "X4 charges" + description = "X4 plastic explosive charge x 3." + id = "x4" + build_path = /obj/item/storage/box/syndie_kit/x4 + category = "Advanced" + cost = 1250 /datum/slaver_gear/emag name = "Cryptographic Sequencer" @@ -68,7 +93,7 @@ GLOBAL_LIST_INIT(slaver_gear, subtypesof(/datum/slaver_gear)) id = "emag" build_path = /obj/item/card/emag category = "Advanced" - cost = 5500 + cost = 3000 /datum/slaver_gear/implant_teleport name = "Emergency Teleport Implants" @@ -76,7 +101,7 @@ GLOBAL_LIST_INIT(slaver_gear, subtypesof(/datum/slaver_gear)) id = "implant_teleport" build_path = /obj/item/storage/box/slaver_teleport category = "Advanced" - cost = 15000 + cost = 7000 /datum/slaver_gear/hardsuits name = "Combat Hardsuits" @@ -84,7 +109,15 @@ GLOBAL_LIST_INIT(slaver_gear, subtypesof(/datum/slaver_gear)) id = "hardsuits" build_path = /obj/structure/closet/crate/slaver_hardsuits category = "Advanced" - cost = 10000 + cost = 4500 + +/datum/slaver_gear/riot + name = "Riot Kit" + description = "Toy L6 SAW with riot darts." + id = "riot" + build_path = /obj/structure/closet/crate/l6saw_shipment + category = "Advanced" + cost = 2000 /datum/slaver_gear/medic name = "Medic Kit" @@ -92,7 +125,17 @@ GLOBAL_LIST_INIT(slaver_gear, subtypesof(/datum/slaver_gear)) id = "implant_teleport" build_path = /obj/item/storage/firstaid/tactical/slaver category = "Advanced" - cost = 8500 + cost = 2500 + +/datum/slaver_gear/chems + name = "Bio Kit" + description = "Chemical warfare? Warcrimes? Better not tell your mom! A set of items that drug your victim in case asking them nicely didn't work. \ + Contains a chem sprayer that confuses, knocks down and eventually knocks out the victim. A dart pistol. A mix of knockout and mute chems. And some teargas grenades just in case. \ + Disclaimer: Does not work on synthetic targets." + id = "chems" + build_path = /obj/item/storage/backpack/duffelbag/syndie/med/sleeperbundle + category = "Advanced" + cost = 2500 /datum/slaver_gear/marksman name = "Marksman Kit" @@ -100,7 +143,7 @@ GLOBAL_LIST_INIT(slaver_gear, subtypesof(/datum/slaver_gear)) id = "marksman" build_path = /obj/structure/closet/crate/slaver_marksman category = "Advanced" - cost = 17500 + cost = 10000 /datum/slaver_gear/mech name = "Gygax 'Riot-Control' Exosuit" @@ -108,7 +151,7 @@ GLOBAL_LIST_INIT(slaver_gear, subtypesof(/datum/slaver_gear)) id = "mech" build_path = /obj/structure/closet/crate/slaver_mech category = "Mech" - cost = 45000 + cost = 40000 /datum/slaver_gear/mech_ammo name = "Gygax Exosuit Ammo" @@ -116,4 +159,4 @@ GLOBAL_LIST_INIT(slaver_gear, subtypesof(/datum/slaver_gear)) id = "mech_ammo" build_path = /obj/structure/closet/crate/slaver_mech_ammo category = "Mech" - cost = 17000 + cost = 10000 diff --git a/modular_splurt/code/modules/antagonists/slaver/equipment/slaver_items.dm b/modular_splurt/code/modules/antagonists/slaver/equipment/slaver_items.dm index 4681fdbb6b..31ba8a7f68 100644 --- a/modular_splurt/code/modules/antagonists/slaver/equipment/slaver_items.dm +++ b/modular_splurt/code/modules/antagonists/slaver/equipment/slaver_items.dm @@ -22,6 +22,7 @@ name = "marksman gear shipment" /obj/structure/closet/crate/slaver_marksman/PopulateContents() + new /obj/item/ammo_box/magazine/sniper_rounds/soporific(src) new /obj/item/ammo_box/magazine/sniper_rounds/soporific(src) new /obj/item/ammo_box/magazine/sniper_rounds/soporific(src) new /obj/item/gun/ballistic/automatic/sniper_rifle/sleepy(src) @@ -95,3 +96,47 @@ /obj/structure/closet/crate/slaver_mech_ammo/PopulateContents() new /obj/item/mecha_ammo/missiles_br(src) new /obj/item/mecha_ammo/clusterbang(src) + +/obj/item/storage/box/syndie_kit/sleeper + name = "boxed chemical kit" + +// /obj/item/storage/box/syndie_kit/sleeper/ComponentInitialize() +// . = ..() +// var/datum/component/storage/STR = GetComponent(/datum/component/storage) +// STR.max_items = 7 + +/obj/item/storage/box/syndie_kit/sleeper/PopulateContents() + new /obj/item/reagent_containers/glass/bottle/mutetoxin(src) + new /obj/item/reagent_containers/glass/bottle/mutetoxin(src) + new /obj/item/reagent_containers/glass/bottle/mutetoxin(src) + new /obj/item/reagent_containers/glass/bottle/chloralhydrate(src) + new /obj/item/reagent_containers/glass/bottle/chloralhydrate(src) + new /obj/item/reagent_containers/glass/bottle/chloralhydrate(src) + new /obj/item/reagent_containers/syringe(src) + +/obj/item/storage/box/syndie_kit/x4 + name = "boxed X4 charges" + +/obj/item/storage/box/syndie_kit/x4/PopulateContents() + new /obj/item/grenade/plastic/x4(src) + new /obj/item/grenade/plastic/x4(src) + new /obj/item/grenade/plastic/x4(src) + +/obj/structure/closet/crate/l6saw_shipment + name = "L6 saw shipment" + +/obj/structure/closet/crate/l6saw_shipment/PopulateContents() + new /obj/item/gun/ballistic/automatic/l6_saw/toy/unrestricted/riot(src) + new /obj/item/ammo_box/magazine/toy/m762/riot(src) + new /obj/item/ammo_box/foambox/riot(src) + new /obj/item/ammo_box/foambox/riot(src) + +/obj/structure/closet/crate/policing_shipment + name = "policing shipment" + +/obj/structure/closet/crate/policing_shipment/PopulateContents() + new /obj/item/shield/riot/flash(src) + new /obj/item/assembly/flash/handheld(src) + new /obj/item/assembly/flash/handheld(src) + new /obj/item/melee/baton/loaded(src) + new /obj/item/storage/box/handcuffs(src) diff --git a/modular_splurt/code/modules/antagonists/slaver/slaver.dm b/modular_splurt/code/modules/antagonists/slaver/slaver.dm index d2f84258eb..5b0c4ae133 100644 --- a/modular_splurt/code/modules/antagonists/slaver/slaver.dm +++ b/modular_splurt/code/modules/antagonists/slaver/slaver.dm @@ -1,6 +1,5 @@ GLOBAL_VAR_INIT(slavers_team_name, "Slave Traders") -GLOBAL_VAR_INIT(slavers_credits_deposits, 0) -GLOBAL_VAR_INIT(slavers_credits_balance, 7000) +GLOBAL_VAR_INIT(slavers_credits_balance, 4000) GLOBAL_VAR_INIT(slavers_credits_total, 0) GLOBAL_VAR_INIT(slavers_slaves_sold, 0) GLOBAL_VAR_INIT(slavers_last_announcement, 0) @@ -14,8 +13,8 @@ GLOBAL_VAR_INIT(slavers_last_announcement, 0) threat = 7 show_to_ghosts = TRUE var/datum/team/slavers/slaver_team = new /datum/team/slavers - // var/send_to_spawnpoint = TRUE //Should the user be moved to default spawnpoint. var/slaver_outfit = /datum/outfit/slaver + var/send_to_spawnpoint = TRUE //Should the user be moved to default spawnpoint. /datum/antagonist/slaver/proc/update_slaver_icons_added(mob/living/M) var/datum/atom_hud/antag/slaverhud = GLOB.huds[ANTAG_HUD_SLAVER] @@ -54,7 +53,8 @@ GLOBAL_VAR_INIT(slavers_last_announcement, 0) forge_objectives() . = ..() equip_slaver() - move_to_spawnpoint() + if(send_to_spawnpoint) + move_to_spawnpoint() /datum/antagonist/slaver/get_team() return slaver_team @@ -69,6 +69,7 @@ GLOBAL_VAR_INIT(slavers_last_announcement, 0) owner.current.forceMove(pick(GLOB.slaver_leader_start)) /datum/antagonist/slaver/admin_add(datum/mind/new_owner,mob/admin) + send_to_spawnpoint = FALSE new_owner.assigned_role = ROLE_SLAVER new_owner.add_antag_datum(src) message_admins("[key_name_admin(admin)] has slaver'd [new_owner.current].") diff --git a/modular_splurt/code/modules/reagents/reagent_containers/bottle.dm b/modular_splurt/code/modules/reagents/reagent_containers/bottle.dm new file mode 100644 index 0000000000..957cdb52e0 --- /dev/null +++ b/modular_splurt/code/modules/reagents/reagent_containers/bottle.dm @@ -0,0 +1,5 @@ +/obj/item/reagent_containers/glass/bottle/mutetoxin + name = "Mute Toxin Bottle" + desc = "A small bottle of Mute Toxin. It stops the user from speaking." + icon_state = "bottle20" + list_reagents = list(/datum/reagent/toxin/mutetoxin = 30) diff --git a/modular_splurt/code/modules/reagents/reagent_containers/spray.dm b/modular_splurt/code/modules/reagents/reagent_containers/spray.dm new file mode 100644 index 0000000000..df8895c430 --- /dev/null +++ b/modular_splurt/code/modules/reagents/reagent_containers/spray.dm @@ -0,0 +1,2 @@ +/obj/item/reagent_containers/spray/chemsprayer/sleeper + list_reagents = list(/datum/reagent/toxin/sodium_thiopental = 100, /datum/reagent/consumable/condensedcapsaicin = 100, /datum/reagent/toxin/chloralhydrate = 100) diff --git a/tgstation.dme b/tgstation.dme index 373fc7497b..13fda8c098 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -4202,6 +4202,7 @@ #include "modular_splurt\code\game\machinery\chem_alert.dm" #include "modular_splurt\code\game\machinery\research_table.dm" #include "modular_splurt\code\game\machinery\computer\slavery.dm" +#include "modular_splurt\code\game\machinery\porta_turret\portable_turret.dm" #include "modular_splurt\code\game\object\effects\landmarks.dm" #include "modular_splurt\code\game\object\items\cards_ids.dm" #include "modular_splurt\code\game\object\items\cosmetics.dm" @@ -4217,6 +4218,7 @@ #include "modular_splurt\code\game\object\items\robot\robot_upgrades.dm" #include "modular_splurt\code\game\object\items\stacks\sheets\sheet_types.dm" #include "modular_splurt\code\game\object\items\stacks\tiles\tile_types.dm" +#include "modular_splurt\code\game\object\items\storage\backpack.dm" #include "modular_splurt\code\game\object\items\storage\firstaid.dm" #include "modular_splurt\code\game\object\items\storage\secure.dm" #include "modular_splurt\code\game\object\items\weaponry\melee.dm" @@ -4324,6 +4326,8 @@ #include "modular_splurt\code\modules\reagents\chemistry\reagents\food_reagents.dm" #include "modular_splurt\code\modules\reagents\chemistry\recipes\drugs.dm" #include "modular_splurt\code\modules\reagents\chemistry\recipes\lewd.dm" +#include "modular_splurt\code\modules\reagents\reagent_containers\bottle.dm" +#include "modular_splurt\code\modules\reagents\reagent_containers\spray.dm" #include "modular_splurt\code\modules\research\designs\biogenerator_designs.dm" #include "modular_splurt\code\modules\research\designs\power_designs.dm" #include "modular_splurt\code\modules\research\designs\machine_designs\machine_designs_all_misc.dm" diff --git a/tgui/packages/tgui/interfaces/CommunicationsConsole.js b/tgui/packages/tgui/interfaces/CommunicationsConsole.js index b7f10d1694..d9db6b7466 100644 --- a/tgui/packages/tgui/interfaces/CommunicationsConsole.js +++ b/tgui/packages/tgui/interfaces/CommunicationsConsole.js @@ -507,9 +507,9 @@ const PageMain = (props, context) => { collapsing color="label" textAlign="right"> - {slave.bought - ? "Ransom paid" - : ""} + {slave.toggleransomfeedback} + {/* {slave.bought ? `${slave.cantoggleransom ? + "Ransom paid" : "Ransom paid"}` : ""} */} { align="right">