## About The Pull Request
This PR adds three more ethereal colors (Lavender Purple (the existing
purple is pink wtf), Dark Purple, and Burnt Charcoal) as well as
allowing ethereals to choose feminine torsos. Please view the pictures
under Proof Of Testing! (-:
## Why It's Good For The Game
Ethereals are already allowed to choose gendered pronouns and garments
(underwear), and Bubber lore removes the importance of Ethereals being
agender that was brought about upstream. The Bubber lore document refers
to their deity as Him. They have genders despite reproducing asexually.
It's beautiful.
Everyone deserves the chance to make cute ethereal chicks. Or so says I,
the person who quite likes cute ethereal chicks.
## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>
Previews work in the editor, I still point them to the male (old) torso
sprites.
<img width="864" height="280" alt="femalepreviews"
src="https://github.com/user-attachments/assets/b85eef73-6bcb-42f2-a8e9-e5242a251722"
/>
<img width="712" height="272" alt="colorpreviews"
src="https://github.com/user-attachments/assets/09185f5f-24d0-4dcd-8cb7-6003cc6a132a"
/>
</details>
## Changelog
🆑
add: Added feminine torso option for Ethereals
add: Added three new ethereal colors (Lavender Purple, Dark Purple, and
Burnt Charcoal)
/🆑
## About The Pull Request
Quick PR to fix a oversight and a few bugs, thanks artur.
## Why It's Good For The Game
Oversight and bug fix = good
## Proof Of Testing
works on my machine
## Changelog
🆑
fix: Fixes your brain falling out as a synth when choosing circuit or
MMI
/🆑
---------
Co-authored-by: Artur Lang <24881678+Arturlang@users.noreply.github.com>
## About The Pull Request
Couple things going on here but basically boils down to the
`/datum/bodypart_overlay/mutant/horns/can_draw_on_bodypart` proc in
`_visual_organs.dm` blocking horns if outfit has `HIDEHAIR` flagged
which mods do, this is all fine and dandy but we have a specific
carve-out for mods because of the hardlight overlays they add, problem
is that the latter check was taking precedence over the carve-out
(`is_deely_bopper_hidden`). I commented out this check because
`is_deely_bopper_hidden` does everything it does and more, so we don't
need it. Also deleted a redundant skyrat override on
`/datum/bodypart_overlay/mutant/horns/can_draw_on_bodypart` because the
parent `/datum/bodypart_overlay/mutant/can_draw_on_bodypart` override
does the same thing.
## Why It's Good For The Game
Fixes#5631
## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>
<img width="75" height="100" alt="image"
src="https://github.com/user-attachments/assets/e2939c50-39de-48de-8ffa-da648fa9df85"
/>
</details>
## Changelog
🆑
fix: fixed modsuits hiding horns
/🆑
## About The Pull Request
This PR aims to change how positronic are handled and work, instead of
them being their standalone thing and you "dying" when its removed it
acts like a real positronic that you are confined to said positronic
even on gibbing, which can be moved from a cyborg to a synthetic shell
and back into said shell without much workarounds, RSD or anything else
annyoing, just as an example.
## Why It's Good For The Game
I think changing it to a behavior that is like a cyborgs positronic
makes overall more sense then the synthetics magically dying when their
positronic is removed, cyborgs can somehow exist and stay alive as a
positronic but synthetics cant?
## Proof Of Testing
Works on my machine
## Changelog
🆑
refactor: refactored how the synthetics brains work and behave
/🆑
---------
Co-authored-by: Artur Lang <24881678+Arturlang@users.noreply.github.com>
Co-authored-by: Mathilde <146444134+ibexgoetia@users.noreply.github.com>
## About The Pull Request
Being given a fresh nonfunctional skeleton arm no longer disables both
hands, and also doesn't prevent two handed items from being used even
after it's fixed. Also, presumably the same problem with legs.
The problem is that these limbs are disabled in that the moment
`update_disabled()` is called they'll flip to disabled and stay there,
but they're not already set to disabled. `update_disabled()` is called
within `apply_ownership()` within `update_owner()` within
`add_bodypart()`. So, when a limb is replaced with the nonfunctional
skeleton arm, the following occurs:
- Initial limb torn off. Decrement `usable_arms`.
- `add_bodypart()` called, above chain goes down, `update_disabled()`
called, because the limb isn't already disabled, it officially disables
it and decrements `usable_arms` for a second time
- a few lines later, where new limbs are supposed to increment
`usable_arms`, it doesn't because it's now officially disabled
- now you can't do anything because `usable_arms` is 0. Even when you
get the limb fixed, usable_arms only increments once, so you're
permanently locked out of two-handed items.
Setting all these nonfunctional limbs to disabled at base prevents the
second decrement, fixing the problem.
## Why It's Good For The Game
having all of the organic tissue ripped off my arm all at once would
probably make me unable to use my hands for a while too, but our
spacemen are built stronger.
## Changelog
🆑
fix: Being given a nonfunctional skeleton arm no longer disables both
hands
/🆑
## About The Pull Request
Infectious zombies no longer suffer from mood, and have had their speed
increased moderately (Still slower than a spaceman, but no longer
agonizingly so). Also, they now have a large amount of stam resistance.
## Why It's Good For The Game
Every time I have seen zombies they die instantly against a crew with
even the slightest modicum of skill. They cannot infect anyone most of
the time due to crew powerwalking away and then they just get killed by
lasers or stunned and then killed with melee in perfect safety. Indeed
the only time I have seen zombies metastasize into an actual threat is
when an admin spawned several hordes of like 8 in maintenance and even
then they got only a minimal amount of victims for the amount of them (I
think only like 5 people died and most zombies got killed for most of
the waves).
In short, for what their supposed to be (An option for nukies or what a
tot is investing their entire supply of TC into) they are incredibly
underpowered unless you are doing something cheesy with them. (Xenobio
to make enough monkey zombies the server lags is a popular one).
These changes should make them an actual credible threat, and maybe sec
will actually have to pull out armory gear instead of just disabling a
zombie and harm batoning it to death.
<img width="830" height="45" alt="image"
src="https://github.com/user-attachments/assets/dc76c74d-7a97-4cd7-ab91-df8ffefa392e"
/>
## About The Pull Request
**YOU!** [Have you ever wanted to be a strange, round, rubbery little
creature with absolutely no fine motor control? No? Well you should have
thought of that before you went to sleep somewhere which gave me the
AMPLE opportunity to slide my EXTRAORDINARY new creation right onto your
FORMER HANDS!](https://www.youtube.com/watch?v=OjdgFSoQ00w)
Introducing Ball Mittens and Latex Paw Mittens: inflatable latex gloves
that, once on, become your hands for the foreseeable future! Big
shoutout to **Onule** for the sprites!
Ball Mittens are now a new equip-able lewd item available in the loadout
(Toys > Lewd Toys) or found in the Lustwish vendor.
They can be reskinned mid-round into Latex Paw Mittens, which are ALSO
available directly as an _incredible_ loadout item in the Gloves tab
with full GAGS color customization across three extraordinary color
groups! All for only four easy payments of no money at all!
While wearing either variant, the wearer experiences a suite of
DELIGHTFUL fumble mechanics representing a meteoric rise above the old
versions which just meant you could do basically nothing!
Here's what they do:
- Item pickup requires getting down on your knees and wrestling with the
item for a variable delay, with a small chance of you struggling even
longer because of how hard it is.
- Inventory retrieval from pockets, ID slot, belt, suit storage, and
_many more_ has a brief delay to represent fishing it out of your
pockets with your clumsy mitts! NOTE: This functionality is limited by
core aspects of the game engine, certain items are not subject to this
delay such as any item which is a container including but not limited to
toolbelts, backpacks and more. I tried but eventually gave up.
- Clothing has an extended timer. Have you ever tried unbuttoning a
jacket with paws the size of your face?
- Machine and console interaction requires a 1.5-second delay (skipped
when in combat mode, where you are presumably STRIKING DOWN the EVIL
machine)!
- Self-removal takes a full minute via the resist key or clicking the
item in the HUD. I was thinking of just making it impossible to remove
them on your own outright, but I changed my mind, aren't I swell?
- Throwing has a 5% chance of the item simply tumbling to the floor
instead. I thought about monekying with strength or like half a dozen
other things which I scrapped in the prototype phase when I realized how
_VIOLENTLY ANNOYING_ they would get over time!
- Guns suffer a serious spread penalty! It's hard to use guns when your
beans won't even fit inside the trigger guard!
- Restraint escape time is tripled! How the hell do you escape handcuffs
with your bare hands, let alone paws?!
- Stripping other players is much harder, I think it speaks for itself,
you're a cat, have you ever seen a cat steal your shoes? Absurd!
- The items are fire-proof because they're supposed to play into the
fantasy of having paws so it'd be lame if they could be trivially burned
off you and you can also use insulated gloves on them to witness the
absolute peak of comedy in the form of a funny easter egg!
- Surgery on the wearer is not blocked in order to play into the fantasy
that you actually have paws, wow! The mittens are considered transparent
to surgical operations! This means you don't have to have your hands
ripped off to get arm surgery! This was **obscenely** challenging to
implement! This and the ability to add insulation are very small
concessions to make it not pure agony to play with these on as say, an
engineer. They are heavily outweighed by the downsides.
- Another player can strip them off normally. The OOC safeword removes
them instantly if you decide the fun really has to end! Remember that
this function exists boys and girls!
- The items make appropriate rubber squeaking sounds, play flavor
messages for the wearer, and have visible bystander messages so the
whole crew can enjoy the endless novelty afforded by your predicament.
Also since this changes the appearance of the Cat Gloves, I've decided
to just go ahead and add the light QOL functions to these too, they
don't provide any gameplay advantage whatsoever. Arguably they make your
life harder.
## Why It's Good For The Game
You have been granted a GIFT. A BLESSING. An entirely voluntary and
opt-in set of squishy latex paws that make everything slightly harder in
ways that are charming rather than punishing.
More seriously: this adds a significant level of functionality to an
item which is otherwise a dead end
It also adds SKINS which you can sell on the Steam Market for PENNIES ON
THE DOLLAR!†
What's more, many manhours have been expended testing these to get the
balance just right!
†Disclaimer, you cannot actually sell the skins
Also I have already gotten approval from maintainers so I'm just writing
this for fun.
## Proof Of Testing
There are 30 to 50 copies of Tgstation.dmb in my recycle bin because I
meticulously compiled and tested every feature with every change to this
code that I made because I am **NOT GUILTY BY REASON OF INSANITY!** And
also I don't know how to use VSC. I think that's adequate and I don't
want to download OBS again. Oh and there are like a bajillion commits of
my dumb ass trying to fix this.
<img width="425" height="414" alt="image"
src="https://github.com/user-attachments/assets/806f4c6d-81ee-4143-be1c-91db94b6efdf"
/>
<img width="1626" height="832" alt="image"
src="https://github.com/user-attachments/assets/327581d2-e593-443a-8cde-053b7d0de80a"
/>
<img width="496" height="1177" alt="image"
src="https://github.com/user-attachments/assets/12fc408b-b2d1-43e5-b220-f207cac8ef1d"
/>
</details>
## Changelog
🆑
add: Added vast amounts of functionality to Ball Mittens, inflatable
latex gloves with fumble mechanics for item pickup, inventory retrieval,
clothing removal, machine interaction, and more !
add: Added Latex Paw Mittens, a GAGS-colorable paw-form variant
available in the Gloves loadout tab with full three-color customization!
image: Added GAGS sprite layers for Latex Paw Mittens
/🆑
## About The Pull Request
The surgical drill used the circular saw sound when it should have used
the drill sound instead.
## Why It's Good For The Game
Better sound.
## Changelog
🆑
sound: Add drill sound to surgical drill
/🆑
## About The Pull Request
Completely removes individual inventory UI handling from mob and HUD
code and moves it to slot datums.
``/datum/inventory_slot`` now is responsible for displaying items on the
player UI and does so through vis_contests as opposed to screen_loc -
which ensures that wide items will display properly rather than be
offset to the right.
Centralized, slot_id based handling allows us to significantly simplify
inventory and HUD code (see how many lines were removed) as you no
longer need to individually track all items for both the HUD owner and
the observer, and makes it easier for us to fully datumize inventory
handling in the future.
Also fixes a bug where observers would see players' storage UI and have
the items linger on-screen after its closed.
## Why It's Good For The Game
Makes working with inventories and HUDs easier, fixes visual issues with
wide items, I need this for human rendering refactors.
## Changelog
🆑
refactor: Refactors inventory UI to be completely datum and
vis_contents-based
fix: Observers should no longer see doubled up inventory UIs
/🆑
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
## About The Pull Request
Main changes
- `handle_mutations` is gone, DNA Injectors are now managed via a status
effect
- `handle_diseases` is gone, disease stages are just handled via life
signal
- `handle_bodyparts` is gone, it was unused and in the future any
implementations should use a life signal
- `spec_life` is gone, the main content of it is now in `human/Life`,
most children implementations now use life signal, zombie tongues now
handle zombie groans
- Life signal was split in two (pre and active)
Other changes
- DNA injector code was cleaned up considerably
- HARS now alerts admins when you inject someone else with it like
Monkey
- `COPY_DNA_SE` is no longer mistakenly unused (meaning stuff like
transformation sting no longer copies "active mutations")
## Why It's Good For The Game
Across the course of a full round we spend the same amount of time doing
literally nothing in life as we spend on handling human breathing.
Now in the context of a full round this is 8 seconds. Which in the grand
scheme of things, not a whole lot, but if we can get a tiny performance
gain from... not doing literally nothing (especially when we can do
these things cleaner with signals) that's a win in my book
## Changelog
🆑 Melbert
refactor: Refactored dna injectors (both the ones that change appearance
and activate mutations), report any oddities with them like failing to
revert your appearance or mutations not applying correctly
code: Ever so slightly changed how diseases tick, report any oddities
code: Ever so slightly changed how some species mechanics tick, like
golems and slimes, report any oddities
code: The code behind printing appearance modifying dna injectors from
genetics has changed, report any oddities
code: Some backend transformation sting code changed slightly, report
any oddities
code: Zombie "idle" groaning is now tied to the tongue rather than the
species itself
admin: Force-injecting someone with HARS give an admin alert, the same
as force-injecting someone with Monkey
fix: Several methods of copying DNA (including transformation sting)
mistakenly copied "active mutations", this has been fixed
/🆑
---------
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
# About The Pull Request
Restores Protean self-surgery, which was broken by the TG surgery system
rework. The rework introduced required_bodytype gating on all mechanical
surgery operations and an OPERATION_SELF_OPERABLE flag requirement for
self-targeting. Protean limbs use BODYTYPE_NANO, which was never added
to any of these checks, leaving Proteans unable to access the synth
flavored surgery operations they're intended to have and locked out of
self-surgery entirely.
The fix adds BODYTYPE_NANO to the required_bodytype of all six
preparatory mechanical operations in operation_generic_mechanic.dm
(unscrew shell, open hatch, screw shell, prepare electronics,
unwrench/wrench endoskeleton) and to the two prosthetic organ/feature
manipulation operations in operation_organ_manip.dm.
Synths were already handled by a prior Nova edit that added
BODYTYPE_SYNTHETIC; this PR extends the same treatment to Proteans and
logs it with a Bubber Edit comment.
As a drive-by shooting fix, I also changed a persistent "Orginal" [sic]
typo in BUBBER/NOVA EDIT comments across six surgery operation files.
These were copied verbatim from the original Nova edit and propagated
into every subsequent edit comment in the directory.
# Why It's Good For The Game
Proteans are a Bubberstation-original species with self-surgery as
intended functionality. The TG surgery rework silently broke this
without any corresponding fix being applied downstream. A surgeon could
still operate on a Protean using organic surgical tools but this is
sub-optimal and annoying.
# Proof Of Testing
Spawned as Protean, laid down on a table, applied surgical drapes,
worked through the full mechanical surgery chain on myself. Do you
really need a screenshot of me laying on a table?
🆑
fix: Protean self-surgery now works correctly after the TG surgery
rework broke it
fix: Surgeons can now use mechanical tools on Proteans as intended,
consistent with Synth behaviour
spellcheck: Fixed "Orginal" typo in NOVA/BUBBER EDIT comments across six
surgery operation files
/🆑
## About The Pull Request
Digi and snout bodyshape are added and removed if digi or snout is
hidden
There now also exists a digitigrade bodytype which is not removed if the
bodyshape his
Bodyshape is solely used for determining how the body is shaped for
rendering
Bodytype is used for checking stuff like "can digis wear shoes"
This lets us clean up rendering code a bit, allowing us to pass around
bodyshape rather than needing to check our wearer for digi and whatnot
Digi itself is now a component for legs that tracks - on item equip or
unequip - if said items squish the legs.
## Why It's Good For The Game
Right now we do some super jank stuff like updating body every time we
update our jumpsuit which is obviously a bit wasteful
This should make things easier to manage and work with (and maybe more
performant?)
## Changelog
🆑 Melbert
refactor: Refactored how digitigrade and snouts render, report any
oddities with that
/🆑
## About The Pull Request
Adds a separate var that tells the tongue it should have
`TRAIT_SPEAKS_CLEARLY` rather than necessitate it being in the
`organ_traits` list
## Why It's Good For The Game
This has caused issues with tongue subtypes twice, so let's not make it
a third time
## Changelog
🆑 Melbert
code: Changes the way tongues allow you to speak correctly to make them
less prone to fault
/🆑
## About The Pull Request
Stumps inherit the biological state of the bodypart it is spawned from
## Why It's Good For The Game
Right now, since they have a biostate of "nothing", they have all
surgical states, which means you don't have to do any surgery on them to
re-attach them. Which is obviously not intended.
Now they're just inherit (most) biostates from their parent, meaning
re-attaching limbs requires incise -> retract again. Unless the limb had
no bones like skeleton limbs.
## Changelog
🆑 Melbert
fix: Re-adding limbs surgically requires you do surgery again (ie,
incise -> retract -> clamp).
/🆑
## About The Pull Request
<img width="502" height="159" alt="Code_uPth7LpFwF"
src="https://github.com/user-attachments/assets/6e0c5f19-d115-4023-a9a3-8847ff4bec07"
/>
## Why It's Good For The Game
Helps the cats name the colors they obviously aren't able to see very
well!
## Changelog
🆑
fix: fixes blue and green cybernetic cat ears being switched
/🆑
## About The Pull Request
Adds triple eyeballs to markings/organs under the eyes tab. (They don't
show in the editor BUT they work in game)
Makes quad eyes work again! also fixes them because they had issue where
you could see your eyes under any headgear so they are layered correctly
now. Additionally you further customize how far away they are from your
real eyes
## Why It's Good For The Game
They aren't working, and before that they were working but the layering
was bugged. now you can have multiple eyeballs
## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>
<img width="356" height="89" alt="image"
src="https://github.com/user-attachments/assets/6f96b5a4-91e5-491a-b0a2-dcdf82d866ba"
/>
<img width="218" height="120" alt="image2"
src="https://github.com/user-attachments/assets/7ea0ad67-9214-440c-9c02-df4aab62153f"
/>
<img width="118" height="63" alt="trieyes"
src="https://github.com/user-attachments/assets/b2e26af2-8378-464d-8846-a0c711c02736"
/>
</details>
## Changelog
🆑
add: Slime triple eyes are now selectable in markings/organs under eyes
tab
add: Width customization for quad eyes
fix: fixes quad eyes to work
fix: quad eyes are now layered correctly
/🆑
## About The Pull Request
Refactor the majority of the current gasmix mole change use cases into a
proc called adjust_gas which simply adds the designated mole count of
the species into the gas mix while also handling asserting the gas and
garbage_collect()
I also added adjust_multiple_gases and convert_gas() for modifying
multiple gases and within a gasmix
## Why It's Good For The Game
Lemon wanted this to be done as part of the air group refactor
## Changelog
🆑
refactor: refactored majority of gas_mix mole change into adjust_gas()
proc
/🆑
## About The Pull Request
You now only gain the benefits of the heart eater perk by eating a heart
taken from a mob with a mind. In order to make this not completely
useless for any wizard without the Smite spell, the heart eater perk now
grants the user the ability to tear the heart out of incapacitated or
dead carbons by targeting their chest with an empty hand in combat mode.
This can be done on one person at a time per hand, so subtle synergy
with the four arms perk.
## Why It's Good For The Game
Getting 80% damage resistance, stacking linearly with armor to
potentially grant total immunity to conventional sources of damage,
should require a lot of effort and putting yourself into significant
risk of getting killed.
## Changelog
🆑
balance: Wizards with the Heart Eater perk are only invigorated by the
hearts of sentient beings.
add: To facilitate the taking of hearts from sentient beings, the Heart
Eater perk lets you tear the heart out of the chest of an incapacitated
or dead being by targeting their chest with an empty hand in combat
mode.
/🆑
## About The Pull Request

This PR adds 16 more wands to the game, try and guess what they all do!
I finished coding this PR 6 weeks ago but it turns out I had to sprite
16 wands after that before I could PR it.
<details>
**Wand of Animation**- It's like the Staff of Animation but doesn't
recharge itself, obviously.
**Rod of Babel**- Grants victims a new random spoken language and then
removes all of their other languages.
**Shearing Rod**- It renders you bald. If you are covering your hair
with a helmet, it pops the helmet off (possibly its most useful effect).
If you're already bald, your bald head will shine brightly and blind
nearby people.
**Party Wand**- Fires projectiles that are incredibly alcoholic. Two of
them will destroy the livers of most targets and kill them (although it
gives them a good leadup time to get that fixed before dying of alcohol
toxicity), so try one at a time if you're just there to have fun.
**Wand of Ice**- Freezes people temporarily, making them really cold and
unable to move. It also spawns slippery ice on impacted tiles.
**Wand of Chaos**- Forces targets to hallucinate from a curated list of
hallucinations. It looks and is named sort of like the Staff of Chaos
just in the hopes that people are more likely to believe that the wizard
did actually just instantly kill them, set them on fire, or turn them
into a demon. Even if it doesn't, a lot of these cause you to stop
moving or be temporarily knocked down or in some other way disoriented.
**Lifting Rod**- Removes gravity from a target for two minutes, which
funcionally immobilises them if they're in the middle of a room or you
can use on yourself to cross big pits.
**Rod of Compassion**- Heals you and your target a little bit, and also
gives you both Pacifism for 30 seconds. This gives you time to talk out
your problems, or deliver a monologue.
**Wand of Snacking**- Turns things into pizza. If fired at a mob, will
put some pizza in their hands and force them to start eating it.
Unlikely to be deadly, but it might spawn mouldy pizza, a food they are
allergic to, ethereal battery acid pizza, or pizza which dismembers you.
**Pestilent Wand**- Confers a transmissible plague which causes you to
periodically cough out vermin of various degrees of danger and hostility
depending on disease level, treated via traditional methods of exorcism.
**Wand of Pratfalls**- Slips and pies the target as well as creating
small amounts of lube foam.
**Wand of Rebellion**- Removes a limb from the target, then animates
that limb. Stop hitting yourself.
**Rod of Repulsion**- Throws things you shoot away from you.
**Switching Rod**- Swap places with the hit atom, as with the spell
Swap.
**Restraining Rod**- Summons a tentacle from the ground to grasp the
target, immobilising them for 20 seconds or until someone helps them.
**Wand of Zapping**- Briefly locks up the target's nerves with lightning
(it's secretly a classic ss13 taser).
</details>
They are available to wizards via the new option "Wand Assortment
(Bargain Bin)" which only costs a single spellbook point, but gives you
an assortment of 6 wands picked at random from this list of new wands
and some of the existing ones.
If you buy two or more sets of wands (and are wearing the wand belt from
the first one) then instead of spawning wands in a belt it will spawn
them in a bandolier, which fits into your backpack or can be worn on a
suit slot.
Wand bandoliers in a suit slot will automatically replace an empty wand
you try to fire with a wand that still has ammo in it.
Several of these wands' projectiles are now also possibilities from
firing the Staff of Chaos (making it more chaotic) and some of them also
have their own Magicarp types.
Also I made it so that if you animate an animating weapon then it
focuses on animating more things instead of shooting its animating bolts
at mobs that are already animate. I could do this for more specialty
wands too at some point (door wand projectiles don't exactly hurt
anyone) but if I do that it'll probably be in a different PR.
## Why It's Good For The Game
A good number of these wands come from a downstream antagonist that's
essentially a lower-threat wizard. I thought these were all fun or funny
effects to have in the game upstream but also not ones that people would
typically want to buy as a dedicated spell (or alternately, that would
be pretty good as a dedicated spell but quite boring), so instead
they're limited use spells that you get in bulk for cheap.
I didn't think we'd really want to bulk up the spellbook with several
different kinds of themed bundle though (and frankly, they don't share
themes), so it's a blind box instead.
The bandolier was added to compensate people for buying random wands
multiple times, so they can have more of a wand-based playstyle.
Now you can spend all of your points on 60 wands (maybe more if you take
the gambling trait...) and be a sort of wizard cowboy, or split them
among your apprentices, or just leave them everywhere like candy and see
whether the crew fuck things up for themselves with their new power I
guess.
## Changelog
🆑
add: Adds 16 more wizard wands to the game, which wizards can buy
cheaply but randomly, or are available via Summon Magic.
add: If a wizard buys more than one set of wands they will receive a
"Wand Bandolier" holster which fits in the backpack or, if worn in the
suit slot, will automatically exchange an expended wand for a full one.
balance: Staffs (and wands) of animation that are animated will try to
animate other objects instead of firing at living mobs, which are
already animated.
balance: Animating a wand of nothing will turn it into a wand of
animation (and animate it).
balance: The staff of chaos can now do more things.
balance: Magicarp now additionally come in Babbling, Frigid, Quantum,
and Weightless varieties. Collect them all!
/🆑
## About The Pull Request
Ye Olde title. Adds a preference to modify the opacity of your
character's eyeballs. Mostly made this for my yet-unmerged port of
cybernetics from Eris, some of which are not intended to have eyes
visible and instead use the head sprite to represent them.
Thank you to Statykyr and Artur for helping a lot love you mwah
## Why It's Good For The Game
Not having two very obvious pixels blocking a cool animated robot head
is nice. Also Astrum wants it.
## Proof Of Testing
<img width="943" height="523" alt="image"
src="https://github.com/user-attachments/assets/f1099599-9841-4e44-9095-2badde842d0c"
/>
<details>
<summary>Screenshots/Videos</summary>
</details>
## Changelog
🆑
add: Preference toggle for eyes opacity. Have no eyes (visually) or
anywhere in between.
/🆑
## About The Pull Request
A new cybernetic eye implant, the tactical IFF visor, has been added to
the game, available in the combat implants research node. Its main
features are a cool LED display, dynamic color correction to make
distinguishing important objects easier, and inbuilt IFF systems capable
of distinguishing and highlighting allies and potential threats. They
also give flash/welding protection and mild night-vision capabilities.
However, this comes at a downside of making the user completely unable
to distinguish appearances or voices, or even examine others. Everyone
will simply show up as Unknown and be completely covered in static, bar
the threat assessment outline. Examining will only display their threat
status according to threat settings in the visor.
The parameters for threat assessment (both ID access and security
flag-based), as well as the visor display, can be configured by the user
at any time.
When emagged, the visor will instead completely hide and mute all mobs
except the user themselves, leaving them completely "alone" on the
station.
Deathsquads get an unmodifiable version, configured to treat anyone but
CentCom personnel as hostiles.
Settings can also be adjusted before installation with a multitool, and
locked using a screwdriver, preventing users from accessing them when
installed.
---
Eye rendering has been slightly refactored in order to support the
monovisor, as well as to get rid of duplicate code (and missing
features) on dismembered heads. Also moth eyes once again should block
emissives properly.
## Why It's Good For The Game
New content for both gameplay and roleplay, and fits deathsquad's
purpose very well.
## About The Pull Request
- Surgical states applied by wounds don't appear in examine unless the
mob is prepared for surgery
- Surgical state examine text is now slightly smaller
- "Fix bones" surgery operation no longer appears if the patient is
suffering a bone fracture
## Why It's Good For The Game
- QoL: these can really fill up the examine block in contexts which you
really don't care about it.
- QoL: same as above, surgical states aren't that important that they
need to be in big red text.
- QoL: prevent people from thinking that "fix bones" fixes the fracture,
when in reality you're just reversing the "bone sawed" state that the
fracture applies.
## Changelog
🆑 Melbert
qol: Surgical states applied by wounds don't appear in examine unless
the mob is prepared for surgery
qol: Surgical state examine text is now slightly smaller
qol: "Fix bones" surgery operation no longer appears if the patient is
suffering a bone fracture - you will need to "repair fracture" instead.
/🆑
## About The Pull Request
`is_holding` fails for omnitools
## Changelog
🆑 Melbert
fix: Fix cyborgs being unable to do surgeries that ask for user input
before it begins
/🆑