Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[READY] AGCNR Attempt 4: Revengeance #19968

Merged
Merged
Show file tree
Hide file tree
Changes from 28 commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
ed70c48
WE'RE SO BACK (from #15753)
SapphicOverload Aug 1, 2023
c5bf52d
reactor (mostly) works but the map breaks??
SapphicOverload Aug 1, 2023
171757c
makes pluonium instead of nitrium, also map works now
SapphicOverload Aug 2, 2023
3cc9048
i forgor
SapphicOverload Aug 2, 2023
48ab39a
update_icon()
SapphicOverload Aug 2, 2023
7064782
fuck it we ball
SapphicOverload Aug 3, 2023
3d42a08
background radiation
SapphicOverload Aug 3, 2023
86eb779
Update engine_rbmk.dmm
SapphicOverload Aug 3, 2023
f65e221
Merge remote-tracking branch 'upstream/master' into chernobyl-2-atmos…
SapphicOverload Aug 3, 2023
3cd14a5
rename
SapphicOverload Aug 3, 2023
d85ea03
huge refactor, process_atmos() and more
SapphicOverload Aug 3, 2023
c35351d
map fix
SapphicOverload Aug 3, 2023
c833211
map fix 2: for real this time
SapphicOverload Aug 3, 2023
2b55524
map fix 3: the threequel
SapphicOverload Aug 3, 2023
77c7f84
cargo stuff
SapphicOverload Aug 4, 2023
445daaf
exponential K, minor fixes
SapphicOverload Aug 4, 2023
aab95af
simplify
SapphicOverload Aug 4, 2023
1045c5d
fixed meltdown overriding blowout
SapphicOverload Aug 4, 2023
5bf5b1b
how did i miss this
SapphicOverload Aug 5, 2023
b8db38f
more heat rebalancing
SapphicOverload Aug 6, 2023
d38de7e
Merge remote-tracking branch 'upstream/master' into chernobyl-2-atmos…
SapphicOverload Aug 7, 2023
0d96e19
icon fix
SapphicOverload Aug 7, 2023
5cdef17
not an rbmk!!!
SapphicOverload Aug 7, 2023
2d68062
no sanity allowed on my yogstation
SapphicOverload Aug 7, 2023
4034ab3
longer time to fix
SapphicOverload Aug 8, 2023
cdea34b
adds a guide in the control room
SapphicOverload Aug 8, 2023
4c8c0df
Merge remote-tracking branch 'upstream/master' into chernobyl-2-atmos…
SapphicOverload Aug 11, 2023
5c57b8f
fixed the cameras, added a shovel
SapphicOverload Aug 11, 2023
935d176
okay
SapphicOverload Aug 14, 2023
28983de
okay
SapphicOverload Aug 14, 2023
627d170
Merge remote-tracking branch 'upstream/master' into chernobyl-2-atmos…
SapphicOverload Aug 14, 2023
26cc852
doesn't need to exist and just causes problems apparently
SapphicOverload Aug 14, 2023
db330e0
Update reactor.dm
SapphicOverload Aug 14, 2023
125f6c5
this too
SapphicOverload Aug 14, 2023
ae82929
Merge remote-tracking branch 'upstream/master' into chernobyl-2-atmos…
SapphicOverload Aug 17, 2023
59c58e4
stuff
SapphicOverload Aug 24, 2023
1e03b53
Merge remote-tracking branch 'upstream/master' into chernobyl-2-atmos…
SapphicOverload Aug 24, 2023
d69b691
fix
SapphicOverload Aug 24, 2023
8e96287
Merge remote-tracking branch 'upstream/master' into chernobyl-2-atmos…
SapphicOverload Aug 27, 2023
d0d1055
good enough
SapphicOverload Aug 27, 2023
16cfd6e
performance
SapphicOverload Aug 27, 2023
27779e9
corium + more performance
SapphicOverload Aug 29, 2023
02515b7
meta map fix
SapphicOverload Aug 29, 2023
bdbbd6d
Merge remote-tracking branch 'upstream/master' into chernobyl-2-atmos…
SapphicOverload Aug 31, 2023
3b0d0e1
uh oh
SapphicOverload Sep 1, 2023
0b8296d
syndicate preset
SapphicOverload Sep 2, 2023
e58a012
rpd
SapphicOverload Sep 2, 2023
d88e450
i forgor
SapphicOverload Sep 2, 2023
0486bd6
Update reactor.dm
SapphicOverload Sep 3, 2023
e51cf07
should fix fuel rod crates
SapphicOverload Sep 12, 2023
9765a9b
Merge remote-tracking branch 'upstream/master' into chernobyl-2-atmos…
SapphicOverload Sep 13, 2023
094064c
Merge remote-tracking branch 'upstream/master' into chernobyl-2-atmos…
SapphicOverload Sep 13, 2023
aa3204f
evil theos be like
SapphicOverload Sep 13, 2023
c077be8
Update reactor.dm
SapphicOverload Sep 18, 2023
6bf6149
Merge remote-tracking branch 'upstream/master' into chernobyl-2-atmos…
SapphicOverload Sep 18, 2023
6c3ea47
borgs can set up engine
SapphicOverload Sep 19, 2023
1ee6b4a
less tedious to fix
SapphicOverload Sep 19, 2023
04bb2a0
Merge remote-tracking branch 'upstream/master' into chernobyl-2-atmos…
SapphicOverload Sep 24, 2023
ac8f05e
Merge remote-tracking branch 'upstream/master' into chernobyl-2-atmos…
SapphicOverload Sep 26, 2023
74d9b1f
fix the darn pipes
SapphicOverload Oct 4, 2023
a1ba372
Merge remote-tracking branch 'upstream/master' into chernobyl-2-atmos…
SapphicOverload Oct 4, 2023
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
2,507 changes: 2,507 additions & 0 deletions _maps/RandomRuins/StationRuins/BoxStation/engine_reactor.dmm

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions code/__DEFINES/flags.dm
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204
#define NO_LAVA_GEN_1 (1<<6)
/// Blocks ruins spawning on the turf
#define NO_RUINS_1 (1<<10)
/// Prevents most radiation on this turf from leaving it
#define RAD_CONTAIN_CONTENTS (1<<17)

//AREA FLAGS
/// If blobs can spawn there and if it counts towards their score.
Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/logging.dm
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
#define INVESTIGATE_PRESENTS "presents"
#define INVESTIGATE_VIROLOGY "viro" // yogs - Adds Investigate Virology
#define INVESTIGATE_HYPERTORUS "hypertorus"
#define INVESTIGATE_REACTOR "reactor"

// Logging types for log_message()
#define LOG_ATTACK (1 << 0)
Expand Down
11 changes: 6 additions & 5 deletions code/__DEFINES/sound.dm
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,12 @@
#define CHANNEL_VOICE_ANNOUNCE 1015
#define CHANNEL_MEGAFAUNA 1014 // battle music
#define CHANNEL_CHARGED_SPELL 1013
#define CHANNEL_REACTOR_ALERT 1012

//THIS SHOULD ALWAYS BE THE LOWEST ONE!
//KEEP IT UPDATED

#define CHANNEL_HIGHEST_AVAILABLE 1012
SapphicOverload marked this conversation as resolved.
Show resolved Hide resolved

///Default range of a sound.
#define SOUND_RANGE 17
Expand All @@ -24,11 +30,6 @@
///The default exponent of sound falloff
#define SOUND_FALLOFF_EXPONENT 6

//THIS SHOULD ALWAYS BE THE LOWEST ONE!
//KEEP IT UPDATED

#define CHANNEL_HIGHEST_AVAILABLE 1013

#define MAX_INSTRUMENT_CHANNELS (128 * 6)

#define SOUND_MINIMUM_PRESSURE 10
Expand Down
44 changes: 44 additions & 0 deletions code/__HELPERS/matrices.dm
Original file line number Diff line number Diff line change
Expand Up @@ -208,3 +208,47 @@ round(cos_inv_third+sqrt3_sin, 0.001), round(cos_inv_third-sqrt3_sin, 0.001), ro
for(x in 1 to 4)
output[offset+x] = round(A[offset+1]*B[x] + A[offset+2]*B[x+4] + A[offset+3]*B[x+8] + A[offset+4]*B[x+12]+(y==5?B[x+16]:0), 0.001)
return output

/atom/proc/shake_animation(var/intensity = 8) //Makes the object visibly shake
SapphicOverload marked this conversation as resolved.
Show resolved Hide resolved
var/initial_transform = new/matrix(transform)
var/init_px = pixel_x
var/shake_dir = pick(-1, 1)
var/rotation = 2+soft_cap(intensity, 1, 1, 0.94)
var/offset = 1+soft_cap(intensity*0.3, 1, 1, 0.8)
var/time = 2+soft_cap(intensity*0.3, 2, 1, 0.92)
animate(src, transform=turn(transform, rotation*shake_dir), pixel_x=init_px + offset*shake_dir, time=1)
animate(transform=initial_transform, pixel_x=init_px, time=time, easing=ELASTIC_EASING)

/*
This proc makes the input taper off above cap. But there's no absolute cutoff.
Chunks of the input value above cap, are reduced more and more with each successive one and added to the output
A higher input value always makes a higher output value. but the rate of growth slows
*/
/proc/soft_cap(var/input, var/cap = 0, var/groupsize = 1, var/groupmult = 0.9)

//The cap is a ringfenced amount. If we're below that, just return the input
if (input <= cap)
return input

var/output = 0
var/buffer = 0
var/power = 1//We increment this after each group, then apply it to the groupmult as a power

//Ok its above, so the cap is a safe amount, we move that to the output
input -= cap
output += cap

//Now we start moving groups from input to buffer


while (input > 0)
buffer = min(input, groupsize) //We take the groupsize, or all the input has left if its less
input -= buffer

buffer *= groupmult**power //This reduces the group by the groupmult to the power of which index we're on.
//This ensures that each successive group is reduced more than the previous one

output += buffer
power++ //Transfer to output, increment power, repeat until the input pile is all used

return output
7 changes: 5 additions & 2 deletions code/__HELPERS/radiation.dm
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,11 @@
/proc/radiation_pulse(atom/source, intensity, range_modifier, log=FALSE, can_contaminate=TRUE, collectable_radiation = TRUE)
if(!SSradiation.can_fire)
return
for(var/dir in GLOB.cardinals)
new /datum/radiation_wave(source, dir, intensity, range_modifier, can_contaminate, collectable_radiation)
if(source && (source.flags_1 & RAD_CONTAIN_CONTENTS))
intensity *= 0.1
if(intensity >= RAD_BACKGROUND_RADIATION)
for(var/dir in GLOB.cardinals)
new /datum/radiation_wave(source, dir, intensity, range_modifier, can_contaminate, collectable_radiation)

var/list/things = get_rad_contents(source) //copypasta because I don't want to put special code in waves to handle their origin
for(var/k in 1 to things.len)
Expand Down
1 change: 1 addition & 0 deletions code/_globalvars/lists/objects.dm
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ GLOBAL_LIST_EMPTY(airlocks) //list of all airlocks
GLOBAL_LIST_EMPTY(mechas_list) //list of all mechs. Used by hostile mobs target tracking.
GLOBAL_LIST_EMPTY(shuttle_caller_list) //list of all communication consoles and AIs, for automatic shuttle calls when there are none.
GLOBAL_LIST_EMPTY(machines) //NOTE: this is a list of ALL machines now. The processing machines list is SSmachine.processing !
GLOBAL_LIST_EMPTY(lights) //list of all light bulbs
GLOBAL_LIST_EMPTY(navigation_computers) //list of all /obj/machinery/computer/camera_advanced/shuttle_docker
GLOBAL_LIST_EMPTY(syndicate_shuttle_boards) //important to keep track of for managing nukeops war declarations.
GLOBAL_LIST_EMPTY(navbeacons) //list of all bot nagivation beacons, used for patrolling.
Expand Down
2 changes: 1 addition & 1 deletion code/controllers/subsystem/air.dm
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@ SUBSYSTEM_DEF(air)
while(currentrun.len)
var/obj/machinery/M = currentrun[currentrun.len]
currentrun.len--
if(!M || (M.process_atmos() == PROCESS_KILL))
if(!M || (M.process_atmos(wait / (1 SECONDS)) == PROCESS_KILL))
atmos_machinery.Remove(M)
if(MC_TICK_CHECK)
return
Expand Down
2 changes: 2 additions & 0 deletions code/game/atoms.dm
Original file line number Diff line number Diff line change
Expand Up @@ -804,6 +804,8 @@
* Default behaviour is to send COMSIG_ATOM_RAD_ACT and return
*/
/atom/proc/rad_act(strength, collectable_radiation)
if(flags_1 & RAD_CONTAIN_CONTENTS)
strength *= 0.25
SEND_SIGNAL(src, COMSIG_ATOM_RAD_ACT, strength, collectable_radiation)

/**
Expand Down
2 changes: 1 addition & 1 deletion code/modules/admin/admin_investigate.dm
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
if(!holder)
return

var/list/investigates = list(INVESTIGATE_RESEARCH, INVESTIGATE_EXONET, INVESTIGATE_PORTAL, INVESTIGATE_SINGULO, INVESTIGATE_WIRES, INVESTIGATE_TELESCI, INVESTIGATE_GRAVITY, INVESTIGATE_RECORDS, INVESTIGATE_CARGO, INVESTIGATE_SUPERMATTER, INVESTIGATE_ATMOS, INVESTIGATE_EXPERIMENTOR, INVESTIGATE_BOTANY, INVESTIGATE_HALLUCINATIONS, INVESTIGATE_RADIATION, INVESTIGATE_NANITES, INVESTIGATE_PRESENTS, INVESTIGATE_VIROLOGY, INVESTIGATE_HYPERTORUS) //Yogs - investigate virology
var/list/investigates = list(INVESTIGATE_RESEARCH, INVESTIGATE_EXONET, INVESTIGATE_PORTAL, INVESTIGATE_SINGULO, INVESTIGATE_WIRES, INVESTIGATE_TELESCI, INVESTIGATE_GRAVITY, INVESTIGATE_RECORDS, INVESTIGATE_CARGO, INVESTIGATE_SUPERMATTER, INVESTIGATE_ATMOS, INVESTIGATE_EXPERIMENTOR, INVESTIGATE_BOTANY, INVESTIGATE_HALLUCINATIONS, INVESTIGATE_RADIATION, INVESTIGATE_NANITES, INVESTIGATE_PRESENTS, INVESTIGATE_VIROLOGY, INVESTIGATE_HYPERTORUS, INVESTIGATE_REACTOR) //Yogs - investigate virology

var/list/logs_present = list("notes, memos, watchlist")
var/list/logs_missing = list("---")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

var/list/datum/pipeline/parents
var/list/datum/gas_mixture/airs
var/startingvolume = 200

/obj/machinery/atmospherics/components/New()
parents = new(device_type)
Expand All @@ -16,7 +17,7 @@
..()

for(var/i in 1 to device_type)
var/datum/gas_mixture/A = new(200)
var/datum/gas_mixture/A = new(startingvolume)
airs[i] = A

// Iconnery
Expand Down
37 changes: 37 additions & 0 deletions code/modules/cargo/packs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1234,6 +1234,43 @@
crate_type = /obj/structure/closet/crate/secure/engineering
dangerous = TRUE

/datum/supply_pack/engine/fuel_rod_basic
name = "Uranium-235 Fuel Rods Crate"
desc = "Contains 5 Enriched Uranium Control Rods."
cost = 5000
contains = list(/obj/item/fuel_rod,
/obj/item/fuel_rod,
/obj/item/fuel_rod,
/obj/item/fuel_rod,
/obj/item/fuel_rod)
crate_name = "Uranium-235 Fuel Rods"
crate_type = /obj/structure/closet/crate/radiation

/datum/supply_pack/engine/fuel_rod_plutonium
name = "Plutonium-239 Fuel Rods Crate"
desc = "Contains 5 Plutonium-239 Control Rods."
cost = 15000
contains = list(/obj/item/fuel_rod/plutonium,
/obj/item/fuel_rod/plutonium,
/obj/item/fuel_rod/plutonium,
/obj/item/fuel_rod/plutonium,
/obj/item/fuel_rod/plutonium)
crate_name = "Plutonium-239 Fuel Rods"
crate_type = /obj/structure/closet/crate/radiation

/datum/supply_pack/engine/fuel_rod_bananium
name = "Bananium Fuel Rods Crate"
desc = "Contains 5 Bananium Control Rods."
cost = 15000
contraband = TRUE
contains = list(/obj/item/fuel_rod/material/bananium,
/obj/item/fuel_rod/material/bananium,
/obj/item/fuel_rod/material/bananium,
/obj/item/fuel_rod/material/bananium,
/obj/item/fuel_rod/material/bananium)
crate_name = "Bananium Fuel Rods"
crate_type = /obj/structure/closet/crate/radiation

//////////////////////////////////////////////////////////////////////////////
/////////////////////// Canisters & Materials ////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
starting_files |= list(
new /datum/computer_file/program/alarm_monitor,
new /datum/computer_file/program/supermatter_monitor,
new /datum/computer_file/program/nuclear_monitor,
new /datum/computer_file/program/power_monitor
)
. = ..()
Expand Down Expand Up @@ -82,7 +83,8 @@
starting_files |= list(
new /datum/computer_file/program/atmosscan,
new /datum/computer_file/program/alarm_monitor,
new /datum/computer_file/program/supermatter_monitor
new /datum/computer_file/program/supermatter_monitor,
new /datum/computer_file/program/nuclear_monitor
)
. = ..()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,10 @@

starting_files = list( new /datum/computer_file/program/budgetorders,
new /datum/computer_file/program/card_mod,
new /datum/computer_file/program/alarm_monitor)
new /datum/computer_file/program/alarm_monitor,
new /datum/computer_file/program/supermatter_monitor,
new /datum/computer_file/program/nuclear_monitor,
new /datum/computer_file/program/energy_harvester_control)
finish_color = "orange"

/obj/item/modular_computer/tablet/phone/preset/advanced/command/rd
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
desc = "A stationary computer. This one comes preloaded with engineering programs."
starting_files = list( new /datum/computer_file/program/power_monitor,
new /datum/computer_file/program/alarm_monitor,
new /datum/computer_file/program/nuclear_monitor,
new /datum/computer_file/program/supermatter_monitor)
initial_program = /datum/computer_file/program/power_monitor

Expand Down Expand Up @@ -145,6 +146,7 @@
new /datum/computer_file/program/card_mod,
new /datum/computer_file/program/power_monitor,
new /datum/computer_file/program/alarm_monitor,
new /datum/computer_file/program/nuclear_monitor,
new /datum/computer_file/program/supermatter_monitor,
new /datum/computer_file/program/energy_harvester_control)

Expand Down
1 change: 1 addition & 0 deletions code/modules/pool/pool.dm
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ Place a pool filter somewhere in the pool if you want people to be able to modif
icon = 'icons/obj/pool.dmi'
icon_state = "pool"
sound = 'sound/effects/splash.ogg'
flags_1 = CAN_BE_DIRTY_1|RAD_CONTAIN_CONTENTS // contains most of the rads on the tile within that tile
SapphicOverload marked this conversation as resolved.
Show resolved Hide resolved
var/id = null //Set me if you don't want the pool and the pump to be in the same area, or you have multiple pools per area.
var/obj/effect/water_overlay = null

Expand Down
2 changes: 2 additions & 0 deletions code/modules/power/lighting.dm
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,7 @@
// create a new lighting fixture
/obj/machinery/light/Initialize(mapload)
. = ..()
GLOB.lights += src

RegisterSignal(src, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(clean_light))
if(!mapload) //sync up nightshift lighting for player made lights
Expand Down Expand Up @@ -332,6 +333,7 @@
update(0)

/obj/machinery/light/Destroy()
GLOB.lights.Remove(src)
var/area/A = get_area(src)
if(A)
on = FALSE && !forced_off
Expand Down
Loading
Loading