## About The Pull Request
This is me picking up #93077 but with code changes relative to the two
new flags that Krysonism added in his PR, which unfortunately he never
finished.
## Why It's Good For The Game
Monkeys should be able to ventcrawl even if their left or right arm is
actually a chainsaw or armblade or whatever. See #93077
## Changelog
🆑 Krysonism
balance: prosthetic item limbs are no longer considered equipped items
for some purposes such as ventcrawling.
/🆑
---------
Co-authored-by: Krysonism <robustness13@hotmail.com>
## About The Pull Request
changelog should say pretty much enough, dont want to double it here.
## Why It's Good For The Game
as paramedic later into the game you'll prefer jaws of life over jaws of
recovery because theyre both silent AND have no area restrictions, but
heres the thing: you cant wear it in suit storage, nor it can act as
bonesetter additionally (why would paramed need wirecutter?) this PR is
aimed to combie both of those jaws into one modified, that would be
useful for paramedic.
also you really should be able to wear them in mod suit storage, trust
me, it sucks to carry paramedic jacket/coat in inventory everytime and
waste time on swapping
## Changelog
🆑
qol: Jaws of Recovery can be worn on medical MODSuit suit storage now.
add: Added modified Jaws of Recovery and recipe for them. Made from
regular Jaws of Life they act like one, without area restrictions and
radio announcements.
/🆑
## About The Pull Request
Ore bags try to insert the stack without actually checking if it can
merge with anything, meaning that ores can take up limited slots which
may end up with 7 single-ore stacks preventing any more ore from
entering the bag, despite there being ample space for 49 more ore of
each type. Now bags will actually try to merge picked up ore into
themselves first, ensuring that this doesn't occur, and that the bag
will always be topped up (This needed additional logic to ensure that
stacks don't merge beyond the size that the storage they're in can
handle)
Additionally, I've changed how stacks merge when dragged (instead of
merging themselves into the target, target is merged into themselves)
and prevent dragging from changing focus to stack that is being merged
into if the merging stack isn't empty, fixing the "pull churn" issue
that locks out player inputs if you try to pry and drag floor tiles due
to constantly swapping the pull target after every tile pried, plus I've
removed that weird ore box `insertion` animation (which I recon is an
oversight) and ore bags sucking up the ores you drop from your hand
because you're probably doing so intentionally
## Changelog
🆑
fix: Fixed ore bags being able to reject any ores despite having ample
space
fix: Pulling a stack behind you and getting it topped up by lying items
will no longer spam pulls and lock out your inputs
fix: Picking up ores into an ore box via an ore bag will no longer play
a jank animation
qol: Ore bags and MODule ore bags no longer pick up ores you've dropped
from your hand until you walk over them again
/🆑
## About The Pull Request
The visors on MODsuits using the Syndicate welding visor (now renamed
the "flash-protected optical suite") now toggle their armor booster
overlay depending on whether the user has combat mode on or off.
## Why It's Good For The Game
Style. Listen, man, I just thought it'd be a shame if the cool visor
sprites never got used again.
https://github.com/user-attachments/assets/d5103168-7a1e-4405-adb3-53420c8601d7
## Changelog
🆑
add: The visors on MODsuits that used to have armor boosters now visibly
toggle based on whether the wearer is in combat mode or not.
/🆑
---------
Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
## About The Pull Request
Projectile refactor pulled armor check above the pre-hit comsig, this
fixes that. No need to check armor before you're hit when you
potentially will not be.
## Changelog
🆑
fix: Sleeping Carp and Cain & Abel no longer tell you about armor
penetration when you reflect projectiles with them
/🆑
## About The Pull Request
Fixes#93359
Caused by #93165
Inventory screen elements were no longer considered reachable, which
broke mousedrop handing on objects that check "is dragging into
inventory slot"
I don't know the best way to fix this yet but I figured the next best
thing would be to make all of these use the `drag_pickup` element, which
skips this reach-ability check
Thus I refactored it slightly to accommodate for items which should
contextually not be drag-pick-up-abble and bam, works like a charm
## Changelog
🆑 Melbert
fix: Dragging defibs and modsuits off your back works again
/🆑
---------
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: Xander3359 <66163761+Xander3359@users.noreply.github.com>
## About The Pull Request
ports https://github.com/DaedalusDock/daedalusdock/pull/1144
ports https://github.com/DaedalusDock/daedalusdock/pull/1147
full credit to @Kapu1178 for the juice
instead of `reacher.CanReach(target)` we now do
`target.CanBeReachedBy(reacher)`, this allows us to give special
behavior to atoms which we want to reach, which is exactly what I need
for a feature I'm working on.
## Why It's Good For The Game
allows us to be more flexible with reachability
## Changelog
🆑
refactor: refactored how reaching items works, report any oddities with
being unable to reach something you should be able to!
/🆑
## About The Pull Request
Currently plasma flower MOD cores spawn grass trails on the tile you
step on, but the proc itself is actually called before the mob ends up
visually moving to the said tile, which makes the effect look rather
weird. I swapped it to spawn trails on the user's previous tile, which
makes it look a bit better.
## Why It's Good For The Game
Looks better
## Changelog
🆑
fix: Plasma flower MOD core grass trails no longer appear in front of
the user rather than behind them
/🆑
## About The Pull Request
Revives #93078, but instead of using connect_loc_behalf the bag tracks
the locations itself. Also applies to the ore bag MODule, and refactors
the recycler MODule to track locations manually rather than keeping
track of a connect_loc_behalf component.
Also ore bag MODule no longer spams sounds when you pick up multiple
ores from the same tile, and only plays the rustling once per move.
## Why It's Good For The Game
Tracking components isn't the best practice, and its something that we
try to avoid. See the original PR for details and reasoning for the ore
scooping changes.
## About The Pull Request
Apparently wall construction code is snowflaked and indented as fuck
(and the same goes for door assemblies). I'm not bothering refactoring
everything with them, only to reduce the indentation, changing a couple
vars and overall making it easier to work with them later. This includes
wall construction not being hardcoded to sheets but include the
possibility to use other kind of stacks as well (if you don't count the
snowflake interaction with iron rods). In layman's terms, this means you
can make walls made out of sand (distinct from sandstone) again.
Also I've done some small changes to the materials storage, so that it
can eject ores too if the material doesn't have a sheet type.
Also, I've been told there may be issues with broken, uninteractable
(probably not properly initialized) glass sheets beside the ORM. I'm not
100% sure about the deets, but it may have something to do with spawning
the glass on the same turf the ORM is listening to, when smelting sand,
causing some race conditions, so let's spawn it in nullspace
## Why It's Good For The Game
While I'm sure there may be more elegant solutions (just take a look at
the wall and door construction code, they both use text2path oh god!),
I'm just here to make things a lil' cleaner and be done with issues with
the fact that sand is made of sand.
## Changelog
🆑
fix: You can once again make sand walls.
fix: Deconstructing an autolathe with sand in it should now drop sand.
/🆑
## About The Pull Request
exactly what it says on the tin (readds the MOD clamp to the mining
MOD's pins)
## Why It's Good For The Game
originally it was removed but then readded last minute but smartkar
forgot to put it back in the suit's default pins. if it's part of the
default kit it should probably have a dedicated button
## Changelog
🆑
fix: Nanotrasen has released a firmware patch for their mining MODs that
readds the default hydraulic clamp to the suit's default pinned modules.
/🆑
Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
## About The Pull Request
Slightly reworks the mining MODsuit to be more distinct from other
mining gear and have its own designated role as an exploration and
mining tool.
- Base armor (when covered in ash) has been reduced to 50 from 60, being
equal to that of an explorer suit with two goliath plates attached.
However, entering the sphere mode will grant additional 20 armor,
bumping it up to 70 (equal to that of a H.E.C.K. suit)
- Integrated drill no longer mines instantly by default, instead having
a delay of 0.25 seconds. However, when entering the sphere mode, the
drill will overcharge and get back its instamine, as well as get halved
power consumption. Currently, those two are mutually exclusive, and the
drill cannot be used in the sphere mode.
- Mining bomb cooldown has been reduced to 1s from 1.25s. They also now
detonate much faster, and the detonation time matches their animation.
The digging radius has been reduced back to 3x3 from 5x5, and their
damage has been reduced to 28 from 48 to compensate increase in firing
speed and reduced detonation delay making them much easier to use
(functional DPS has been reduced from 36 to 28)
- Rewrote ore bag a bit to try and make sure it doesn't break when
depositing ores into the ORM. I only have faint suspicions of this being
possibly being caused by ore getting deleted and leaving a null in the
list, so removing it should hopefully? stop the bag from breaking.
- The 0.25 slowdown is back, but it should be less of a problem
considering that the sphere mode now is a much more viable traversal
tool and not an utter joke aside from lava traversal.
- The MODsuit now comes pre-equipped with a magnetic harness, which is
now capable of stowing kinetic crushers in addition to guns. This should
make using the sphere mode less of a pain in the ass, as you won't drop
your weapon whenever you enter the sphere mode before you remember to
put it in your suit storage slot. The delay on harnesses has also been
reduced to 0.5 seconds, which should make them more comfortable to use,
while still allowing someone to grab your gun if you're not careful.
- The sphere mode can no longer traverse lava roundstart, instead
requiring to be upgraded with two pieces of bileworm skin to get
lava-resistant plating. This is meant to work together with #92877,
being a part of ongoing effort to bring mining back in terms of speed
and action level, reducing mining and exploration speeds in favor of
higher ore spawns and more focus on gear and equipment progression.
<img width="92" height="98" alt="image"
src="https://github.com/user-attachments/assets/740ab28d-210d-4832-ba07-00dbd8680491"
/>
Additionally, both the mining drill and green raptor bumpmining has been
nerfed (technically fixed, practically nerfed) by removing the diagonal
movement... thing which allowed you to mine thrice as quickly and ignore
the one-tick movement delay due to how diagonal movement works.
https://github.com/user-attachments/assets/711e895f-e7e7-4cd9-b484-d7d11ff597af
Its still fast and comfortable to use, just not absurdly fast.
## Why It's Good For The Game
The mining MODsuit is in a very weird place both balance and progression
wise. Its very easy to get if you ignore vents, it has good armor stats,
it allows you to partly ignore being set on fire (or fully if you get
the regulator module, but that requires more effort). I don't think that
the buff was very needed, it was very strong as-is when used properly
(with a yellow or green raptor mount) which not a lot of people seem to
have realized.
However, its still in a pretty pitiful state as its core feature (sphere
mode) is nigh useless as the drill only works outside of it, and mines
themselves are extremely clunky and uncomfortable to use. This leaves it
only being useful for its cheap armor (without needing to kill
goliaths), free GPS and ore bag that don't occupy your pockets, and
ability to ignore environmental hazards.
The solution I've decided to go with is reworking the MODsuit to be
focused on mining and exploration rather than combat, being a good
equipment piece for newer players and miners less interested in hunting
megafauna. This carves the MODsuit its own niche rather than being
weirdly slotted between base suits and contending with drake armor in
terms of stats/effects.
Roundstart lava crossing capabilities removal alongside bumpmining nerf
is somewhat unrelated to the rest of the changes, it is a part of the
exploration rework alongside #92877, which is intended to force miners
to engage in combat more. Without the nerf, the suit is as fast as a
yellow raptor, which lets it go through lavaland at absurd speeds when
moving diagonally. (Yes, diagonal zig-zag movement ignoring the bump
delay allows you to outspeed someone moving cardinally)
More details about the project can be found in this [design
doc](https://hackmd.io/@smart-kar/HkUINgBtke). The instamine ability of
the sphere will likely get slightly nerfed in the future with the main
batch of ore spread buffs and mining speed nerfs, but I've left it as
powerful as a green raptor to not make the suit useless when compared to
other options in the meantime.
## Changelog
🆑
add: Mining MODsuit has gained a magnetic harness for all of your
crusher stowing needs.
balance: Magnetic harnesses now take only 0.5 seconds to pick up your
gun, and can pick up crushers.
balance: Mining MODsuit has regained it small slowdown, and lost 10
melee armor.
balance: Mining drill MODule is no longer instant (outside of the sphere
mode of a mining MOD)
balance: The mining sphere MODule now can break rocks when rolling into
them, gives 20 melee and bomb armor when active, and has a shorter bomb
cooldown, but bombs themselves have reduced damage and mining AOE.
balance: Mining sphere MODule now requires an upgrade in form of two
pieces of bileworm skin to be able to traverse lava, as opposed to being
able to do so innately.
fix: Fixed MODsuit ore bag sometimes breaking permanently when
depositing ores into the ORM.
/🆑
## About The Pull Request
The first argument of `Hear` is `message`, the message heard
OR SO YOU'D THINK
Actually the first argument doesn't do anything but get overridden by
ALL implementations of `Hear`
No other uses as far as I and Ephe can tell. Removing it makes it a ton
easier to understand and gives us some free performance in radio code by
not rendering messages twice
## Changelog
🆑 Melbert
code: Removed some redundant code from core hearing code. Report if you
hear anything weird.
/🆑
## About The Pull Request
title, can't crowbar it out of the mining mod anymore.
## Why It's Good For The Game
The ash accretion module gives a major speedboost + armor buff on
lavaland... but also on the surface of maps like icebox and moonstation.
Being able to get a methspeed syndicatemod with 80-90% melee resist as
long as you're outside in the process. As it turns out, this may not be
fun to fight against, or intended for that matter.
## Proof Of Testing
1 line change
<details>
<summary>Screenshots/Videos</summary>
</details>
## Changelog
🆑
balance: Makes the ash accretion module unable to be removed from mining
modsuits.
/🆑
## About The Pull Request
Better be consistent.
## Why It's Good For The Game
Consistency.
## Changelog
🆑
fix: The megaphone MOD module also has a TTS filter when active, just
like the handheld version.
/🆑
## About The Pull Request
I was a little too conservative with the recharge values when I made the
module. This PR also allows for multiple instances of the the MOD module
to be installed in a modsuit, since it isn't like they're going to
conflict with one another anyway.
## Why It's Good For The Game
Making a niche MOD module I made a long time ago better.
## Changelog
🆑
balance: Buffed the torsion ratchet MOD module (from that bepis node
with several modsuit mod designs in it). You can also have more than one
at a time.
/🆑
## About The Pull Request
- Ninja no longer has access to an EMP burst shield, now replaced with a
normal EMP shield.
- Ninja throwing stars are now emergy throwing stars.
- On impact, they will release a heavy emp on the target it hit. This
can be a mob, a door, a machine, etc.
- On embed, in addition to the initial heavy emp, the target will be hit
with a light emp every 6 seconds until removing it.
- `DROPDEL`, meaning they're not reusable.
- 75 armor penetration, up from 40. Making it more likely to embed into
armored personnel (security)
- 8 force, up from 2. Meaning they can work as a really bad emergency
weapon.
- 12 throwforce, up from 10. Mainly cause it's made of energy instead of
steel
- Can't be caught
- See: #91855 .
- Shurikens no longer "thud" on impact, now they make a stabbing sound.
## Why It's Good For The Game
Ninja is a cool techno future ninja but they still generate infinite
steel shurikens out of thin air
Ninja is supposed to be a master of stealth but they have an ability
which makes everyone in a twelve block radius know there's a problem
So we can solve both of these at once, replacing their normal shurikens
with more thematically appropriate ones, and replacing their massive EMP
burst with a more directed, stealthy EMP (that also opens up some unique
gameplay like targeting an APC with a shuriken for sabotage)
## Changelog
🆑 Melbert, Toriate
del: Removed ninja's EMP burst
add: Replaced ninja's throwing stars with energy throwing stars, which
EMP on hit and embed, and can't be caught.
sound: Throwing stars now make stab sounds instead of thud sounds
/🆑
## About The Pull Request
moves all implementations (im aware of) for "Im a parent type dont spawn
me please" to the datum layer to standardized behavior
adds a standerized proc for filtering out "bad" items that we dont want
spawning. applies to it the subtype vendor, gifts, and a new spawner and
mystery box for a random gun (neither playerfacing)
"port" of https://github.com/shiptest-ss13/Shiptest/pull/4621https://github.com/user-attachments/assets/22f6f0b2-b44e-411a-b3dc-6b97dc0287aa
small warning: I dont have EVERY abstract type defined right now but,
ive done a good enough job for now. Im tired of data entry rn
## Why It's Good For The Game
standardizing behavior. Might be a micro hit to performance however
having this lets us not rely on icon state to determine whether
something is a parent type and makes it much easier to tell something is
a parent type (could be applied further to things like admin spawning
menus and things like that).
need feedback on if this is actually good for the game.
## Changelog
🆑
add: Soda cans show up in the silver slime drink table.
add: Examine tag for items that are not mean to show up ingame.
refactor: Standardizes how gifts rule out abstract types.
fix: gifts no longer check if something has an inhand, massively
expanding the list of potential items.
/🆑
## About The Pull Request
Closes#92778Closes#86829
<img width="347" height="39" alt="image"
src="https://github.com/user-attachments/assets/c50bd1ff-8c00-47a7-a31a-617fae2adc5b"
/>
1. Splits `TRAIT_UNKNOWN` into `TRAIT_UNKNOWN_APPEARANCE` and
`TRAIT_UNKNOWN_VOICE`
2. Renames some stuff like `getvoice` and `getspecialvoice`
3. Gets rid some crummy signals around `get_visible_name` and
`get_voice`
4. Heads now apply the disfigured trait when relevant (rather than
snowflake checking for damage amount)
5. Ling voice refactored into using special voice (it was only used by a
viro symptom anyways; I don't anticipate this overlap being problematic)
6. Mask voice changer refactored into a trait
## Why It's Good For The Game
Potted plants shouldn't have magical voice concealing powers -
especially not over radio, but not over in person either. It's a damn
plant
So I addressed this by refactoring our face and voice system. Overall
things should be a lot cleaner and easier to use.
## Changelog
🆑 Melbert
refactor: Refactored a lot of code relating to human face and voice, ie,
what shows up in examine and in say. Report anything odd when examining
people, with ID cards, when talking over radio, or when disguised
refcator: Refactored how you get disfigured when your head's super
damaged
refactor: Refactored ling mimic voice and traitor voice changer
del: Potted plants no longer hide voice. They still hide appearance,
though
qol: Honorifics now show in examine / in world, rather than only when
speaking.
/🆑
## About The Pull Request
This PR rewrites how MODtethers behave when something appears in their
way, when they run out of slack or get stuck on a corner. Currently,
first case would freeze you in place, while the other two can result in
the tether being blocked by an object which shouldn't interrupt the
beam. Now when it cannot find a direct LOS or get too far from the
owner, the tether will attempt to move to the side a bit to (hopefully)
slide around the corner or whatever object is blocking it, as long as
its distance permits it to do so. They'll also automatically snap if
they cannot find LOS even after trying to move to the side.
Also fixed multiple bugs and a potential crash due to recursion stemming
from MODtethers.
Additionally, while looking around path_info code I found that foam was
calling its passibility check on an incorrect turf, checking if an
object from the target turf could arrive to the turf itself, rather than
sourcing it from its own location. I also fixed that, should prevent
foam from going through directional objects
## Why It's Good For The Game
This should make them less of a pain to use in-game, especially when the
other half is connected to an unanchored object.
## Changelog
🆑
qol: Significantly improved MODtether behavior, they should be easier to
work with now.
fix: Fixed multiple MODtethers bugs and a potential server crash related
to them.
fix: Fixed foam sometimes passing through directional windows.
/🆑
## About The Pull Request
##### Code bounty for holinka4ever
Adds a furnace equippable to the back slot, which when active (it is a
lamp), will form a bubble of space protection, affecting the user and
people nearby, and will last 5 minutes before it dissipates and needs to
be re-formed. This item requires a pyroclastic anomaly core to activate,
while the bubble itself can only be formed in pressurized environments.
It's researchable in the Anomaly technology node.
The downsides of the item is it requires 2 hands to hold, can't be
inserted into storage items (as it's bulky), can only be equipped to the
bag slot, and has slowdown while on, which only affects you when you're
in gravity anyways.
## Why It's Good For The Game
The pyro anomaly is currently one of the more useless anomaly cores, not
even getting a unique reactive armour variation. This hopefully gives it
some purpose as a good tool to keep people alive in a spaced area at a
good cost to the user. This is an item that shouldn't be overpowered,
but also isn't just a selfish tool- when someone's crafting this item
it's specifically aiming to help people, which I think is a benefit.
## Changelog
🆑 JohnFulpWillard, sprites by PopLop
add: Added a new pyroclastic anomaly locked item, the Space Furnace.
Grants space immunity to people nearby while active.
/🆑
## About The Pull Request
Most of these changes are centered around removing `mod.wearer`
references in module function bubble alerts. However, I cleaned up a few
other things that I thought were easy fixes. ~~This PR should be
testmerged~~ nah send it. I think I did a pretty good job testing, but
there might be a bug or two I missed. (debug modsuit should allow
conflicting modules and have unlimited complexity btw)
### Track who clicks the activate button
* Adds `mob/activator` to `on_select()`, `activate()`, `deactivate()`,
`used()`, `on_activation()`, `on_deactivation()` and `on_use()`
* `mod_ui` now passes `ui.user`, which is who actually clicked the
button in the UI.1
* module action proc now passes the person clicking.
* **Alert bubbles:** Modifies many module code bubbles to pass the
activation bubble text to `mob/activator` instead of `mob.wearer` so
that pAIs get feedback on why clicking the button isn't working.
### Cargo clamp
* **Clamp code cleanup:** The cargo clamp now has a variable for the max
creature weight it can support, and the logic is changed around a bit to
support this.
* The cargo clamp uses an `accepted_items` typecache.
### Code cleanup
* **Button malfunction chance** is controlled by a
`MOD_MALFUNCTION_PROB` define.
* **Pathfinder runtime:** `mod_control`'s `GetAccess()` now checks if
there is an access before returning it. (This previously caused runtimes
when using the pathfinder module if you didn't swipe your ID)
* **Pathfinder code tweaks:** Reworks the code for the pathfinder module
a bit. Activation logic is now stored in the module instead of the
implant. The suit is prevented from being recalled by pAIs, which is
controlled by a variable.
* Adds `MODULE_ALLOW_UNWORN`, which lets you activate modules in suits
that aren't currently being worn. Module activation code now smoothly
supports modules being activated while not worn.
* Chameleon module now works when unworn.
This will probably be a Part 1, with a Part 2 to follow. Actions are
kinda funky and could probably be cleaned up a little better. Plus, I
want to make selectable modules theoretically usable by the AI, even if
I leave it disabled.
## Why It's Good For The Game
This PR doesn't contain any balance changes, and I manually disabled any
new serious functionality that pAIs might gain. (Such as being able to
activate the pathfinder implant) They *can* use the chameleon module
with no wearer- but I'm going to consider this a bug that they couldn't
before.
Paves the way for more pAI modsuit nonsense I'm doing downsteam.
## Changelog
🆑 Stonetear
refactor: MODsuit module code now knows who clicked the activation
button.
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
## About The Pull Request
Fixes#85028
Obscured flags and covered flags are tracked on carbons, updated as
items are equipped and unequipped. It's that shrimple.
Closes#92760
Just removes the species exception checks for not making sense
Also refactors handcuffs / legcuffs removal. In all of these situations
they were hardcoded when they could easily just use an inventory proc to
work.
## Why It's Good For The Game
Stops a million excessive calls to `check_obscured_slots`
Makes obscured behavior more consistent
Makes obscured behavior easier to use
Cleans up human rendering (There was some cursed stuff before with
render item -> updated obscured -> update body -> cause side effects)
## Changelog
🆑 Melbert
del: Golems which somehow manage to grow wings and somehow manage to
equip something that covers their jumpsuit can no longer fly.
(Seriously, this will not affect anyone)
refactor: Refactored clothing obscurity entirely. Items should be a
loooot more consistent and what covers what, and should update a lot
snappier. As always, report any oddities, like mysteriously disappearing
articles of clothing, hair, or species parts
refactored: Refactored handcuffs and legcuffs a bit, report any odd
situations with cuffs like getting stuck restrained
/🆑
## About The Pull Request
Nerfs the wizard modsuit shield recharges, it takes 20 seconds (double
the original time) for them to start recharging, and they recharge every
3 seconds (used to be 1 second). can tone it down a bit if its too much
## Why It's Good For The Game
I know wizard is meant to be super busted and all that, but a shield
that blocks 5 attacks and it recharges every 10 seconds is extremely
frustrating if not impossible to play against unless you bring a bomb,
specially if they had any form of teleport (i dont think we should make
all antags be only countered by bombs), wizard modsuit is already
stacked with armour, no slips, anti flashbangs and space proofing, i
think the shields are overkill
## Changelog
🆑
balance: wizard modsuit shield recharges slower
/🆑
## About The Pull Request
This PR adds the ability to install a B.O.R.I.S. in a circuit that
contains an MMI component. These circuits can then be remotely connected
to by an AI by clicking on them or anything they are inside of. To
indicate that a circuit allows remote AI connection, an indicator is
given to the circuit and anything containing it.
Additionally:
- Refactors the MMI component to use `item_interaction`, since it was
pertinent.
- You cannot insert an MMI/B.O.R.I.S. into a locked circuit.
- You can no longer hotswap MMIs/B.O.R.I.S.es - you must manually eject
the inserted one.
Let me know what changelog labels I should use for the hotswap removal
and the prevention of insertion into locked circuits.
## Why It's Good For The Game
If you can put an MMI or posibrain in a circuit, why not allow an AI to
use it using a B.O.R.I.S.?
## Changelog
🆑
add: B.O.R.I.S.es can be installed inside of integrated circuits with
MMI components, allowing an AI to remotely interface with them the same
way an MMI or posibrain could.
refactor: The MMI component now uses item interaction behavior for
inserting MMIs/B.O.R.I.S.es.
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
## About The Pull Request
- Wrapping a crate with package wrapping while pulling it will now
automatically make you grab it
- You can now open the crate while dragging it with the H.A.U.L.
gauntlets if you're the one who's pulling it. Also applies to other
items (including MOD modules) that have the component
https://github.com/user-attachments/assets/7b4743c8-855d-4274-89ca-b0507f6d3e0e
## Why It's Good For The Game
QOL for cargo technicians - having to constantly grab and let go of
crates is very annoying
## About The Pull Request
HackMD: https://hackmd.io/@Ssalty/r1wjAgSxll
Ammo removals:
IHDF
Rubber (non-.38, non-shotgun, nukie ones stay since it'd require
overrides. They were never purchasable to begin with.)
Stardust
Magnum
Express
.460 Rowland
.457 Government
MCR magazines
.40 Sol
Hornet's nest
Gun removals:
MCR's
.457 revolver
M4A5
.460 Rowland revolver
CCK
GP-7
R10 revolver
Guns made inaccessible:
NRI guns (including derringer, bobr, plasmas, Miecz)
Sol35 (Tarkon, sol ERT, gateway, adminspawn)
Sol40 (Tarkon, sol ERT, gateway, adminspawn)
Trappiste caliber (wespe, some already adminspawn weapons)
Turret adjustments:
Twin Fang - 4.6x30mm, 2 Second burst delay (40 dmg every 2 seconds vs 30
dmg every 1.5 seconds (old))
Stinger - 4.6x30mm instead of .35, matching damage
Colonist - .45 added instead of sol40, matching damage
Hoplite - Same as above
Armoury:
Armoury spawned MCRs replaced with laser guns and energy guns
SMG's and rifles with WT
If there would be a case with two separate spawns of a WT, the other is
gone.
Breaching shell boxes do not spawn in the armoury (they were capable of
1 shotting a dark mauler I wish I was kidding)
Lathe:
9mm stendo's, AP, HP, INC magazines not availible for print - the 9mm
murphy magazine is. It fits in 9mm firing turrets and the murphy.
## Why It's Good For The Game
Give me like a couple days and I'll fill this out. I doubt anyone who is
already pro-skyrat-gun will change their mind but it's good to
rationalize the decision regardless.
Find this out as in lay it out on paper.
EDIT 1: Adding the first part
# Foreword
This PR is a *draft*. That means a lot of things are subject to change,
a lot of things can be disorganized and a lot of things will be done
unoptimally. Going forwards, do keep in mind, the decision-making
process behind "remove entirely" and "virtually remove" will not be
dependant on us going forwards, as the decision on this matter requires
maintainer input more than any other.
Next, the delay.
I simply am not a machine, neither are other people onboard this
project. With different timezones, it was important to find what isn't
working so I can relay it to people in working hours.
Without further ado,
## The case of the ammo types and workbench
The ammunitions workbench is a machine that provides ammunition into
clips, refilling them. The ammunition workbench is also the source of a
multitude of alternate ammunition types. It has with itself brought
several issues that at least would warrant a rework or heavy
adjustments:
1. Contraband ammunitions. There is no real reason that the entire
security department, or even a single crewmember should be accessing
phasic weapons in the form of printable ammotypes. The argument of "the
pipegun having it" doesn't do it favours, as the way you get it is an 8%
chance on crafting a junk round for a bulky gun and the only way to find
out if you actually have it is checking each shell individually with a
bandolier.
2. Complimentary with the removals. Most use cases for this machine are
refilling the magazines you can order or get alongside your weapons.
This collides with the protolathe, which sources most of our
upstream-based ammunition instead. With the skyrat weapons gone, this
machine becomes redundant. You may claim that it's still useful in
saving on materials, where you would be right! However is it worth to
have and maintain an entirely separate structure, with it's own
mechanics, map placements, etc. to get a benefit equal to 1.6x more bang
for the buck? At the end of the day, splitting ways of getting ammo
across a single room for something so miniscule compared to the bloat it
adds is pointless.
# The weapons, why should they go, one by one.
### RomTech Flechette rifles
Compared to a standard laser gun, which is in all means our baseline of
ranged damage in ss13 - being the default armoury weapon, the default
laser for turrets and default laser for mobs. Better yet, let's compare
it to that and the default ballistic option that we have from TG.
What turns out, is that not only is the romtech carbine faster at
killing than the laser, but also rivals the WT with a split second of
difference in ttk in the favour of the romtech. Let's assume it's human
error and the WT is better TTK wise, just as an experiment. Clearly,
there must be a tradeoff, somewhere, right? One that balances them all
out to be equal weapons in the grand scale of things, contemporaries!
Well, no, not really. Not even close.
The carbine can be folded to fit in bags, that's one thing. The carbine
has more ammo, that's another thing. Bursts are harder to dodge than
series shots since they cover more perpendicular ground when attempting
to dodge projectiles, as is staple for ss13 combat. Burst weapons are
advantageous in applying more damage quicker, as you can see on the
videos - and initial damage, an alpha strike, applies movement slowdown,
ensuring future projectiles connect easier and the target cannot run.
It might be a coincidence that the only /tg/ derived weapons that fire
burst are adminspawn ERT or the Nukie weapons.
But it doesn't end here, no, the RomTech's ammunition alone would
warrant a complete overhaul if not a removal.
**steel ball**
<p>
Takes 9 shots to stamcrit, deals mixed damage - further increasing the
amount of slowdown applied, and not only is it MUCH faster at
stamcritting than a disabler is, it also leaves the target with 70
damage. Over half their healthbar. Severely overtuned with little
counterplay availible, alpha strike monster that is better at disabling
than disablers and better at stopping people dead in their tracks than
rifles, and if you look at our anti-stun, we have less than ever on
antagonists with Adrenal implants gone, Adreanaline Glands reworked,
etc, etc...
</p>
**Penetrator**
NT's answer to armour!
The penetrator has 60 AP and otherwise the same damage as the AP WT
rifle. Meaning it's a straight upgrade. Meaning this weapon invalidates
it's predecessor whilst being orderable roundstart, and not only that,
but it can fully ignore elite modsuits on nukeops. Not every mechanic
has to have a counter, there's no direct counter to someone healing
after a fight, there is no direct counter to having multiple shots, and
there shouldn't be a full nullification of armour for such a low cost.
There shouldn't be one for a crew that can mass produce these, ever.
**Magnesium**
Arguably fine, 12 firestacks per shot is still quite insane for a lower
chance of friendly fire compared to original incediary hot turfs,
**Ripper**
Steel ball, but even worse. They don't embed a single time, ***this
embeds every time***. It takes several seconds to take out. Actually,
let's compare this gun's bullets to ninja stars.
- 2 times the embed chance at 200 vs 100
- 8 times the jostle chance at 80 vs 10
- Comparable fall chance, at 1 vs 0
- More pain stam pct, at 0.9 vs 0.8, meaning more stamina damage
- More pain chance, at 70 vs 15
- Less pain modifier, at 2 vs 5
- Takes longer to take out, 5 seconds vs 3
- Jostling pain is the same
### One problem. There's three of those fired per burst, cannot be
caught either. And the armour pen is the same.
in conclusion, every aspect of this gun is unhealthy for the game, from
it's gimmick, to it's execution, to it's stats, to it's ammo, to it's
consistency, to it's firing mode, to it being able to be currently worn
on sec belts along disablers - up to 4, if I remember correct.
No reworks. It has to go.
## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>
</details>
## Changelog
🆑
del: Removed breaching slugs from crew (not to be confused with
frangible. These ones 1 shot mechs)
del: Removed MCR, .457 revolver, .460 Rowland revolver, GP-7, R10
revolver, M4A5, and their associated ammo types.
del: Removed ammunition types: IHDF, rubber variants excluding
.38/shotgun/nukie, stardust, magnum, express, hornet's nest
del: Made most NRI guns (Miecz, plasma pistol, plasma thrower, bobr,
derringer) and Sol 35/40 (Tarkon, ERT, gateway, adminspawn) inaccessible
to crew, kept for ERT/Gateway/Flavour/Admin reasons
balance: Turrets which use a removed calibre have been adjusted into
either that of the WT's, Ceres (still printable) or 9mm.
balance: WT's replace missing sindanos across armouries, laser guns and
eguns replace the missing MCR's.
/🆑
---------
Co-authored-by: Artur Lang <24881678+Arturlang@users.noreply.github.com>
## About The Pull Request
It was increasing the difficulty of fishing, when it shouldn't've.
## Why It's Good For The Game
closes#92674
## Changelog
🆑
fix: Fishing gloves MODule now actually lowers the difficulty of fishing
like it says
/🆑
## About The Pull Request
So I was notified MODlinks break after you use them, sometimes!
Looking into it, seems the culprit code was this:
138a670347/code/modules/mod/mod_link.dm (L461-L467)
Specifically, MODlinks use `TRAIT_IN_CALL` to check whether the given
user is already in a call to block them from opening new calls even with
other MODlink devices.
However, as seen above, the call datum actually gets the *current* user
when cleaning up after itself, which if the call was ended by for
example taking off a scryer... returns null, and thus doesn't remove the
trait, and bars you from making new calls forever.
A similar issue exists when deleting the visuals! Where it fails to
unregister its signals on the user for the same reason.
We fix this by tracking our current calling user in a weakref, and
use/forward it where necessary.
We also move more of the behaviour away from the call itself, and
instead tell the MODlinks we've entered or exited a call.
I feel this entire system should really be refactored, but due to how
many hooks it needs and different ways to interact with it I'm not 100%
certain on the best way to do it. So, well, posting this fix instead of
letting it sit for the indeterminate amount of time needed for me to
work that out.
## Why It's Good For The Game
It's good if the things are actually functional.
## Changelog
🆑
fix: Ending a MODlink call in any non-standard way no longer bricks your
ability to use MODlinks.
fix: Ending a MODlink call in any non-standard way and then giving the
item to someone else to call with no longer moves the visuals based on
the first person to try to use the item.
/🆑
## About The Pull Request
Converts as many time vars expressed in deciseconds as I could find to
use time defines.
## Why It's Good For The Game
Makes these values neater and more readable.
## Changelog
🆑
code: Converted a lot of time-based variables to be expressed with time
defines.
/🆑
# Conflicts:
# code/modules/clothing/head/hat.dm
# code/modules/clothing/shoes/boots.dm
# code/modules/clothing/suits/utility.dm
## About The Pull Request
Oh man, so this entire pr started because of two things:
1. A kinda hacky fix to #92123 that got closed a good while ago.
2. A borg I know mentioning you can't do custom say verbs over robotic
talk.
Which subsequently led me down this rabbit hole of say modes and custom
say verbs.
So! The most wide-reaching thing this does is merge the custom say
verb/radio emote logic that used to be specialcased in
`compose_message(...)` into `say_quote(...)`, renaming this to
`generate_messagepart(...)` with its new functionality. This means
things that don't use the exact same chain as living things talking
normally can still generate custom say verbs if given that message
modifier.
Then, we split up say modes into a "can we do this" and "try to do this"
check to reduce conflicts (like #92123), and forward more of our data to
the latter. This allows us to then edit the say modes to actually make
use of that data, and with the previous addition of
`generate_messagepart(...)` allow for custom say verbs to be used.
In doing this I realized the logging was kind of awkward and all over
the place, so we create the new logging helper `log_sayverb_talk(...)`
which handles selecting how we should log things based on the given
message modifiers.
For better or worse I forgot about this pr for a few weeks, so I don't
perfectly remember all the details, but those are the big key parts.
## Why It's Good For The Game
Fixes#92123.
I think custom say verbs are some of the best flavour we have for
talking over radio, and any situation benefits from that being possible.
It's great to be able to tap your microphone, and it's hilarious for an
AI to be able to emote beaming an image directly into the heads of their
borgs over robotic talk.
The rest is mostly cleanup.
## About The Pull Request
This PR fixes wrong usage of bitflags in a few places, where instead of
bitfields lists were used.
## Why It's Good For The Game
It will help prevent problems that can be a thing in the future,
improving consistency of the codebase.
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->
## About The Pull Request
Fix night vision module
before fix
<img width="666" height="78" alt="image"
src="https://github.com/user-attachments/assets/9f0548fb-5aa7-4484-b172-341057a41311"
/>
after fix
https://github.com/user-attachments/assets/620758c5-ba0d-46bb-b499-0340eea9d24b
## Why It's Good For The Game
item was broken, it will work now.
## Changelog
🆑
fix: night vision module can now be activated and turned off again.
/🆑
<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
## About The Pull Request
So I was notified MODlinks break after you use them, sometimes!
Looking into it, seems the culprit code was this:
138a670347/code/modules/mod/mod_link.dm (L461-L467)
Specifically, MODlinks use `TRAIT_IN_CALL` to check whether the given
user is already in a call to block them from opening new calls even with
other MODlink devices.
However, as seen above, the call datum actually gets the *current* user
when cleaning up after itself, which if the call was ended by for
example taking off a scryer... returns null, and thus doesn't remove the
trait, and bars you from making new calls forever.
A similar issue exists when deleting the visuals! Where it fails to
unregister its signals on the user for the same reason.
We fix this by tracking our current calling user in a weakref, and
use/forward it where necessary.
We also move more of the behaviour away from the call itself, and
instead tell the MODlinks we've entered or exited a call.
I feel this entire system should really be refactored, but due to how
many hooks it needs and different ways to interact with it I'm not 100%
certain on the best way to do it. So, well, posting this fix instead of
letting it sit for the indeterminate amount of time needed for me to
work that out.
## Why It's Good For The Game
It's good if the things are actually functional.
## Changelog
🆑
fix: Ending a MODlink call in any non-standard way no longer bricks your
ability to use MODlinks.
fix: Ending a MODlink call in any non-standard way and then giving the
item to someone else to call with no longer moves the visuals based on
the first person to try to use the item.
/🆑
## About The Pull Request
ERTs get the ion jetpack module now. Waow
## Why It's Good For The Game
I've heard complaining that ERTs are weak. Im not super sure about that
myself, but something that continuously confused me is their lack of
space maneuverability. They're an all-rounder team being sent to a SPACE
STATION. Why don't they get jetpacks? From what I've observed, ERTs just
get jetpacks from robotics anyways. So why not just give it to them?
## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>
</details>
## Changelog
🆑
add: ERTs now spawn with jetpacks
/🆑
---------
Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com>
## About The Pull Request
Converts as many time vars expressed in deciseconds as I could find to
use time defines.
## Why It's Good For The Game
Makes these values neater and more readable.
## Changelog
🆑
code: Converted a lot of time-based variables to be expressed with time
defines.
/🆑