## About The Pull Request
Updates Biodome to be gooder.
## Why It's Good For The Game
Biodome is one of the more interesting maps thanks to the titular
gimmick, but for one reason or another the playerbase loathes it. I'll
be making changes to Biodome that I think will improve it, as well as
changes to
## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>
<img width="1861" height="1187" alt="17684994760802257449426043441716"
src="https://github.com/user-attachments/assets/0617a32e-bee7-4cbf-a5d9-e9234046bde3"
/>
<img width="1952" height="1483" alt="17684995784481011964462438821388"
src="https://github.com/user-attachments/assets/bf8ee6df-f3a6-4692-bff2-729be806b2b6"
/>
<img width="1610" height="1279" alt="17684995044717250940024567843557"
src="https://github.com/user-attachments/assets/c33d9ba5-f20c-42a4-a985-b0dae3b47e66"
/>
</details>
## Changelog
🆑
map: various changes to Biodome
/🆑
## To-do
- [x] Rework to science
- [x] Divide upper biodome with firelocks so that vacuum cannot spread
- [x] Plasmaglass to turbine
- [x] Compress solars and make them stylistically identical: follow
Boxstation example
- [x] Expand bitrunning; chute to send crates straight to ore storage?
Space heater. Make it look pretty and Gamer in there.
- [x] Remove bitrunning window. (Gamers hate sunlight, and also
voidwalker abductions)
- [x] Make unique cryopods room
- [x] Expand crystallizer room (
https://discord.com/channels/1059199070016655462/1460406585401544867/1461868917285982269
)
- [x] Reorganize service biodome departments: move janitorial to be
built into the wall. Remove bathroom and rad shelter and build them into
a building. Make more space so that the biodome can be more bio.
- [x] Reorganize the bridge: move more stuff to lower floor (meeting
room, HOP office). Make the blueshield office less of a shrek shack.
- [x] Make the cargo waiting area bigger and friendlier to passerby.
- [x] Expand blacksmith's workshop. Right now it's more like maints...
- [x] Transport tube rebuild; make them less winding and more practical
to get to square hallways around station
- [x] Add more space windows for void walkers
- [x] Wire APC research lab into the grid
- [x] Warden's office windoors
- [x] Wires/atmospipes south of sec to connect in
- [x] Sec firing range and maints door near it need access change proper
- [x] Look at courtrooms access
- [x] Remove metal foam floors from maints above engi
- [x] APC in R&D front office wire to grid
- [x] APC in sec C-hallway wire to grid
- [x] Correct airlocks direction near vacant office
- [x] Vacant office mislabelled maints door
- [x] SM cooling loop unconnected in plasma windows
- [x] Fix dispopipes and atmospipes in wrestling arena
- [x] Biodome lake tiles need planet atmos removed
- [x] Doors in science need acess tweaks
- [x] L-shaped genpop area
- [x] Fix elevator engineering side to be OSHA compliant
- [ ] Beer tap fix
- [x] Sec locker room needs lights
- [x] Wall-mounted extinguisher is on the table near arrivals secpoint
- [ ] Check maints for holes
- [x] Remove duplicated button in sec mechbay
- [x] Fix access to the law office backdoor
- [x] Change the west minibridge
- [x] Check on the courthouse backroom access
- [x] Replace the metal foam over the engineering areas
- [x] The new sauna in the unisex restrooms has no APC and therefore has
infinite power.
- [x] The old dorm in maints (with neon carpet) has an non-functional
bolting button. (Possibly intentional.)
- [x] Robotics mechbay shutters have no access, for the inside buttons;
hallway button does. (Possibly intentional.)
- [x] Captains Quarters area extenders outside of the area. (Image
attached below.)
- [x] Science external solars are disconnected from maintenance and the
walls do not attach properly (Image attached below.)
- [ ] Gather more criticism of Biodome flaws
- [ ] Testing
## About The Pull Request
That's all.
The sprites clearly have a pedestal which is attached to the floor. They
shouldn't behave as if they are free floating wash basins.
<details><summary>example: a barber shop</summary>
<img width="614" height="818" alt="StrongDMM_ahHbCymkjR"
src="https://github.com/user-attachments/assets/aeee4090-e209-4ad7-8d1d-fef9dcbb36e2"
/>
</details>
Also runs the UpdatePaths script so it can collapse some duplicate tiles
which have been annoying me with diffs each time it's run.
## Why It's Good For The Game
More mapping flexibility for bathrooms and medical spaces.
## Changelog
🆑
code: sinks can be mounted to floors
/🆑
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
## About The Pull Request
This PR sort-of brings back old IEDs, albeit much more freeform compared
to their previous iteration. Using #94861's ``spark_act`` interactions
they can now be made by filling up a soda can with a variety of
chemicals (welding fuel being the easiest to obtain), dunking in a piece
of wire, taping it up (optional, required if using welding fuel or
plasma) and lighting it on fire with a lighter or welding tool (anything
that's hot enough works, really)
They have a random delay of 2-4 seconds, and can be disarmed by snipping
the fuse with wirecutters in time before they detonate (or don't,
depending on the mixture)
There's also a new, more "professional" improvised chemical explosive in
the form of beakerbombs. These can be assembled by putting a lid on a
beaker (alt-click, prevents the beaker from spilling its contents when
thrown) and attaching an assembly with an igniter or a condenser to it.
<img width="150" height="90" alt="dreamseeker_2OKpZeN7ay"
src="https://github.com/user-attachments/assets/599e75ea-9653-4db9-a915-b2ca6307635f"
/>
When triggered, igniters will heat the reagents up by a bit while
condensers will cool them down. However, you can also attach and wire up
a power cell, which will cause it to dump all of its power into the
beaker when the igniter fires off, triggering ``spark_act`` interactions
potentially causing a larger explosion.
<img width="534" height="447" alt="dreamseeker_k9Uzf18Eoa"
src="https://github.com/user-attachments/assets/4cfed5b4-3875-4522-9bfa-5f6a3c8e0864"
/>
Decently sized boom from The Contraption.
Plasma and welding fuel's potency inside of beakerbombs/soda cans is
significantly reduced compared to other riggable objects (strengthdiv is
3 times higher) as they're very easy to obtain and would make for very
powerful explosives, considering their very strong strengthdiv as most
rigging interactions use very little fuel/plasma to cause a large
explosion, which was carried over to the new system. (Don't worry, this
still leaves them at sensible values with welding fuel being about as
strong as old IEDs on average)
Closes#94990 via having plasma's electrical power modifier have a
decline past a certain point based on its volume
## Why It's Good For The Game
#81529 didn't justify IED removal whatsoever and I think with new
mechanics these can be used as easier (but weaker) to make improvised
bombs, being much less clunky to make and use than pipebombs.
Beakerbombs are essentially a somewhat weaker (even with metamat
beakers, you're still 20u short of a normal large beaker grenade at
200u) form of grenades, but have access to new interactions involving
charged up explosions, which could make for some variety among chemists'
weaponry.
## Changelog
🆑
add: Added back IEDs made by attaching some wire and tape to a soda can
filled with fuel, plasma, or any other explosive of your choice. They
need to be lit on fire with a lighter or a welding tool.
add: You can now attach a lid to beakers with alt-click, preventing them
from being spilled when thrown.
add: Added beakerbombs, made by attaching an assembly (with optional
power cell and wiring) to a lidded beaker.
balance: Rigged explosions now create flames.
balance: Plasma explosions now limit their explosion potency past a
certain point based on their volume
/🆑
## About The Pull Request
Instead of being snowflake interactions on objects themselves, rigging
things with plasma or welding fuel is now handled on reagents' side via
``on_spark_act``, allowing each reagent to decide how they want to
handle exposure to electric currents or violent heating.
- Obviously plasma and welding fuel cause explosions, but former gains
additional power from electric current being passed through it (same
math as powercells), while latter doesn't explode unless in an enclosed
space, or a high enough current/temperature has been reached, and merely
creates a hotspot instead.
- Napalm and phlogiston create hotspots, or (try to) damage the holder
if they're enclosed
- Sorium, liquid dark matter, TATP, nitroglycerin and flash/smoke/sonic
powders trigger their usual detonation effects, albeit slightly weaker.
- Teslium creates a ZAP, with additional power for a BIG ZAP if it has
been triggered by electric current.
- RDX becomes spicier with temperature and current, similarly to how it
becomes more dangerous when mixed with LE or teslium.
- Gunpowder produces a delayed explosion effect (unless its hot or the
current is high enough, in which case its instant) and causes sparks as
the message claims it does (normal gunpowder explosions also do that)
Plasma and gunpowder rigged items can now be controlled using
stabilizing agent - in its presence, plasma will not explode unless the
used charge is higher than 0.2% of a standard cell's per unit of agent,
while gunpowder will instead spend 0.1 + (charge / 10% of a standard
cell's charge) units of agent to delay its detonation.
Smoke (powder) now produces a visible message and slightly damages lungs
of whoever it reacted inside of, if the container was a mob.
The numbers on plasma/welding fuel rigs should be ***roughly*** the
same. Also lighters can now be rigged in a fashion similar to welding
tools.
Also it turns out we broke light rigging at some point, so now it works
again.
## Why It's Good For The Game
This makes the system much more flexible and allows players to make more
creative IEDs, expanding upon the sandbox aspect of the game. Also I
have an upcoming project bringing IEDs (kind of, in a new form) back,
which is why I wrote this in the first place (but decided to atomize the
PRs).
As for smoke damage, it feels weird to not have any tells when someone
suddenly starts hacking up volumetric amounts of smoke, it makes sense
that they'd struggle a bit after coughing a few dozen cubic meters of
thick vape clouds.
## Changelog
🆑
add: Multiple new reagents such as napalm, sorium, TATP,
smoke/sonic/flash powders and other explosives can now be used to rig
cells or tools.
add: Plasma and gunpowder rigged items can now have controlled current
requirement/delay by adding some stabilizing agent alongside the main
reagent.
balance: Creating chemical smoke inside of a mob now makes them
violently cough it up, damaging their lungs a bit.
fix: Chemically-rigged lightbulbs now once again explode.
refactor: Refactored how power cells, welding tools, lightbulbs,
cigarettes (and now, lighters) handle being rigged with chemicals.
/🆑
## About The Pull Request
Fixes https://github.com/tgstation/tgstation/issues/94909 so that lights
don't stay processing when the cell is empty.
## Why It's Good For The Game
Fixes bug, broken lights are removed from the machines processing queue.
## Changelog
🆑 LT3
fix: Fixed lights being able to run on emergency power forever
/🆑
## About The Pull Request
- Fixes#94119
> This will require a different solution which someone smarter than me
has to figure out in the foreseeable future
Today me is now smarter than yesterday me. We basically just unmount
when the object is about to shuttle moved and remount after it has been
shuttle moved
This also map edits some objects that could not be mounted in shuttles
previously
## Changelog
🆑
fix: objects mounted in shuttle areas deconstruct when their support
structure is destroyed
fix: fixes runtime in arrivals shuttle when its request console is
destroyed
map: moved around some objects in shuttles so they can be mounted on its
walls again
/🆑
## About The Pull Request
Inspired by #94233. `grind_results`(list) & `juice_typepath`(typepath)
are only used when grinding & juicing after which the atom is deleted.
This means if that object is not processed these vars occupy memory &
don't do anything.
Now these values are only generated on demand by calling their
respective procs. Considering how these vars are on the obj level the
memory savings are quite significant
## Changelog
🆑
refactor: grinding & juicing have been refactored to occupy low memory.
Report bugs on github
code: improved grinding & juicing code
/🆑
## About The Pull Request
- Fixes#94497. Adds atom mount component directly but only for non
shuttle areas
- Hand placed posters are pixel shifted onto the wall and not directly
force moved allowing for stuff like acid/fire to interact with them
- Hand placing posters & signs apply the atom mounted component directly
without calling `find_and_mount_on_atom()`
## Changelog
🆑
code: improves code for placing posters and signs on walls
fix: hand placed posters now interact with fire/acid on their mounted
turf
fix: wallframes in player hands gets consumed when mounted in shuttle
areas
/🆑
## About The Pull Request
Depends on #94064 for the unit test but offers a better method for
finding an atom to mount on
- Finding a mount now takes into consideration the objects pixel x & y
offsets meaning diagonal mounting is now supported. Gives great
flexibility for mappers
- If you don't want to use pixel offsets but default back to using the
objects direction that behaviour is still preserved. Useful if your
object uses directional icon states(lights & cameras for now) AND don't
use offsets
- If no direction could be specified then as the last resort it defaults
back to the objects local turf for mounting
## Changelog
🆑
fix: all mounted objects on tables, fences, windows & walls should fall
of correctly when the atom it is placed on is destroyed
fix: security telescreen now falls off when their mounted wall is
destroyed
fix: defib wall mount falls off when their mounted wall is destroyed
fix: floor lights are mounted to the ground/catwalk/tram floor they are
sitting on meaning destroying it will destroy the light
fix: wall mounted plaques now fall off when their mounted wall is
destroyed
/🆑
## About The Pull Request
Depends on #94064 for the unit test but offers a better method for
finding an atom to mount on
- Finding a mount now takes into consideration the objects pixel x & y
offsets meaning diagonal mounting is now supported. Gives great
flexibility for mappers
- If you don't want to use pixel offsets but default back to using the
objects direction that behaviour is still preserved. Useful if your
object uses directional icon states(lights & cameras for now) AND don't
use offsets
- If no direction could be specified then as the last resort it defaults
back to the objects local turf for mounting
## Changelog
🆑
fix: all mounted objects on tables, fences, windows & walls should fall
of correctly when the atom it is placed on is destroyed
fix: security telescreen now falls off when their mounted wall is
destroyed
fix: defib wall mount falls off when their mounted wall is destroyed
fix: floor lights are mounted to the ground/catwalk/tram floor they are
sitting on meaning destroying it will destroy the light
fix: wall mounted plaques now fall off when their mounted wall is
destroyed
/🆑
## About The Pull Request
This adds some mapping directional helpers for the new burned subtypes
of lights that makes it consistent with other lights.
## Why It's Good For The Game
Consistency and better mapping.
## Changelog
🆑
qol: Add direction helpers for burned subtypes of lights
/🆑
## About The Pull Request
This 1st has to be PR'd so the integration tests can point out all
wallmounts that could not find a support structure to mount on. I then
will do many map edits to align them onto the closest atom
Yes we no longer use wall mount but atom mounted component. All objects
that are mounted on windows/tables & fences now also fall off when
destroyed
It'll probably be a WHILE before I can fix all wall mounts. Long day.
Expect me to misalign many stuff to fix failing CI so make sure to
provide suggestions when possible
Improved wallmount code overall
- Fixes#93793
## Changelog
🆑
fix: fixes all incorrectly maploded wall mounts that aren't actually
hanging on any support structure
fix: objects mounted on tables, windows & fences also fall off now when
destoryed
qol: lights can be mounted on windows
qol: cameras can be mounted on windows
qol: buttons can be mounted on tables
refactor: improved how wall mounts interact with objects as a whole
report bugs on github
/🆑
## About The Pull Request
Features:
- Floor lights can be constructed using a small light fixture on the
turf you are standing on
- Floor light construction sprites
- `/burned` subtypes for lights
- Convert `/build` subtypes to `/empty` subtypes with `UpdatePaths`
script
## Why It's Good For The Game
Floor lights can now be constructed in game using the same mechanics as
other lights. The `/burned` and `/empty` subtypes might be useful for
mapping.
## Changelog
🆑
add: Add constructable floor lights by using a small light fixture on
the floor. They are constructed the same way as other lights.
qol: Add `/burned` subtype to `/obj/machinery/light` for mapping
shenanigans
image: Add floor light construction sprites
map: Converted the `/built` subtype for `/obj/machinery/light` to be
`/empty` and added an UpdatePaths script.
/🆑
---------
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
## About The Pull Request
- Fixes#93392
- Replaces all custom callbacks with call to `deconstruct()`. The
callbacks weren't necessary as it did the same thing as `deconstruct()`
but in an round about way
- Removed duplicate `Initialize()` procs and the params `building` &
`ndir` from all wall mounts. Makes everything cleaner
## Changelog
🆑
fix: wall mounts placed by player now falls off when the wall they are
mounted on is destroyed
code: cleaned up wall mount code
/🆑
## About The Pull Request
You previously couldn't actually hit an empty light fixture with
anything, because you'd just stick it in the socket. This lets you hit
it with things on combat mode
## Why It's Good For The Game
Things should be breakable, especially if they're made of juicy wires
and metal
## Changelog
🆑
qol: allows hitting empty light fixtures on combat mode
/🆑
## About The Pull Request
Removes Skyrat's convoluted system of delaying lights based on mapload
status, instant flags, etc. Perhaps it was useful years ago, but TG
lighting code is now fine and the wheel doesn't need to be poorly
reinvented.
## Why It's Good For The Game
It's cool that the station lights flicker when things explode, but it
makes me irrationally mad that this useless additional lighting code
adds delay, making the effect show up well after the bomb goes off.
## Changelog
🆑 LT3
code: Removed some Skyrat lighting delay code
/🆑
---------
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
## About The Pull Request
Fixes#92558
Currently `attacked_by` does not differentiate an attack that did 0
damage with an attack that failed (due to blocking or whatnot)
See also: This hack I left in
https://github.com/tgstation/tgstation/blob/ce958c77c006a5fe279fb46fed513206e341cfce/code/_onclick/item_attack.dm#L346-L347
This causes problems because successful attacks can deal 0 damage. See
linked issue.
This PR addresses the issue by having `attacked_by` return `-1`
(`ATTACK_FAILED`) for attacks which entirely do not connect.
-1 was used so consumers can easily check if an attack did 0 damage OR
failed (via checking `<= 0`)
This isn't the preferred fix - I'd prefer if all block checking and zone
targeting was moved to `/item/proc/attack`, but that requires attack
itself be reigned in a bit (cuz it's still a bit of a mess).
## Changelog
🆑 Melbert
fix: Item on-attack effects will trigger as expected when hitting a limb
at damage cap
/🆑
## About The Pull Request
Light flickering was forcing itself into async via waitfor but used
sleeps and thus had zero respect for MC consumption. We fix the lag by
- A) making it use stoplag instead of sleep and moving CHECK_TICK to be
per-light instead of per-APC
- B) reducing chance of lights to flicker in a particular room (reducing
the amount of flickers looks weird)
- C) reducing falloff distance to 32 from 64, as latter is half to third
the station on most maps.
# Conflicts:
# code/modules/power/lighting/light.dm
## About The Pull Request
Fixes#92558
Currently `attacked_by` does not differentiate an attack that did 0
damage with an attack that failed (due to blocking or whatnot)
See also: This hack I left in
https://github.com/tgstation/tgstation/blob/ce958c77c006a5fe279fb46fed513206e341cfce/code/_onclick/item_attack.dm#L346-L347
This causes problems because successful attacks can deal 0 damage. See
linked issue.
This PR addresses the issue by having `attacked_by` return `-1`
(`ATTACK_FAILED`) for attacks which entirely do not connect.
-1 was used so consumers can easily check if an attack did 0 damage OR
failed (via checking `<= 0`)
This isn't the preferred fix - I'd prefer if all block checking and zone
targeting was moved to `/item/proc/attack`, but that requires attack
itself be reigned in a bit (cuz it's still a bit of a mess).
## Changelog
🆑 Melbert
fix: Item on-attack effects will trigger as expected when hitting a limb
at damage cap
/🆑
## About The Pull Request
Light flickering was forcing itself into async via waitfor but used
sleeps and thus had zero respect for MC consumption. We fix the lag by
- A) making it use stoplag instead of sleep and moving CHECK_TICK to be
per-light instead of per-APC
- B) reducing chance of lights to flicker in a particular room (reducing
the amount of flickers looks weird)
- C) reducing falloff distance to 32 from 64, as latter is half to third
the station on most maps.
This PR aims to clean or bring up to date portions of code about dna,
the dna console and mutations. This includes taking care of or removing
some of the awful choices like the pratically useless
`datum/mutation/human` pathing, or the class variable, in favor of using
sources to avoid potential issues with extraneous sources of a mutation.
The files changed are over a hundred just because I removed the
`datum/mutation/human` path, but the actual bulk of the code is mainly
shared between the datum/dna.dm, _mutations.dm and dna_console.dm.
Mutation shitcode is hurting my future plans for infusions a little.
Also it's a much needed refactor. Drafted 'till I'm sure it works
without issues.
🆑
refactor: Refactored mutation code backend. Report any issue.
/🆑
## About The Pull Request
This PR aims to clean or bring up to date portions of code about dna,
the dna console and mutations. This includes taking care of or removing
some of the awful choices like the pratically useless
`datum/mutation/human` pathing, or the class variable, in favor of using
sources to avoid potential issues with extraneous sources of a mutation.
The files changed are over a hundred just because I removed the
`datum/mutation/human` path, but the actual bulk of the code is mainly
shared between the datum/dna.dm, _mutations.dm and dna_console.dm.
## Why It's Good For The Game
Mutation shitcode is hurting my future plans for infusions a little.
Also it's a much needed refactor. Drafted 'till I'm sure it works
without issues.
## Changelog
🆑
refactor: Refactored mutation code backend. Report any issue.
/🆑
## About The Pull Request
This has the potential to create a lot of needless mob updates which is
not great. Now should only update a mob's clothing if it was actually
washed.
This PR
1) ensures that all wash() procs return a bitflag.
2) ensures that `wash()` proccalls which result in expensive operations
like icon updates only do so when it is necessary
## Why It's Good For The Game
Updating mob sprites is expensive, and doing it when nothing has been
changed is bad.
## Changelog
Nothing really player facing
## About The Pull Request
This has the potential to create a lot of needless mob updates which is
not great. Now should only update a mob's clothing if it was actually
washed.
This PR
1) ensures that all wash() procs return a bitflag.
2) ensures that `wash()` proccalls which result in expensive operations
like icon updates only do so when it is necessary
## Why It's Good For The Game
Updating mob sprites is expensive, and doing it when nothing has been
changed is bad.
## Changelog
Nothing really player facing
This is part of my ongoing project to remove the Stat panel which you
can read/contribute to here: https://hackmd.io/443_dE5lRWeEAp9bjGcKYw
Replaces the pAI button at the bottom of Ghost's HUD with a new button
for Ghost settings
Default look

With fun verbs (admin only, the 2 buttons at the top right), No body,
and lag switches on (disables T-Ray and Zooming)

The ghost icon next to "re-enter body" is the DNR button, which requires
double click.
Extra view is now easier to understand, 0 is "default", anything more is
extra vision you get. Goes to 3 for regular users, 7 for BYOND members.
Removes the "Ghost" tab from the stat panel entirely, this replaces it.
The Ghost tab of the stat panel is filled with barely functional stuff,
like "Jump to Mob" which allows you to jump to "oranges ear" which
teleports you to nullspace, or the 4 different jump to verbs for
different things which is irrelevant from the Orbit menu and the many
improvements it got over the years, and even the Notifications panel,
which seems pretty useful, but because it's delegated to a small button
filled with the rest of these it gets entirely drowned out.
This puts all the important things in front of the user at the click of
a button, meant to be easy to navigate and giving important information
first.
🆑
add: Added a 'Ghost settings' button, taking the spot of the pAI
candidate button and replacing the "Ghost" tab of the Stat panel. This
button contains buttons pertinent to your time as an Observer.
/🆑
## About The Pull Request
This is part of my ongoing project to remove the Stat panel which you
can read/contribute to here: https://hackmd.io/443_dE5lRWeEAp9bjGcKYw
Replaces the pAI button at the bottom of Ghost's HUD with a new button
for Ghost settings
Default look

With fun verbs (admin only, the 2 buttons at the top right), No body,
and lag switches on (disables T-Ray and Zooming)

The ghost icon next to "re-enter body" is the DNR button, which requires
double click.
Extra view is now easier to understand, 0 is "default", anything more is
extra vision you get. Goes to 3 for regular users, 7 for BYOND members.
Removes the "Ghost" tab from the stat panel entirely, this replaces it.
## Why It's Good For The Game
The Ghost tab of the stat panel is filled with barely functional stuff,
like "Jump to Mob" which allows you to jump to "oranges ear" which
teleports you to nullspace, or the 4 different jump to verbs for
different things which is irrelevant from the Orbit menu and the many
improvements it got over the years, and even the Notifications panel,
which seems pretty useful, but because it's delegated to a small button
filled with the rest of these it gets entirely drowned out.
This puts all the important things in front of the user at the click of
a button, meant to be easy to navigate and giving important information
first.
## Changelog
🆑
add: Added a 'Ghost settings' button, taking the spot of the pAI
candidate button and replacing the "Ghost" tab of the Stat panel. This
button contains buttons pertinent to your time as an Observer.
/🆑
Melee attack chain now has a list passed along with it,
`attack_modifiers`, which you can stick force modifiers to change the
resulting attack
This is basically a soft implementation of damage packets until a more
definitive pr, but one that only applies to item attack chain, and not
unarmed attacks.
This change was done to facilitate a baton refactor - batons no longer
hack together their own attack chain, and are now integrated straight
into the real attack chain. This refactor itself was done because batons
don't send any attack signals, which has been annoying in the past (for
swing combat).
🆑 Melbert
refactor: Batons have been refactored again. Baton stuns now properly
count as an attack, when before it was a nothing. Report any oddities,
particularly in regards to harmbatonning vs normal batonning.
refactor: The method of adjusting item damage mid-attack has been
refactored - some affected items include the Nullblade and knives.
Report any strange happenings with damage numbers.
refactor: A few objects have been moved to the new interaction chain -
records consoles, mawed crucible, alien weeds and space vines, hedges,
restaurant portals, and some mobs - to name a few.
fix: Spears only deal bonus damage against secure lockers, not all
closet types (including crates)
/🆑
## About The Pull Request
Melee attack chain now has a list passed along with it,
`attack_modifiers`, which you can stick force modifiers to change the
resulting attack
This is basically a soft implementation of damage packets until a more
definitive pr, but one that only applies to item attack chain, and not
unarmed attacks.
This change was done to facilitate a baton refactor - batons no longer
hack together their own attack chain, and are now integrated straight
into the real attack chain. This refactor itself was done because batons
don't send any attack signals, which has been annoying in the past (for
swing combat).
## Changelog
🆑 Melbert
refactor: Batons have been refactored again. Baton stuns now properly
count as an attack, when before it was a nothing. Report any oddities,
particularly in regards to harmbatonning vs normal batonning.
refactor: The method of adjusting item damage mid-attack has been
refactored - some affected items include the Nullblade and knives.
Report any strange happenings with damage numbers.
refactor: A few objects have been moved to the new interaction chain -
records consoles, mawed crucible, alien weeds and space vines, hedges,
restaurant portals, and some mobs - to name a few.
fix: Spears only deal bonus damage against secure lockers, not all
closet types (including crates)
/🆑
People can now pet held mothroaches and pugs if they want to, or use
items on them, hopefully without causing many issues. After all, it only
took about a couple dozen lines of code to make...
...Oh, did the 527 files changed or the 850~ lines added/removed perhaps
catch your eye? Made you wonder if I accidentally pushed the wrong
branch? or skewed something up big time? Well, nuh uh. I just happen to
be fed up with the melee attack chain still using stringized params
instead of an array/list. It was frankly revolting to see how I'd have
had to otherwise call `list2params` for what I'm trying to accomplish
here, and make this PR another tessera to the immense stupidity of our
attack chain procs calling `params2list` over and over and over instead
of just using that one call instance from `ClickOn` as an argument. It's
2025, honey, wake up!
I also tried to replace some of those single letter vars/args but there
are just way too many of them.
Improving old code. And I want to be able to pet mobroaches while
holding them too.
🆑
qol: You can now interact with held mobs in more ways beside wearing
them.
/🆑
## About The Pull Request
People can now pet held mothroaches and pugs if they want to, or use
items on them, hopefully without causing many issues. After all, it only
took about a couple dozen lines of code to make...
...Oh, did the 527 files changed or the 850~ lines added/removed perhaps
catch your eye? Made you wonder if I accidentally pushed the wrong
branch? or skewed something up big time? Well, nuh uh. I just happen to
be fed up with the melee attack chain still using stringized params
instead of an array/list. It was frankly revolting to see how I'd have
had to otherwise call `list2params` for what I'm trying to accomplish
here, and make this PR another tessera to the immense stupidity of our
attack chain procs calling `params2list` over and over and over instead
of just using that one call instance from `ClickOn` as an argument. It's
2025, honey, wake up!
I also tried to replace some of those single letter vars/args but there
are just way too many of them.
## Why It's Good For The Game
Improving old code. And I want to be able to pet mobroaches while
holding them too.
## Changelog
🆑
qol: You can now interact with held mobs in more ways beside wearing
them.
/🆑
## About The Pull Request
Duh, should be using a different red color. Also probably shouldn't get
overriden by nightshifts, even though they can't normally be activated
during delta alerts (but can be toggled manually on APCs)
## Changelog
🆑
fix: Fixed emergency mode lighting using incorrect light color
/🆑
## About The Pull Request
Vents/scrubbers look a bit weird as their pipes still go above
catwalks/glass floors but I need my stuff from #89702 and it should be
atomized from this PR.
Closes#87022Closes#88823
## Changelog
🆑
fix: Fixed spiderwebs, alien weeds, kudzu, and other stuff layering
below catwalks and glass floors
/🆑