From 1665a160c455b7e0557c5b18d322d74f4190d646 Mon Sep 17 00:00:00 2001
From: Pinta <>
Date: Tue, 13 Feb 2024 23:49:25 -0500
Subject: [PATCH 1/9] main code
---
.../code/mechanics/den abductors/console.dm | 201 ++++++++++++++++++
tgstation.dme | 1 +
2 files changed, 202 insertions(+)
create mode 100644 GainStation13/code/mechanics/den abductors/console.dm
diff --git a/GainStation13/code/mechanics/den abductors/console.dm b/GainStation13/code/mechanics/den abductors/console.dm
new file mode 100644
index 00000000..4bdc63c0
--- /dev/null
+++ b/GainStation13/code/mechanics/den abductors/console.dm
@@ -0,0 +1,201 @@
+/obj/machinery/abductor/feeder_console
+ name = "feeder console"
+ desc = "Get people fat."
+ icon = 'icons/obj/abductor.dmi'
+ icon_state = "console"
+ density = TRUE
+ team_number = 27 // 6(F) + 1(A) + 20(T) :3
+ /// What pad is linked with the console?
+ var/obj/machinery/abductor/pad/pad
+ /// What camera console is linked with the console?
+ var/obj/machinery/computer/camera_advanced/abductor/camera
+ /// What abductor gizmo is linked with the console?
+ var/obj/item/abductor/gizmo/gizmo
+ /// The current scale linked with the console
+ var/obj/structure/scale/credits/linked_scale
+
+/obj/machinery/abductor/feeder_console/attack_hand(mob/user)
+ . = ..()
+ if(.)
+ return
+ user.set_machine(src)
+ var/dat = ""
+ dat += "
FeederSoft 3000
"
+
+ var/credits = linked_scale.credits
+ dat += "Gear Credits: [credits]
"
+ dat += "Transfer data in exchange for supplies:
"
+ dat += "Nutri-Pump TURBO Autosurgeon
"
+ dat += "Meal Vendor Refill
"
+ dat += "Advanced Baton
"
+ dat += "Science Tool
"
+ dat += "Chameleon Kit
"
+ dat += "Banana Cream Pie Cannon
"
+ dat += "Thermal Imaging Glasses
"
+ dat += "Reagent Gun
"
+ dat += "Protolathe Kit
"
+
+ if(pad)
+ dat += "Emergency Teleporter System."
+ dat += "Consider using primary observation console first."
+ dat += "Activate Teleporter
"
+ if(gizmo && gizmo.marked)
+ dat += "Retrieve Mark
"
+ else
+ dat += "Retrieve Mark
"
+ else
+ dat += "NO TELEPAD DETECTED"
+
+ var/datum/browser/popup = new(user, "computer", "Abductor Console", 400, 500)
+ popup.set_content(dat)
+ popup.open()
+
+/obj/machinery/abductor/feeder_console/Topic(href, href_list)
+ if(..())
+ return
+
+ usr.set_machine(src)
+ if(href_list["teleporter_send"])
+ TeleporterSend()
+ if(href_list["dispense"])
+ switch(href_list["dispense"])
+ if("baton")
+ Dispense(/obj/item/abductor_baton, cost=300)
+ if("tool")
+ Dispense(/obj/item/abductor/gizmo, cost=120)
+ if("nutripump_turbo")
+ Dispense(/obj/item/autosurgeon/nutripump_turbo, cost=150)
+ if("vendor_refill")
+ Dispense(/obj/item/vending_refill/mealdor, cost=100)
+ if("chameleon")
+ Dispense(/obj/item/storage/box/syndie_kit/chameleon, cost=300)
+ if("pie_canon")
+ Dispense(/obj/item/pneumatic_cannon/pie/selfcharge, cost=500)
+ if("thermals")
+ Dispense(/obj/item/autosurgeon/thermal_eyes, cost=400)
+ if("reagent_gun")
+ Dispense(/obj/item/autosurgeon/thermal_eyes, cost=500)
+ if("protolathe_kit")
+ Dispense(/obj/item/storage/box/rndboards, cost=1500)
+
+ updateUsrDialog()
+
+/obj/machinery/abductor/feeder_console/proc/TeleporterRetrieve()
+ if(pad && gizmo && gizmo.marked)
+ pad.Retrieve(gizmo.marked)
+
+/obj/machinery/abductor/feeder_console/proc/TeleporterSend()
+ if(pad)
+ pad.Send()
+
+/obj/machinery/abductor/feeder_console/proc/SetDroppoint(turf/open/location,user)
+ if(!istype(location))
+ to_chat(user, "That place is not safe for the specimen.")
+ return
+
+ if(pad)
+ pad.teleport_target = location
+ to_chat(user, "Location marked as test subject release point.")
+
+
+/obj/machinery/abductor/feeder_console/Initialize(mapload)
+ ..()
+ return INITIALIZE_HINT_LATELOAD
+
+/obj/machinery/abductor/feeder_console/LateInitialize()
+ if(!team_number)
+ return
+
+ for(var/obj/machinery/abductor/pad/found_pad in GLOB.machines)
+ if(found_pad.team_number == team_number)
+ pad = found_pad
+ break
+
+ for(var/obj/machinery/computer/camera_advanced/abductor/found_console in GLOB.machines)
+ if(found_console.team_number == team_number)
+ camera = found_console
+ found_console.console = src
+
+/obj/machinery/abductor/feeder_console/proc/AddGizmo(obj/item/abductor/gizmo/G)
+ if(G == gizmo && G.console == src)
+ return FALSE
+
+ if(G.console)
+ G.console.gizmo = null
+
+ gizmo = G
+ G.console = src
+ return TRUE
+
+/obj/machinery/abductor/feeder_console/proc/Dispense(obj/item/new_item, cost = 1)
+ if(!linked_scale?.credits || !linked_scale.credits < cost)
+ say("Insufficent data!")
+ return TRUE
+
+ linked_scale.credits -= cost
+ say("Incoming supply!")
+ var/drop_location = loc
+
+ if(pad)
+ flick("alien-pad", pad)
+ drop_location = pad.loc
+
+ new new_item(drop_location)
+ return TRUE
+
+/obj/machinery/abductor/feeder_console/attackby(obj/item/used_tool, mob/user, params)
+ if(istype(used_tool, /obj/item/abductor/gizmo) && AddGizmo(used_tool))
+ to_chat(user, "You link the tool to the console.")
+ return TRUE
+
+ return ..()
+
+/obj/structure/scale/credits
+ name = "tracking scale"
+ desc = "A upgraded scale that tracks to weight of all of those that have stepped on it."
+ resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
+ flags_1 = NODECONSTRUCT_1
+ /// How much credits do we currently have?
+ var/credits = 0
+ /// How many credits are we going to reward per pound gained?
+ var/credits_per_pound = 0.25
+ /// A list containing all of the people we've scanned and their maximum weight.
+ var/list/scanned_people = list()
+ /// What is the current team number?
+ var/team_number = 27
+
+/obj/structure/scale/credits/attackby(obj/item/used_tool, mob/user, params)
+ if(!istype(used_tool, /obj/item/wrench))
+ return ..()
+
+ anchored = !anchored
+ to_chat(user, "You [anchored ? "secure" : "unsecure"] \the [src].")
+ used_tool.play_tool_sound(src)
+ return TRUE
+
+/obj/structure/scale/credits/LateInitialize()
+ for(var/obj/machinery/abductor/feeder_console/found_console in GLOB.machines)
+ if(found_console.team_number != team_number)
+ continue
+
+ found_console.linked_scale = src
+
+/obj/structure/scale/credits/weighperson(mob/living/carbon/human/fatty)
+ . = ..()
+ if(!istype(fatty))
+ return FALSE
+
+ var/credits_to_add = ((lastreading * credits_per_pound) * fatnessToWeight)
+ var/credits_to_remove = 0
+ if(scanned_people[fatty])
+ credits_to_remove = scanned_people[fatty]
+
+ credits += (credits_to_add - credits_to_remove)
+ scanned_people[fatty] = max(credits_to_add, credits_to_remove)
+ return TRUE
+
+/obj/machinery/abductor/pad/feeder
+ team_number = 27
+
+/obj/machinery/computer/camera_advanced/abductor/camera/feeder
+ team_number = 27
diff --git a/tgstation.dme b/tgstation.dme
index 9159dda6..fbe1dbe5 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -3086,6 +3086,7 @@
#include "GainStation13\code\mechanics\spells.dm"
#include "GainStation13\code\mechanics\wand.dm"
#include "GainStation13\code\mechanics\web_weaving.dm"
+#include "GainStation13\code\mechanics\den abductors\console.dm"
#include "GainStation13\code\mobs\cakegolem.dm"
#include "GainStation13\code\mobs\chocoslime.dm"
#include "GainStation13\code\mobs\races\caloritegolem.dm"
From 4cc7d40d835740651e04be46c212d7d310885c0f Mon Sep 17 00:00:00 2001
From: Pinta <>
Date: Wed, 14 Feb 2024 02:18:49 -0500
Subject: [PATCH 2/9] maps and some other tweaks
---
.../code/mechanics/den abductors/console.dm | 43 ++++++++++++++++++-
_maps/RandomRuins/SpaceRuins/feeders_den.dmm | 24 +++++++----
.../machinery/computer/camera_advanced.dm | 2 +-
3 files changed, 57 insertions(+), 12 deletions(-)
diff --git a/GainStation13/code/mechanics/den abductors/console.dm b/GainStation13/code/mechanics/den abductors/console.dm
index 4bdc63c0..811f4c6b 100644
--- a/GainStation13/code/mechanics/den abductors/console.dm
+++ b/GainStation13/code/mechanics/den abductors/console.dm
@@ -22,7 +22,7 @@
var/dat = ""
dat += " FeederSoft 3000
"
- var/credits = linked_scale.credits
+ var/credits = linked_scale?.credits
dat += "Gear Credits: [credits]
"
dat += "Transfer data in exchange for supplies:
"
dat += "Nutri-Pump TURBO Autosurgeon
"
@@ -164,6 +164,11 @@
/// What is the current team number?
var/team_number = 27
+
+/obj/structure/scale/credits/Initialize(mapload)
+ ..()
+ return INITIALIZE_HINT_LATELOAD
+
/obj/structure/scale/credits/attackby(obj/item/used_tool, mob/user, params)
if(!istype(used_tool, /obj/item/wrench))
return ..()
@@ -197,5 +202,39 @@
/obj/machinery/abductor/pad/feeder
team_number = 27
-/obj/machinery/computer/camera_advanced/abductor/camera/feeder
+/obj/machinery/computer/camera_advanced/abductor/feeder
team_number = 27
+ vest_mode_action = null
+ vest_disguise_action = null
+
+/obj/machinery/computer/camera_advanced/abductor/feeder/IsScientist(mob/living/carbon/human/H)
+ return TRUE
+
+/obj/item/abductor/gizmo/feeder
+ mode = GIZMO_MARK
+
+/obj/item/abductor/gizmo/feeder/ScientistCheck(mob/user)
+ return TRUE
+
+/obj/item/abductor/gizmo/attack_self(mob/user)
+ return
+
+/obj/item/abductor/gizmo/feeder/mark(atom/target, mob/living/user)
+ if(!ishuman(target))
+ return FALSE
+
+ if(target == marked)
+ to_chat(user, "You begin to teleport [target]...")
+ if(!do_after(user, 45 SECONDS, target = target)) // You have to be standing still for a while
+ return FALSE
+
+ console?.pad.Retrieve(marked)
+ return TRUE
+
+ if(target == user)
+ marked = user
+ return TRUE
+
+ prepare(target,user)
+ return TRUE
+
diff --git a/_maps/RandomRuins/SpaceRuins/feeders_den.dmm b/_maps/RandomRuins/SpaceRuins/feeders_den.dmm
index 6d75ff25..92798c31 100644
--- a/_maps/RandomRuins/SpaceRuins/feeders_den.dmm
+++ b/_maps/RandomRuins/SpaceRuins/feeders_den.dmm
@@ -14,7 +14,8 @@
"cw" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate{pixel_x = -10},/obj/item/clothing/head/helmet/space/syndicate{pixel_x = -10},/obj/item/clothing/mask/gas{pixel_x = -10; pixel_y = 3},/obj/item/clothing/suit/space/syndicate/orange{pixel_x = 8; name = "extra stretchy space suit"},/obj/item/clothing/head/helmet/space/syndicate/orange{pixel_x = 10},/obj/item/clothing/mask/gas{pixel_x = 10; pixel_y = 3},/obj/item/tank/jetpack/carbondioxide/eva,/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
"cx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 8},/obj/structure/cable{icon_state = "2-8"},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
"cy" = (/obj/structure/table/reinforced,/obj/item/reagent_containers/food/snacks/store/cake/chocolate,/obj/machinery/light/small{dir = 1},/turf/open/floor/mineral/basaltstone_floor,/area/ruin/space/has_grav/feedersden)
-"cV" = (/obj/structure/sign/poster/contraband/syndicate_recruitment{pixel_x = -28},/obj/effect/turf_decal/tile/brown{dir = 1},/obj/effect/turf_decal/tile/brown{dir = 8},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
+"cR" = (/obj/machinery/door/airlock/abductor,/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
+"cV" = (/turf/open/floor/plating/abductor,/area/ruin/space/has_grav/feedersden)
"cW" = (/obj/structure/cable{icon_state = "0-4"},/obj/machinery/power/apc{name = "Base Power Controller"; pixel_x = -28},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
"dd" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8; piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
"de" = (/obj/structure/sign/poster/contraband/donut_corp{pixel_y = 32},/turf/open/floor/carpet/black,/area/ruin/space/has_grav/feedersden)
@@ -73,13 +74,14 @@
"mf" = (/obj/structure/reagent_dispensers/cooking_oil,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
"mm" = (/obj/machinery/vending/mealdor{free = 1},/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
"mD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/machinery/door/airlock/public/glass{name = "Cell 3"; id_tag = "feederden_cell3"},/turf/open/floor/mineral/basaltstone_floor,/area/ruin/space/has_grav/feedersden)
-"mJ" = (/obj/structure/scale,/turf/open/floor/carpet/orange,/area/ruin/space/has_grav/feedersden)
+"mJ" = (/obj/structure/scale/credits,/turf/open/floor/carpet/orange,/area/ruin/space/has_grav/feedersden)
"mU" = (/obj/structure/sink/kitchen{dir = 8; pixel_x = 11},/obj/effect/turf_decal/tile/bar,/obj/effect/turf_decal/tile/bar{dir = 1},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
"nd" = (/obj/structure/table/wood,/obj/item/reagent_containers/food/snacks/store/cake/chocolate{pixel_y = 15},/obj/item/trash/plate{pixel_x = -4; pixel_y = 3},/turf/open/floor/wood,/area/ruin/space/has_grav/feedersden)
"nr" = (/turf/closed/wall/r_wall/syndicate,/area/ruin/space/has_grav/feedersden)
"nu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/machinery/door/airlock/public/glass{name = "Cell 1"; id_tag = "feederden_cell1"},/turf/open/floor/mineral/basaltstone_floor,/area/ruin/space/has_grav/feedersden)
"nw" = (/obj/machinery/light/small{dir = 1},/obj/effect/turf_decal/stripes{icon_state = "trim"; dir = 1},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
"nE" = (/obj/structure/flora/junglebush,/turf/open/floor/plating/asteroid,/area/ruin/space/has_grav/feedersden)
+"nK" = (/obj/machinery/abductor/feeder_console,/turf/open/floor/plating/abductor,/area/ruin/space/has_grav/feedersden)
"nW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4; piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/machinery/plantgenes{pixel_y = 6},/obj/structure/table,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
"oH" = (/obj/structure/lattice/catwalk,/turf/template_noop,/area/ruin/space/has_grav/feedersden)
"oK" = (/turf/open/floor/wood,/area/ruin/space/has_grav/feedersden)
@@ -180,6 +182,7 @@
"DM" = (/obj/machinery/vending/boozeomat/all_access,/turf/open/floor/wood,/area/ruin/space/has_grav/feedersden)
"DO" = (/obj/effect/turf_decal/tile/brown{dir = 1},/obj/effect/turf_decal/tile/brown{dir = 8},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
"DU" = (/obj/structure/chair/sofa/right,/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
+"Ef" = (/obj/machinery/light{dir = 1},/turf/open/floor/plating/abductor,/area/ruin/space/has_grav/feedersden)
"Ek" = (/obj/structure/table/wood,/obj/item/storage/box/drinkingglasses{pixel_y = 10; pixel_x = 4},/obj/item/reagent_containers/food/drinks/soda_cans/cola,/obj/item/reagent_containers/food/drinks/soda_cans/dr_gibb{pixel_y = -7; pixel_x = -5},/turf/open/floor/wood,/area/ruin/space/has_grav/feedersden)
"En" = (/obj/item/reagent_containers/food/snacks/chocolatebar,/turf/open/floor/carpet/black,/area/ruin/space/has_grav/feedersden)
"Eq" = (/obj/machinery/shower{dir = 8},/obj/effect/turf_decal/loading_area{dir = 4; icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel/freezer,/area/ruin/space/has_grav/feedersden)
@@ -228,6 +231,7 @@
"NA" = (/obj/structure/sign/poster/contraband/donut_corp{pixel_x = -32},/obj/structure/scale,/turf/open/floor/mineral/basaltstone_floor,/area/ruin/space/has_grav/feedersden)
"NB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5; piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/effect/turf_decal/stripes{icon_state = "steel_decals5"; dir = 1},/obj/effect/turf_decal/stripes{icon_state = "steel_grid"; dir = 10},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
"NJ" = (/obj/structure/curtain,/obj/effect/turf_decal/tile{dir = 4},/obj/effect/turf_decal/tile{dir = 1},/turf/open/floor/plasteel/freezer,/area/ruin/space/has_grav/feedersden)
+"NU" = (/obj/machinery/abductor/pad/feeder,/turf/open/floor/plating/abductor,/area/ruin/space/has_grav/feedersden)
"NX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4; piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/structure/railing,/turf/open/floor/plasteel/stairs/left{dir = 4},/area/ruin/space/has_grav/feedersden)
"Oc" = (/turf/open/floor/wood{icon_state = "wood-broken"},/area/ruin/space/has_grav/feedersden)
"Ow" = (/obj/effect/turf_decal/sand/plating,/turf/open/floor/plating/asteroid,/area/ruin/space/has_grav/feedersden)
@@ -242,8 +246,10 @@
"QV" = (/obj/structure/sign/poster/contraband/sun_kist{pixel_y = 32},/turf/open/floor/carpet/black,/area/ruin/space/has_grav/feedersden)
"QW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4; piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/machinery/vending/hydroseeds{slogan_delay = 700},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
"Ra" = (/obj/machinery/door/airlock/hatch{name = "airlock"; req_access_txt = "150"},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
+"Rc" = (/obj/machinery/computer/camera_advanced/abductor/feeder,/turf/open/floor/plating/abductor,/area/ruin/space/has_grav/feedersden)
"Rh" = (/obj/structure/table,/obj/machinery/microwave,/obj/effect/turf_decal/tile/bar,/obj/effect/turf_decal/tile/bar{dir = 1},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
"Rp" = (/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 4},/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
+"Rr" = (/obj/structure/table/abductor,/obj/item/abductor/gizmo/feeder,/turf/open/floor/plating/abductor,/area/ruin/space/has_grav/feedersden)
"Ru" = (/obj/effect/spawner/structure/window/reinforced,/obj/machinery/door/poddoor/shutters/old/preopen{id = "feederden_north"},/obj/effect/turf_decal/tile/red,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
"Rw" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 8; piping_layer = 3; pixel_x = 5; pixel_y = 5},/turf/open/floor/plating/airless,/area/ruin/space/has_grav/feedersden)
"Rz" = (/obj/structure/railing{dir = 1},/turf/open/floor/plasteel/stairs/left{dir = 8},/area/ruin/space/has_grav/feedersden)
@@ -308,13 +314,13 @@ FEFEFEFEFEFEfmBrBrBrnrZnNBLvAjAjuAKWAjAjNXYAYAYAYABDTGXWTGTGTGqquOuOkakakaybDsAj
FEFEFEFEFEfmfmBrBrBrDcDcNJNJDcnrnrnrnrnrnrnrnrnrDcWJiONxgUgUgUuXZpTKDcnrnrgqnrnrnrnrnrnrDciuiuDcDcBrFEFEFEFEFE
FEFEFEFEBrZCfmISBrBrBrnrMaEqnrxGNgqtnrWNYEfncnbanrDxvYFDLNdCsRiNvYSsnrrJZOWrkoPgnrridlkCnrfNginrBrBrBrFEFEFEFE
FEFEFEFEBrBrfmfmBrBrBrnrtyEqnrikJhBeWsDOlslslslsvtDxvYSyvYvYvYvwvYmUnrcWmaICrscxtVbXJhkMnrfNdAnrBrBrBrFEFEFEFE
-FEFEFEFEFEBrwwfmeEBrBrDcnrnrnrnrxGHpNkDOtHguboygaQoYvYvYvYvYvYvwvYkdnrxCTYFHYpDBnrzlJhXPnrnrnrDcBrBrBrFEFEFEFE
-FEFEFEFEFEBrxZfmfmBrBrBrBrBrBrDcnrnrDcsNlsucaEBPnrvYaDMYMdRhDKjhANYUnrnrnrTPJhYXnrnrRanrnrBrEWYNfmBrBrBrFEFEFE
-FEFEFEFEFEFEfmfmBrBrBrBrBrBrBrBrBrBrnrqhlslslsVFDczAnrnrnrkgnrnrnrnrDcAgcwddRCuFnrKnlsdvnrISVefmxZfxBrBrFEFEFE
-FEFEFEFEFEFEFEfmBrBrBrBrBrBrBrBrBrBrnrcVlslslsdzPItjfhnroHoHoHdrVxnwAalslsfKJhvHRalslssCkgeEfmFEFEebFEFEFEFEFE
-FEFEFEFEFEFEFEFEBrBrBrBrBrBrBrBrBrBrnrqMyqzJjSTUbWTxsunroHoHoHdrBVBVAalslscdzoFmEsienWQWEsRwfmFEFEebFEFEFEFEFE
-FEFEFEFEFEFEFEFEFEBrBrBrBrBrBrBrBrBrDcnrnrnrnrnrnrnrnrpfgDoHWtpfnrnrnrnrnrzEvLvLMivLvLvLMiUZFEFEFEebFEFEFEFEFE
-FEFEFEFEFEFEFEFEFEFEBrBrBrBrBrFEFEBrBrBrBrBrBrBrXLBrqFebebebebebqFXLBrBrBrBrBrBrBrBrBrBrBrqFebebqFqFFEFEFEFEFE
+FEFEFEFEFEBrwwfmeEBrBrDcnrnrDcnrxGHpNkDOtHguboygaQoYvYvYvYvYvYvwvYkdnrxCTYFHYpDBnrzlJhXPnrnrnrDcBrBrBrFEFEFEFE
+FEFEFEFEFEBrxZfmfmBrBrBrBrBrDcDcnrnrDcsNlsucaEBPnrvYaDMYMdRhDKjhANYUnrnrnrTPJhYXnrnrRanrnrBrEWYNfmBrBrBrFEFEFE
+FEFEFEFEFEFEfmfmBrBrBrBrBrBrnrnKEfRrnrqhlslslsVFDczAnrnrnrkgnrnrnrnrDcAgcwddRCuFnrKnlsdvnrISVefmxZfxBrBrFEFEFE
+FEFEFEFEFEFEFEfmBrBrBrBrBrBrnrNUcVcVcRDOlslslsdzPItjfhnroHoHoHdrVxnwAalslsfKJhvHRalslssCkgeEfmFEFEebFEFEFEFEFE
+FEFEFEFEFEFEFEFEBrBrBrBrBrBrnrRccVRrnrqMyqzJjSTUbWTxsunroHoHoHdrBVBVAalslscdzoFmEsienWQWEsRwfmFEFEebFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEBrBrBrBrBrDcnrnrnrDcnrnrnrnrnrnrnrnrpfgDoHWtpfnrnrnrnrnrzEvLvLMivLvLvLMiUZFEFEFEebFEFEFEFEFE
+FEFEFEFEFEFEFEFEFEFEBrBrBrBrBrBrBrBrBrBrBrBrBrBrXLBrqFebebebebebqFXLBrBrBrBrBrBrBrBrBrBrBrqFebebqFqFFEFEFEFEFE
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBrBrBrBrBrplfmFEFEFEFEFEFExZEWISfmeEfmBrBrBrBrBrBrBrFEFEFEBrBrFEFEFEFEFE
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBrBrfmfmFEFEFEFEFEFEfmfmfmfmfmfmISBrBrBrBrBrBrFEFEFEFEFEFEFEFEFEFE
FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEBrBrFEFEFEFEFEFEFEBrfmfmwwxZfmfmfmBrBrqFqFFEFEFEFEFEFEFEFEFEFEFE
diff --git a/code/game/machinery/computer/camera_advanced.dm b/code/game/machinery/computer/camera_advanced.dm
index 320dff0d..1c40abde 100644
--- a/code/game/machinery/computer/camera_advanced.dm
+++ b/code/game/machinery/computer/camera_advanced.dm
@@ -89,7 +89,7 @@
return TRUE
/obj/machinery/computer/camera_advanced/abductor/can_use(mob/user)
- if(!isabductor(user))
+ if(!IsScientist(user)) //GAINSTATION EDIT ORIGINAL: if(!isabductor(user))
return FALSE
return ..()
From 96d97e023b3b9cf79e4fd63da363c120c612717d Mon Sep 17 00:00:00 2001
From: Pinta <>
Date: Wed, 14 Feb 2024 02:59:42 -0500
Subject: [PATCH 3/9] Update console.dm
---
.../code/mechanics/den abductors/console.dm | 29 ++++++++++---------
1 file changed, 16 insertions(+), 13 deletions(-)
diff --git a/GainStation13/code/mechanics/den abductors/console.dm b/GainStation13/code/mechanics/den abductors/console.dm
index 811f4c6b..b6ad87d3 100644
--- a/GainStation13/code/mechanics/den abductors/console.dm
+++ b/GainStation13/code/mechanics/den abductors/console.dm
@@ -1,6 +1,6 @@
/obj/machinery/abductor/feeder_console
name = "feeder console"
- desc = "Get people fat."
+ desc = "You were into feeding enough that you managed to reverse-engineer alien technology to suit your goals, Amazing."
icon = 'icons/obj/abductor.dmi'
icon_state = "console"
density = TRUE
@@ -24,9 +24,9 @@
var/credits = linked_scale?.credits
dat += "Gear Credits: [credits]
"
- dat += "Transfer data in exchange for supplies:
"
+ dat += "Transfer credits in exchange for supplies:
"
dat += "Nutri-Pump TURBO Autosurgeon
"
- dat += "Meal Vendor Refill
"
+ dat += "Meal Vendor Refill
"
dat += "Advanced Baton
"
dat += "Science Tool
"
dat += "Chameleon Kit
"
@@ -69,12 +69,12 @@
Dispense(/obj/item/vending_refill/mealdor, cost=100)
if("chameleon")
Dispense(/obj/item/storage/box/syndie_kit/chameleon, cost=300)
- if("pie_canon")
+ if("pie_cannon")
Dispense(/obj/item/pneumatic_cannon/pie/selfcharge, cost=500)
if("thermals")
Dispense(/obj/item/autosurgeon/thermal_eyes, cost=400)
if("reagent_gun")
- Dispense(/obj/item/autosurgeon/thermal_eyes, cost=500)
+ Dispense(/obj/item/gun/chem, cost=500)
if("protolathe_kit")
Dispense(/obj/item/storage/box/rndboards, cost=1500)
@@ -97,7 +97,6 @@
pad.teleport_target = location
to_chat(user, "Location marked as test subject release point.")
-
/obj/machinery/abductor/feeder_console/Initialize(mapload)
..()
return INITIALIZE_HINT_LATELOAD
@@ -128,8 +127,8 @@
return TRUE
/obj/machinery/abductor/feeder_console/proc/Dispense(obj/item/new_item, cost = 1)
- if(!linked_scale?.credits || !linked_scale.credits < cost)
- say("Insufficent data!")
+ if(!linked_scale?.credits || linked_scale.credits < cost)
+ say("Insufficent credits!")
return TRUE
linked_scale.credits -= cost
@@ -152,13 +151,13 @@
/obj/structure/scale/credits
name = "tracking scale"
- desc = "A upgraded scale that tracks to weight of all of those that have stepped on it."
+ desc = "A upgraded scale that tracks to weight of all of those that have stepped on it. Using this will add credits to the feeder console"
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
flags_1 = NODECONSTRUCT_1
/// How much credits do we currently have?
var/credits = 0
/// How many credits are we going to reward per pound gained?
- var/credits_per_pound = 0.25
+ var/credits_per_pound = 1
/// A list containing all of the people we've scanned and their maximum weight.
var/list/scanned_people = list()
/// What is the current team number?
@@ -190,12 +189,16 @@
if(!istype(fatty))
return FALSE
- var/credits_to_add = ((lastreading * credits_per_pound) * fatnessToWeight)
+ var/credits_to_add = ((fatty.fatness * credits_per_pound) * fatnessToWeight)
var/credits_to_remove = 0
if(scanned_people[fatty])
credits_to_remove = scanned_people[fatty]
+
+ if(credits_to_add > 0)
+ say("[credits_to_add] credits have been deposited into the console.")
- credits += (credits_to_add - credits_to_remove)
+ credits += max((credits_to_add - credits_to_remove), 0)
+
scanned_people[fatty] = max(credits_to_add, credits_to_remove)
return TRUE
@@ -209,7 +212,7 @@
/obj/machinery/computer/camera_advanced/abductor/feeder/IsScientist(mob/living/carbon/human/H)
return TRUE
-
+
/obj/item/abductor/gizmo/feeder
mode = GIZMO_MARK
From 22ff63f97cb6ca27adeaf652f6a595af1935a452 Mon Sep 17 00:00:00 2001
From: Pinta <>
Date: Wed, 14 Feb 2024 03:05:14 -0500
Subject: [PATCH 4/9] Update console.dm
---
GainStation13/code/mechanics/den abductors/console.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/GainStation13/code/mechanics/den abductors/console.dm b/GainStation13/code/mechanics/den abductors/console.dm
index b6ad87d3..1ea16524 100644
--- a/GainStation13/code/mechanics/den abductors/console.dm
+++ b/GainStation13/code/mechanics/den abductors/console.dm
@@ -72,7 +72,7 @@
if("pie_cannon")
Dispense(/obj/item/pneumatic_cannon/pie/selfcharge, cost=500)
if("thermals")
- Dispense(/obj/item/autosurgeon/thermal_eyes, cost=400)
+ Dispense(/obj/item/clothing/glasses/thermal/syndi, cost=400)
if("reagent_gun")
Dispense(/obj/item/gun/chem, cost=500)
if("protolathe_kit")
From 343a553004f645da144d0855113d16aa647bc1ca Mon Sep 17 00:00:00 2001
From: Pinta <>
Date: Wed, 14 Feb 2024 13:35:04 -0500
Subject: [PATCH 5/9] Update console.dm
---
.../code/mechanics/den abductors/console.dm | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/GainStation13/code/mechanics/den abductors/console.dm b/GainStation13/code/mechanics/den abductors/console.dm
index 1ea16524..1af16e94 100644
--- a/GainStation13/code/mechanics/den abductors/console.dm
+++ b/GainStation13/code/mechanics/den abductors/console.dm
@@ -157,12 +157,13 @@
/// How much credits do we currently have?
var/credits = 0
/// How many credits are we going to reward per pound gained?
- var/credits_per_pound = 1
+ var/credits_per_fatness = 1
/// A list containing all of the people we've scanned and their maximum weight.
var/list/scanned_people = list()
/// What is the current team number?
var/team_number = 27
-
+ /// What is the maximum ammount of credits that can be gained per person?
+ var/maximum_credits = 900 // A little bit over the fattness for blob.
/obj/structure/scale/credits/Initialize(mapload)
..()
@@ -189,17 +190,17 @@
if(!istype(fatty))
return FALSE
- var/credits_to_add = ((fatty.fatness * credits_per_pound) * fatnessToWeight)
+ var/credits_to_add = min((fatty.fatness * credits_per_fatness), maximum_credits)
var/credits_to_remove = 0
if(scanned_people[fatty])
credits_to_remove = scanned_people[fatty]
- if(credits_to_add > 0)
- say("[credits_to_add] credits have been deposited into the console.")
+ var/credit_total = max((credits_to_add - credits_to_remove), 0)
+ if(credit_total > 0)
+ say("[credit_total] credits have been deposited into the console.")
- credits += max((credits_to_add - credits_to_remove), 0)
-
- scanned_people[fatty] = max(credits_to_add, credits_to_remove)
+ credits += credit_total
+ scanned_people[fatty] = max(credit_total, credits_to_remove)
return TRUE
/obj/machinery/abductor/pad/feeder
From 53a8a02daacd4ad7ff1dc905dc0e43f11d75001d Mon Sep 17 00:00:00 2001
From: Pinta <>
Date: Wed, 14 Feb 2024 14:40:40 -0500
Subject: [PATCH 6/9] Update console.dm
---
.../code/mechanics/den abductors/console.dm | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/GainStation13/code/mechanics/den abductors/console.dm b/GainStation13/code/mechanics/den abductors/console.dm
index 1af16e94..03990015 100644
--- a/GainStation13/code/mechanics/den abductors/console.dm
+++ b/GainStation13/code/mechanics/den abductors/console.dm
@@ -27,7 +27,9 @@
dat += "Transfer credits in exchange for supplies:
"
dat += "Nutri-Pump TURBO Autosurgeon
"
dat += "Meal Vendor Refill
"
- dat += "Advanced Baton
"
+ dat += "Lipoifier Grenade (Weak)
"
+ dat += "Lipoifier Grenade (Strong)
"
+ dat += "Fatbeam Gun
"
dat += "Science Tool
"
dat += "Chameleon Kit
"
dat += "Banana Cream Pie Cannon
"
@@ -59,10 +61,14 @@
TeleporterSend()
if(href_list["dispense"])
switch(href_list["dispense"])
- if("baton")
- Dispense(/obj/item/abductor_baton, cost=300)
+ if("fatbeam")
+ Dispense(/obj/item/gun/fatbeam, cost=400)
if("tool")
Dispense(/obj/item/abductor/gizmo, cost=120)
+ if("grenade_weak")
+ Dispense(/obj/item/grenade/chem_grenade/lipoifier_weak, cost=120)
+ if("grenade_strong")
+ Dispense(/obj/item/grenade/chem_grenade/lipoifier_strong, cost=360)
if("nutripump_turbo")
Dispense(/obj/item/autosurgeon/nutripump_turbo, cost=150)
if("vendor_refill")
From a2a0c4c389520bed9a6feccdd0b474cd1eecd5b7 Mon Sep 17 00:00:00 2001
From: Pinta <>
Date: Wed, 14 Feb 2024 21:49:39 -0500
Subject: [PATCH 7/9] wew
---
.../code/mechanics/den abductors/console.dm | 64 ++++++++---------
.../den abductors/purchaseble_goodies.dm | 71 +++++++++++++++++++
tgstation.dme | 1 +
3 files changed, 100 insertions(+), 36 deletions(-)
create mode 100644 GainStation13/code/mechanics/den abductors/purchaseble_goodies.dm
diff --git a/GainStation13/code/mechanics/den abductors/console.dm b/GainStation13/code/mechanics/den abductors/console.dm
index 03990015..f3d29fec 100644
--- a/GainStation13/code/mechanics/den abductors/console.dm
+++ b/GainStation13/code/mechanics/den abductors/console.dm
@@ -13,6 +13,8 @@
var/obj/item/abductor/gizmo/gizmo
/// The current scale linked with the console
var/obj/structure/scale/credits/linked_scale
+ /// How much of each goodie have we purchased?
+ var/list/buy_counts = list()
/obj/machinery/abductor/feeder_console/attack_hand(mob/user)
. = ..()
@@ -24,18 +26,11 @@
var/credits = linked_scale?.credits
dat += "Gear Credits: [credits]
"
- dat += "Transfer credits in exchange for supplies:
"
- dat += "Nutri-Pump TURBO Autosurgeon
"
- dat += "Meal Vendor Refill
"
- dat += "Lipoifier Grenade (Weak)
"
- dat += "Lipoifier Grenade (Strong)
"
- dat += "Fatbeam Gun
"
- dat += "Science Tool
"
- dat += "Chameleon Kit
"
- dat += "Banana Cream Pie Cannon
"
- dat += "Thermal Imaging Glasses
"
- dat += "Reagent Gun
"
- dat += "Protolathe Kit
"
+ dat += "Transfer credits in exchange for supplies:
"
+ for(var/goodie in subtypesof(/datum/feeders_den_goodie))
+ var/datum/feeders_den_goodie/temp_goodie = new goodie()
+ dat += "[temp_goodie.name] (Cost: [temp_goodie.credit_cost])
"
+ qdel(temp_goodie)
if(pad)
dat += "Emergency Teleporter System."
@@ -60,29 +55,23 @@
if(href_list["teleporter_send"])
TeleporterSend()
if(href_list["dispense"])
- switch(href_list["dispense"])
- if("fatbeam")
- Dispense(/obj/item/gun/fatbeam, cost=400)
- if("tool")
- Dispense(/obj/item/abductor/gizmo, cost=120)
- if("grenade_weak")
- Dispense(/obj/item/grenade/chem_grenade/lipoifier_weak, cost=120)
- if("grenade_strong")
- Dispense(/obj/item/grenade/chem_grenade/lipoifier_strong, cost=360)
- if("nutripump_turbo")
- Dispense(/obj/item/autosurgeon/nutripump_turbo, cost=150)
- if("vendor_refill")
- Dispense(/obj/item/vending_refill/mealdor, cost=100)
- if("chameleon")
- Dispense(/obj/item/storage/box/syndie_kit/chameleon, cost=300)
- if("pie_cannon")
- Dispense(/obj/item/pneumatic_cannon/pie/selfcharge, cost=500)
- if("thermals")
- Dispense(/obj/item/clothing/glasses/thermal/syndi, cost=400)
- if("reagent_gun")
- Dispense(/obj/item/gun/chem, cost=500)
- if("protolathe_kit")
- Dispense(/obj/item/storage/box/rndboards, cost=1500)
+ var/datum_path = href_list["dispense"]
+ var/datum/feeders_den_goodie/goodie_datum = new datum_path()
+ var/price = goodie_datum.credit_cost
+ var/item_path = goodie_datum.item_to_dispense
+
+ if(!isnull(goode.datum.initial_stock) && buy_counts[goodie_datum.name] && (buy_counts[goodie_datum.name] >= goodie_datum.initial_stock))
+ say("Unable to purchase more!")
+ return FALSE
+
+ if(!Dispense(item_path, price))
+ return FALSE
+
+ if(buy_counts[goodie_datum.name] == null)
+ buy_counts[goodie_datum.name] = 0
+
+ buy_counts[goodie_datum.name] += 1
+ qdel(goodie_datum)
updateUsrDialog()
@@ -133,9 +122,12 @@
return TRUE
/obj/machinery/abductor/feeder_console/proc/Dispense(obj/item/new_item, cost = 1)
+ if(!ispath(new_item))
+ return FALSE
+
if(!linked_scale?.credits || linked_scale.credits < cost)
say("Insufficent credits!")
- return TRUE
+ return FALSE
linked_scale.credits -= cost
say("Incoming supply!")
diff --git a/GainStation13/code/mechanics/den abductors/purchaseble_goodies.dm b/GainStation13/code/mechanics/den abductors/purchaseble_goodies.dm
new file mode 100644
index 00000000..a070abc3
--- /dev/null
+++ b/GainStation13/code/mechanics/den abductors/purchaseble_goodies.dm
@@ -0,0 +1,71 @@
+/datum/feeders_den_goodie
+ /// What is the name of the goodie we want to buy?
+ var/name
+ /// How much credits does this cost to buy?
+ var/credit_cost = 0
+ /// How much stock of this can be bought? If this is null, infinite can be bought
+ var/initial_stock
+ /// What is the path of the item to dispense?
+ var/item_to_dispense
+
+/datum/feeders_den_goodie/food_vendor_refill
+ name = "Food Vendor Refill"
+ credit_cost = 100
+ item_to_dispense = /obj/item/vending_refill/mealdor
+
+/datum/feeders_den_goodie/gizmo
+ name = "Science Tool"
+ credit_cost = 120
+ item_to_dispense = /obj/item/abductor/gizmo/feeder
+
+/datum/feeders_den_goodie/nutripump_turbo
+ name = "Nutri-Pump TURBO Autosurgeon"
+ credit_cost = 150
+ item_to_dispense = /obj/item/autosurgeon/nutripump_turbo
+
+/datum/feeders_den_goodie/fatbeam_gun
+ name = "Fatbeam gun"
+ credit_cost = 400
+ item_to_dispense = /obj/item/gun/fatbeam
+ initial_stock = 2
+
+/datum/feeders_den_goodie/grenade_weak
+ name = "Lipofier Grenade (Weak)"
+ credit_cost = 120
+ item_to_dispense = /obj/item/grenade/chem_grenade/lipoifier_weak
+ initial_stock = 6
+
+/datum/feeders_den_goodie/grenade_strong
+ name = "Lipofier Grenade (Strong)"
+ credit_cost = 360
+ item_to_dispense = /obj/item/grenade/chem_grenade/lipoifier_strong
+ initial_stock = 3
+
+/datum/feeders_den_goodie/chameleon
+ name = "Chameleon Kit"
+ credit_cost = 300
+ item_to_dispense = /obj/item/storage/box/syndie_kit/chameleon
+ initial_stock = 2
+
+/datum/feeders_den_goodie/pie_cannon
+ name = "Banana Cream Pie Cannon"
+ credit_cost = 500
+ item_to_dispense = /obj/item/pneumatic_cannon/pie/selfcharge
+ initial_stock = 2
+
+/datum/feeders_den_goodie/thermals
+ name = "Thermal Imaging Glasses"
+ credit_cost = 400
+ item_to_dispense = /obj/item/clothing/glasses/thermal/syndi
+ initial_stock = 2
+
+/datum/feeders_den_goodie/reagent_gun
+ name = "Reagent Gun"
+ credit_cost = 500
+ item_to_dispense = /obj/item/gun/chem
+
+/datum/feeders_den_goodie/protolathe
+ name = "R&D Kit"
+ credit_cost = 1500
+ item_to_dispense = /obj/item/storage/box/rndboards
+ initial_stock = 2
diff --git a/tgstation.dme b/tgstation.dme
index fbe1dbe5..4feb4645 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -3087,6 +3087,7 @@
#include "GainStation13\code\mechanics\wand.dm"
#include "GainStation13\code\mechanics\web_weaving.dm"
#include "GainStation13\code\mechanics\den abductors\console.dm"
+#include "GainStation13\code\mechanics\den abductors\purchaseble_goodies.dm"
#include "GainStation13\code\mobs\cakegolem.dm"
#include "GainStation13\code\mobs\chocoslime.dm"
#include "GainStation13\code\mobs\races\caloritegolem.dm"
From cc835bd1b4d0e304375c1161f6f950a709653656 Mon Sep 17 00:00:00 2001
From: Pinta <>
Date: Wed, 14 Feb 2024 22:12:31 -0500
Subject: [PATCH 8/9] :3
---
GainStation13/code/game/lore_papers.dm | 5 +++++
_maps/RandomRuins/SpaceRuins/feeders_den.dmm | 5 +++--
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/GainStation13/code/game/lore_papers.dm b/GainStation13/code/game/lore_papers.dm
index ff374201..fd8b9d60 100644
--- a/GainStation13/code/game/lore_papers.dm
+++ b/GainStation13/code/game/lore_papers.dm
@@ -24,6 +24,11 @@
name = "READ ME!"
info = "Don't use this auto-surgeon on yourself, dumbass!"
+
+/obj/item/paper/fluff/ruins/feeder_den/tool_warning
+ name = "READ ME!"
+ info = "Please link the science tool to the console before leaving!"
+
// calorite research facility
/obj/item/paper/fluff/ruins/calorite_facility/note1
diff --git a/_maps/RandomRuins/SpaceRuins/feeders_den.dmm b/_maps/RandomRuins/SpaceRuins/feeders_den.dmm
index 92798c31..34cb8aeb 100644
--- a/_maps/RandomRuins/SpaceRuins/feeders_den.dmm
+++ b/_maps/RandomRuins/SpaceRuins/feeders_den.dmm
@@ -249,7 +249,7 @@
"Rc" = (/obj/machinery/computer/camera_advanced/abductor/feeder,/turf/open/floor/plating/abductor,/area/ruin/space/has_grav/feedersden)
"Rh" = (/obj/structure/table,/obj/machinery/microwave,/obj/effect/turf_decal/tile/bar,/obj/effect/turf_decal/tile/bar{dir = 1},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
"Rp" = (/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 4},/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
-"Rr" = (/obj/structure/table/abductor,/obj/item/abductor/gizmo/feeder,/turf/open/floor/plating/abductor,/area/ruin/space/has_grav/feedersden)
+"Rr" = (/obj/structure/table/abductor,/obj/item/abductor/gizmo/feeder,/obj/item/abductor/gizmo/feeder,/turf/open/floor/plating/abductor,/area/ruin/space/has_grav/feedersden)
"Ru" = (/obj/effect/spawner/structure/window/reinforced,/obj/machinery/door/poddoor/shutters/old/preopen{id = "feederden_north"},/obj/effect/turf_decal/tile/red,/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
"Rw" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 8; piping_layer = 3; pixel_x = 5; pixel_y = 5},/turf/open/floor/plating/airless,/area/ruin/space/has_grav/feedersden)
"Rz" = (/obj/structure/railing{dir = 1},/turf/open/floor/plasteel/stairs/left{dir = 8},/area/ruin/space/has_grav/feedersden)
@@ -276,6 +276,7 @@
"Ws" = (/obj/machinery/light{dir = 1},/obj/effect/turf_decal{dir = 4},/obj/machinery/airalarm/syndicate{pixel_y = 32},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
"Wt" = (/obj/structure/lattice/catwalk,/obj/item/stack/marker_beacon{anchored = 1; icon_state = "markerburgundy-on"; light_color = "#FA644B"; light_power = 3; light_range = 2; name = "landing marker"; picked_color = "Burgundy"; pixel_x = 12; pixel_y = -10},/turf/template_noop,/area/ruin/space/has_grav/feedersden)
"WJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/effect/turf_decal/tile/bar,/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 1},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
+"WK" = (/obj/structure/table/abductor,/obj/item/paper/fluff/ruins/feeder_den/report4,/turf/open/floor/plating/abductor,/area/ruin/space/has_grav/feedersden)
"WN" = (/obj/structure/rack/shelf,/obj/item/reagent_containers/food/snacks/syndicake,/obj/item/reagent_containers/food/snacks/syndicake,/obj/item/reagent_containers/food/snacks/chips,/obj/item/reagent_containers/food/snacks/chips,/obj/item/reagent_containers/food/snacks/cornchips,/obj/item/reagent_containers/food/snacks/cornchips,/obj/item/reagent_containers/food/snacks/candy,/obj/item/reagent_containers/food/snacks/candy,/obj/effect/turf_decal/tile/brown{dir = 4},/obj/effect/turf_decal/tile/brown{dir = 1},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
"Xh" = (/obj/machinery/atmospherics/components/unary/vent_pump/on,/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 4},/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
"XL" = (/turf/closed/mineral/random,/area/ruin/space/has_grav/feedersden)
@@ -316,7 +317,7 @@ FEFEFEFEBrZCfmISBrBrBrnrMaEqnrxGNgqtnrWNYEfncnbanrDxvYFDLNdCsRiNvYSsnrrJZOWrkoPg
FEFEFEFEBrBrfmfmBrBrBrnrtyEqnrikJhBeWsDOlslslslsvtDxvYSyvYvYvYvwvYmUnrcWmaICrscxtVbXJhkMnrfNdAnrBrBrBrFEFEFEFE
FEFEFEFEFEBrwwfmeEBrBrDcnrnrDcnrxGHpNkDOtHguboygaQoYvYvYvYvYvYvwvYkdnrxCTYFHYpDBnrzlJhXPnrnrnrDcBrBrBrFEFEFEFE
FEFEFEFEFEBrxZfmfmBrBrBrBrBrDcDcnrnrDcsNlsucaEBPnrvYaDMYMdRhDKjhANYUnrnrnrTPJhYXnrnrRanrnrBrEWYNfmBrBrBrFEFEFE
-FEFEFEFEFEFEfmfmBrBrBrBrBrBrnrnKEfRrnrqhlslslsVFDczAnrnrnrkgnrnrnrnrDcAgcwddRCuFnrKnlsdvnrISVefmxZfxBrBrFEFEFE
+FEFEFEFEFEFEfmfmBrBrBrBrBrBrnrnKEfWKnrqhlslslsVFDczAnrnrnrkgnrnrnrnrDcAgcwddRCuFnrKnlsdvnrISVefmxZfxBrBrFEFEFE
FEFEFEFEFEFEFEfmBrBrBrBrBrBrnrNUcVcVcRDOlslslsdzPItjfhnroHoHoHdrVxnwAalslsfKJhvHRalslssCkgeEfmFEFEebFEFEFEFEFE
FEFEFEFEFEFEFEFEBrBrBrBrBrBrnrRccVRrnrqMyqzJjSTUbWTxsunroHoHoHdrBVBVAalslscdzoFmEsienWQWEsRwfmFEFEebFEFEFEFEFE
FEFEFEFEFEFEFEFEFEBrBrBrBrBrDcnrnrnrDcnrnrnrnrnrnrnrnrpfgDoHWtpfnrnrnrnrnrzEvLvLMivLvLvLMiUZFEFEFEebFEFEFEFEFE
From cde565534c9f6b2018d719ea75c6bd6890865b98 Mon Sep 17 00:00:00 2001
From: Pinta <>
Date: Thu, 15 Feb 2024 03:27:01 -0500
Subject: [PATCH 9/9] some more touches
---
GainStation13/code/game/lore_papers.dm | 23 +++++++++++++++----
.../code/mechanics/den abductors/console.dm | 2 +-
_maps/RandomRuins/SpaceRuins/feeders_den.dmm | 2 +-
3 files changed, 21 insertions(+), 6 deletions(-)
diff --git a/GainStation13/code/game/lore_papers.dm b/GainStation13/code/game/lore_papers.dm
index fd8b9d60..9232b92b 100644
--- a/GainStation13/code/game/lore_papers.dm
+++ b/GainStation13/code/game/lore_papers.dm
@@ -24,11 +24,26 @@
name = "READ ME!"
info = "Don't use this auto-surgeon on yourself, dumbass!"
-
/obj/item/paper/fluff/ruins/feeder_den/tool_warning
- name = "READ ME!"
- info = "Please link the science tool to the console before leaving!"
-
+ name = "READ ME BEFORE USING!"
+ info = "For those interested in grabbing more victims, make sure to read this first
\n\n\
+ OOC: Your goal here is to capture people to fatten up. Avoid intentionally killing and causing chaos on the station if you can at all help it.
\
+ Before capturing someone, be sure to check their preferences and make sure that they are not already occupied. A discord message or LOOC never hurts if you aren't sure. OOC communication is very important.
\
+ You have the power to send people back to the station, make sure that you talk with them before sending them back. Especially if they are someone that wasn't on the station in the first place, like a Den Victim. \
+
\
+ It is heavily advised that you find a target before you teleport onto the station as some crew members are not good canidates.
\
+ With the camera console you have access to the entire camera network of the station, use this to your advantage to formulate a plan. \
+
\
+ Right before heading onto the station, make sure that you grab a science tool and sync it with the feeder console. \
+ Syncing it will allow you to beam both yourself and captives back to the den. \
+ To do this, mark the person you want to mark by touching them with the tool. Once someone is marked you can use the tool on them again to beam them up.
\
+ Additionally, if you have someone to help you, they can beam up anyone that is marked, by using the camera console.\
+
\
+ Credits can be gained by having someone you fattened up use the tracking scale. Keep in mind that credits can only be gained when someone surpasses their previous max weight.\
+ Additionally, you are only able to get 900 credits from a person.\
+
\
+ You are able to use the console and pad to send victims back to the station after you are done with them. Avoid sending them anywhere dangerous or obvious unless you want to risk the ire of GATO. "
+
// calorite research facility
/obj/item/paper/fluff/ruins/calorite_facility/note1
diff --git a/GainStation13/code/mechanics/den abductors/console.dm b/GainStation13/code/mechanics/den abductors/console.dm
index f3d29fec..36631bd0 100644
--- a/GainStation13/code/mechanics/den abductors/console.dm
+++ b/GainStation13/code/mechanics/den abductors/console.dm
@@ -60,7 +60,7 @@
var/price = goodie_datum.credit_cost
var/item_path = goodie_datum.item_to_dispense
- if(!isnull(goode.datum.initial_stock) && buy_counts[goodie_datum.name] && (buy_counts[goodie_datum.name] >= goodie_datum.initial_stock))
+ if(!isnull(goodie_datum.initial_stock) && buy_counts[goodie_datum.name] && (buy_counts[goodie_datum.name] >= goodie_datum.initial_stock))
say("Unable to purchase more!")
return FALSE
diff --git a/_maps/RandomRuins/SpaceRuins/feeders_den.dmm b/_maps/RandomRuins/SpaceRuins/feeders_den.dmm
index 34cb8aeb..fc3867b0 100644
--- a/_maps/RandomRuins/SpaceRuins/feeders_den.dmm
+++ b/_maps/RandomRuins/SpaceRuins/feeders_den.dmm
@@ -276,7 +276,7 @@
"Ws" = (/obj/machinery/light{dir = 1},/obj/effect/turf_decal{dir = 4},/obj/machinery/airalarm/syndicate{pixel_y = 32},/turf/open/floor/plating,/area/ruin/space/has_grav/feedersden)
"Wt" = (/obj/structure/lattice/catwalk,/obj/item/stack/marker_beacon{anchored = 1; icon_state = "markerburgundy-on"; light_color = "#FA644B"; light_power = 3; light_range = 2; name = "landing marker"; picked_color = "Burgundy"; pixel_x = 12; pixel_y = -10},/turf/template_noop,/area/ruin/space/has_grav/feedersden)
"WJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{piping_layer = 3; pixel_x = 5; pixel_y = 5},/obj/effect/turf_decal/tile/bar,/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 1},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
-"WK" = (/obj/structure/table/abductor,/obj/item/paper/fluff/ruins/feeder_den/report4,/turf/open/floor/plating/abductor,/area/ruin/space/has_grav/feedersden)
+"WK" = (/obj/structure/table/abductor,/obj/item/paper/fluff/ruins/feeder_den/tool_warning,/turf/open/floor/plating/abductor,/area/ruin/space/has_grav/feedersden)
"WN" = (/obj/structure/rack/shelf,/obj/item/reagent_containers/food/snacks/syndicake,/obj/item/reagent_containers/food/snacks/syndicake,/obj/item/reagent_containers/food/snacks/chips,/obj/item/reagent_containers/food/snacks/chips,/obj/item/reagent_containers/food/snacks/cornchips,/obj/item/reagent_containers/food/snacks/cornchips,/obj/item/reagent_containers/food/snacks/candy,/obj/item/reagent_containers/food/snacks/candy,/obj/effect/turf_decal/tile/brown{dir = 4},/obj/effect/turf_decal/tile/brown{dir = 1},/turf/open/floor/plasteel,/area/ruin/space/has_grav/feedersden)
"Xh" = (/obj/machinery/atmospherics/components/unary/vent_pump/on,/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 4},/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/feedersden)
"XL" = (/turf/closed/mineral/random,/area/ruin/space/has_grav/feedersden)