Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
193 commits
Select commit Hold shift + click to select a range
4b11401
Add stealth awareness, patrols and admin tools for scav guards
Jackriip Nov 9, 2026
d8652f3
Add the stealth test room map
Jackriip Nov 9, 2026
a1358a6
Add stealth guard unit tests
Jackriip Nov 9, 2026
3b8f10e
Hide bodies in containers from stealth guards
Jackriip Nov 9, 2026
eba30b4
Fix stealth z-change hook and test lighting
Jackriip Nov 9, 2026
b165c92
Keep AI awake on a forced-active z-level while ghosted
Jackriip Nov 9, 2026
7c3ac8f
Stealth guards calm down after downing their target, wary fades, admi…
Jackriip Nov 9, 2026
b52043a
Human NPC gunners check the bullet's real path for allies
Jackriip Nov 9, 2026
f05057a
Stealth guards show a ? or ! over their heads, and wary wears off aft…
Jackriip Nov 9, 2026
baeb3bd
Raise the guard's head mark clear of its head
Jackriip Nov 10, 2026
4a60145
Scav guard barks roll once for a line or an emote
Jackriip Nov 10, 2026
5f71419
Stealth guards: fix the review findings
Jackriip Nov 10, 2026
1bd1a7a
Stealth tests that run the real guard AI: patrol, walk home, target s…
Jackriip Nov 10, 2026
38eec77
Stealth guards hear: gunfire by loudness, footsteps, thrown things, k…
Jackriip Nov 10, 2026
f1a9046
Stealth test room: two lookouts, throwables, a crate of guns and gadg…
Jackriip Nov 10, 2026
72558e6
Stealth hearing tests: muffling, gun tiers, footsteps, lures, the mis…
Jackriip Nov 10, 2026
c42118c
An admin watching a guard's sight sees one mark at a time
Jackriip Nov 10, 2026
bd574cc
Scav guards carry seclites and see someone at their elbow in the dark
Jackriip Nov 10, 2026
0237c3a
Guards react at once to someone right in front, stay blind behind in …
Jackriip Nov 11, 2026
66a1cfb
Guards open the locker or crate they saw their target get into
Jackriip Nov 11, 2026
f66dc95
Stealth guards take bigger crits when caught unaware, a head shot can…
Jackriip Nov 11, 2026
a786485
Outpost police: seams, stubs and turret removal
Jackriip Nov 11, 2026
7f3c35e
Wiki: outpost Port Authority replaces turrets and strikes
Jackriip Nov 11, 2026
68a3de8
Outpost police: dispatch, lifts, targeting and fire discipline
Jackriip Nov 11, 2026
0500c60
Outpost police: port the old turret and strike tests to warrants and …
Jackriip Nov 11, 2026
619edf1
Halcyon: police station in the checkpoint lobby and three police lifts
Jackriip Nov 11, 2026
19726cc
Quartermain: police station dug south of the checkpoint lobby and two…
Jackriip Nov 11, 2026
b18dc87
Outpost police: wanted core and the witness seam
Jackriip Nov 11, 2026
de481d7
Outpost police: wanted star alert and admin warrant rows
Jackriip Nov 11, 2026
9cb850c
Undertow: police station in a strip west of the checkpoint lobby and …
Jackriip Nov 11, 2026
280f156
Outpost police: holding cells, booking, jail terms, bail and release
Jackriip Nov 11, 2026
b9fa087
Outpost police: the cutter
Jackriip Nov 11, 2026
66ec7fa
Undertow: wall up the two turret nooks left in wall lines
Jackriip Nov 11, 2026
b202ded
Outpost police: dispatch cleanup, ambient-paused officers skipped, di…
Jackriip Nov 11, 2026
0994446
Outpost police: the arrest case
Jackriip Nov 11, 2026
cac5f3c
Outpost police: officers' routines, voice, radio and ambient roles
Jackriip Nov 11, 2026
6393aa8
Outpost police: property (confiscation, evidence chute, property lock…
Jackriip Nov 11, 2026
778b802
Outpost police: officer bodies, zone profiles, kit and police cuffs
Jackriip Nov 11, 2026
659dfd8
Merge police/p1: wanted core and the witness seam
Jackriip Nov 11, 2026
cc1db74
Merge police/p2: units: officer bodies, zone profiles, kit and police…
Jackriip Nov 11, 2026
67889a5
Merge police/p4: dispatch and force
Jackriip Nov 11, 2026
6cc369f
Merge police/p5: the arrest case
Jackriip Nov 11, 2026
ea7c3de
Merge police/p6: holding cells, booking, jail terms, bail and release
Jackriip Nov 11, 2026
f940602
Merge police/p12: property: confiscation, evidence chute, lockers, ja…
Jackriip Nov 11, 2026
7f9d073
Merge police/p7: outpost maps
Jackriip Nov 11, 2026
33ce4f1
Merge police/p3: officers' routines, voice, radio and ambient roles
Jackriip Nov 11, 2026
e330231
Merge police/p8: wanted star alert and admin warrant rows
Jackriip Nov 11, 2026
1b7f2b4
Merge police/p9: the cutter
Jackriip Nov 11, 2026
65a1c9b
Merge police/p10: old turret and strike tests ported
Jackriip Nov 11, 2026
09e3a39
Merge police/p11: wiki
Jackriip Nov 11, 2026
0fcf8e7
Outpost police: one radio call per level rise, one token format
Jackriip Nov 11, 2026
fe2442b
Outpost police: one booking line, one HUD update per change
Jackriip Nov 11, 2026
8ce61ad
Outpost police: core New() hooks the wanted core's events; warrant va…
Jackriip Nov 11, 2026
d3c29b5
Outpost police: perception.sees() answers for a tile as well as a mob…
Jackriip Nov 11, 2026
c5fb127
Outpost police: an officer struck by a throw or a shot names the item
Jackriip Nov 11, 2026
09c6dd9
Outpost police: tactical officers and the marshal kill with their lon…
Jackriip Nov 11, 2026
55bb9f3
Outpost police: admin warrant changes go through the wanted core
Jackriip Nov 11, 2026
9185336
Outpost police: property and arrest read warrants through get_warrant()
Jackriip Nov 11, 2026
37d01da
Trader lines: the outposts' officers instead of their turrets
Jackriip Nov 11, 2026
67eeb5f
Ambient lines: the crowd calls security, not the turrets
Jackriip Nov 11, 2026
5f642fa
Outpost maps: take up the red turret boxes left where the turrets stood
Jackriip Nov 11, 2026
2920d44
Outpost police: the desk and the sleeper check look through the perce…
Jackriip Nov 11, 2026
abce44d
Merge feature/stealth (f66dc95323d) into the outpost police
Jackriip Nov 11, 2026
c0328b4
Outpost police HUD test: the alert follows the wanted core's change o…
Jackriip Nov 11, 2026
7e95082
Outpost police: the stealth integration test file (empty, P13's) and …
Jackriip Nov 11, 2026
67295dd
Halcyon: police patrol group and three beat routes
Jackriip Nov 11, 2026
32e85e1
Quartermain: police patrol group and two beat routes
Jackriip Nov 11, 2026
34fe8f2
Undertow: police patrol group and two beat routes
Jackriip Nov 11, 2026
24d2e64
Outpost police on the stealth layer: stealth officer brain, stealth s…
Jackriip Nov 11, 2026
e7e45fb
Outpost police on the stealth layer: officers judge visitors by warra…
Jackriip Nov 11, 2026
4dcbbd0
Merge branch 'police/p7b' into feature/outpost-police
Jackriip Nov 11, 2026
46285d2
Outpost recovery seams: recovery datum and crew types, trader keeper …
Jackriip Nov 11, 2026
cb050a9
Wiki: killable traders, stick-up, cleanup crews and morgue, gate emag…
Jackriip Nov 11, 2026
e20cbd0
Traders become people: outpost traders and gate guards are human ambi…
Jackriip Nov 11, 2026
a991910
Outpost morgue crew: body bags, NPC bodies out by lift, player bodies…
Jackriip Nov 11, 2026
e6755e0
Outpost recovery rooms: a morgue with four trays and a janitor closet…
Jackriip Nov 11, 2026
e0d48c9
Trader conversion: tests for the open counter, the shelf drop and sta…
Jackriip Nov 11, 2026
f92b14e
Outpost recovery janitors: real mop and trash bag cleanup, patrol sto…
Jackriip Nov 11, 2026
c18c5e2
Outpost recovery: the checkpoint gate emag and the trader stick-up
Jackriip Nov 11, 2026
7ffffae
Outpost recovery state and pace: the state machine, quiet clock, crew…
Jackriip Nov 11, 2026
800f492
Outpost recovery rooms: Halcyon's morgue keeps the gate booth's permi…
Jackriip Nov 11, 2026
dd5730c
Merge branch 'police/r1' into feature/outpost-police
Jackriip Nov 11, 2026
c185a63
Merge branch 'police/r2' into feature/outpost-police
Jackriip Nov 11, 2026
4be9b0f
Merge branch 'police/r3' into feature/outpost-police
Jackriip Nov 11, 2026
f1325ea
Merge branch 'police/r4' into feature/outpost-police
Jackriip Nov 11, 2026
707ed7b
Merge branch 'police/r5' into feature/outpost-police
Jackriip Nov 11, 2026
f20504b
Merge branch 'police/r7' into feature/outpost-police
Jackriip Nov 11, 2026
8a5f29e
Merge branch 'police/r6' into feature/outpost-police
Jackriip Nov 11, 2026
34108ab
Outpost crews report what they see over their headsets: a dead, EMPed…
Jackriip Nov 11, 2026
8dae133
Mark each outpost's own mess and litter as decor when it loads, so cr…
Jackriip Nov 11, 2026
51929a8
Keep patrons and queues out of the morgue and the janitor's closet
Jackriip Nov 11, 2026
13e3845
Test that every real outpost links a four-tray morgue and a closed-of…
Jackriip Nov 11, 2026
34627d6
Test traders hold their spot like a mapped trader at its counter
Jackriip Nov 11, 2026
19860ce
The Quartermain janitor washes mess the way a mop stroke does instead…
Jackriip Nov 11, 2026
8137a5d
Wiki: match the outpost cleanup and gate text to the code
Jackriip Nov 11, 2026
ea89762
Officers on patrol look in on someone asleep by their stop and tell t…
Jackriip Nov 11, 2026
2e63c8d
An arrest that gives up on someone in crit leaves them unseen until t…
Jackriip Nov 11, 2026
1654925
Ship saves never rebuild a morgue crew's body bag
Jackriip Nov 11, 2026
2d1a17f
Gear catalog reads the traders' new path off the outpost maps
Jackriip Nov 11, 2026
a340eb4
Outpost security keeps to its own outpost: no cutter, no embargo else…
Jackriip Nov 11, 2026
9764ada
Guards hear glass underfoot, notice doors moving and get sharper by zone
Jackriip Nov 11, 2026
144f60c
Outpost cells: a prisoner shoved, swapped or carried out is not the j…
Jackriip Nov 11, 2026
b745608
Outpost cells never stay shut on a body or someone they do not hold
Jackriip Nov 11, 2026
a14e50c
Outpost recovery replaces a trader carried off the outpost alive
Jackriip Nov 11, 2026
74ccbbd
Outpost recovery: a wanted crew in its docked ship cannot hold troubl…
Jackriip Nov 11, 2026
b4504a2
Outpost recovery: a blocked lift alcove cannot stop replacement traders
Jackriip Nov 11, 2026
277ab73
Outpost police: fines, embargo and accomplices follow the offender's …
Jackriip Nov 11, 2026
7b031fc
Outpost stick-up: the alarm waits for the trader, and cuffing a trade…
Jackriip Nov 11, 2026
b456e25
An execution click no longer also clubs the target with the gun
Jackriip Nov 11, 2026
8a7e276
Guard flashlights light a real pool ahead, guards lean before they tu…
Jackriip Nov 11, 2026
99681ef
Outpost police: nobody who cannot move away is charged for blocking a…
Jackriip Nov 11, 2026
9501ed7
Outpost police: the witness test lets go of its last witnesses
Jackriip Nov 11, 2026
af58608
Outpost police doors let anyone out from the lift side
Jackriip Nov 11, 2026
aba4c04
A guard's flashlight pool against a near wall is bright enough to see by
Jackriip Nov 11, 2026
48a373e
Outpost police: no framing through a forced gate or planted locker goods
Jackriip Nov 11, 2026
0da9ddd
Outpost recovery never deletes a player with an NPC body
Jackriip Nov 11, 2026
d128779
Outpost cells: a prisoner back in the cell starts clean
Jackriip Nov 11, 2026
2cc07e3
Outpost police: traders and gate guards report a crime at once again
Jackriip Nov 11, 2026
0433ddf
Stealth guards plan combat sense again, as the base human NPC brain does
Jackriip Nov 11, 2026
f3f9b2f
Outpost police: the half-second report fold holds minds weakly
Jackriip Nov 11, 2026
1d7c4ac
Outpost police: no radio line starts with a name token
Jackriip Nov 11, 2026
c185e37
Outpost police test: a punch to the cell at all three outposts
Jackriip Nov 11, 2026
df97a24
Police, recovery and stealth tests follow the current rules
Jackriip Nov 11, 2026
3a8be10
Tests: the right NPC for the killed slot, a client-less buyer keeps t…
Jackriip Nov 11, 2026
c49c05a
Merge branch 'police/abuse-fixes' into feature/outpost-police
Jackriip Nov 11, 2026
e948385
Tests: an outpost's killing waits on its recovery, not the killed slo…
Jackriip Nov 11, 2026
6561698
Outpost police: an officer finds the coffee machine in a round's firs…
Jackriip Nov 11, 2026
5f2fa95
Tests: an outpost body is the morgue crew's, the police lift is clear…
Jackriip Nov 11, 2026
155e365
Guard flashlight pools actually light the floor
Jackriip Nov 11, 2026
d12af76
Keep the walk pace test's guard dormant so it doesn't walk back to it…
Jackriip Nov 11, 2026
758f8e3
Merge origin2/feature/hyperviolence-mega into feature/outpost-police
Jackriip Nov 11, 2026
7ad2cd1
Merge feature/stealth into feature/outpost-police
Jackriip Nov 11, 2026
df12a3f
Add an evidence locker stub for the outpost maps
Jackriip Nov 11, 2026
454feca
Outpost recovery: medics, recovery with nobody there, emag repairs
Jackriip Nov 11, 2026
8933f5a
Rebuild the Undertow holding cells with corner walls
Jackriip Nov 11, 2026
d3be4e3
Fix stalled outpost arrests and move evidence to the evidence locker
Jackriip Nov 11, 2026
22a9189
Quartermain: cornered holding cells with a toilet and a chair, a desk…
Jackriip Nov 11, 2026
d492f7b
Rebuild Halcyon's security block: cornered cells, evidence locker, de…
Jackriip Nov 11, 2026
31f4b74
Merge police/m-red into feature/outpost-police
Jackriip Nov 11, 2026
8653d26
Merge police/m-yellow into feature/outpost-police
Jackriip Nov 11, 2026
553ba50
Merge police/m-green into feature/outpost-police
Jackriip Nov 11, 2026
32f05d9
Merge police/c-recovery into feature/outpost-police
Jackriip Nov 11, 2026
e80fc7e
Merge police/c-arrest into feature/outpost-police
Jackriip Nov 11, 2026
ef4fd3a
Merge branches 'police/m-red', 'police/m-yellow' and 'police/m-green'…
Jackriip Nov 11, 2026
9e3cf78
Drop cell-strip leftovers on the cell's own outside tile
Jackriip Nov 11, 2026
c9dd7ba
Checkpoint guard desc fits the permit desk at every outpost
Jackriip Nov 11, 2026
48ff114
Ambient staff skip machines in the checkpoint area
Jackriip Nov 11, 2026
cd346f8
Give the Halcyon and Undertow gate guards a booth door
Jackriip Nov 11, 2026
8b163fa
Give the Quartermain gate guard a booth door
Jackriip Nov 11, 2026
63deae9
Evidence locker keeps its lock
Jackriip Nov 11, 2026
ffbebc9
Fix three new arrest tests
Jackriip Nov 11, 2026
1328ac3
Checkpoint guards carry a police card for their booth door
Jackriip Nov 11, 2026
b94f74b
Merge police/m-booths into feature/outpost-police
Jackriip Nov 11, 2026
9fe6ad2
Let explosives work on trader outposts without breaking their turfs
Jackriip Nov 11, 2026
bebe8bc
Outpost police: stun officers take downed suspects alive at high stars
Jackriip Nov 11, 2026
63c1cd7
Merge branch 'police/explosives' into feature/outpost-police
Jackriip Nov 11, 2026
2c08f63
Outpost police: keep seized evidence, protect played bodies, offscree…
Jackriip Nov 11, 2026
5191f09
Outpost police: fix review findings on arrests, cells and bomb blame
Jackriip Nov 12, 2026
4cc73af
Merge branch 'police/fix-sys' into feature/outpost-police
Jackriip Nov 12, 2026
8e32530
Merge branch 'police/fix-ai' into feature/outpost-police
Jackriip Nov 12, 2026
e2fb20e
Wiki: Undertow officers are all lethal from 3 stars, and a downed pri…
Jackriip Nov 12, 2026
aca7738
Outpost police: hold fire while an arrest's order is given, and keep …
Jackriip Nov 12, 2026
54cadf8
Outpost police: hold three-star suspects for a cell instead of fining…
Jackriip Nov 12, 2026
a955566
Outpost police: a suspect in crit keeps their stars while an arrest c…
Jackriip Nov 12, 2026
f0b9d55
Outpost police: fold a second hit into a waiting report, look again a…
Jackriip Nov 12, 2026
e2d954f
Outpost recovery: keep a corpse a player went into as a person's body…
Jackriip Nov 12, 2026
a495a6e
Outpost recovery: never sweep away a corpse a player was in, keep the…
Jackriip Nov 12, 2026
fccdb7b
Outpost police: blame a bomb only on whoever armed it (never the last…
Jackriip Nov 12, 2026
b51f234
Outpost police: count rigging a fuel tank, welding a tank bomb, wirin…
Jackriip Nov 12, 2026
8bdce6d
Outpost police: a coffee stop with no machine takes a cup at the coun…
Jackriip Nov 12, 2026
e704340
Outpost police: no all-quiet radio check-in while someone wanted is a…
Jackriip Nov 12, 2026
1f2a3b8
Outpost police: more lines for every officer, crew and robbery contex…
Jackriip Nov 12, 2026
75bec39
Outpost police: an officer who sees a scuffle tells them to knock it …
Jackriip Nov 12, 2026
2bd65a6
Outpost police: an officer at a stop who sees a body on the floor cal…
Jackriip Nov 12, 2026
6f21a71
Outpost police: the desk now copies the all clear after a response st…
Jackriip Nov 12, 2026
a6b5912
Wiki: outpost security matches the code - crimes by stars, witnesses …
Jackriip Nov 12, 2026
12adc12
Outpost police: a stick-up drops takings that were destroyed since th…
Jackriip Nov 12, 2026
e3bfa9d
Outpost police: arrest and escort review fixes
Jackriip Nov 13, 2026
813f6e0
Outpost police: cells, property and evidence review fixes
Jackriip Nov 13, 2026
5d4ef10
Outpost police: officer daily life review fixes
Jackriip Nov 13, 2026
2bd5576
Outpost police: trade side review fixes
Jackriip Nov 13, 2026
0072ffa
Outpost police: dispatch, units and lifts review fixes
Jackriip Nov 13, 2026
94dfbdc
Outpost police: wanted level review fixes
Jackriip Nov 13, 2026
56c1b08
Merge outpost police cells review
Jackriip Nov 13, 2026
31d3de9
Outpost police: force and stealth AI review fixes
Jackriip Nov 13, 2026
56163ba
Merge outpost police dispatch review
Jackriip Nov 13, 2026
8c69db7
Merge outpost police force review
Jackriip Nov 13, 2026
4648694
Merge outpost police life review
Jackriip Nov 13, 2026
02931fa
Merge outpost police wanted review
Jackriip Nov 13, 2026
7b668ff
Merge outpost police trade review
Jackriip Nov 13, 2026
4f07401
Outpost police: recovery review fixes
Jackriip Nov 13, 2026
54f5db7
Merge outpost police recovery review
Jackriip Nov 13, 2026
6ae8fd2
Outpost police: integration fixes after the review merge
Jackriip Nov 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
885 changes: 885 additions & 0 deletions _maps/voidcrew/RandomRuins/JungleRuins/jungle_stealth_test.dmm

Large diffs are not rendered by default.

18 changes: 8 additions & 10 deletions code/__DEFINES/explosions.dm
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,15 @@
#define GIBTONITE_DETONATE 3

/// A wrapper for [/atom/proc/ex_act] to ensure that the explosion propagation and attendant signal are always handled.
/// VOIDCREW: recheck outpost protection when queued or direct damage is applied.
// VOIDCREW EDIT START: Block explosions on protected trader outposts before contents and signals fire (voidcrew/modules/trade/outpost_security.dm).
/// VOIDCREW: a trader outpost's own floors and walls never react to a blast; whatever stands on them still does.
// VOIDCREW EDIT START: Trader outpost turfs ignore explosions, their contents do not (voidcrew/modules/trade/outpost_security.dm).
#define EX_ACT(target, args...)\
if(!is_trader_outpost_protected(target)) { \
if(!(target.flags_1 & PREVENT_CONTENTS_EXPLOSION_1)) { \
target.contents_explosion(##args);\
};\
if(!(SEND_SIGNAL(target, COMSIG_ATOM_PRE_EX_ACT, ##args) & COMPONENT_CANCEL_EX_ACT)) { \
SEND_SIGNAL(target, COMSIG_ATOM_EX_ACT, ##args);\
target.ex_act(##args);\
} \
if(!(target.flags_1 & PREVENT_CONTENTS_EXPLOSION_1)) { \
target.contents_explosion(##args);\
};\
if(!(isturf(target) && is_trader_outpost_protected(target)) && !(SEND_SIGNAL(target, COMSIG_ATOM_PRE_EX_ACT, ##args) & COMPONENT_CANCEL_EX_ACT)) { \
SEND_SIGNAL(target, COMSIG_ATOM_EX_ACT, ##args);\
target.ex_act(##args);\
}
// VOIDCREW EDIT END

Expand Down
29 changes: 13 additions & 16 deletions code/controllers/subsystem/explosions.dm
Original file line number Diff line number Diff line change
Expand Up @@ -299,12 +299,6 @@ ADMIN_VERB(check_bomb_impacts, R_DEBUG, "Check Bomb Impact", "See what the effec
epicenter = get_turf(epicenter)
if(!epicenter)
return
// VOIDCREW: suppress the blast before smoke, flashes, fire, or chain reactions.
// VOIDCREW EDIT START: Stop protected outpost blasts before smoke, flash, ignition and damage (voidcrew/modules/trade/outpost_security.dm).
if(is_trader_outpost_protected(epicenter))
log_game("OUTPOST PROTECTION: Suppressed explosion ([devastation_range], [heavy_impact_range], [light_impact_range]) at [AREACOORD(epicenter)]. Cause: [explosion_cause]. Last fingerprints: [key_name(explosion_cause?.fingerprintslast)].")
return
// VOIDCREW EDIT END

if(isnull(flame_range))
flame_range = light_impact_range
Expand Down Expand Up @@ -398,10 +392,6 @@ ADMIN_VERB(check_bomb_impacts, R_DEBUG, "Check Bomb Impact", "See what the effec
//flash mobs
if(flash_range)
for(var/mob/living/L in viewers(flash_range, epicenter))
// VOIDCREW EDIT START: Stop protected outpost blasts before smoke, flash, ignition and damage (voidcrew/modules/trade/outpost_security.dm).
if(is_trader_outpost_protected(L)) // VOIDCREW
continue
// VOIDCREW EDIT END
L.flash_act()

var/list/affected_turfs = prepare_explosion_turfs(max_range, epicenter, protect_epicenter, explosion_direction, explosion_arc)
Expand All @@ -412,16 +402,13 @@ ADMIN_VERB(check_bomb_impacts, R_DEBUG, "Check Bomb Impact", "See what the effec
// This is gonna be an array, index'd by turfs
var/list/cached_exp_block = list()
var/list/held_throwturf = src.held_throwturf
// VOIDCREW EDIT ADDITION START: who the blast caught at a trader outpost (voidcrew/modules/trade/outpost_security.dm)
var/list/outpost_blast_victims
// VOIDCREW EDIT ADDITION END

//lists are guaranteed to contain at least 1 turf at this point
//we presuppose that we'll be iterating away from the epicenter
for(var/turf/explode as anything in affected_turfs)
// VOIDCREW: outside blasts cannot damage, ignite, or throw outpost contents.
// VOIDCREW EDIT START: Stop protected outpost blasts before smoke, flash, ignition and damage (voidcrew/modules/trade/outpost_security.dm).
if(is_trader_outpost_protected(explode))
cached_exp_block[explode] = INFINITY
continue
// VOIDCREW EDIT END
var/our_x = explode.x
var/our_y = explode.y
var/dist = CHEAP_HYPOTENUSE(our_x, our_y, x0, y0)
Expand All @@ -446,6 +433,11 @@ ADMIN_VERB(check_bomb_impacts, R_DEBUG, "Check Bomb Impact", "See what the effec
else if(dist + (block * EXPLOSION_BLOCK_LIGHT) < light_impact_range)
severity = EXPLODE_LIGHT

// VOIDCREW EDIT ADDITION START: a blast that catches someone at a trader outpost is an attack (voidcrew/modules/trade/outpost_security.dm)
if(severity != EXPLODE_NONE)
outpost_blast_victims = note_outpost_blast_victims(explode, outpost_blast_victims)
// VOIDCREW EDIT ADDITION END

if(explode == epicenter) // Ensures explosives detonating from bags trigger other explosives in that bag
var/list/items = list()
for(var/atom/holder as anything in explode)
Expand Down Expand Up @@ -491,6 +483,11 @@ ADMIN_VERB(check_bomb_impacts, R_DEBUG, "Check Bomb Impact", "See what the effec

explosion_index += 1

// VOIDCREW EDIT ADDITION START: the police hear of it like any other attack (voidcrew/modules/trade/outpost_security.dm)
if(outpost_blast_victims)
GLOB.outpost_pvp_enforcement.on_outpost_bombing(explosion_cause, outpost_blast_victims)
// VOIDCREW EDIT ADDITION END

SEND_GLOBAL_SIGNAL(COMSIG_GLOB_EXPLOSION, epicenter, devastation_range, heavy_impact_range, light_impact_range, took, orig_dev_range, orig_heavy_range, orig_light_range, explosion_cause, explosion_index)

// Explosion SFX defines...
Expand Down
45 changes: 45 additions & 0 deletions tgstation.dme
Original file line number Diff line number Diff line change
Expand Up @@ -6720,6 +6720,7 @@
#include "voidcrew\_DEFINES\outpost_market_shop.dm"
#include "voidcrew\_DEFINES\outpost_market_storage.dm"
#include "voidcrew\_DEFINES\outpost_market_teleporter.dm"
#include "voidcrew\_DEFINES\outpost_police.dm"
#include "voidcrew\_DEFINES\outpost_prison_boss_moves.dm"
#include "voidcrew\_DEFINES\outpost_prison_bounty.dm"
#include "voidcrew\_DEFINES\outpost_prison_changeling.dm"
Expand All @@ -6735,6 +6736,7 @@
#include "voidcrew\_DEFINES\outpost_prison_security.dm"
#include "voidcrew\_DEFINES\outpost_prison_social.dm"
#include "voidcrew\_DEFINES\outpost_prison_trouble.dm"
#include "voidcrew\_DEFINES\outpost_recovery.dm"
#include "voidcrew\_DEFINES\outpost_styles.dm"
#include "voidcrew\_DEFINES\overmap.dm"
#include "voidcrew\_DEFINES\overmap_zones.dm"
Expand All @@ -6747,6 +6749,8 @@
#include "voidcrew\_DEFINES\ship_signals.dm"
#include "voidcrew\_DEFINES\shuttles.dm"
#include "voidcrew\_DEFINES\sound.dm"
#include "voidcrew\_DEFINES\stealth.dm"
#include "voidcrew\_DEFINES\stealth_hearing.dm"
#include "voidcrew\_DEFINES\subsystems.dm"
#include "voidcrew\_DEFINES\techweb_nodes.dm"
#include "voidcrew\_DEFINES\trade.dm"
Expand Down Expand Up @@ -6927,6 +6931,7 @@
#include "voidcrew\edits\modules\mob\living\basic\lavaland\legion\spawn_legions.dm"
#include "voidcrew\edits\modules\mob\living\carbon\floored_fall.dm"
#include "voidcrew\edits\modules\mob\living\carbon\inventory.dm"
#include "voidcrew\edits\modules\mob\living\carbon\human\human_stripping.dm"
#include "voidcrew\edits\modules\mod\modules\modules_supply.dm"
#include "voidcrew\edits\modules\modular_computers\file_system\programs\budgetordering.dm"
#include "voidcrew\edits\modules\power\supermatter_anomalies.dm"
Expand Down Expand Up @@ -7579,6 +7584,26 @@
#include "voidcrew\modules\outfits\pirate_factions.dm"
#include "voidcrew\modules\outfits\syndicate.dm"
#include "voidcrew\modules\outfits\western.dm"
#include "voidcrew\modules\outpost_police\evidence_locker.dm"
#include "voidcrew\modules\outpost_police\police_arrest.dm"
#include "voidcrew\modules\outpost_police\police_cell.dm"
#include "voidcrew\modules\outpost_police\police_core.dm"
#include "voidcrew\modules\outpost_police\police_dispatch.dm"
#include "voidcrew\modules\outpost_police\police_force.dm"
#include "voidcrew\modules\outpost_police\police_hud.dm"
#include "voidcrew\modules\outpost_police\police_life.dm"
#include "voidcrew\modules\outpost_police\police_perception.dm"
#include "voidcrew\modules\outpost_police\police_property.dm"
#include "voidcrew\modules\outpost_police\police_units.dm"
#include "voidcrew\modules\outpost_police\police_wanted.dm"
#include "voidcrew\modules\outpost_police\recovery_core.dm"
#include "voidcrew\modules\outpost_police\recovery_crews.dm"
#include "voidcrew\modules\outpost_police\recovery_janitor.dm"
#include "voidcrew\modules\outpost_police\recovery_medic.dm"
#include "voidcrew\modules\outpost_police\recovery_morgue.dm"
#include "voidcrew\modules\outpost_police\recovery_offscreen.dm"
#include "voidcrew\modules\outpost_police\recovery_robbery.dm"
#include "voidcrew\modules\outpost_police\recovery_staff.dm"
#include "voidcrew\modules\overmap\code\controllers\subsystem\overmap.dm"
#include "voidcrew\modules\overmap\code\controllers\subsystem\shuttle.dm"
#include "voidcrew\modules\overmap\code\controllers\subsystem\worldgen_queue.dm"
Expand Down Expand Up @@ -7848,6 +7873,26 @@
#include "voidcrew\modules\shuttle\survey\survey_data_disk.dm"
#include "voidcrew\modules\shuttle\survey\survey_designs.dm"
#include "voidcrew\modules\slime_extract_piles\slime_extract_piles.dm"
#include "voidcrew\modules\stealth\scav_guards.dm"
#include "voidcrew\modules\stealth\stealth_admin.dm"
#include "voidcrew\modules\stealth\stealth_admin_noise.dm"
#include "voidcrew\modules\stealth\stealth_ai.dm"
#include "voidcrew\modules\stealth\stealth_closet.dm"
#include "voidcrew\modules\stealth\stealth_crits.dm"
#include "voidcrew\modules\stealth\stealth_doors.dm"
#include "voidcrew\modules\stealth\stealth_hearing.dm"
#include "voidcrew\modules\stealth\stealth_knife.dm"
#include "voidcrew\modules\stealth\stealth_light.dm"
#include "voidcrew\modules\stealth\stealth_meter.dm"
#include "voidcrew\modules\stealth\stealth_noise.dm"
#include "voidcrew\modules\stealth\stealth_noise_sources.dm"
#include "voidcrew\modules\stealth\stealth_patrol.dm"
#include "voidcrew\modules\stealth\stealth_perception.dm"
#include "voidcrew\modules\stealth\stealth_radio.dm"
#include "voidcrew\modules\stealth\stealth_skill.dm"
#include "voidcrew\modules\stealth\stealth_test_ruin.dm"
#include "voidcrew\modules\stealth\stealth_turns.dm"
#include "voidcrew\modules\stealth_police\police_stealth.dm"
#include "voidcrew\modules\storage\cargo_shelf.dm"
#include "voidcrew\modules\storage\smart_locker.dm"
#include "voidcrew\modules\storage\wall_locker.dm"
Expand Down
Loading