mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-12 10:42:37 +00:00
## About The Pull Request <details> - renamed ai folder to announcer -- announcer -- - moved vox_fem to announcer - moved approachingTG to announcer - separated the ambience folder into ambience and instrumental -- ambience -- - created holy folder moved all related sounds there - created engineering folder and moved all related sounds there - created security folder and moved ambidet there - created general folder and moved ambigen there - created icemoon folder and moved all icebox-related ambience there - created medical folder and moved all medbay-related ambi there - created ruin folder and moves all ruins ambi there - created beach folder and moved seag and shore there - created lavaland folder and moved related ambi there - created aurora_caelus folder and placed its ambi there - created misc folder and moved the rest of the files that don't have a specific category into it -- instrumental -- - moved traitor folder here - created lobby_music folder and placed our songs there (title0 not used anywhere? - server-side modification?) -- items -- - moved secdeath to hailer - moved surgery to handling -- effects -- - moved chemistry into effects - moved hallucinations into effects - moved health into effects - moved magic into effects -- vehicles -- - moved mecha into vehicles created mobs folder -- mobs -- - moved creatures folder into mobs - moved voice into mobs renamed creatures to non-humanoids renamed voice to humanoids -- non-humanoids-- created cyborg folder created hiss folder moved harmalarm.ogg to cyborg -- humanoids -- -- misc -- moved ghostwhisper to misc moved insane_low_laugh to misc I give up trying to document this. </details> - [X] ambience - [x] announcer - [x] effects - [X] instrumental - [x] items - [x] machines - [x] misc - [X] mobs - [X] runtime - [X] vehicles - [ ] attributions ## Why It's Good For The Game This folder is so disorganized that it's vomit inducing, will make it easier to find and add new sounds, providng a minor structure to the sound folder. ## Changelog 🆑 grungussuss refactor: the sound folder in the source code has been reorganized, please report any oddities with sounds playing or not playing server: lobby music has been repathed to sound/music/lobby_music /🆑
160 lines
5.3 KiB
Plaintext
160 lines
5.3 KiB
Plaintext
// Radioisotope Thermoelectric Generator (RTG)
|
|
// Simple power generator that would replace "magic SMES" on various derelicts.
|
|
|
|
/obj/machinery/power/rtg
|
|
name = "radioisotope thermoelectric generator"
|
|
desc = "A simple nuclear power generator, used in small outposts to reliably provide power for decades."
|
|
icon = 'icons/obj/machines/engine/other.dmi'
|
|
icon_state = "rtg"
|
|
density = TRUE
|
|
use_power = NO_POWER_USE
|
|
circuit = /obj/item/circuitboard/machine/rtg
|
|
|
|
// You can buckle someone to RTG, then open its panel. Fun stuff.
|
|
can_buckle = TRUE
|
|
buckle_lying = 0
|
|
buckle_requires_restraints = TRUE
|
|
|
|
var/power_gen = 1000 // Enough to power a single APC. 4000 output with T4 capacitor.
|
|
|
|
/obj/machinery/power/rtg/Initialize(mapload)
|
|
. = ..()
|
|
connect_to_network()
|
|
|
|
/obj/machinery/power/rtg/process()
|
|
add_avail(power_to_energy(power_gen))
|
|
|
|
/obj/machinery/power/rtg/RefreshParts()
|
|
. = ..()
|
|
var/part_level = 0
|
|
for(var/datum/stock_part/stock_part in component_parts)
|
|
part_level += stock_part.tier
|
|
|
|
power_gen = initial(power_gen) * part_level
|
|
|
|
/obj/machinery/power/rtg/examine(mob/user)
|
|
. = ..()
|
|
if(in_range(user, src) || isobserver(user))
|
|
. += span_notice("The status display reads: Power generation at <b>[display_power(power_gen, convert = FALSE)]</b>.")
|
|
|
|
/obj/machinery/power/rtg/attackby(obj/item/I, mob/user, params)
|
|
if(default_deconstruction_screwdriver(user, "[initial(icon_state)]-open", initial(icon_state), I))
|
|
return
|
|
else if(default_deconstruction_crowbar(I))
|
|
return
|
|
return ..()
|
|
|
|
/obj/machinery/power/rtg/advanced
|
|
desc = "An advanced RTG capable of moderating isotope decay, increasing power output but reducing lifetime. It uses plasma-fueled radiation collectors to increase output even further."
|
|
power_gen = 1250 // 2500 on T1, 10000 on T4.
|
|
circuit = /obj/item/circuitboard/machine/rtg/advanced
|
|
|
|
// Void Core, power source for Abductor ships and bases.
|
|
// Provides a lot of power, but tends to explode when mistreated.
|
|
|
|
/obj/machinery/power/rtg/abductor
|
|
name = "Void Core"
|
|
icon = 'icons/obj/antags/abductor.dmi'
|
|
icon_state = "core"
|
|
desc = "An alien power source that produces energy seemingly out of nowhere."
|
|
circuit = /obj/item/circuitboard/machine/abductor/core
|
|
power_gen = 20000 // 280 000 at T1, 400 000 at T4. Starts at T4.
|
|
can_buckle = FALSE
|
|
pixel_y = 7
|
|
var/going_kaboom = FALSE // Is it about to explode?
|
|
|
|
/obj/machinery/power/rtg/abductor/proc/overload()
|
|
if(going_kaboom)
|
|
return
|
|
going_kaboom = TRUE
|
|
visible_message(span_danger("\The [src] lets out a shower of sparks as it starts to lose stability!"),\
|
|
span_hear("You hear a loud electrical crack!"))
|
|
playsound(src.loc, 'sound/effects/magic/lightningshock.ogg', 100, TRUE, extrarange = 5)
|
|
tesla_zap(source = src, zap_range = 5, power = power_gen * 20)
|
|
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(explosion), src, 2, 3, 4, null, 8), 10 SECONDS) // Not a normal explosion.
|
|
|
|
/obj/machinery/power/rtg/abductor/bullet_act(obj/projectile/Proj)
|
|
. = ..()
|
|
if(!going_kaboom && istype(Proj) && Proj.damage > 0 && ((Proj.damage_type == BURN) || (Proj.damage_type == BRUTE)))
|
|
log_bomber(Proj.firer, "triggered a", src, "explosion via projectile")
|
|
overload()
|
|
|
|
/obj/machinery/power/rtg/abductor/blob_act(obj/structure/blob/B)
|
|
overload()
|
|
|
|
/obj/machinery/power/rtg/abductor/ex_act()
|
|
if(going_kaboom)
|
|
qdel(src)
|
|
else
|
|
overload()
|
|
|
|
return TRUE
|
|
|
|
/obj/machinery/power/rtg/abductor/fire_act(exposed_temperature, exposed_volume)
|
|
overload()
|
|
|
|
/obj/machinery/power/rtg/abductor/zap_act(power, zap_flags)
|
|
. = ..() //extend the zap
|
|
if(zap_flags & ZAP_MACHINE_EXPLOSIVE)
|
|
overload()
|
|
|
|
/obj/machinery/power/rtg/debug
|
|
name = "Debug RTG"
|
|
desc = "You really shouldn't be seeing this if you're not a coder or jannie."
|
|
power_gen = 20000
|
|
circuit = null
|
|
|
|
/obj/machinery/power/rtg/debug/RefreshParts()
|
|
SHOULD_CALL_PARENT(FALSE)
|
|
return
|
|
|
|
/obj/machinery/power/rtg/lavaland
|
|
name = "Lava powered RTG"
|
|
desc = "This device only works when exposed to the toxic fumes of Lavaland"
|
|
circuit = null
|
|
power_gen = 1500
|
|
anchored = TRUE
|
|
resistance_flags = LAVA_PROOF
|
|
|
|
/obj/machinery/power/rtg/lavaland/Initialize(mapload)
|
|
. = ..()
|
|
var/turf/our_turf = get_turf(src)
|
|
if(!islava(our_turf))
|
|
power_gen = 0
|
|
if(!is_mining_level(z))
|
|
power_gen = 0
|
|
|
|
/obj/machinery/power/rtg/lavaland/Moved(atom/old_loc, movement_dir, forced, list/old_locs, momentum_change = TRUE)
|
|
. = ..()
|
|
var/turf/our_turf = get_turf(src)
|
|
if(!islava(our_turf))
|
|
power_gen = 0
|
|
return
|
|
if(!is_mining_level(z))
|
|
power_gen = 0
|
|
return
|
|
power_gen = initial(power_gen)
|
|
|
|
/obj/machinery/power/rtg/old_station
|
|
name = "Old RTG"
|
|
desc = "A very old RTG, it seems on the verge of being destroyed"
|
|
circuit = null
|
|
power_gen = 750
|
|
anchored = TRUE
|
|
|
|
/obj/machinery/power/rtg/old_station/attackby(obj/item/I, mob/user, params)
|
|
if(default_deconstruction_screwdriver(user, "[initial(icon_state)]-open", initial(icon_state), I))
|
|
to_chat(user,span_warning("You feel it crumbling under your hands!"))
|
|
return
|
|
else if(default_deconstruction_crowbar(I, user = user))
|
|
return
|
|
return ..()
|
|
|
|
/obj/machinery/power/rtg/old_station/default_deconstruction_crowbar(obj/item/crowbar, ignore_panel, custom_deconstruct, mob/user)
|
|
to_chat(user,span_warning("It's starting to fall off!"))
|
|
if(!do_after(user, 3 SECONDS, src))
|
|
return TRUE
|
|
to_chat(user,span_notice("You feel like you made a mistake"))
|
|
new /obj/effect/decal/cleanable/ash/large(loc)
|
|
qdel(src)
|