Skip to content

Commit 246a7ed

Browse files
committed
Merge remote-tracking branch 'upstream/master'
2 parents 1016335 + df4bb22 commit 246a7ed

File tree

137 files changed

+2707
-1891
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

137 files changed

+2707
-1891
lines changed

_maps/map_files/Mining/Lavaland.dmm

Lines changed: 2036 additions & 1474 deletions
Large diffs are not rendered by default.

_maps/map_files/wawastation/wawastation.dmm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55250,6 +55250,7 @@
5525055250
"tvQ" = (
5525155251
/obj/structure/chair/sofa/bench,
5525255252
/obj/effect/landmark/start/prisoner,
55253+
/obj/structure/cable,
5525355254
/turf/open/floor/iron,
5525455255
/area/station/security/prison)
5525555256
"twf" = (

_maps/virtual_domains/island_brawl.dmm

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3466,12 +3466,7 @@
34663466
/area/virtual_domain/fullbright)
34673467
"Rk" = (
34683468
/obj/structure/table/glass,
3469-
/obj/machinery/fax{
3470-
fax_name = "Beach Hotel Fax";
3471-
name = "Beach Hotel's Fax Machine";
3472-
pixel_y = 8;
3473-
visible_to_network = 0
3474-
},
3469+
/obj/item/storage/box/donkpockets,
34753470
/turf/open/floor/iron/dark/diagonal,
34763471
/area/virtual_domain)
34773472
"Rs" = (

code/__DEFINES/say.dm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@
7676
#define SPAN_SINGING "singing"
7777
#define SPAN_TAPE_RECORDER "tape_recorder"
7878
#define SPAN_SMALL_VOICE "small"
79-
79+
#define SPAN_SOAPBOX "soapbox"
8080
//bitflag #defines for return value of the radio() proc.
8181
/// Makes the message use italics
8282
#define ITALICS (1<<0)

code/__DEFINES/span.dm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@
120120
#define span_small(str) ("<span class='small'>" + str + "</span>")
121121
#define span_smallnotice(str) ("<span class='smallnotice'>" + str + "</span>")
122122
#define span_smallnoticeital(str) ("<span class='smallnoticeital'>" + str + "</span>")
123+
#define span_soapbox(str) ("<span class='soapbox'>" + str + "</span>")
123124
#define span_spiderbroodmother(str) ("<span class='spiderbroodmother'>" + str + "</span>")
124125
#define span_spiderscout(str) ("<span class='spiderscout'>" + str + "</span>")
125126
#define span_spiderbreacher(str) ("<span class='spiderbreacher'>" + str + "</span>")

code/__DEFINES/subsystems.dm

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -298,9 +298,12 @@
298298
#define SSEXPLOSIONS_THROWS 3
299299

300300
// Machines subsystem subtasks.
301-
#define SSMACHINES_APCS_EARLY 1
302-
#define SSMACHINES_MACHINES 2
303-
#define SSMACHINES_APCS_LATE 3
301+
#define SSMACHINES_MACHINES 1
302+
#define SSMACHINES_APCS_EARLY 2
303+
#define SSMACHINES_APCS_ENVIRONMENT 3
304+
#define SSMACHINES_APCS_LIGHTS 4
305+
#define SSMACHINES_APCS_EQUIPMENT 5
306+
#define SSMACHINES_APCS_LATE 6
304307

305308
// Wardrobe subsystem tasks
306309
#define SSWARDROBE_STOCK 1

code/__DEFINES/traits/declarations.dm

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
7272
// Trait added to the user of a hippocratic oath status effect
7373
#define TRAIT_HIPPOCRATIC_OATH "hippocratic_oath"
7474
#define TRAIT_IGNORESLOWDOWN "ignoreslow"
75-
#define TRAIT_IGNOREDAMAGESLOWDOWN "ignoredamageslowdown"
7675
/// Makes it so the mob can use guns regardless of tool user status
7776
#define TRAIT_GUN_NATURAL "gunnatural"
7877
/// Causes death-like unconsciousness
@@ -234,6 +233,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
234233
#define TRAIT_EXAMINE_FITNESS "reveal_power_level"
235234
/// These mobs have particularly hygienic tongues
236235
#define TRAIT_WOUND_LICKER "wound_licker"
236+
/// Mobs with this trait are allowed to use silicon emotes
237+
#define TRAIT_SILICON_EMOTES_ALLOWED "silicon_emotes_allowed"
237238

238239
/// This trait designate that the mob was originally a monkey
239240
#define TRAIT_BORN_MONKEY "born_as_a_monkey"
@@ -972,6 +973,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
972973

973974
/// changelings with this trait can no longer talk over the hivemind
974975
#define TRAIT_CHANGELING_HIVEMIND_MUTE "ling_mute"
976+
/// This guy is a hulk! (Bulky and green, lacks tact)
975977
#define TRAIT_HULK "hulk"
976978
/// Isn't attacked harmfully by blob structures
977979
#define TRAIT_BLOB_ALLY "blob_ally"

code/__DEFINES/traits/sources.dm

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,8 +225,6 @@
225225
#define SPEED_TRAIT "speed_trait"
226226
/// Trait given to mobs that have been autopsied
227227
#define AUTOPSY_TRAIT "autopsy_trait"
228-
/// Trait given by [/datum/status_effect/blessing_of_insanity]
229-
#define MAD_WIZARD_TRAIT "mad_wizard_trait"
230228

231229
///From the market_crash event
232230
#define MARKET_CRASH_EVENT_TRAIT "crashed_market_event"

code/_globalvars/lists/maintenance_loot.dm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,7 @@ GLOBAL_LIST_INIT(rarity_loot, list(//rare: really good items
312312
list(//equipment
313313
/obj/item/clothing/glasses/hud/security = 1,
314314
/obj/item/clothing/glasses/sunglasses = 1,
315-
/obj/item/clothing/gloves/color/black = 1,
315+
/obj/item/clothing/gloves/color/black/security = 1,
316316
/obj/item/clothing/gloves/color/yellow = 1,
317317
/obj/item/clothing/gloves/tackler/combat = 1,
318318
/obj/item/clothing/head/helmet/toggleable/justice = 1,

code/_globalvars/traits/_traits.dm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,6 @@ GLOBAL_LIST_INIT(traits_by_type, list(
273273
"TRAIT_HUSK" = TRAIT_HUSK,
274274
"TRAIT_ID_APPRAISER" = TRAIT_ID_APPRAISER,
275275
"TRAIT_IGNORE_ELEVATION" = TRAIT_IGNORE_ELEVATION,
276-
"TRAIT_IGNOREDAMAGESLOWDOWN" = TRAIT_IGNOREDAMAGESLOWDOWN,
277276
"TRAIT_IGNORESLOWDOWN" = TRAIT_IGNORESLOWDOWN,
278277
"TRAIT_IGNORING_GRAVITY" = TRAIT_IGNORING_GRAVITY,
279278
"TRAIT_ILLITERATE" = TRAIT_ILLITERATE,
@@ -439,6 +438,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
439438
"TRAIT_SHOCKIMMUNE" = TRAIT_SHOCKIMMUNE,
440439
"TRAIT_SIGN_LANG" = TRAIT_SIGN_LANG,
441440
"TRAIT_SILENT_FOOTSTEPS" = TRAIT_SILENT_FOOTSTEPS,
441+
"TRAIT_SILICON_EMOTES_ALLOWED" = TRAIT_SILICON_EMOTES_ALLOWED,
442442
"TRAIT_SIXTHSENSE" = TRAIT_SIXTHSENSE,
443443
"TRAIT_SKITTISH" = TRAIT_SKITTISH,
444444
"TRAIT_SLEEPIMMUNE" = TRAIT_SLEEPIMMUNE,

code/_globalvars/traits/admin_tooling.dm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,6 @@ GLOBAL_LIST_INIT(admin_visible_traits, list(
101101
"TRAIT_HOLY" = TRAIT_HOLY,
102102
"TRAIT_HUSK" = TRAIT_HUSK,
103103
"TRAIT_IGNORE_ELEVATION" = TRAIT_IGNORE_ELEVATION,
104-
"TRAIT_IGNOREDAMAGESLOWDOWN" = TRAIT_IGNOREDAMAGESLOWDOWN,
105104
"TRAIT_IGNORESLOWDOWN" = TRAIT_IGNORESLOWDOWN,
106105
"TRAIT_ILLITERATE" = TRAIT_ILLITERATE,
107106
"TRAIT_IMMOBILIZED" = TRAIT_IMMOBILIZED,
@@ -200,6 +199,7 @@ GLOBAL_LIST_INIT(admin_visible_traits, list(
200199
"TRAIT_SHOCKIMMUNE" = TRAIT_SHOCKIMMUNE,
201200
"TRAIT_SIGN_LANG" = TRAIT_SIGN_LANG,
202201
"TRAIT_SILENT_FOOTSTEPS" = TRAIT_SILENT_FOOTSTEPS,
202+
"TRAIT_SILICON_EMOTES_ALLOWED" = TRAIT_SILICON_EMOTES_ALLOWED,
203203
"TRAIT_SIXTHSENSE" = TRAIT_SIXTHSENSE,
204204
"TRAIT_SKITTISH" = TRAIT_SKITTISH,
205205
"TRAIT_SLEEPIMMUNE" = TRAIT_SLEEPIMMUNE,

code/_onclick/hud/alien.dm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@
7979
using = new /atom/movable/screen/resist(null, src)
8080
using.icon = ui_style
8181
using.screen_loc = ui_above_movement
82+
using.update_appearance()
8283
hotkeybuttons += using
8384

8485
throw_icon = new /atom/movable/screen/throw_catch(null, src)

code/_onclick/hud/new_player.dm

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,7 @@
6363

6464
///Set the HUD in New, as lobby screens are made before Atoms are Initialized.
6565
/atom/movable/screen/lobby/New(loc, datum/hud/our_hud, ...)
66-
if(our_hud)
67-
hud = our_hud
66+
set_new_hud(our_hud)
6867
return ..()
6968

7069
///Run sleeping actions after initialize

code/_onclick/hud/parallax/parallax.dm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@ INITIALIZE_IMMEDIATE(/atom/movable/screen/parallax_layer)
275275
. = ..()
276276
// Parallax layers are independant of hud, they care about client
277277
// Not doing this will just create a bunch of hard deletes
278-
hud = null
278+
set_new_hud(hud_owner = null)
279279

280280
if(template)
281281
return

code/_onclick/hud/screen_objects.dm

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,9 @@
4545

4646
/atom/movable/screen/Initialize(mapload, datum/hud/hud_owner)
4747
. = ..()
48-
if(hud_owner && istype(hud_owner))
49-
hud = hud_owner
48+
if(isnull(hud_owner)) //some screens set their hud owners on /new, this prevents overriding them with null post atoms init
49+
return
50+
set_new_hud(hud_owner)
5051

5152
/atom/movable/screen/Destroy()
5253
master_ref = null
@@ -72,10 +73,25 @@
7273
/atom/movable/screen/proc/component_click(atom/movable/screen/component_button/component, params)
7374
return
7475

76+
///setter used to set our new hud
77+
/atom/movable/screen/proc/set_new_hud(datum/hud/hud_owner)
78+
if(hud)
79+
UnregisterSignal(hud, COMSIG_QDELETING)
80+
if(isnull(hud_owner))
81+
hud = null
82+
return
83+
hud = hud_owner
84+
RegisterSignal(hud, COMSIG_QDELETING, PROC_REF(on_hud_delete))
85+
7586
/// Returns the mob this is being displayed to, if any
7687
/atom/movable/screen/proc/get_mob()
7788
return hud?.mymob
7889

90+
/atom/movable/screen/proc/on_hud_delete(datum/source)
91+
SIGNAL_HANDLER
92+
93+
set_new_hud(hud_owner = null)
94+
7995
/atom/movable/screen/text
8096
icon = null
8197
icon_state = null

code/controllers/subsystem/machines.dm

Lines changed: 30 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,17 @@ SUBSYSTEM_DEF(machines)
1111
VAR_PRIVATE/list/all_machines = list()
1212

1313
var/list/processing = list()
14+
var/list/processing_apcs = list()
15+
1416
var/list/currentrun = list()
15-
var/list/apc_early_processing = list()
16-
var/list/apc_late_processing = list()
17-
var/current_part = SSMACHINES_APCS_EARLY
17+
var/current_part = SSMACHINES_MACHINES
18+
var/list/apc_steps = list(
19+
SSMACHINES_APCS_ENVIRONMENT,
20+
SSMACHINES_APCS_LIGHTS,
21+
SSMACHINES_APCS_EQUIPMENT,
22+
SSMACHINES_APCS_EARLY,
23+
SSMACHINES_APCS_LATE
24+
)
1825
///List of all powernets on the server.
1926
var/list/datum/powernet/powernets = list()
2027

@@ -82,25 +89,10 @@ SUBSYSTEM_DEF(machines)
8289
if (!resumed)
8390
for(var/datum/powernet/powernet as anything in powernets)
8491
powernet.reset() //reset the power state.
85-
current_part = SSMACHINES_APCS_EARLY
86-
src.currentrun = apc_early_processing.Copy()
87-
88-
//APC early processing. Draws static power usages from their grids.
89-
if(current_part == SSMACHINES_APCS_EARLY)
90-
//cache for sanic speed (lists are references anyways)
91-
var/list/currentrun = src.currentrun
92-
while(currentrun.len)
93-
var/obj/machinery/power/apc/apc = currentrun[currentrun.len]
94-
currentrun.len--
95-
if(QDELETED(apc) || apc.early_process(wait * 0.1) == PROCESS_KILL)
96-
apc_early_processing -= apc
97-
apc.datum_flags &= ~DF_ISPROCESSING
98-
if(MC_TICK_CHECK)
99-
return
10092
current_part = SSMACHINES_MACHINES
10193
src.currentrun = processing.Copy()
10294

103-
//General machine processing. Their power usage can be dynamic and based on surplus power, so they come after static power usage have been applied.
95+
//Processing all machines
10496
if(current_part == SSMACHINES_MACHINES)
10597
//cache for sanic speed (lists are references anyways)
10698
var/list/currentrun = src.currentrun
@@ -112,22 +104,34 @@ SUBSYSTEM_DEF(machines)
112104
thing.datum_flags &= ~DF_ISPROCESSING
113105
if (MC_TICK_CHECK)
114106
return
115-
current_part = SSMACHINES_APCS_LATE
116-
src.currentrun = apc_late_processing.Copy()
107+
current_part = apc_steps[1]
108+
src.currentrun = processing_apcs.Copy()
117109

118-
//APC late processing. APCs will use the remaining power on the grid to charge their cells if needed.
119-
//This is applied at the end so charging APCs don't cause others to discharge by taking all the power from the grid before machines use power.
120-
if(current_part == SSMACHINES_APCS_LATE)
110+
//Processing APCs
111+
while(current_part in apc_steps)
121112
//cache for sanic speed (lists are references anyways)
122113
var/list/currentrun = src.currentrun
123114
while(currentrun.len)
124115
var/obj/machinery/power/apc/apc = currentrun[currentrun.len]
125116
currentrun.len--
126-
if(QDELETED(apc) || apc.late_process(wait * 0.1) == PROCESS_KILL)
127-
apc_late_processing -= apc
117+
if(QDELETED(apc))
118+
processing_apcs -= apc
128119
apc.datum_flags &= ~DF_ISPROCESSING
120+
switch(current_part)
121+
if(SSMACHINES_APCS_EARLY)
122+
apc.early_process(wait * 0.1)
123+
if(SSMACHINES_APCS_LATE)
124+
apc.charge_channel(null, wait * 0.1)
125+
apc.late_process(wait * 0.1)
126+
else
127+
apc.charge_channel(current_part, wait * 0.1)
129128
if(MC_TICK_CHECK)
130129
return
130+
var/next_index = apc_steps.Find(current_part) + 1
131+
if (next_index > apc_steps.len)
132+
return
133+
current_part = apc_steps[next_index]
134+
src.currentrun = processing_apcs.Copy()
131135

132136
/datum/controller/subsystem/machines/proc/setup_template_powernets(list/cables)
133137
var/obj/structure/cable/PC

code/datums/components/soapbox.dm

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/datum/component/soapbox
2+
/// List of our current soapboxxer(s) who are gaining loud speech
3+
var/list/soapboxers = list()
4+
/// Gives atoms moving over us the soapbox speech and takes it away when they leave
5+
var/static/list/loc_connections = list(
6+
COMSIG_ATOM_ENTERED = PROC_REF(on_loc_entered),
7+
COMSIG_ATOM_EXITED = PROC_REF(on_loc_exited)
8+
)
9+
10+
/datum/component/soapbox/Initialize(...)
11+
if(!ismovable(parent))
12+
return COMPONENT_INCOMPATIBLE
13+
add_connect_loc_behalf_to_parent()
14+
RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(parent_moved))
15+
16+
///Applies loud speech to our movable when entering the turf our parent is on
17+
/datum/component/soapbox/proc/on_loc_entered(datum/source, atom/movable/soapbox_arrive)
18+
SIGNAL_HANDLER
19+
RegisterSignal(soapbox_arrive, COMSIG_MOB_SAY, PROC_REF(soapbox_speech))
20+
soapboxers += soapbox_arrive
21+
22+
///Takes away loud speech from our movable when it leaves the turf our parent is on
23+
/datum/component/soapbox/proc/on_loc_exited(datum/source, atom/movable/soapbox_leave)
24+
SIGNAL_HANDLER
25+
if(soapbox_leave in soapboxers)
26+
UnregisterSignal(soapbox_leave, COMSIG_MOB_SAY)
27+
soapboxers -= soapbox_leave
28+
29+
///We don't want our soapboxxer to keep their loud say if the parent is moved out from under them
30+
/datum/component/soapbox/proc/parent_moved(datum/source)
31+
SIGNAL_HANDLER
32+
for(var/atom/movable/loud as anything in soapboxers)
33+
UnregisterSignal(loud, COMSIG_MOB_SAY)
34+
soapboxers = list()
35+
36+
///Gives a mob a unique say span
37+
/datum/component/soapbox/proc/soapbox_speech(datum/source, list/speech_args)
38+
SIGNAL_HANDLER
39+
speech_args[SPEECH_SPANS] |= SPAN_SOAPBOX
40+
41+
/datum/component/soapbox/proc/add_connect_loc_behalf_to_parent()
42+
AddComponent(/datum/component/connect_loc_behalf, parent, loc_connections)

code/datums/components/style/style.dm

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@
219219

220220
rank = rank_changed
221221
meter.maptext = "[format_rank_string(rank)][generate_multiplier()][generate_actions()]"
222-
meter.maptext_y = 100 - 9 * length(actions)
222+
meter.maptext_y = 94 - 12 * length(actions)
223223
update_meter(point_to_rank(), go_back)
224224

225225
/datum/component/style/proc/update_meter(new_rank, go_back)
@@ -270,19 +270,15 @@
270270
return "SPACED!"
271271

272272
/datum/component/style/proc/format_rank_string(new_rank)
273-
var/rank_string = rank_to_string(new_rank)
274-
var/final_string = ""
275-
final_string += "<span class='maptext' style='font-size: 8px'><font color='[rank_to_color(new_rank)]'><b>[rank_string[1]]</b>"
276-
final_string += "<span style='font-size: 7px'>[copytext(rank_string, 2)]</span></font></span>"
277-
return final_string
273+
return MAPTEXT_PIXELLARI("<font color='[rank_to_color(new_rank)]'>[rank_to_string(new_rank)]</font>")
278274

279275
/datum/component/style/proc/generate_multiplier()
280-
return "<br><span class='maptext' style='font-size: 7px'>MULTIPLIER: [point_multiplier]X</span>"
276+
return "<br>" + MAPTEXT_GRAND9K("MULTIPLIER: [point_multiplier]X")
281277

282278
/datum/component/style/proc/generate_actions()
283279
var/action_string = ""
284280
for(var/action in actions)
285-
action_string += "<br><span class='maptext'>+ <font color='[action_to_color(actions[action])]'>[actions[action]]</font></span>"
281+
action_string += "<br>" + MAPTEXT_GRAND9K("+ <font color='[action_to_color(actions[action])]'>[actions[action]]</font>")
286282
return action_string
287283

288284
/datum/component/style/proc/action_to_color(action)

code/datums/components/style/style_meter.dm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@
132132
maptext_height = 120
133133
maptext_width = 105
134134
maptext_x = 5
135-
maptext_y = 100
135+
maptext_y = 94
136136
maptext = ""
137137
layer = SCREENTIP_LAYER
138138

code/datums/components/tackle.dm

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
src.min_distance = min_distance
4444

4545
var/mob/P = parent
46-
to_chat(P, span_notice("You are now able to launch tackles! You can do so by activating throw mode, and clicking on your target with an empty hand."))
46+
to_chat(P, span_notice("You are now able to launch tackles! You can do so by activating throw mode, and ") + span_boldnotice("RIGHT-CLICKING on your target with an empty hand."))
4747

4848
addtimer(CALLBACK(src, PROC_REF(resetTackle)), base_knockdown, TIMER_STOPPABLE)
4949

@@ -74,6 +74,9 @@
7474
if(modifiers[ALT_CLICK] || modifiers[SHIFT_CLICK] || modifiers[CTRL_CLICK] || modifiers[MIDDLE_CLICK])
7575
return
7676

77+
if(!modifiers[RIGHT_CLICK])
78+
return
79+
7780
if(!user.throw_mode || user.get_active_held_item() || user.pulling || user.buckled || user.incapacitated())
7881
return
7982

0 commit comments

Comments
 (0)