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

Minerals have been refactored so costs and minerals in items are now in terms of mineral defines. #75052

Merged
merged 14 commits into from
May 3, 2023

Conversation

ArcaneMusic
Copy link
Contributor

@ArcaneMusic ArcaneMusic commented Apr 30, 2023

About The Pull Request

Ladies, Gentlemen, Gamers. You're probably wondering why I've called you all here (through the automatic reviewer request system). So, mineral balance! Mineral balance is less a balance and more of a nervous white dude juggling spinning plates on a high-wire on his first day. The fact it hasn't failed after going on this long is a miracle in and of itself.

This PR does not change mineral balance. What this does is moves over every individual cost, both in crafting recipes attached to an object over to a define based system. We have 3 defines:

sheet_material_amount=2000 . Stock standard mineral sheet. This being our central mineral unit, this is used for all costs 2000+.
half_sheet_material_amount=1000 . Same as above, but using iron rods as our inbetween for costs of 1000-1999.
small_material_amount=100 . This hits 1-999. This covers... a startlingly large amount of the codebase. It's feast or famine out here in terms of mineral costs as a result, items are either sheets upon sheets, or some fraction of small mats.

Shout out to riot darts for being the worst material cost in the game. I will not elaborate.

Regardless, this has no functional change, but it sets the groundwork for making future changes to material costs much, MUCH easier, and moves over to a single, standardized set of units to help enforce coding standards on new items, and will bring up lots of uncomfortable balance questions down the line.

For now though, this serves as some rough boundaries on how items costs are related, and will make adjusting these values easier going forward.

Except for foam darts.

I did round up foam darts.

Why It's Good For The Game

Adjusting mineral balance on the macro scale will be as simple as changing the aforementioned mineral defines, where the alternative is a rats nest of magic number defines. No seriously, 11.25 iron for a foam dart are you kidding me what is the POINT WHY NOT JUST MAKE IT 11

Items individual numbers have not been adjusted yet, but we can standardize how the conversation can be held and actually GET SOMEWHERE on material balance as opposed to throwing our hands up or ignoring it for another 10 years.

Changelog

🆑
refactor: Mineral costs have been reformatted to be scaled by the number of sheets, darts, and small fractions they make up.
qol: Foam darts no longer hold a fraction of a unit of iron within themselves.
/:cl:

@tgstation-server tgstation-server added Refactor Makes the code harder to read Quality of Life Increasing esword damage is not a quality of life for traitors labels Apr 30, 2023
@13spacemen
Copy link
Contributor

I really think the baseline sheet value should be 1000 not 2000. Iron rods are the only "half-sheet" while everything else has full sheets. It's less intuitive having everything be based on 1 sheet = 2000 mat

@zxaber
Copy link
Contributor

zxaber commented Apr 30, 2023

I still say we should use MATERIAL_HALF_SHEET and MATERIAL_QUARTER_SHEET. Defining all material use based on two construction consumables is something that only will make sense to engineer players. Plus, if we ever want to change the number of rods or tiles to a sheet, it'll throw everything out of whack.

@ArcaneMusic
Copy link
Contributor Author

I really think the baseline sheet value should be 1000 not 2000. Iron rods are the only "half-sheet" while everything else has full sheets. It's less intuitive having everything be based on 1 sheet = 2000 mat

While this is something we could do, the scope of this PR is just in setting myself up for balancing the cost and value of items for a future PR. I agree with the sentiment going forward however.

I still say we should use MATERIAL_HALF_SHEET and MATERIAL_QUARTER_SHEET. Defining all material use based on two construction consumables is something that only will make sense to engineer players. Plus, if we ever want to change the number of rods or tiles to a sheet, it'll throw everything out of whack.

Well, sheets are just as prevalent as rods in construction due to how often windows are used, not to mention that when placing building materials on maps, typically sheets and rods of iron come hand in hand.

The reason I went with SMALL_MATERIAL_AMOUNT as opposed to something more relational like quarter-sheets is in part due to the prevalence of "small cost items" that already exist.
image
In a follow up PR, I do plan on moving sheets to 1000 units, moving rods to 500 units, but leaving the SMALL_MATERIAL_AMOUNT the same at 100 units, Once this work is done though, that opens up a lot of room to "mess around and find out" what gives the mineral economy more impact, including looking at how many minerals a piece of ore should provide.

That said, I don't mind going and renaming rods over to half-sheets. as long as rods still remain "half-sheets".

@ArcaneMusic ArcaneMusic changed the title Minerals have been refactored so costs and item storage are now in terms of mineral defines. Minerals have been refactored so costs and minerals in items are now in terms of mineral defines. Apr 30, 2023
@github-actions github-actions bot requested a review from Ghilker April 30, 2023 19:06
@github-actions github-actions bot added the Merge Conflict Adding upstream files to your repo via drag and drop won't resolve conflicts label May 2, 2023
@tgstation-server tgstation-server removed the Merge Conflict Adding upstream files to your repo via drag and drop won't resolve conflicts label May 3, 2023
@JohnFulpWillard JohnFulpWillard merged commit f2fd69a into tgstation:master May 3, 2023
github-actions bot added a commit that referenced this pull request May 3, 2023
comfyorange added a commit that referenced this pull request May 3, 2023
Jolly-66 added a commit to TaleStation/TaleStation that referenced this pull request May 4, 2023
…rals in items are now in terms of mineral defines. (#5615)

Original PR: tgstation/tgstation#75052
-----
## About The Pull Request

Ladies, Gentlemen, Gamers. You're probably wondering why I've called you
all here (through the automatic reviewer request system). So, mineral
balance! Mineral balance is less a balance and more of a nervous white
dude juggling spinning plates on a high-wire on his first day. The fact
it hasn't failed after going on this long is a miracle in and of itself.

This PR does not change mineral balance. What this does is moves over
every individual cost, both in crafting recipes attached to an object
over to a define based system. We have 3 defines:

`sheet_material_amount=2000` . Stock standard mineral sheet. This being
our central mineral unit, this is used for all costs 2000+.
`half_sheet_material_amount=1000` . Same as above, but using iron rods
as our inbetween for costs of 1000-1999.
`small_material_amount=100` . This hits 1-999. This covers... a
startlingly large amount of the codebase. It's feast or famine out here
in terms of mineral costs as a result, items are either sheets upon
sheets, or some fraction of small mats.

Shout out to riot darts for being the worst material cost in the game. I
will not elaborate.

Regardless, this has no functional change, but it sets the groundwork
for making future changes to material costs much, MUCH easier, and moves
over to a single, standardized set of units to help enforce coding
standards on new items, and will bring up lots of uncomfortable balance
questions down the line.

For now though, this serves as some rough boundaries on how items costs
are related, and will make adjusting these values easier going forward.

Except for foam darts.

I did round up foam darts.

## Why It's Good For The Game

Adjusting mineral balance on the macro scale will be as simple as
changing the aforementioned mineral defines, where the alternative is a
rats nest of magic number defines. ~~No seriously, 11.25 iron for a foam
dart are you kidding me what is the POINT WHY NOT JUST MAKE IT 11~~

Items individual numbers have not been adjusted yet, but we can
standardize how the conversation can be held and actually GET SOMEWHERE
on material balance as opposed to throwing our hands up or ignoring it
for another 10 years.

## Changelog
:cl:
refactor: Mineral costs have been reformatted to be scaled by the number
of sheets, darts, and small fractions they make up.
qol: Foam darts no longer hold a fraction of a unit of iron within
themselves.
/:cl:

---------

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
MrMelbert pushed a commit that referenced this pull request Jun 7, 2023
Cleans up the plasma generator to actually work & make more sense:
* was not accepting any fuel, made that work; will also accept subtypes
of fuel e.g. a mapped-in stack of 5 plasma
* was not displaying the amount of fuel left in mecha stats UI, was
broken in #75052
* plasma pollution was removed a long time ago in #42908, scrubs mention
of that

Also adds some fluff text to the internal damage tracker to the short
circuit entry, as it was lacking a "system nominal" one. Also added a
`to_chat` to fixing navigation internal damage, as it was the only one
with no message for some reason.
JohnFulpWillard pushed a commit that referenced this pull request Jun 12, 2023
Good morning fokes, this PR is going to attempt to tweak around some of
the values of mineral costs in-game in the hopes of making the mineral
economy more engaging to the base gameplay loop, in the hopes that by
making it more self-realized, it would allow for better integration with
the rest of the gameplay loop as well as so that it doesn't completely
overshadow the credit economy. That said, **this pr only makes changes
to mined and station minerals**.

So, the base change is as follows: items with designated costs of
minerals below 1000 minerals, as designated in #75052 as
`SMALL_MATERIAL_AMOUNT`, have been left alone. Any item above 1000 or
2000, from `HALF_SHEET_MATERIAL_AMOUNT` and `SHEET_MATERIAL_AMOUNT` have
been adjusted, as sheets will now contain **100 minerals each**.

For example, if an object costed 4000 iron, 1000 glass, and 500 diamond
with the old numbers, with the changes to these defines, that item would
cost 2000 iron, 500 glass, and 500 diamond.
@MTandi MTandi mentioned this pull request Aug 8, 2023
wraith-54321 referenced this pull request in wraith-54321/Monkestation2.0 Jan 17, 2024
Good morning fokes, this PR is going to attempt to tweak around some of
the values of mineral costs in-game in the hopes of making the mineral
economy more engaging to the base gameplay loop, in the hopes that by
making it more self-realized, it would allow for better integration with
the rest of the gameplay loop as well as so that it doesn't completely
overshadow the credit economy. That said, **this pr only makes changes
to mined and station minerals**.

So, the base change is as follows: items with designated costs of
minerals below 1000 minerals, as designated in #75052 as
`SMALL_MATERIAL_AMOUNT`, have been left alone. Any item above 1000 or
2000, from `HALF_SHEET_MATERIAL_AMOUNT` and `SHEET_MATERIAL_AMOUNT` have
been adjusted, as sheets will now contain **100 minerals each**.

For example, if an object costed 4000 iron, 1000 glass, and 500 diamond
with the old numbers, with the changes to these defines, that item would
cost 2000 iron, 500 glass, and 500 diamond.
wraith-54321 referenced this pull request in wraith-54321/Monkestation2.0 Jan 17, 2024
…in terms of mineral defines. (#75052)

Ladies, Gentlemen, Gamers. You're probably wondering why I've called you
all here (through the automatic reviewer request system). So, mineral
balance! Mineral balance is less a balance and more of a nervous white
dude juggling spinning plates on a high-wire on his first day. The fact
it hasn't failed after going on this long is a miracle in and of itself.

This PR does not change mineral balance. What this does is moves over
every individual cost, both in crafting recipes attached to an object
over to a define based system. We have 3 defines:

`sheet_material_amount=2000` . Stock standard mineral sheet. This being
our central mineral unit, this is used for all costs 2000+.
`half_sheet_material_amount=1000` . Same as above, but using iron rods
as our inbetween for costs of 1000-1999.
`small_material_amount=100` . This hits 1-999. This covers... a
startlingly large amount of the codebase. It's feast or famine out here
in terms of mineral costs as a result, items are either sheets upon
sheets, or some fraction of small mats.

Shout out to riot darts for being the worst material cost in the game. I
will not elaborate.

Regardless, this has no functional change, but it sets the groundwork
for making future changes to material costs much, MUCH easier, and moves
over to a single, standardized set of units to help enforce coding
standards on new items, and will bring up lots of uncomfortable balance
questions down the line.

For now though, this serves as some rough boundaries on how items costs
are related, and will make adjusting these values easier going forward.

Except for foam darts.

I did round up foam darts.

Adjusting mineral balance on the macro scale will be as simple as
changing the aforementioned mineral defines, where the alternative is a
rats nest of magic number defines. ~~No seriously, 11.25 iron for a foam
dart are you kidding me what is the POINT WHY NOT JUST MAKE IT 11~~

Items individual numbers have not been adjusted yet, but we can
standardize how the conversation can be held and actually GET SOMEWHERE
on material balance as opposed to throwing our hands up or ignoring it
for another 10 years.
wraith-54321 referenced this pull request in wraith-54321/Monkestation2.0 Jan 17, 2024
Good morning fokes, this PR is going to attempt to tweak around some of
the values of mineral costs in-game in the hopes of making the mineral
economy more engaging to the base gameplay loop, in the hopes that by
making it more self-realized, it would allow for better integration with
the rest of the gameplay loop as well as so that it doesn't completely
overshadow the credit economy. That said, **this pr only makes changes
to mined and station minerals**.

So, the base change is as follows: items with designated costs of
minerals below 1000 minerals, as designated in #75052 as
`SMALL_MATERIAL_AMOUNT`, have been left alone. Any item above 1000 or
2000, from `HALF_SHEET_MATERIAL_AMOUNT` and `SHEET_MATERIAL_AMOUNT` have
been adjusted, as sheets will now contain **100 minerals each**.

For example, if an object costed 4000 iron, 1000 glass, and 500 diamond
with the old numbers, with the changes to these defines, that item would
cost 2000 iron, 500 glass, and 500 diamond.
Gboster-0 referenced this pull request in Gboster-0/Monkestation2.0 Feb 8, 2024
dwasint referenced this pull request in Monkestation/Monkestation2.0 Jun 1, 2024
…1179)

* Fixes redundant code & runtime in RPD (#74949)

## About The Pull Request
1. `pre_attack()` was defined twice, removed one
2. `attackby()` does the exact same thing as `pre_attack()` for
installing upgrades so removed that
3. Fixes runtime
![Screenshot
(180)](https://user-images.githubusercontent.com/110812394/233941512-c2e23e40-cd53-4ed4-87be-59bcaea373d3.png)
When you attempt to unwrench a pipe via the RPD but you interrupt the
`do_after()` proc by moving. it doesn't need to crash but simply return
if unwrenching was unsuccessful see
`/obj/machinery/atmospherics/wrench_act()`

## Changelog
:cl:
refactor: removed duplicate `pre_attack()` & redundant `attackby()`
procs which did the same thing
fix: unnecessary crash when unwrenching pipes/devices with the RPD
/:cl:

* RPD Speeds Tweak (#74619)

Lowercased RPD name and lowered the speeds for building atmos pipes/devices, reprogramming stuff and destroying stuff
atmos 0.5s -> 0.3s
reprogram/destroy 0.5s->0.3s
Why It's Good For The Game

QOL for atmos, makes big atmos/engi projects more viable
Loose pipes/devices don't even have gas in them no point in taking a lot of time to destroy them, they don't cost any materials to make either so nothing is wasted

This especially helps with fixing huge explosions since that leads to 50 pipe fittings being spammed everywhere and takes ages to clean up
Changelog

cl
qol: Lowered the atmos build, reprogram, and destroy delays on the RPD
/cl

* manual #75052 to the RPD

* Pipe Dispenser UI tweaks (#75540)

RPD:
<img width="398" alt="g6iMANATn2"
src="https://github.com/tgstation/tgstation/assets/3625094/a6b986d0-fa7f-4f67-89df-6d62505e1e50">

Pipe dispenser machines:
<img width="398" alt="eBxH3wMlPu"
src="https://github.com/tgstation/tgstation/assets/3625094/cc49c3c2-dad6-40da-9e63-b2f0a20fa893">


GIF:

![dreamseeker_LN0XizcPi9](https://github.com/tgstation/tgstation/assets/3625094/c8e639d2-48d1-4a71-a8f7-b55300007203)

## About The Pull Request

Updated RPD UI for:

- Bigger color buttons
- Faster selection of pipe type

## Why It's Good For The Game

Less clicks and missclicks when working with RPD

## Changelog

:cl:
qol: RPD and Pipe Pispenser UI tweaks for better navigation
code: RPD and Pipe Dispenser UI now on TS
/:cl:

* [NO GBP] Fixes Plumbing RCD (#75621)

![image](https://github.com/tgstation/tgstation/assets/3625094/c046222f-9766-4d14-8538-40aabdd15645)

## About The Pull Request

Fixes #75618 

Regression after #75540 

I didn't know that it reuses some components of RPD when I updated its
UI. It led to layers breaking UI.

## Changelog

:cl:
fix: Plumbing RCD UI fixed
/:cl:

* Air alarm helpers (#74997)

Replaces air alarm variants with directional alarms and corresponding
helper overlays, similar to APCs.

![image](https://user-images.githubusercontent.com/3625094/234709656-fac3d5c3-af04-496a-a28a-a3ca8d7e854f.png)

Less var edits, easier management.

:cl:
qol: Mapping: Air alarm variants replaced with corresponding helpers
/:cl:

* Connect air alarm to air sensor (#75187)

## About The Pull Request

To control vents and scrubbers in ordinance, burn and engine chambers,
mappers extend the area outside of the walls towards a tile where they
place the air alarm.

With this PR, they can now assign `chamber_id` to an air alarm and
connect to the chamber with an air sensor. There is a new map helper for
this.

Also, this connection can be done manually. You need to click on a
sensor with a multi-tool, then unlock certain air alarm, and click with
a multi-tool on it. This action will link sensor to an air alarm,
reporting gas mixture from the sensor tile and giving control over the
vents and scrubbers of the sensor's area.

### TLDR

Before:
<img width="718" alt="ordnance_before"
src="https://user-images.githubusercontent.com/3625094/236577769-5d79871f-2dce-43be-a20a-e6669bfbc1c6.PNG">

After: 
<img width="638" alt="ordnance_after"
src="https://user-images.githubusercontent.com/3625094/236577786-3c7e9c9f-1501-4747-bbe1-292fc4947b0d.PNG">

This is how the area is setup on meta station right now vs if it was
setup with a link

![image](https://user-images.githubusercontent.com/3625094/236578327-531cfb6f-e0ac-4c03-927f-f5b05b9c74ab.png)

This is also true for the supermatter chamber - you can make the air
alarm display the gas mix in the actual chamber and avoid using mapping
area hack there too.
<img width="954" alt="supermatter_after"
src="https://user-images.githubusercontent.com/3625094/236578528-4650b426-6bf0-4634-a5b0-cad7a50d5b01.PNG">

## Why It's Good For The Game

The area hack is no longer needed and you can place air alarm to control
certain remote area wherever you want when you design a map. Even 3 air
alarms next to each other controlling 3 different burn chambers.

The air alarm will also report the gas mix on the actual tile of a
sensor, instead of the gas mix before the air alarm, which is usually a
normal habitable environment.

Also, now you can build such chambers manually because there are no
precise area editing tools available in-game to repeat the area hack.

## Changelog

:cl:
add: Air alarms can be connected to an area remotely via air sensor with
multi-tool and corresponding access
qol: Mapping: Added air alarm helper to link air alarm with certain
chamber_id on map load
/:cl:

* New air alarm sprite take two (#75262)

![dreamseeker_3knwrXrSzO](https://user-images.githubusercontent.com/3625094/236828432-605f6c0a-10da-4e98-9c03-87931bc46704.gif)


![image](https://user-images.githubusercontent.com/3625094/236829631-c566d82b-90cc-400d-8565-0374282d5319.png)

## About The Pull Request

Reopen of #74932 

Resprites the air alarm and adds a new sprite that will be needed for an
air alarm that is remotely connected to a sensor via #75187

Also fixed air alarm not checking air status on power change.

## Why It's Good For The Game

Newer, more compact sprite. 

It will make it easier for map makers to stack remotely connected air
alarms on a tile to make an air monitoring wall.

## Changelog

:cl:
image: New air alarm sprite
fix: Air alarm properly updates status when powered
/:cl:

* [NO GBP] RPD UI tweaks (#75900)

![image](https://github.com/tgstation/tgstation/assets/3625094/6cb8384f-8d95-4821-9a4f-f38c57c1b4bd)


![image](https://github.com/tgstation/tgstation/assets/3625094/f54ad14d-35ae-411f-a197-69378cbee264)

## About The Pull Request

The recent changes were aimed at better UX, yet there were reports about
their flaws.

This PR should address some of the concerns.

The Devices tab was reduced, creating a new tab for Pumps and Valves,
called "Binary" (perfect timing for such tab 🤭) No scrolling required
now.

Also moved options to the left side for less mouse movements and
consistency with RCD and Plumbing RCD.

## Why It's Good For The Game

Better UI according to feedback from the main users - atmos techs.

## Changelog

:cl:
qol: RPD UI: Devices split in two categories, options are aligned to the
left
/:cl:

* Makes elder atmosian statue craftable (#75475)

## About The Pull Request
Fixes tgstation/tgstation#74534 by making
elder atmosian statue craftable. I am not 100% sure if this is the
intended way for it to be able to be made or if it's even the right
amount of materials but if I need to change it please let me know.
## Why It's Good For The Game
Fixing issues is good, having uncraftable things is bad.
## Changelog
:cl:Reality Overseer
fix: makes elder atmosian statue craftable
/:cl:

---------

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>

* Hot Stuff(Igniter's & Sparkers) are buildable. (#75722)

## About The Pull Request

**1. Igniter's**
Those things which you see in atmospheric's incineration chamber &
ordanance lab used to ignite gases, they can now be crafted

![Igniter](https://github.com/tgstation/tgstation/assets/110812394/e59bfffb-2717-4d12-891f-0231f7ba5e7f)

  - **Interactions**
     a) attack with hand to turn it on/off
b) use a multitool to change it's ID(how that's useful? keep reading)
     c) use welding tool to deconstruct it

**2. Sparker's**
No they aren't a new thing, you probably woudn't have noticed them but
it's this thing in xenobiology lab for example, and you use the button
to turn it on
![Screenshot
(235)](https://github.com/tgstation/tgstation/assets/110812394/66009c31-9655-45a5-b9c3-017673cda04c)
They function the same as igniter's(i.e. combust gases) except as the
name implies they emit spark's to get the job done

These can now also be made in the autolathe as a wall mount

![Sparker](https://github.com/tgstation/tgstation/assets/110812394/46392fde-0d27-455a-8a32-087f954a6385)
Yup just stick it on a wall and your done

 - **Interactions**
a) use a multitool to change it's ID(how that's useful? keep reading)
     b) use welding tool to deconstruct it

 To turn this on see the last section

**3. Ignition Switch Controller**
These function just like blast door controller's except they can control
only sparker's & igniter's

Also printable in autolathe

![Controller](https://github.com/tgstation/tgstation/assets/110812394/b378f7f1-3059-4865-8645-0c5a9b5c4011)

 - **How it work's(or a reminder if you already know)**
   a) First use multitool on sparker/igniter to set their ID's
b) Use multitool on this controller to set it's ID to be the same as
your sparker/igniter ID. If the igniter, sparker & this controller all
share the same ID you can use this controller to turn all device's
on/off at once
   c) stick it in a button frame & close
   d) use button

Hot Stuff


https://github.com/tgstation/tgstation/assets/110812394/8b59a71e-8992-428e-a629-5c371b5c0c3d

Ok so really what's the actual difference's between an igniter & sparker
1. Igniter's are built on the floor while sparker's are mounted on
wall's
2. Igniter's have `max_integrity = 300` while sparker's have it s normal
`max_integrity = 100` so yeah igniter's are more durable than sparker's
3. Igniter's keep the turf hot continuously as long as it's on so they
take up power continuously, so their operation cost is high whereas
sparker's emit spark's only once and use power only that one time so
they are cheaper to operate

**Why it's good for the game**
Make your own combustion chamber professionally and not in an improvised
way. Honestly I'm tired of seeing people chuck in lit welding tool's/
Zipo lighter's to ignite the gases and we loose those item's so yeah now
we have the tool's to do it the right way

## Changelog
:cl:
add: Igniter's can be crafted
add: Spraker's can be printed in the autolathe
add: ignition controller can be printed in the autolathe
/:cl:

---------

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>

* Air Sensor are Craftable, Removed from RPD UI, Have New Linking System (#75869)

## About The Pull Request

**1. Craftable & Removed from RPD UI**

1. Air sensor's are now craftable
2. You can turn them on/off with hand. Even though turning off the
sensor will change it to a diffrent type[from `obj/machinery/air_sensor`
-> `obj/item/air_sensor`] it's I/O port's are sill preserved when
turning them on although you have to assign it a new name again which is
usefull if you want to change the sensor's purpose in game.
3. They can now only be deconstructed by a welding tool and should be
wrenched in place to turn them on.
4. Turned off air sensor's once unwrenched can be picked up like any
regular item
5. Air sensor's are removed from the RPD UI because they don't go with
pipes so it logically doesn't make sense to group them with pipe related
device's

Removed unused code in the process



https://github.com/tgstation/tgstation/assets/110812394/3439a0f3-9c48-43ac-8f4b-98135435ec13

**2. New ID System**
The problem with air sensor's is that each sensor is assigned a unique
ID which is then stored in `GLOB.objects_by_id_tag` list. Each sensor
name it's assigned based on the gas it's trying to sense(for naming only
even though it can detect other gases) So if 2 sensor's having the same
ID are made they will overwrite each other in this list leaving one
sensor orphaned in the world which cannot be referenced because it's
value was overwritten by a new sensor having the same ID in this list.

The Solution? Rather than having all atmos computer's look up sensor's
from this 1 global list make each computer keep track of all sensor's
it's responsible for in it's own local list[which i called
`connected_sensor's`] this way 2 sensor's can have randomly generated
names in the global `GLOB.objects_by_id_tag` list but the computer will
know what sensor to look up in this list based on the stored sensor ID's
in the `connected_sensor's` list

Basically what i am getting at is now you can make as many air sensor's
as you wish but you will know have to connect that sensor to the
computer using a multitool.
Notice in the video how i made 2 sensor's called `Supermatter Chamber
Sensor's`] and every time you try to connect an sensor which has the
same name[`Supermatter Chamber Sensor's` in this case] they will
ovewrite the old sensor in it's list as shown in the video



https://github.com/tgstation/tgstation/assets/110812394/b5283c3b-c8a1-4b94-a6a8-8ba7a0007615


**Why it's good for the game**
![Screenshot
(247)](https://github.com/tgstation/tgstation/assets/110812394/6a7eb501-4414-4f01-a6ef-3e9b70f4af06)

I agree. Also air sensor's taking up a full Tab/Section in the RPD UI
wasted a lot of UI space so that's removed now. Also making the air
sensor's wrenchable and pickable item's was also requested in
tgstation/tgstation#72019 (comment)
so you relate them to device's like meter's

Another huge issue was that the number of air sensor's you can make in
the world was limited because each sensor in the world must have a
unique ID but that's finally fixed now so yeah make as many sensor's as
you want.

## Changelog
:cl:
add: air sensor's are craftable
refactor: air sensor's can now be turned off by hand and can only be
deconstructed by a welding tool
refactor: removed `Params()` proc
qol: unwrenched air sensors can be picked up & recycled like regular
item's
del: air sensor are removed from the RPD UI
qol: air sensor's are no longer restricted by their unique ID's which
mean you can craft as many air sensors as you want.
/:cl:

---------

Co-authored-by: Time-Green <timkoster1@hotmail.com>

* RPD mouse wheel layer change checks for actually holding the RPD (#76319)

## About The Pull Request
Fixes mousewheel changing the selected piping layer when the RCD is
in-hands, but not in the active hand.
Also dmdocs, changes some var names, grammar checks some stuff and adds
balloon alerts when installing the wrench upgrade and reprogramming a
pipe.
Removes `activate()` proc that was just a `playsound()`, makes the sound
used for that a define here so it's obvious why's the sound being played

## Why It's Good For The Game
Closes #54844 (it was fixed at some point actually so you couldn't
mousewheel to change layers on an RPD on your belt slot, but the in-hand
inconsistency remained)
Code's a little cleaner
Installing an upgrade's a little more obvious

## Changelog
:cl:
fix: fixed RPD switching layers on mousescroll when not in active hand
qol: installing an RPD wrench upgrade & reprogramming a pipe via RMB
produces a balloon alert
/:cl:

* #76788 comment

* Transit Tube Fix and New Rotator Disposal Pipe (#77843)

## About The Pull Request
Fixes flipped transit tube stations being inaccessible and adds a new
rotator disposal pipe which rotates the incoming atom 90 degrees no
matter which direction the atom comes from.

![promo](https://github.com/tgstation/tgstation/assets/25363960/3cdb75f6-0540-4797-9972-935fae37db58)
## Why It's Good For The Game
Adds new disposal pipe usage for cool projects and fixes a bug.
## Changelog
:cl:
add: New rotator disposal pipe.
fix: Flipped transit tube stations are now accessible in the RPD again.
image: New rotator disposal pipe sprite.
/:cl:

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>

* Allows RPD Upgrade Disks to be installed by hand (#79343)

## About The Pull Request
Closes #79301

Saw this PR, realized how much this annoyed me whenever I played. Not a
hard fix either, since RCD's were a perfect example.
(In the future perhaps items that use upgrades like this could have one
base type of disk, and a component for 'upgrade_disk_tool', but that's
way, WAY out of my experience. Just something I noticed between the RPD
and RCD disks.)


![ApplicationFrameHost_cfnBFrRVWv](https://github.com/tgstation/tgstation/assets/76465278/fbe5784e-ce5d-45b5-a5e5-5dfbfef93fdf)

One on the Left already has the upgrade. Neither try to double-install
it! (Shown for posterity)

Ones on the right are installed both ways. One, the RPD on the Disk. The
other, the Disk on the RPD!

---

Actual PR changes:
- New proc on the RPD called `install_upgrade()` - If the upgrade disk
isn't installed, it installs it onto the RPD and deletes the disk. So,
the same as the RCD one, but fewer checks since the RPD's got a lot
fewer disks. But, easier to add new ones now.
- Since `install_upgrade()` is a thing, the attack chain's code for how
RPD's originally got upgraded is now much shorter. It still functions
the same, though - nothing was removed in this PR!
- Adds an attackby check - if the RPD's attacked by an upgrade disk it
will try to `install_upgrade()`. So basically, what RCD's have.
## Why It's Good For The Game
Consistency between the RPD and RCD upgrade-wise. The RPD's other method
of installing (hitting the disk WITH the RPD) still works, but now
players used to the RCD won't get confused.
## Changelog
:cl:
qol: The RPD now accepts upgrade disks inserted by hand, as well as
their original method of hitting the disk with the RPD
/:cl:

---------

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>

* manual #79792 comment

* Instant Delete Pipes with RPD (#80049)

## About The Pull Request
Lets you instantly delete pipes/atmos devices with the RPD rather than
wait 0.2s
## Why It's Good For The Game
Playing atmos is a pain because of how time consuming it is, 0.2s adds
up. It's especially annoying if a bomb goes off and you have to click on
every single little loose pipe/heatpipe/device and wait to get rid of
them
## Changelog
:cl:
balance: Deleting and reprogramming pipes/devices with RPD is now
INSTANT!
/:cl:

* #80025 comment (holy fuck TG, this is the third time you are changing this disks icon path. yall okay?)

* monkestation fixes

* Epic RPD Update: Multiple Pipe Layers With 1 Click (#80073)

Adds a button to RPD tgui that lets you build multiple pipe layers with
the RPD with 1 click
Saves a lot of time when using multiple layers, especially all 5, and is
very useful for SM setups and other convoluted atmos contraptions

https://github.com/tgstation/tgstation/assets/46101244/04993fee-7b35-483f-8cb1-a8b58ff1246a

🆑
qol: You can now build multiple pipe layers with the RPD, with just 1
click!
/🆑

Co-Authored-By: Ghom <42542238+Ghommie@users.noreply.github.com>

* fixes

* updates tha ruin

* monkestation disposal sprite rework my beloved

* fixes

* force updates the _maps folder to prepare for an update via scripts

* map updates via scripts

* true upstream merge

* runs update paths, just in case

* buh

* fixes the plumbing device

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: 13spacemen <46101244+13spacemen@users.noreply.github.com>
Co-authored-by: Andrew <mt.forspam@gmail.com>
Co-authored-by: RealityOverseer <76832653+RealityOverseer@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: Time-Green <timkoster1@hotmail.com>
Co-authored-by: Sealed101 <cool.bullseye@yandex.ru>
Co-authored-by: Comxy <tijntensen@gmail.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: OrionTheFox <76465278+OrionTheFox@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Quality of Life Increasing esword damage is not a quality of life for traitors Refactor Makes the code harder to read
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants