Free photocopier is now really free (#91894)

This commit is contained in:
Kocma-san
2025-07-04 23:36:30 +07:00
committed by Roxy
parent 081ad3f69f
commit dbe8aefea9
2 changed files with 94 additions and 90 deletions
+81 -81
View File
@@ -5,6 +5,10 @@
"ad" = (
/turf/open/space,
/area/space)
"ae" = (
/obj/machinery/photocopier/gratis/prebuilt,
/turf/open/floor/iron/grimy,
/area/centcom/central_command_areas/briefing)
"ak" = (
/obj/item/kirbyplants/organic/plant21,
/obj/effect/turf_decal/tile/red/anticorner/contrasted{
@@ -428,6 +432,33 @@
/obj/effect/turf_decal/tile/neutral/fourcorners,
/turf/open/floor/iron/dark,
/area/centcom/central_command_areas/control)
"bY" = (
/obj/machinery/button/door/indestructible{
id = "CCsec3";
name = "CC Shutter 3 Control";
pixel_y = 24
},
/obj/machinery/button/door/indestructible{
id = "CCcustoms2";
name = "CC Shutter 2 Control";
pixel_x = 9;
pixel_y = 32
},
/obj/machinery/button/door/indestructible{
id = "CCsec1";
name = "CC Shutter 1 Control";
pixel_y = 40
},
/obj/effect/turf_decal/tile/neutral/fourcorners,
/obj/machinery/button/door/indestructible{
id = "CCsec4";
name = "CC Shutter 4 Control";
pixel_x = -9;
pixel_y = 32
},
/obj/machinery/photocopier/gratis/prebuilt,
/turf/open/floor/iron/dark,
/area/centcom/central_command_areas/control)
"bZ" = (
/obj/effect/turf_decal/tile/green,
/obj/effect/light_emitter/thunderdome,
@@ -1163,6 +1194,16 @@
/obj/effect/light_emitter/thunderdome,
/turf/open/floor/iron,
/area/centcom/tdome/arena)
"fg" = (
/obj/structure/table/wood,
/obj/item/book/manual/wiki/barman_recipes,
/obj/item/reagent_containers/cup/glass/shaker,
/obj/item/rag,
/obj/machinery/newscaster/directional/south,
/obj/effect/turf_decal/tile/neutral/fourcorners,
/obj/machinery/light/small/directional/east,
/turf/open/floor/iron/dark,
/area/centcom/tdome/observation)
"fh" = (
/obj/item/kirbyplants/organic/plant22,
/obj/effect/turf_decal/tile/green/half/contrasted,
@@ -1200,6 +1241,14 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/centcom/central_command_areas/evacuation)
"fu" = (
/obj/structure/reagent_dispensers/fueltank,
/obj/item/weldingtool/experimental,
/obj/effect/decal/cleanable/blood/oil,
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/iron,
/area/centcom/central_command_areas/admin)
"fw" = (
/obj/effect/turf_decal/tile/neutral/fourcorners,
/turf/open/floor/iron,
@@ -1253,6 +1302,16 @@
},
/turf/open/floor/iron/dark,
/area/centcom/central_command_areas/evacuation/ship)
"fJ" = (
/obj/structure/reagent_dispensers/watertank,
/obj/effect/turf_decal/stripes/line{
dir = 6
},
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/blood/oil,
/obj/machinery/light/small/directional/west,
/turf/open/floor/iron/smooth_large,
/area/centcom/central_command_areas/evacuation/ship)
"fM" = (
/obj/structure/filingcabinet/medical,
/obj/machinery/firealarm/directional/west,
@@ -1572,33 +1631,6 @@
/obj/machinery/griddle,
/turf/open/floor/iron/dark,
/area/centcom/tdome/observation)
"hw" = (
/obj/machinery/photocopier/prebuilt,
/obj/machinery/button/door/indestructible{
id = "CCsec3";
name = "CC Shutter 3 Control";
pixel_y = 24
},
/obj/machinery/button/door/indestructible{
id = "CCcustoms2";
name = "CC Shutter 2 Control";
pixel_x = 9;
pixel_y = 32
},
/obj/machinery/button/door/indestructible{
id = "CCsec1";
name = "CC Shutter 1 Control";
pixel_y = 40
},
/obj/effect/turf_decal/tile/neutral/fourcorners,
/obj/machinery/button/door/indestructible{
id = "CCsec4";
name = "CC Shutter 4 Control";
pixel_x = -9;
pixel_y = 32
},
/turf/open/floor/iron/dark,
/area/centcom/central_command_areas/control)
"hz" = (
/obj/effect/turf_decal/tile/neutral/fourcorners,
/turf/open/floor/iron/dark,
@@ -3699,6 +3731,13 @@
/obj/effect/mapping_helpers/airlock/access/all/admin/captain,
/turf/open/floor/iron,
/area/centcom/central_command_areas/prison)
"qM" = (
/obj/effect/turf_decal/stripes/line{
dir = 6
},
/obj/machinery/photocopier/gratis/prebuilt,
/turf/open/floor/iron,
/area/centcom/central_command_areas/supply)
"qO" = (
/obj/effect/turf_decal/tile/red{
dir = 8
@@ -4570,6 +4609,14 @@
},
/turf/open/floor/iron,
/area/centcom/central_command_areas/evacuation)
"uK" = (
/obj/machinery/power/terminal{
dir = 1
},
/obj/structure/cable,
/obj/effect/decal/cleanable/blood/oil,
/turf/open/floor/iron/smooth_large,
/area/centcom/central_command_areas/evacuation/ship)
"uM" = (
/obj/machinery/chem_master/condimaster{
name = "HoochMaster 2000"
@@ -4939,16 +4986,6 @@
/obj/structure/flora/bush/pointy/style_random,
/turf/open/floor/grass,
/area/centcom/tdome/administration)
"wk" = (
/obj/structure/reagent_dispensers/watertank,
/obj/effect/turf_decal/stripes/line{
dir = 6
},
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/blood/oil,
/obj/machinery/light/small/directional/west,
/turf/open/floor/iron/smooth_large,
/area/centcom/central_command_areas/evacuation/ship)
"wl" = (
/obj/machinery/modular_computer/preset/id/centcom{
dir = 1
@@ -5559,14 +5596,6 @@
/obj/effect/turf_decal/tile/neutral/fourcorners,
/turf/open/floor/iron/dark,
/area/centcom/tdome/observation)
"za" = (
/obj/machinery/power/terminal{
dir = 1
},
/obj/structure/cable,
/obj/effect/decal/cleanable/blood/oil,
/turf/open/floor/iron/smooth_large,
/area/centcom/central_command_areas/evacuation/ship)
"zb" = (
/obj/machinery/computer/records/medical{
dir = 4
@@ -6100,14 +6129,6 @@
/obj/machinery/light/small/directional/west,
/turf/open/floor/iron/dark,
/area/centcom/central_command_areas/admin)
"Bm" = (
/obj/structure/reagent_dispensers/fueltank,
/obj/item/weldingtool/experimental,
/obj/effect/decal/cleanable/blood/oil,
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/iron,
/area/centcom/central_command_areas/admin)
"Bo" = (
/obj/effect/turf_decal/tile/green{
dir = 8
@@ -6874,10 +6895,6 @@
/obj/machinery/door/firedoor,
/turf/open/floor/iron/dark,
/area/centcom/tdome/administration)
"EU" = (
/obj/machinery/photocopier/prebuilt,
/turf/open/floor/iron/grimy,
/area/centcom/central_command_areas/briefing)
"EV" = (
/obj/structure/table/wood,
/obj/machinery/microwave{
@@ -7063,13 +7080,6 @@
/obj/effect/light_emitter/thunderdome,
/turf/closed/indestructible/fakeglass,
/area/centcom/tdome/observation)
"Gd" = (
/obj/machinery/photocopier/prebuilt,
/obj/effect/turf_decal/stripes/line{
dir = 6
},
/turf/open/floor/iron,
/area/centcom/central_command_areas/supply)
"Gf" = (
/obj/machinery/firealarm/directional/east,
/obj/machinery/atmospherics/components/unary/vent_pump{
@@ -9581,16 +9591,6 @@
/obj/item/stack/sheet/mineral/plasma/five,
/turf/open/floor/iron/smooth_edge,
/area/centcom/central_command_areas/evacuation/ship)
"Tf" = (
/obj/structure/table/wood,
/obj/item/book/manual/wiki/barman_recipes,
/obj/item/reagent_containers/cup/glass/shaker,
/obj/item/rag,
/obj/machinery/newscaster/directional/south,
/obj/effect/turf_decal/tile/neutral/fourcorners,
/obj/machinery/light/small/directional/east,
/turf/open/floor/iron/dark,
/area/centcom/tdome/observation)
"Tg" = (
/obj/item/storage/briefcase{
pixel_x = -3;
@@ -36394,7 +36394,7 @@ aa
KH
Lt
KK
wk
fJ
Qt
Lk
cP
@@ -41276,7 +41276,7 @@ aa
aa
Lt
fQ
za
uK
MX
DL
ep
@@ -47399,7 +47399,7 @@ On
Zf
Zf
On
Bm
fu
Hz
Hz
Hz
@@ -47925,7 +47925,7 @@ wz
qR
Rd
eF
EU
ae
TE
az
eF
@@ -52533,7 +52533,7 @@ kj
kj
nm
iF
Gd
qM
iR
oJ
lo
@@ -53829,7 +53829,7 @@ Za
tK
gL
io
hw
bY
uc
kl
xV
@@ -57200,7 +57200,7 @@ JV
dG
ym
TV
Tf
fg
QC
dj
Mf
+13 -9
View File
@@ -79,12 +79,16 @@ GLOBAL_LIST_INIT(paper_blanks, init_paper_blanks())
var/mob/living/ass
/// A reference to the toner cartridge that's inserted into the copier. Null if there is no cartridge.
var/obj/item/toner/toner_cartridge
/// Type path of toner this photocopier should starts with. Null if he should start without it.
var/obj/item/toner/starting_toner
/// How many copies will be printed with one click of the "copy" button.
var/num_copies = 1
/// Used with photos. Determines if the copied photo will be in greyscale or color.
var/color_mode = PHOTO_COLOR
/// Indicates whether the printer is currently busy copying or not.
var/busy = FALSE
/// How much does it cost to use this photocopier.
var/usage_cost = PHOTOCOPIER_FEE
/// Variable that holds a reference to any object supported for photocopying inside the photocopier
var/obj/object_copy
/// Variable for the UI telling us how many copies are in the queue.
@@ -111,12 +115,9 @@ GLOBAL_LIST_INIT(paper_blanks, init_paper_blanks())
)
/obj/machinery/photocopier/prebuilt
starting_toner = /obj/item/toner
starting_paper = 30
/obj/machinery/photocopier/prebuilt/Initialize(mapload)
toner_cartridge = new(src)
return ..()
/obj/machinery/photocopier/get_save_vars()
. = ..()
. += NAMEOF(src, paper_stack)
@@ -128,10 +129,12 @@ GLOBAL_LIST_INIT(paper_blanks, init_paper_blanks())
AddElement(/datum/element/elevation, pixel_shift = 8) //enough to look like your bums are on the machine.
if(starting_paper)
paper_stack[created_paper] = starting_paper
if(starting_toner)
toner_cartridge = new starting_toner(src)
/// Simply adds the necessary components for this to function.
/obj/machinery/photocopier/proc/setup_components()
AddComponent(/datum/component/payment, PHOTOCOPIER_FEE, SSeconomy.get_dep_account(ACCOUNT_CIV), PAYMENT_CLINICAL)
AddComponent(/datum/component/payment, usage_cost, SSeconomy.get_dep_account(ACCOUNT_CIV), PAYMENT_CLINICAL)
/obj/machinery/photocopier/RefreshParts()
. = ..()
@@ -420,7 +423,7 @@ GLOBAL_LIST_INIT(paper_blanks, init_paper_blanks())
if(get_paper_count(created_paper) < paper_use * copies_amount)
copies_amount = FLOOR(get_paper_count(created_paper) / paper_use, 1)
error_message = span_warning("An error message flashes across \the [src]'s screen: \"Not enough paper to perform [copies_amount >= 1 ? "full " : ""]operation.\"")
if(!(obj_flags & EMAGGED) && (copies_amount > 0) && (attempt_charge(src, user, (copies_amount - 1) * PHOTOCOPIER_FEE) & COMPONENT_OBJ_CANCEL_CHARGE))
if(!(obj_flags & EMAGGED) && (copies_amount > 0) && (attempt_charge(src, user, (copies_amount - 1) * usage_cost) & COMPONENT_OBJ_CANCEL_CHARGE))
copies_amount = 0
error_message = span_warning("An error message flashes across \the [src]'s screen: \"Failed to charge bank account. Aborting.\"")
@@ -853,10 +856,11 @@ GLOBAL_LIST_INIT(paper_blanks, init_paper_blanks())
/// Subtype of photocopier that is free to use.
/obj/machinery/photocopier/gratis
desc = "Does the same important paperwork, but it's free to use! The best type of free."
usage_cost = 0 // it's free! no charge! very cool and gratis-pilled.
/obj/machinery/photocopier/gratis/setup_components()
// it's free! no charge! very cool and gratis-pilled.
AddComponent(/datum/component/payment, 0, SSeconomy.get_dep_account(ACCOUNT_CIV), PAYMENT_CLINICAL)
/obj/machinery/photocopier/gratis/prebuilt
starting_toner = /obj/item/toner
starting_paper = 30
/*
* Toner cartridge