Skip to content

Conversation

CrazyAmphibian
Copy link
Contributor

@CrazyAmphibian CrazyAmphibian commented Mar 5, 2025

[qol] [bugfix]

What this does

adds an ambient hum to reactors
fixes some bugs
allows you to change rod levels with more precision
Capture

Why it's good

adds some flair to make them more exciting, a bit more controlable, and fixing bugs is good.

How it was tested

booted into game, verified sound worked correctly, and buttons worked right.

Changelog

🆑

  • rscadd: Fission reactors now emit sound while running
  • tweak: Nanotrasen has updated its reactor firmware to increase control rod precision down to 1%!
  • tweak: The ISC will now round very small volumes of radon
  • tweak: Nanotrasen has updated its reactor guide to give a bit more information on the ISC's piping construction
  • bugfix: Fixed radon not showing up as a valid material in the ISC sometimes
  • bugfix: Fixed reactor girders giving the incorrect number of plasteel sheets when deconstructing them

@D3athrow-Issues D3athrow-Issues added Bug / Fix This is either a bug or a fix for a bug. ❤️ Quality of Life ❤️ This is a change that removes hassle and improves quality of life. labels Mar 5, 2025
@hacker-on-steroids
Copy link
Contributor

hacker-on-steroids commented Mar 5, 2025

maybe something like [---] [-] RODS [+] [+++] like how the r-ust does it

@CrazyAmphibian
Copy link
Contributor Author

maybe something like [---] [-] RODS [+] [+++] like how the r-ust does it

i'm not sure i follow with how that would be layed out

@hacker-on-steroids
Copy link
Contributor

image
as the buttons get smaller, the adjustments get finer +++ adds 100, -- subtracts 10, - subtracts 1

the reactor UI is fine as it is, but if you want it to be closer to the others you could do this

Comment on lines +596 to +619
time_last_sound_emission=world.time
for(var/mob/living/M in world)
if(!M.client)
continue
if(M.loc.z!=zlevel)
continue
var/dx1=abs(M.loc.x-origin_x)
var/dx2=abs(M.loc.x-corner_x)
var/dy1=abs(M.loc.y-origin_y)
var/dy2=abs(M.loc.y-corner_y)
var/dist=max(min(dx1,dx2),min(dy1,dy2))
if( dist<11) //within 10 tiles of a reactor edge
var/sound/S = sound('sound/machines/fission/reactor_hum.ogg')
S.pan=0
if (M.loc.x>origin_x && M.loc.x > corner_x)
//pan right
S.pan=min(dx1,dx2)*-5
else if (M.loc.x<origin_x && M.loc.x < corner_x)
//pan left
S.pan=min(dx1,dx2)*5

S.falloff = 2
S.volume=23*(1-control_rod_insertion)+10
M << S
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why are you doing this instead of just using playsound() which does most of this for you

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

because playsound is from a single location/atom and reactors are multiple objects. also, i tested playsound, and it had this weird bug where the audio wasn't panning correctly when i was playing it on a fuel rod obj.

@west3436 west3436 merged commit c034a48 into vgstation-coders:Bleeding-Edge Mar 12, 2025
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug / Fix This is either a bug or a fix for a bug. ❤️ Quality of Life ❤️ This is a change that removes hassle and improves quality of life.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants