About The Pull Request
Was fairly shocked to find out hiveminds never took tinfoil hat protection in account, so decided to implement the factor in the game mode. Might have overdone it and probably erroneously changed a couple logics while getting rid of some really indented passages that could easily early return.
So what's said on the tin, this is lot more preferable than clunky is_type() checks on headwear anyway.
Also expanded tinfoil protection to hivemind and (non-revenant) telepathy.
Why It's Good For The Game
Let us remember the "purpose" of tinfoil hats.
Changelog
cl
code: Merged tinfoil hat kind of protection into the anti_magic component.
add: Tinfoil hats can also be warped up from excessive dampening of mindray/though control/psicotronic anomalies, or by simply being microwaved in an oven, and become useless.
add: Immortality Talisman and Paranormal Hardsuit helmets now come with tinfoil protection too (minus the paranoia and limited charges).
balance: Rebalanced many hivemind effects to be dampened/delayed by tinfoil shielding. Bruteforced Assimilate Vessel, One mind and Awake Vessel abilities will consume more tinfoil charges compared to others.
balance: Genetics/Slime/Alien Telepathy and Slime Link are now stopped by tinfoil protection.
/cl
About The Pull Request
I made a machine board for the PDA message server and added it to the telecomms techweb node. To keep the usefulness of the machine's password, a player built message server won't work until 15 minutes after construction. I've also converted a lot of magic numbers to defines, and changed the departmentType var on request consoles into a bitflag.
I'm open to ideas other than a time gate when it comes to keeping the server password's usefulness.
Why It's Good For The Game
You can't build a Message Server right now. If it's destroyed, PDAs may be knocked out for the rest of the round.
Changelog
cl JJRcop
add: You can now build a new PDA messaging server if you lose it.
tweak: Requests console messages no longer work if the messaging server is offline. Emergency alerts will still function in that case as long as the rest of telecomms is online.
/cl
* Adds stasis beds
Needs sprites, using placeholder ones
* Adds stasis beds to techwebs
Cryostasis Technology
* Adds sprites for stasis bed
* Stasis beds support economy/ancap
* Stasis bed can be deconstructed
* Stasis bed requires cable coil
* New stasis bed sprites by @Kmc2000
Made by Kmc2000 <bluekorben2000@yahoo.com>
Not currently functional
* Add unique to SSvis_overlay.add_vis_overlay
will return the overlay object itself and not reuse it
* Make stasis bed art function
can enable/disable with alt click
makes sounds when powering up/down
* The tubes go over the mob now
* Remove sleepers from techweb tree
* Fix stasis bed lying
* Modified stasis bed build requirements
* Survival pod version of stasis bed
Map spawned sleepers delete their circuit boards
Added stasis beds to 'doctors' phobia
NanoMed for survival pod which is always free, not refillable
* Replace sleepers with stasis beds on all station maps
removed all sleeper machine boards from maps
one sleeper machine board intentionally left alone in oldstation
* Fix stasis bed tube overlay capturing clicks
Give power up and down noise freq variation
* Remove stat check from living Life
* Remove vis overlay assertions from stasis bed
About The Pull Request
As title, except a clarification: sounds that play with no source or direction are still stereo due to that the stereo will actually do something and not just be wasted space.
On a technical level, what I actually did was reexport (nearly) every single sound effect to mono 44.1khz sample rate Ogg at quality preset 5. This resulted in some small increases in file size in some places but other than that reduced file size across the board.
A couple of sounds that were wavs for whatever reason were also converted to ogg, this resulted in some code changes to change the referenced sound effect.
Some sounds were also recut. The grille hit and punches in particular are common sounds that had large and noticeable gaps at the beginning.
All of this has resulted in the compiled rsc file going from 102.7 mb to 83.2 mb.
Why It's Good For The Game
Free space with no (effective) drop in quality.
A standard for audio going forward. (that will be inevitably ignored)
Tighter sounds in some places.
Changelog
cl
soundadd: Downmixed every sound to mono. This shouldn't have resulted in any changes in audio, byond downmixes anyways.
soundadd: Recut some sounds. Sounds shouldn't have large silent/noise gaps at the start anymore
/cl
* legion cores remove CC
* legion -> regenerative
* lore
* Icons
fixes last reference to legion core in status
* Automatic creation of classes is possibly the worst feature of all time
* Moves remove_CC
* Review changes
* Fixes projectiles not hitting mobs, some refactoring too
* some stuff for projectile can hit target to work with not being ontop of an object
* Yeah let's just refactor bullet_act while we're at it.
* Yeah let's just refactor bullet_act while we're at it.
* Yeah let's just refactor bullet_act while we're at it.
* CanPass returns true to projectiles regardless of hit
* snakecase?
* Refactors NODROP flag into TRAIT_NODROP
🆑 coiax
fix: Anti-drop implants can no longer be used to drop objects that they
were not responsible for sticking to a person's hand.
fix: Backfiring with a Barnyard spellbook will now play a spooky horse sound.
refactor: Refactors the way that "NODROP" items work to a new system,
there should be no change in functionality.
/🆑
Various items in the codebase were doing weird hoop jumps in order to
preserve the nodrop flag's state when it also wanted to change it, so I
moved it to a trait system.
I may have gone overboard with the type of unique trait sources, but
those can be changed later. My long term plan is make a general "CURSED"
nodrop origin, which means you can unlock cursed items by being hit with
a bolt of door opening or something. But that's for another PR, this has
no functionality changes, apart from some slightly modified descriptions
on cursed masks.
- Removed a bunch of redundant voice changing code for all the voice
changing animal masks, used two new clothing flags for this purpose.
- Also refactored a bit the animal masks, making new cursed subtypes that play
the sound when created.
* Drop location
* Scope locate calls which are immediately checked against a list
* Remove silly use of locate from bible Topic
* Scope various locate calls (needs testing)
* More WIP
* Buff up lightswitches while we're here
* Tidy record browsing code
* Scope a few more locates
These have caused problems in the past (#41917, #39303). Continues #29349.
Also cleans up lightswitch code while I was already touching it.
I recommend a testmerge.
🆑 coiax
fix: Humans with the Void mutation will no longer be able to enter the void
while inside something else (eg. cloning pod, cryotube) willingly or unwillingly.
/🆑
- I refactored immortality talisman effects to stop all this ugly ass code
reusing, and stop the weird modification of the speech invocation.
- I added DNA injectors for the Void mutation for testing.
* Passes thrownthing to hitby
* Items now also pass thrownthing
* No longer uses default arguments
Also fixes bananium shield
* Adds more arguments to hitby calls
* Standardises throw_impact
* Clears up some loose ends
* Adds back wacky comment
* Reinstates can_push=FALSE on bananium shield
cl ShizCalev
fix: Fixed inconsistency where illiterate and blind mobs were able to read some books/manuals, but not others.
fix: Fixed mobs being granted mime speak even if they failed to finish reading the Guide to Advanced Mimery Volumes 1/2.
/cl
Step towards resolving #41396
cl Denton
tweak: Most upgradeable machines now show their upgrade status when examined while standing right next to them.
tweak: Added examine messages to teleporter stations that hint at their multitool/wirecutter interactions.
tweak: Renamed teleporter stations from station to teleporter station.
code: Changed the teleporter hub accurate var to accuracy; the old name misled people into thinking that it was a boolean.
/cl
Machines don't really give players feedback about upgrades, aside from machines like the cloner where new functions are unlocked. I'm adding examine descriptions that should help with this:
Aiming to implement the framework oranges has detailed in https://tgstation13.org/phpBB/viewtopic.php?f=10&t=19102
Moves canmove to a bitflag in a new variable called mobility_flags, that will allow finer grain control of what someone can do codewise, for example, letting them move but not stand up, or stand up but not move.
Adds Immobilize()d status effect that freezes movement but does not prevent anything else.
Adds Paralyze()d which is oldstun "You can't do anything at all and knock down).
Stun() will now prevent any item/UI usage and movement (which is similar to before).
Knockdown() will now only knockdown without preventing item usage/movement.
People knocked down will be able to crawl at softcrit-speeds
Refactors some /mob variables and procs to /mob/living.
update_canmove() refactored to update_mobility() and will handle mobility_flags instead of the removed canmove
cl
rscadd: Crawling is now possible if you are down but not stunned. Obviously, you will be slower.
/cl
Refactors are done. I'd rather get this merged faster than try to fine tune stuff like slips. The most obvious gameplay effect this pr has will be crawling, and I believe I made tiny tweaks but I can't find it Anything I missed or weird behavior should be reported.
Yeah yeah I know no opening too many WIP PRs but this one's [ready] and I want to make sure any furthur techweb development doesn't keep using the old reference system which will make refactoring it harder, and this makes it easier for coders to do stuff in theory (at least for me), standardizes getting a node/design, and makes stuff actually GC properly.
Fixes#39976
A good number of things were missing various parts of the logging (going to GLOB.bombers, not going to client logs, not logging to game, ect), or doing incorrect things like passing admin verbs to saved logs.
Unified all the necessary actions under a single proc log_bomber() which handles everything in most use cases. This way the log isn't all jumbled up with inconsistent messages, everything's one format so you can quickly find what you need to bwoink the right person.
* Fixes bluespace crystal memes
* Generalizes refined type check
* generalizes here as well
* Now now, no need to be lazy.
* removes duplicate istype check
cl XDTM
add: Added credit holochips, a form of semi-physical currency to use in transactions. They can be generated by id cards by drawing from bank accounts and can be used to make payments.
add: There is no limit to the amount of credits that can be stored on a holochip, but being holograms they are vulnerable to electromagnetic pulses, and may disappear if exposed to one!
add: Holochips can be split with alt-click, and can be merged by clicking on another holochip.
/cl
Inserting physical cash into ids and printing it on the go is really jarring, and since we're on a sci-fi universe i think that hard-light hologram chips with encrypted credits sounds more believable.
As a plus, they don't have to deal with messy stack calculations with different denominations, and simply have a credits var that holds their amount. They change color based on the amount of cash for easy recognizability.
cl ninjanomnom
fix: Orbiting is a little more aggressive about staying in orbit. The wisp as a result now correctly follows you over shuttle moves.
/cl
Goodbye SSorbit you ticking piece of shit
This also gives update_sight a signal so wisp code isn't hardcoded into it.