Skip to content

Commit 1ace49e

Browse files
Golem ship remap and equipment tweaking. (#29294)
1 parent 5cec6a1 commit 1ace49e

File tree

15 files changed

+1038
-785
lines changed

15 files changed

+1038
-785
lines changed

_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_golem_ship.dmm

+865-630
Large diffs are not rendered by default.

_maps/map_files/RandomRuins/SpaceRuins/golemtarget.dmm

+30-30
Original file line numberDiff line numberDiff line change
@@ -152,8 +152,8 @@ a
152152
a
153153
a
154154
a
155-
a
156-
a
155+
H
156+
x
157157
a
158158
"}
159159
(5,1,1) = {"
@@ -185,9 +185,9 @@ a
185185
a
186186
a
187187
a
188-
a
189-
a
190-
a
188+
H
189+
x
190+
x
191191
a
192192
"}
193193
(6,1,1) = {"
@@ -220,8 +220,8 @@ a
220220
a
221221
a
222222
a
223-
a
224-
a
223+
x
224+
H
225225
a
226226
"}
227227
(7,1,1) = {"
@@ -253,9 +253,9 @@ a
253253
a
254254
a
255255
a
256-
a
257-
a
258-
a
256+
x
257+
x
258+
x
259259
a
260260
"}
261261
(8,1,1) = {"
@@ -287,9 +287,9 @@ a
287287
a
288288
a
289289
a
290-
a
291-
a
292-
a
290+
x
291+
x
292+
x
293293
a
294294
"}
295295
(9,1,1) = {"
@@ -321,8 +321,8 @@ a
321321
a
322322
a
323323
a
324-
a
325-
a
324+
x
325+
x
326326
a
327327
a
328328
"}
@@ -920,11 +920,11 @@ a
920920
a
921921
a
922922
a
923-
H
924-
x
925-
x
926-
x
927-
x
923+
a
924+
a
925+
a
926+
a
927+
a
928928
a
929929
a
930930
a
@@ -953,12 +953,12 @@ a
953953
a
954954
a
955955
a
956-
H
957-
x
958-
x
959-
x
960-
x
961-
x
956+
a
957+
a
958+
a
959+
a
960+
a
961+
a
962962
a
963963
a
964964
a
@@ -988,10 +988,10 @@ a
988988
a
989989
a
990990
a
991-
x
992-
H
993-
x
994-
x
991+
a
992+
a
993+
a
994+
a
995995
a
996996
a
997997
a

code/__DEFINES/misc_defines.dm

+6
Original file line numberDiff line numberDiff line change
@@ -747,6 +747,12 @@ do { \
747747
//! The number of seconds between the start of the UNIX and BYOND epochs.
748748
#define BYOND_EPOCH_UNIX 946702800
749749

750+
// Use this define to register something as a purchasable!
751+
// * n — The proper name of the purchasable
752+
// * o — The object type path of the purchasable to spawn
753+
// * p — The price of the purchasable in mining points
754+
#define EQUIPMENT(n, o, p) n = new /datum/data/mining_equipment(n, o, p)
755+
750756
#define BRIDGE_SPAWN_SUCCESS 0
751757
#define BRIDGE_SPAWN_TOO_WIDE 1
752758
#define BRIDGE_SPAWN_TOO_NARROW 2

code/game/objects/items/blueprints.dm

-17
Original file line numberDiff line numberDiff line change
@@ -69,23 +69,6 @@
6969
if(..())
7070
qdel(src)
7171

72-
//free golem blueprints, like permit but can claim as much as needed
73-
74-
/obj/item/areaeditor/golem
75-
name = "Golem Land Claim"
76-
desc = "Used to define new areas in space."
77-
fluffnotice = "Praise the Liberator!"
78-
79-
/obj/item/areaeditor/golem/attack_self__legacy__attackchain(mob/user)
80-
. = ..()
81-
var/area/our_area = get_area(src)
82-
if(get_area_type() == AREA_STATION)
83-
. += "<p>According to [src], you are now in <b>\"[sanitize(our_area.name)]\"</b>.</p>"
84-
var/datum/browser/popup = new(user, "blueprints", "[src]", 700, 500)
85-
popup.set_content(.)
86-
popup.open()
87-
onclose(usr, "blueprints")
88-
8972
//Station blueprints!!!
9073
/obj/item/areaeditor/blueprints
9174
name = "station blueprints"

code/game/objects/structures/crates_lockers/crates.dm

-11
Original file line numberDiff line numberDiff line change
@@ -618,17 +618,6 @@
618618
new /obj/item/reagent_containers/cooking/bowl(src)
619619
new /obj/item/reagent_containers/cooking/bowl(src)
620620

621-
//crates of gear in the free golem ship
622-
/obj/structure/closet/crate/golemgear/populate_contents()
623-
new /obj/item/storage/backpack/industrial(src)
624-
new /obj/item/shovel(src)
625-
new /obj/item/pickaxe(src)
626-
new /obj/item/t_scanner/adv_mining_scanner/lesser(src)
627-
new /obj/item/storage/bag/ore(src)
628-
new /obj/item/clothing/glasses/meson(src)
629-
new /obj/item/card/id/golem(src)
630-
new /obj/item/flashlight/lantern(src)
631-
632621
#define RECURSION_PANIC_AMOUNT 10
633622

634623
/obj/structure/closet/crate/surplus
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
/obj/item/storage/firstaid/freegolem
2+
name = "golem emergency treatment kit"
3+
desc = "A box of essential medical supplies, formulated for golems' hard skin."
4+
icon_state = "medbriefcase"
5+
6+
/obj/item/storage/firstaid/freegolem/populate_contents()
7+
new /obj/item/healthanalyzer(src)
8+
new /obj/item/reagent_containers/patch/styptic/small(src)
9+
new /obj/item/reagent_containers/patch/styptic/small(src)
10+
new /obj/item/reagent_containers/patch/silver_sulf/small(src)
11+
new /obj/item/reagent_containers/patch/silver_sulf/small(src)
12+
new /obj/item/reagent_containers/hypospray/autoinjector/epinephrine(src)
13+
14+
/obj/structure/closet/freegolem
15+
name = "free golem equipment locker"
16+
icon_state = "freegolem"
17+
18+
/obj/structure/closet/freegolem/populate_contents()
19+
new /obj/item/storage/backpack/industrial(src)
20+
new /obj/item/shovel(src)
21+
new /obj/item/pickaxe(src)
22+
new /obj/item/t_scanner/adv_mining_scanner/lesser(src)
23+
new /obj/item/storage/bag/ore(src)
24+
new /obj/item/clothing/glasses/meson(src)
25+
new /obj/item/card/id/golem(src)
26+
new /obj/item/flashlight/lantern(src)
27+
new /obj/item/resonator/upgraded(src)
28+
new /obj/item/storage/firstaid/freegolem(src)
29+
30+
/**
31+
* # Ore Redemption Machine (Golem)
32+
*
33+
* Golem variant of the ORM.
34+
*/
35+
/obj/machinery/mineral/ore_redemption/golem
36+
req_access = list(ACCESS_FREE_GOLEMS)
37+
req_access_claim = ACCESS_FREE_GOLEMS
38+
39+
/obj/machinery/mineral/ore_redemption/golem/Initialize(mapload)
40+
. = ..()
41+
component_parts = list()
42+
component_parts += new /obj/item/circuitboard/ore_redemption/golem(null)
43+
component_parts += new /obj/item/stock_parts/matter_bin(null)
44+
component_parts += new /obj/item/stock_parts/manipulator(null)
45+
component_parts += new /obj/item/stock_parts/micro_laser(null)
46+
component_parts += new /obj/item/assembly/igniter(null)
47+
component_parts += new /obj/item/stack/sheet/glass(null)
48+
RefreshParts()
49+
50+
/obj/machinery/mineral/ore_redemption/golem/RefreshParts()
51+
var/P = 0.65
52+
var/S = 0.65
53+
for(var/obj/item/stock_parts/micro_laser/M in component_parts)
54+
P += 0.35 * M.rating
55+
for(var/obj/item/stock_parts/matter_bin/M in component_parts)
56+
S += 0.35 * M.rating
57+
// Manipulators do nothing
58+
// Update our values
59+
point_upgrade = P
60+
sheet_per_ore = S
61+
SStgui.update_uis(src)
62+
63+
/**********************Mining Equiment Vendor (Golem)**************************/
64+
65+
/obj/machinery/mineral/equipment_vendor/golem
66+
name = "golem ship equipment vendor"
67+
68+
/obj/machinery/mineral/equipment_vendor/golem/Initialize(mapload)
69+
. = ..()
70+
component_parts = list()
71+
component_parts += new /obj/item/circuitboard/mining_equipment_vendor/golem(null)
72+
component_parts += new /obj/item/stock_parts/matter_bin(null)
73+
component_parts += new /obj/item/stock_parts/matter_bin(null)
74+
component_parts += new /obj/item/stock_parts/matter_bin(null)
75+
component_parts += new /obj/item/stack/sheet/glass(null)
76+
RefreshParts()
77+
78+
desc += "\nIt seems a few selections have been added."
79+
prize_list["Extra"] += list(
80+
EQUIPMENT("Free Golem ID", /obj/item/card/id/golem, 250),
81+
EQUIPMENT("Science Backpack", /obj/item/storage/backpack/science, 250),
82+
EQUIPMENT("Full Toolbelt", /obj/item/storage/belt/utility/full/multitool, 250),
83+
EQUIPMENT("Monkey Cube", /obj/item/food/monkeycube, 250),
84+
EQUIPMENT("Royal Cape of the Liberator", /obj/item/bedsheet/rd/royal_cape, 500),
85+
EQUIPMENT("Grey Slime Extract", /obj/item/slime_extract/grey, 1000),
86+
EQUIPMENT("KA Trigger Modification Kit", /obj/item/borg/upgrade/modkit/trigger_guard, 1000),
87+
EQUIPMENT("Shuttle Console Board", /obj/item/circuitboard/shuttle/golem_ship, 2000),
88+
EQUIPMENT("The Liberator's Legacy", /obj/item/storage/box/rndboards, 2000),
89+
EQUIPMENT("The Liberator's Fabricator", /obj/item/storage/box/smithboards, 1000),
90+
)
91+
92+
/// Free golem blueprints, like permit but can claim as much as needed.
93+
/obj/item/areaeditor/golem
94+
name = "Golem Land Claim"
95+
desc = "Used to define new areas in space."
96+
fluffnotice = "Praise the Liberator!"
97+
98+
/obj/item/areaeditor/golem/attack_self__legacy__attackchain(mob/user)
99+
. = ..()
100+
var/area/our_area = get_area(src)
101+
if(get_area_type() == AREA_STATION)
102+
. += "<p>According to [src], you are now in <b>\"[sanitize(our_area.name)]\"</b>.</p>"
103+
var/datum/browser/popup = new(user, "blueprints", "[src]", 700, 500)
104+
popup.set_content(.)
105+
popup.open()
106+
onclose(usr, "blueprints")
107+
108+
/obj/item/disk/design_disk/golem_shell
109+
name = "golem creation disk"
110+
desc = "A gift from the Liberator."
111+
icon_state = "datadisk1"
112+
113+
/obj/item/disk/design_disk/golem_shell/Initialize(mapload)
114+
. = ..()
115+
var/datum/design/golem_shell/G = new
116+
blueprint = G
117+
118+
/obj/machinery/computer/shuttle/golem_ship
119+
name = "Golem Ship Console"
120+
desc = "Used to control the Golem Ship."
121+
circuit = /obj/item/circuitboard/shuttle/golem_ship
122+
shuttleId = "freegolem"
123+
possible_destinations = "freegolem_lavaland;freegolem_space;freegolem_ussp"
124+
125+
/obj/machinery/computer/shuttle/golem_ship/attack_hand(mob/user)
126+
if(!isgolem(user) && !isobserver(user))
127+
to_chat(user, "<span class='notice'>The console is unresponsive. Seems only golems can use it.</span>")
128+
return
129+
..()
130+
131+
/obj/machinery/computer/shuttle/golem_ship/recall
132+
name = "golem ship recall terminal"
133+
desc = "Used to recall the Golem Ship."
134+
possible_destinations = "freegolem_lavaland"
135+
resistance_flags = INDESTRUCTIBLE

code/modules/mining/equipment/resonator.dm

+1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
name = "upgraded resonator"
3434
desc = "An upgraded version of the resonator that can produce more fields at once, as well as having no damage penalty for bursting a resonance field early. It also allows you to set 'Resonance matrixes', that detonate after someone (or something) walks over it."
3535
icon_state = "resonator_u"
36+
item_state = "resonator_u"
3637
origin_tech = "materials=4;powerstorage=3;engineering=3;magnets=3"
3738
fieldlimit = 6
3839
quick_burst_mod = 1

code/modules/mining/machine_redemption.dm

-33
Original file line numberDiff line numberDiff line change
@@ -75,39 +75,6 @@
7575
component_parts += new /obj/item/stack/sheet/glass(null)
7676
RefreshParts()
7777

78-
/**
79-
* # Ore Redemption Machine (Golem)
80-
*
81-
* Golem variant of the ORM.
82-
*/
83-
/obj/machinery/mineral/ore_redemption/golem
84-
req_access = list(ACCESS_FREE_GOLEMS)
85-
req_access_claim = ACCESS_FREE_GOLEMS
86-
87-
/obj/machinery/mineral/ore_redemption/golem/Initialize(mapload)
88-
. = ..()
89-
component_parts = list()
90-
component_parts += new /obj/item/circuitboard/ore_redemption/golem(null)
91-
component_parts += new /obj/item/stock_parts/matter_bin(null)
92-
component_parts += new /obj/item/stock_parts/manipulator(null)
93-
component_parts += new /obj/item/stock_parts/micro_laser(null)
94-
component_parts += new /obj/item/assembly/igniter(null)
95-
component_parts += new /obj/item/stack/sheet/glass(null)
96-
RefreshParts()
97-
98-
/obj/machinery/mineral/ore_redemption/golem/RefreshParts()
99-
var/P = 0.65
100-
var/S = 0.65
101-
for(var/obj/item/stock_parts/micro_laser/M in component_parts)
102-
P += 0.35 * M.rating
103-
for(var/obj/item/stock_parts/matter_bin/M in component_parts)
104-
S += 0.35 * M.rating
105-
// Manipulators do nothing
106-
// Update our values
107-
point_upgrade = P
108-
sheet_per_ore = S
109-
SStgui.update_uis(src)
110-
11178
/**
11279
* # Ore Redemption Machine (Labor Camp)
11380
*

0 commit comments

Comments
 (0)