Skip to content

Commit

Permalink
Move supermatter content into a modpack
Browse files Browse the repository at this point in the history
  • Loading branch information
out-of-phaze committed Jan 3, 2025
1 parent 7d36dae commit eee801a
Show file tree
Hide file tree
Showing 77 changed files with 497 additions and 400 deletions.
2 changes: 1 addition & 1 deletion code/__defines/_planes+layers.dm
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ What is the naming convention for planes or layers?
#define ABOVE_LIGHTING_PLANE 4 // laser beams, etc. that shouldn't be affected by darkness
#define ABOVE_LIGHTING_LAYER 1
#define BEAM_PROJECTILE_LAYER 2
#define SUPERMATTER_WALL_LAYER 3
#define SUBSPACE_WALL_LAYER 3
#define OBFUSCATION_LAYER 4

#define FULLSCREEN_PLANE 5 // for fullscreen overlays that do not cover the hud.
Expand Down
16 changes: 0 additions & 16 deletions code/__defines/machinery.dm
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,6 @@ var/global/defer_powernet_rebuild = 0 // True if net rebuild will be called
#define STAGE_THREE 5
#define STAGE_FOUR 7
#define STAGE_FIVE 9
#define STAGE_SUPER 11

// NanoUI flags
#define STATUS_INTERACTIVE 2 // GREEN Visability
Expand Down Expand Up @@ -103,21 +102,6 @@ var/global/defer_powernet_rebuild = 0 // True if net rebuild will be called
#define ATMOS_DEFAULT_VOLUME_MIXER 500 // L.
#define ATMOS_DEFAULT_VOLUME_PIPE 70 // L.

// These are used by supermatter and supermatter monitor program, mostly for UI updating purposes. Higher should always be worse!
#define SUPERMATTER_ERROR -1 // Unknown status, shouldn't happen but just in case.
#define SUPERMATTER_INACTIVE 0 // No or minimal energy
#define SUPERMATTER_NORMAL 1 // Normal operation
#define SUPERMATTER_NOTIFY 2 // Ambient temp > 80% of CRITICAL_TEMPERATURE
#define SUPERMATTER_WARNING 3 // Ambient temp > CRITICAL_TEMPERATURE OR integrity damaged
#define SUPERMATTER_DANGER 4 // Integrity < 50%
#define SUPERMATTER_EMERGENCY 5 // Integrity < 25%
#define SUPERMATTER_DELAMINATING 6 // Pretty obvious.

#define SUPERMATTER_DATA_EER "Relative EER"
#define SUPERMATTER_DATA_TEMPERATURE "Temperature"
#define SUPERMATTER_DATA_PRESSURE "Pressure"
#define SUPERMATTER_DATA_EPR "Chamber EPR"

// Scrubber modes
#define SCRUBBER_SIPHON "siphon"
#define SCRUBBER_SCRUB "scrub"
Expand Down
4 changes: 0 additions & 4 deletions code/datums/repositories/follow.dm
Original file line number Diff line number Diff line change
Expand Up @@ -216,10 +216,6 @@ var/global/repository/follow/follow_repository = new()
followed_type = /obj/effect/blob/core
suffix = "Blob"

/datum/follow_holder/supermatter
sort_order = 10
followed_type = /obj/machinery/power/supermatter

/datum/follow_holder/singularity
sort_order = 10
followed_type = /obj/effect/singularity
Expand Down
7 changes: 0 additions & 7 deletions code/datums/supplypacks/engineering.dm
Original file line number Diff line number Diff line change
Expand Up @@ -155,13 +155,6 @@
containername = "shield generator construction kit crate"
access = access_engine

/decl/hierarchy/supply_pack/engineering/smbig
name = "Power - Supermatter core"
contains = list(/obj/machinery/power/supermatter)
containertype = /obj/structure/closet/crate/secure/large/supermatter
containername = "\improper Supermatter crate (CAUTION)"
access = access_ce

/decl/hierarchy/supply_pack/engineering/robotics
name = "Parts - Robotics assembly"
contains = list(/obj/item/assembly/prox_sensor = 3,
Expand Down
1 change: 0 additions & 1 deletion code/datums/trading/traders/unique.dm
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,6 @@
/obj/item/stack/material/ore = TRADER_ALL
)
possible_trading_items = list(
/obj/machinery/power/supermatter = TRADER_ALL,
/obj/item/aiModule = TRADER_SUBTYPES_ONLY
)
want_multiplier = 5000
Expand Down
14 changes: 0 additions & 14 deletions code/datums/uplink/grenades.dm
Original file line number Diff line number Diff line change
Expand Up @@ -80,17 +80,3 @@
item_cost = 40
antag_roles = list(/decl/special_role/mercenary)
path = /obj/item/box/frags

/datum/uplink_item/item/grenades/supermatter
name = "1x Supermatter Grenade"
desc = "This grenade contains a small supermatter shard which will delaminate upon activation and pull in nearby objects, irradiate lifeforms, and eventually explode."
item_cost = 15
antag_roles = list(/decl/special_role/mercenary)
path = /obj/item/grenade/supermatter

/datum/uplink_item/item/grenades/supermatters
name = "5x Supermatter Grenades"
desc = "These grenades contains a small supermatter shard which will delaminate upon activation and pull in nearby objects, irradiate lifeforms, and eventually explode."
item_cost = 60
antag_roles = list(/decl/special_role/mercenary)
path = /obj/item/box/supermatters
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
SSticker.mode.station_was_nuked = 1
SSticker.mode.station_explosion_in_progress = FALSE
if(!SSticker.mode.check_finished())//If the mode does not deal with the nuke going off so just reboot because everyone is stuck as is
universe_has_ended = 1
universe_has_ended = TRUE

/datum/universal_state/nuclear_explosion/OnExit()
if(SSticker.mode)
Expand Down
1 change: 0 additions & 1 deletion code/game/gamemodes/game_mode.dm
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,6 @@ var/global/list/additional_antag_types = list()
"wormholes to another dimension",
"a telescience mishap",
"radiation flares",
"supermatter dust",
"leaks into a negative reality",
"antiparticle clouds",
"residual exotic energy",
Expand Down
5 changes: 0 additions & 5 deletions code/game/machinery/atmo_control.dm
Original file line number Diff line number Diff line change
Expand Up @@ -331,8 +331,3 @@
radio_connection.post_signal(src, signal, device_tag)

..()

/obj/machinery/computer/air_control/supermatter_core
icon = 'icons/obj/computer.dmi'
frequency = 1438
out_pressure_mode = 1
8 changes: 0 additions & 8 deletions code/game/machinery/supplybeacon.dm
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,6 @@
var/deploy_path = /obj/structure/supply_beacon
var/deploy_time = 30

/obj/item/supply_beacon/supermatter
name = "inactive supermatter supply beacon"
deploy_path = /obj/structure/supply_beacon/supermatter

/obj/item/supply_beacon/attack_self(var/mob/user)
user.visible_message(SPAN_NOTICE("\The [user] begins setting up \the [src]."))
if(!do_after(user, deploy_time, src))
Expand Down Expand Up @@ -45,10 +41,6 @@
if(!drop_type)
drop_type = pick(supply_drop_random_loot_types())

/obj/structure/supply_beacon/supermatter
name = "supermatter supply beacon"
drop_type = "supermatter"

/obj/structure/supply_beacon/attackby(var/obj/item/W, var/mob/user)
if(!activated && IS_WRENCH(W))
anchored = !anchored
Expand Down
3 changes: 2 additions & 1 deletion code/game/objects/effects/overlays.dm
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,12 @@
icon = 'icons/misc/beach.dmi'
icon_state = "coconuts"

// This isn't modularized because I hate modularizing layer defines. Bite me.
/obj/effect/overlay/bluespacify
name = "subspace"
icon = 'icons/turf/space.dmi'
icon_state = "bluespacify"
layer = SUPERMATTER_WALL_LAYER
layer = SUBSPACE_WALL_LAYER

/obj/effect/overlay/wallrot
name = "wallrot"
Expand Down
7 changes: 0 additions & 7 deletions code/game/objects/items/books/manuals/engineering.dm
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,6 @@
title = "Particle Accelerator User's Guide"
guide_decl = /datum/codex_entry/guide/particle_accelerator

/obj/item/book/manual/supermatter_engine
name = "supermatter engine reference manual"
icon = 'icons/obj/items/books/book_supermatter.dmi'
author = "Central Engineering Division"
title = "Supermatter Engine Operating Manual"
guide_decl = /datum/codex_entry/guide/supermatter

/obj/item/book/manual/rust_engine
name = "fusion reactor reference Manual"
icon_state = "bookMagazine"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,6 @@
var/sensor_name
var/list/sensor_information = list()

/obj/item/stock_parts/circuitboard/air_management/supermatter_core
name = "circuitboard (core control)"
build_path = /obj/machinery/computer/air_control/supermatter_core
frequency = 1438
var/input_tag
var/output_tag

var/list/input_info = list()
var/list/output_info = list()

var/input_flow_setting = 700
var/pressure_setting = 100

/obj/item/stock_parts/circuitboard/air_management/injector_control
name = "circuitboard (injector control)"
build_path = /obj/machinery/computer/air_control/fuel_injection
Expand All @@ -42,18 +29,6 @@
C.sensor_info = sensor_information.Copy()
return 1

/obj/item/stock_parts/circuitboard/air_management/supermatter_core/construct(var/obj/machinery/computer/air_control/supermatter_core/SC)
if(..(SC))
SC.input_tag = input_tag
SC.output_tag = output_tag

SC.input_info = input_info.Copy()
SC.output_info = output_info.Copy()

SC.input_flow_setting = input_flow_setting
SC.pressure_setting = input_flow_setting
return 1

/obj/item/stock_parts/circuitboard/air_management/injector_control/construct(var/obj/machinery/computer/air_control/fuel_injection/FI)
if(..(FI))
FI.device_tag = device_tag
Expand All @@ -75,18 +50,6 @@
sensor_information = C.sensor_info.Copy()
return 1

/obj/item/stock_parts/circuitboard/air_management/supermatter_core/deconstruct(var/obj/machinery/computer/air_control/supermatter_core/SC)
if(..(SC))
input_tag = SC.input_tag
output_tag = SC.output_tag

input_info = SC.input_info.Copy()
output_info = SC.output_info.Copy()

input_flow_setting = SC.input_flow_setting
pressure_setting = SC.input_flow_setting
return 1

/obj/item/stock_parts/circuitboard/air_management/injector_control/deconstruct(var/obj/machinery/computer/air_control/fuel_injection/FI)
if(..(FI))
device_tag = FI.device_tag
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/items/weapons/secrets_disk.dm
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@

/obj/item/disk/secret_project/proc/get_secret_project_nouns()
var/static/list/nouns = list(
"a superluminal artillery cannon", "a supermatter engine", "a fusion engine", "an atmospheric scrubber",\
"a superluminal artillery cannon", "a fusion engine", "an atmospheric scrubber",\
"a human cloning pod", "a microwave oven", "a wormhole generator", "a laser carbine", "an energy pistol",\
"a wormhole", "a teleporter", "a huge mining drill", "a strange spacecraft", "a space station",\
"a sleek-looking fighter spacecraft", "a ballistic rifle", "an energy sword", "an inanimate carbon rod"
Expand Down
7 changes: 0 additions & 7 deletions code/game/objects/items/weapons/storage/boxes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -275,13 +275,6 @@
/obj/item/box/anti_photons/WillContain()
return list(/obj/item/grenade/anti_photon = 5)

/obj/item/box/supermatters
name = "box of supermatter grenades"
desc = "A box containing 5 highly experimental supermatter grenades."
icon_state = "radbox"
/obj/item/box/supermatters/WillContain()
return list(/obj/item/grenade/supermatter = 5)

/obj/item/box/decompilers
name = "box of decompiler grenades"
desc = "A box containing 5 experimental decompiler grenades."
Expand Down
3 changes: 0 additions & 3 deletions code/game/objects/structures/crates_lockers/crates.dm
Original file line number Diff line number Diff line change
Expand Up @@ -236,9 +236,6 @@
storage_types = CLOSET_STORAGE_ITEMS|CLOSET_STORAGE_STRUCTURES
icon = 'icons/obj/closets/bases/large_crate.dmi'

/obj/structure/closet/crate/secure/large/supermatter
closet_appearance = /decl/closet_appearance/large_crate/secure/hazard

//fluff variant
/obj/structure/closet/crate/secure/large/reinforced
desc = "A hefty, reinforced metal crate with an electronic locking system."
Expand Down
9 changes: 0 additions & 9 deletions code/modules/admin/verbs/grief_fixers.dm
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,6 @@
/decl/atmos_grief_fix_step/proc/act()
return

/decl/atmos_grief_fix_step/supermatter
name = "Supermatter depowered"
sort_order = 0

/decl/atmos_grief_fix_step/supermatter/act()
// Depower the supermatter, as it would quickly blow up once we remove all gases from the pipes.
for(var/obj/machinery/power/supermatter/S in SSmachines.machinery)
S.power = 0

/decl/atmos_grief_fix_step/purge_pipenets
name = "All pipenets purged of gas"
sort_order = 1
Expand Down
1 change: 0 additions & 1 deletion code/modules/admin/verbs/mapping.dm
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,6 @@ var/global/list/debug_verbs = list (
/client/proc/hide_debug_verbs,
/client/proc/testZAScolors,
/client/proc/testZAScolors_remove,
/datum/admins/proc/setup_supermatter,
/datum/admins/proc/setup_fusion,
/client/proc/atmos_toggle_debug,
/client/proc/spawn_tanktransferbomb,
Expand Down
17 changes: 0 additions & 17 deletions code/modules/codex/entries/engineering.dm
Original file line number Diff line number Diff line change
@@ -1,20 +1,3 @@
/datum/codex_entry/supermatter
associated_paths = list(/obj/machinery/power/supermatter)
mechanics_text = "When energized by a laser (or something hitting it), it emits radiation and heat. If the heat reaches above 7000 kelvin, it will send an alert and start taking damage. \
After integrity falls to zero percent, it will delaminate, causing a massive explosion, station-wide radiation spikes, and hallucinations. \
Supermatter reacts badly to oxygen in the atmosphere. It'll also heat up really quick if it is in vacuum.<br>\
<br>\
Supermatter cores are extremely dangerous to be close to, and requires protection to handle properly. The protection you will need is:<br>\
Optical meson scanners on your eyes, to prevent hallucinations when looking at the supermatter.<br>\
Radiation helmet and suit, as the supermatter is radioactive.<br>\
<br>\
Touching the supermatter will result in *instant death*, with no corpse left behind! You can drag the supermatter, but anything else will kill you. \
It is advised to obtain a genetic backup before trying to drag it."
antag_text = "Exposing the supermatter to oxygen or vaccum will cause it to start rapidly heating up. Sabotaging the supermatter and making it explode will \
cause a period of lag as the explosion is processed by the server, as well as irradiating the entire station and causing hallucinations to happen. \
Wearing radiation equipment will protect you from most of the delamination effects sans explosion."
available_to_map_tech_level = MAP_TECH_LEVEL_SPACE

/datum/codex_entry/apc
associated_paths = list(/obj/machinery/power/apc)
mechanics_text = "An APC (Area Power Controller) regulates and supplies backup power for the area they are in. Their power channels are divided \
Expand Down
4 changes: 0 additions & 4 deletions code/modules/codex/entries/guides.dm
Original file line number Diff line number Diff line change
Expand Up @@ -601,10 +601,6 @@
/datum/codex_entry/guide/construction
name = "Guide to Construction"

/datum/codex_entry/guide/supermatter
name = "Guide to Supermatter Engines"
available_to_map_tech_level = MAP_TECH_LEVEL_SPACE

/datum/codex_entry/guide/fusion
name = "Guide to Fusion Reactors"
available_to_map_tech_level = MAP_TECH_LEVEL_SPACE
Expand Down
1 change: 0 additions & 1 deletion code/modules/events/ion_storm.dm
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,6 @@
"[random_player] is lonely and needs attention. Provide it.",
"All queries shall be ignored unless phrased as a question.",
"Insult Heads of Staff on every request, while acquiescing.",
"The [pick("Singularity","Supermatter")] is tasty, tasty taffy.",
"[pick("The crew",random_player)] needs to be about 20% cooler.",
"You must be [pick("passive aggressive", "excessively cheerful")].",
"[pick("The crew",random_player)] must construct additional pylons.",
Expand Down
13 changes: 5 additions & 8 deletions code/modules/events/meteors.dm
Original file line number Diff line number Diff line change
Expand Up @@ -416,23 +416,20 @@ var/global/list/meteors_major = list(
explosion(src.loc, 3, 6, 9, 20, 0)

// This is the final solution against shields - a single impact can bring down most shield generators.
/obj/effect/meteor/supermatter
name = "supermatter shard"
desc = "Oh god, what will be next..?"
icon = 'icons/obj/supermatter_32.dmi'
icon_state = "supermatter"
/obj/effect/meteor/destroyer
abstract_type = /obj/effect/meteor/destroyer

/obj/effect/meteor/supermatter/meteor_effect()
/obj/effect/meteor/destroyer/meteor_effect()
..()
explosion(src.loc, 1, 2, 3, 4, 0)
for(var/obj/machinery/power/apc/A in range(rand(12, 20), src))
A.energy_fail(round(10 * rand(8, 12)))

/obj/effect/meteor/supermatter/get_shield_damage()
/obj/effect/meteor/destroyer/get_shield_damage()
return ..() * rand(80, 120)

//Missiles, for events and so on
/obj/effect/meteor/supermatter/missile
/obj/effect/meteor/destroyer/missile
name = "photon torpedo"
desc = "An advanded warhead designed to tactically destroy space installations."
icon = 'icons/obj/missile.dmi'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -173,9 +173,6 @@
/datum/fabricator_recipe/imprinter/circuit/solarcontrol
path = /obj/item/stock_parts/circuitboard/solar_control

/datum/fabricator_recipe/imprinter/circuit/supermatter_control
path = /obj/item/stock_parts/circuitboard/air_management/supermatter_core

/datum/fabricator_recipe/imprinter/circuit/injector
path = /obj/item/stock_parts/circuitboard/air_management/injector_control

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
/decl/material/solid/exotic_matter
name = "exotic matter"
uid = "solid_exotic_matter"
lore_text = "Hypercrystalline supermatter is a subset of non-baryonic 'exotic' matter. It is found mostly in the heart of large stars, and features heavily in all kinds of fringe physics-defying technology."
lore_text = "Exotic matter is a non-baryonic form of matter, which features heavily in all kinds of fringe physics-defying technology."
color = "#ffff00"
radioactivity = 20
stack_origin_tech = @'{"wormholes":2,"materials":6,"exoticmatter":4}'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@
channels = list ("Engineering" = TRUE)
camera_channels = list(CAMERA_CAMERA_CHANNEL_ENGINEERING)
software = list(
/datum/computer_file/program/power_monitor,
/datum/computer_file/program/supermatter_monitor
/datum/computer_file/program/power_monitor
)
module_sprites = list(
"Drone" = 'icons/mob/robots/flying/flying_engineering.dmi',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@
CAMERA_CAMERA_CHANNEL_ENGINEERING
)
software = list(
/datum/computer_file/program/power_monitor,
/datum/computer_file/program/supermatter_monitor
/datum/computer_file/program/power_monitor
)
supported_upgrades = list(
/obj/item/borg/upgrade/rcd
Expand Down
1 change: 1 addition & 0 deletions code/modules/mob/skills/skill.dm
Original file line number Diff line number Diff line change
Expand Up @@ -349,6 +349,7 @@
category = /decl/skill_category/engineering
uid = "skill_engines"
fallback_key = "/decl/hierarchy/skill/engineering/engines"
// TODO: These strings should be modified by the supermatter modpack somehow...
desc = "Describes your knowledge of the various engine types common on space stations, such as the PACMAN, singularity, supermatter or RUST engine."
levels = list(
"Unskilled" = "You know that \"delamination\" is a bad thing and that you should stay away from the singularity. You know the engine provides power, but you're unclear on the specifics. If you were to try to set up the engine, you would need someone to talk you through every detail--and even then, you'd probably make deadly mistakes.<br>- You can read the SM monitor readings with 40% error. This decreases with level.",
Expand Down
Loading

0 comments on commit eee801a

Please sign in to comment.