Compare commits

...

1874 Commits

Author SHA1 Message Date
Ed
60a87f1c35 more params in component 2024-07-03 17:06:08 +03:00
Ed
786c0ed97c Update CP14CloudShadowsComponent.cs 2024-07-03 15:17:46 +03:00
Ed
d3895e8288 fix 2024-07-03 15:17:05 +03:00
Ed
d184f795c4 not worked 2024-07-03 14:38:18 +03:00
Ed
e9aab2b722 World borders (#296)
* world edge mechanic

* visual fog
2024-07-03 14:06:32 +03:00
Ed
074ec3e17d Goblin species (#295)
* Create CP14HandDisplacementMapComponent.cs

* idk if it works, we need goblin first

* some clean up

* add goblin species sprites

* basic goblic species prototype

* hairs, ears

* typo

* hand displacement maps

* shoes displacement

* shirt displacement

* head displacement. Add support different size maps

* +dummy

* eyes displacement

* pants displacement

* gloves displacements

* cloak and mask displacement (final)

* belt displacement!

* add nose customization

* +2 ears customization
2024-07-03 01:09:57 +03:00
Token
b0ceeb19c3 fix CP14IronGrilleGate sound to chainy metall sound collection (#293) 2024-07-02 23:21:43 +03:00
c4llv07e
73ea9197c5 Do not ignite zero coordinates because of items inside containers. (#292)
Items inside containers have zero coordinates so we shouldn't use them
in the fire spread system.

Fixes #277
2024-07-01 20:17:40 +03:00
Ed
9eb86caa82 CC-BY-SA-3.0 for some assets (#290)
* Update meta.json

* Update attribution.yml

* Update attribution.yml

* Update attribution.yml

* Update meta.json

* Update attribution.yml

* Update attribution.yml

* Update meta.json

* Update meta.json
2024-07-01 12:32:59 +03:00
Ed
8e084267fa Merge pull request #289 from crystallpunk-14/ed-30-06-2024-upstream
Ed 30 06 2024 upstream sync
2024-06-30 12:40:08 +03:00
Ed
7abf678bbe fix inverse effect 2024-06-30 12:02:40 +03:00
Ed
7e6be7feac fix lava + affectTemp reagent effect 2024-06-30 11:49:51 +03:00
Ed
dbdb81381b Merge remote-tracking branch 'upstream/master' into ed-30-06-2024-upstream
# Conflicts:
#	Resources/Prototypes/Maps/box.yml
#	Resources/Prototypes/Maps/meta.yml
#	Resources/Prototypes/Maps/oasis.yml
#	Resources/Prototypes/Maps/origin.yml
#	Resources/Prototypes/lobbyscreens.yml
2024-06-30 11:18:30 +03:00
Plykiya
6f8369ed6b Fixes colored gloves appearing incorrectly in chameleon menu (#29607)
Co-authored-by: plykiya <plykiya@protonmail.com>
2024-06-30 03:28:17 -04:00
PJBot
92491c90e0 Automatic changelog update 2024-06-30 04:35:13 +00:00
ShadowCommander
afe9f3ae85 Fix ItemMapper whitelist mispredict when inserting or removing items (#29461)
* Fix ItemMapper whitelist mispredict when inserting or removing items

Makes the ItemMapper MapLayerData available on client so that the client
can predict whether an inserted/removed item changes the visibility of
a sprite layer.

* review

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-06-30 14:34:06 +10:00
PJBot
3aa6270de6 Automatic changelog update 2024-06-30 04:29:56 +00:00
metalgearsloth
8985a48a34 Fix unlimited MaxTraitPoints for traits (#29600)
-1 is a silly API because now you have to handle it everywhere manually instead of using nullability.
2024-06-30 14:28:49 +10:00
PJBot
0974149c82 Automatic changelog update 2024-06-30 03:47:38 +00:00
MureixloI
fef679846c Fix some job's drobes point light (#29590)
* Fix some job's drobes point light

* Fix some job's drobes point light
2024-06-30 13:46:31 +10:00
SlamBamActionman
b9fa941ca6 Turn ReagentEffects into generic EntityEffects (#28168)
* Oh the possibilities

* Merge fixes

* Forgot to remote LavaSystem oops

* Changed EntityEffectArgs to EntityEffectBaseArgs and EntityEffectReagentArgs

* Throw exception for unimplemented effectargs

* Remove Json and overrideable datafields

* Fix test issues

* Actually fix the compiling issue

* Fix comments and remove EntityEffectArgs (no longer used, replaced with EntityEffectBaseArgs)
2024-06-30 13:43:43 +10:00
DrSmugleaf
250109f0b4 Fix armor speed examine giving you every single decimal place (#29597) 2024-06-29 21:39:31 -04:00
github-actions[bot]
af78c75d66 Update Credits (#29594)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
2024-06-29 20:31:18 -04:00
Chief-Engineer
e6e7a29b68 Fix Farm Grass Hopper config for real this time (#29583)
Update wizardsDenGateway.toml
2024-06-29 22:18:06 +02:00
Guillaume E
83e048ee45 Improve gas miner's output bounds checks (#29569)
Miners now can produce a fraction of their SpawnAmount corresponding
to the "remaining space" available in their environment according to
their MaxExternalPressure and MaxExternalAmount.
2024-06-29 11:44:32 -07:00
Nemanja
eda8028dd6 fix explosion resistance showing 0 values (#29572)
* fix explosion resistance showing 0 values

* markup
2024-06-29 13:21:47 -04:00
osjarw
6af418663e Limit air lost by wrenching/breaking pipes (#29574)
Gas lost via wrench/breaking capped
2024-06-29 09:06:25 -07:00
PJBot
e8ee3bc1ad Automatic changelog update 2024-06-29 15:24:09 +00:00
Pieter-Jan Briers
2a7bdd9b08 Revert "plutonium core steal objective" (#29578)
Revert "plutonium core steal objective (#26786)"

This reverts commit f6ce07289a.
2024-06-30 01:23:03 +10:00
PJBot
325d64b5ed Automatic changelog update 2024-06-29 05:41:03 +00:00
metalgearsloth
6937857446 Ensure trait groups get validated (#28730)
* Ensure trait groups get validated

The only validation being done was on the UI. I also made the "Default" group match the PascalCase naming schema so might be a slight breaking change but the original PR only got merged a few days ago.

* overwatch
2024-06-29 15:39:57 +10:00
IProduceWidgets
3e7c0a086b Oasis Atmos department rework (#29549)
* Atmos department rework

* move paperwork back to library

* Would you believe I forgot a valve?

* camer and fore extinguisher wallmounts in new room.
2024-06-28 23:35:14 -06:00
PJBot
190a051ee9 Automatic changelog update 2024-06-29 05:03:54 +00:00
slarticodefast
cd2968d849 Add sprite for vent under-pressure lock-out (#29527) 2024-06-28 22:02:48 -07:00
slarticodefast
ebd6104c63 Fix air vent and scrubber not requiring power (#29544) 2024-06-28 21:41:49 -07:00
PJBot
9ee66892a0 Automatic changelog update 2024-06-29 04:12:38 +00:00
deltanedas
f6ce07289a plutonium core steal objective (#26786)
* add textures

* add SealingCabinet system

* add StoreUnlocker/ObjectiveUnlock system

* add plutonium core and nuke core container

* make nuke deconstructable

* add steal core objective

* add core extraction toolbox to new category

* typo ops wrench fuel

* use queries and resolve, have it resolve instead of using Comp

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-06-29 14:11:31 +10:00
PJBot
1c66e1d27d Automatic changelog update 2024-06-29 04:11:07 +00:00
Artjom
881c2323fd Favorites tab for the construction menu (#26347)
* Added fovarite button

* Some fixes in xaml

* added some events for favorite recipes

* set methods for presenter

* fixes for  presenter

* added translates

* reset seach when you select any category

* added some margins

* some fixes from compared

* fixed PR notes about arrays

* deleted controls & margins

* did simpleer with arrays

* review

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-06-29 14:10:00 +10:00
PJBot
64af03042a Automatic changelog update 2024-06-29 03:35:02 +00:00
metalgearsloth
9032231300 Predict typing indicator (#29551)
It greatly annoys me in the rare instance I do play.
2024-06-29 13:33:56 +10:00
PJBot
4cc37a74dc Automatic changelog update 2024-06-29 03:29:53 +00:00
Token
f7e92980ab Mechs now destructable (#29338)
Add Destructible component to BaseMech
So all mechs are destructable now
2024-06-29 13:28:46 +10:00
DrSmugleaf
e3896e45fc Move GameTicker.RoundDuration to Shared (#29425) 2024-06-28 22:42:58 -04:00
Pieter-Jan Briers
797aebb161 Fix bugs resulting in quantum APC visual states (#29475)
There were TWO bugs here

FIRST, APCs *did* update their visual state on initialization, but at that point the relevant power state hasn't been initialized yet, so it always returns a bogus result. There aren't guaranteed to be subsequent power updates that actually trigger the APC to update so this can get it stuck.

Fixed by just deferring the on-init update to be after the first update tick, which is itself ordered to be after power update.

SECOND: Once I fixed that, I ran into the issue that APCs created at *server startup* also fail to update, because the throttling system (to prevent frequent APC updates) thinks the LastChargeStateTime was at server startup.

Fixed by making that variable nullable so it defaults to null.

Also removed the useless datafields on the "last update" fields. These are all just used to cache and throttle updates, something that should not be persisted to a map file.
2024-06-28 22:07:00 -04:00
Moomoobeef
cb6aeb4f96 Fixed the pipe in the TEG sprite (#29543)
fixed sprites
2024-06-28 22:03:45 -04:00
Brandon Hu
21a93eb6e8 tweak(oasis): Swap floppa and paperwork spawns (#29495)
tweak(oasis): Swap floppa and paperworkspawns
2024-06-28 19:24:46 -06:00
PJBot
aa1900d8dd Automatic changelog update 2024-06-28 23:29:33 +00:00
T-Stalker
692a6067e9 Remove rads from bananium (#29545)
webedit ops
2024-06-28 19:28:27 -04:00
PJBot
1e027de3e1 Automatic changelog update 2024-06-28 21:22:43 +00:00
Plykiya
dac09679a5 Fixes Chameleon menu icons appearing incorrectly (#29539)
EntityPrototypeView my beloved

Co-authored-by: plykiya <plykiya@protonmail.com>
2024-06-28 17:21:36 -04:00
Guillaume E
c38859b77a Make miners respect AtmosDeviceUpdateEvent.dt (#29522)
Miners' prototype have been changed to reflect this (I read
somewhere that we have about 1 atmos tick/0.5s, my tests show more
like 1/0.53 but that looks close enough).

This also means that miner's spawnAmount is now expressed in mol/s.

See: #18781
2024-06-28 10:49:39 -08:00
Errant
9e4b8077f3 suit storage whitelist code (#29332)
suit storage whitelist
2024-06-28 11:11:43 -04:00
Pieter-Jan Briers
6409004244 WATTAGE IS NOT A UNIT OF STORED ENERGY (#29538) 2024-06-28 17:00:45 +02:00
PJBot
315aac9aab Automatic changelog update 2024-06-28 12:34:09 +00:00
slarticodefast
418fc79698 Give passive vents the correct sprite (#29536)
give passive vents the correct sprite
2024-06-28 08:33:03 -04:00
Ed
1dbe308527 Entity ru localization sync (#285)
* first use

* LOCALIZAAATION

* and again

* Update fire.yml

* Update entities.ftl

* Update main.py

* Update main.py

* delete wrong locales

* battle staff locale

* Update main.py

* more remove

* Update wielded-inhand-right.png
2024-06-28 12:25:20 +03:00
PJBot
e99e65929e Automatic changelog update 2024-06-28 03:35:30 +00:00
Plykiya
1f6e140eb6 Hide doafters if you're in a container (#29487)
* Hide doafters if you're in a container

* Out of the loop

---------

Co-authored-by: plykiya <plykiya@protonmail.com>
2024-06-28 13:34:24 +10:00
PJBot
1d17e4051f Automatic changelog update 2024-06-28 03:34:04 +00:00
Repo
4a728fa3c6 Fix Admin Object tab sorting and search - Part 2 (#28681)
* admin Object tab sorting and searchable

* Fix for showing disconnected players on player admin tab

* Fix namespace and search bar location.

* Change linq to loop.

* No more Linq to sort

* Fix item click vv menu

* Added refresh button and refresh on opening tab.

* Clear spaces.

* Move tab magic numbers to enums

* Get rid of old unused xaml

* Fix code style issues and button event type.

* Merge in baby jail

* More style cleanup and move cast around.

* Make the localization a little more easy to read, same loc var names.

* Missed Loc for label

* Fix class field order

* Over zelous delete.

* Small updates.

* Min syntax issues fix
2024-06-28 13:32:57 +10:00
PJBot
496860e254 Automatic changelog update 2024-06-28 00:24:23 +00:00
JIPDawg
bb50087dd0 Fixed the sound of pulling back a foam crossbow from a flash sound to a bow pull sound. (#29508)
Fixed foam Crossbow making a flash sound to just a bow pull sound

Co-authored-by: JIP <jipdawg93@gmail.com>
2024-06-27 20:23:17 -04:00
PJBot
7fa081e884 Automatic changelog update 2024-06-28 00:09:15 +00:00
Nemanja
c7fcbe8c16 map renderer fixes (#29523)
* map renderer fixes

* remove useless casts
2024-06-28 10:09:05 +10:00
metalgearsloth
bc1703323e Revert "Make wearing an Ushanka also apply accent to your name" (#29524)
Revert "Make wearing an Ushanka also apply accent to your name (#29111)"

This reverts commit e5a85e2a13.
2024-06-28 10:08:09 +10:00
ArkiveDev
d5b5dafb3a Still immovable rods are now actually still (#29518)
Set the still rod's max velocity to 0 so it gets a 0 mangintude impulse on init
2024-06-27 18:07:12 -04:00
Ed
54ecb1b23e added battle staff (#286) 2024-06-27 23:29:27 +03:00
Jaraten
dcfd3f6aa5 New tiles (#274)
* New tiles

* fix yaml & resprite

* migration fix

* ftl fix

* fix typo

* fix typo +1

* fix C# typo

---------

Co-authored-by: Ed <edwardxperia2000@gmail.com>
2024-06-27 22:16:05 +03:00
comasqw
b592842a66 fix localization helper & protos descriptions in ftl (#282)
* fix localization helper & protos descriptions in ftl

* Update main.py

* Update objects.ftl

* добавил ярлык напрямую к файлу локализации

* megasuperduperpuperTWEAK

* Update yml_parser.py

* Update yml_parser.py

* Update yml_parser.py

* Update yml_parser.py

* Update main.py

* tweak

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
Co-authored-by: Ed <edwardxperia2000@gmail.com>
2024-06-27 22:07:25 +03:00
PJBot
2ed32be514 Automatic changelog update 2024-06-27 15:12:39 +00:00
KonstantinAngelov
64192b3506 CookBook name,id and description changed to not be "meta" (#29467)
* CookBook name,id and description changed

* Id isues with CookBook fixed

* Maps not added
2024-06-27 11:11:33 -04:00
PJBot
331c0fe326 Automatic changelog update 2024-06-27 14:59:02 +00:00
Pieter-Jan Briers
ced15b7934 Fix coords monitor in replays (#29512)
The F3 coords manager is blocked if you're not an admin. This check happened even when playing a replay, where you actually aren't. There's now a check to make sure you are actually server-connected-to-game before running the logic.

Also moved it to a manager because this *shouldn't be a bloody entity system in the first place*.
2024-06-27 16:58:51 +02:00
Pieter-Jan Briers
45cc19f315 Add InteractUsing admin logs. (#29514)
Apparently we did not have these.
2024-06-27 16:58:42 +02:00
Pieter-Jan Briers
0896edf06c Remove placing items on tabletop boards. (#29513)
This feature should never have been merged, it can be trivially abused to break the entire server.

It's behind a CVar because honestly that's the easiest way to 1984 the feature.
2024-06-27 16:57:55 +02:00
Ed
4d5fa91a39 Update hcut.swsl (#284) 2024-06-27 14:35:06 +03:00
Ed
798539899d experimental cliffs (#283) 2024-06-27 14:04:57 +03:00
Partmedia
849a790617 Increase lockout threshold (#29504) 2024-06-27 01:05:27 -07:00
PJBot
4ec2966f47 Automatic changelog update 2024-06-27 02:10:04 +00:00
Tayrtahn
f1e7b4c499 Fix double labels on pills and pill canisters (#29499) 2024-06-26 22:08:56 -04:00
PJBot
fb705ab3ef Automatic changelog update 2024-06-26 14:26:49 +00:00
Doomsdrayk
441325347c Fix disposals being effective nuclear bunkers (#29438)
Make disposals report their contents to the explosion system
2024-06-27 00:25:42 +10:00
Plykiya
4a0c637ee8 Fixes magic mirror interactions (#29491)
* Fix for magic mirror interaction

* Works for all cases

* swap the order, works

---------

Co-authored-by: plykiya <plykiya@protonmail.com>
2024-06-27 00:25:11 +10:00
DrSmugleaf
58efe4fdd1 Fix storages bugging out if an open storage has its component removed (#29485)
* Fix storages bugging out if an open storage has its component removed

* Fix error on close
2024-06-27 00:11:51 +10:00
PJBot
063011ec8d Automatic changelog update 2024-06-26 13:44:50 +00:00
Chief-Engineer
c81ba6e4a9 Alert shared connections (#29405)
* add admin alert for active shared connections

* update wizden config

* review
2024-06-26 15:43:43 +02:00
Tayrtahn
1a67ab8c95 Forcemap can be cleared with empty string again (#29472) 2024-06-26 16:41:31 +10:00
PJBot
c34fb39cf3 Automatic changelog update 2024-06-26 03:28:05 +00:00
VeritableCalamity
4241ad34b6 Give moldy food the "Trash" tag (#29380)
Make moldy food items have the "Trash" tag, so they can be collected.
2024-06-25 23:26:59 -04:00
PJBot
7ee2b6f397 Automatic changelog update 2024-06-26 02:28:17 +00:00
lzk
a540d1ab17 Make blood less satiate hunger (#29433) 2024-06-25 22:27:11 -04:00
DieselMohawk
90c33da521 Security Webbing Resprite (#29441) 2024-06-25 22:00:16 -04:00
Джексон Миссиссиппи
33dd7d4965 Fix dragon ghost role rules (#29474)
q
2024-06-26 11:20:45 +10:00
PJBot
06e21aae6e Automatic changelog update 2024-06-26 00:49:35 +00:00
Pieter-Jan Briers
37fffca615 Cut low pressure damage to 1/4 (#29478) 2024-06-25 20:48:26 -04:00
comasqw
fa86f705aa Localization Helper (#275)
* Localization Helper

* Update main.py

* Update main.py

* adding comments to code and translating exceptions into English

* cringe fix

* Update yml_parser.py

* tweak

* Update main.py
2024-06-25 18:02:02 +03:00
Snicket
231e180ff3 reclaimer-lobby-art (#29343)
* reclaimer-lobby-art

* fixed attribution from my part-Snicket

* fixed atributions this this time fr

* man

* Grobletombus
2024-06-25 15:28:37 +02:00
Imperator Shlepa
e12f499594 Craft for stone walls. (#280)
* 123123

* Update Resources/Prototypes/_CP14/Recipes/Construction/walls.yml

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
2024-06-25 12:07:01 +03:00
IProduceWidgets
d2eff3efa3 Oasis update (#29440)
* very minor things, mostly issue resolutions.

* purge invalids
2024-06-25 00:44:09 -06:00
PJBot
866ca966b1 Automatic changelog update 2024-06-25 06:29:54 +00:00
Tayrtahn
3009687326 Fix internals not auto-activating for entities spawned in space (#29213)
* Add organs before trying to breathe

* Add tests for auto-internals

* EntMan to the rescue
2024-06-25 16:28:48 +10:00
PJBot
84a54406dc Automatic changelog update 2024-06-25 03:57:52 +00:00
Elysium206
8c7fc9890c Increase of riot shield durability (#29239) 2024-06-24 23:56:46 -04:00
DrSmugleaf
a4d93362c3 Attempt to fix random test fail by undeleted AlertControl._spriteViewEntity (#29424) 2024-06-25 11:31:38 +10:00
Vasilis
27665e44a9 Fix filter yml names in the lobby so they actually work (#29435)
Fix filter yml names so they actually work
2024-06-25 02:53:16 +02:00
Pieter-Jan Briers
ebbe3c9144 Revert "TEG can power itself when turned on" (#29434)
Revert "TEG can power itself when turned on (#29072)"

This reverts commit 9f9cf08d72.
2024-06-25 10:38:06 +10:00
PJBot
56c4e60e45 Automatic changelog update 2024-06-24 22:41:26 +00:00
deathride58
bd3508d803 Colorblind friendly thermomachine LED colors (#29397)
Colorblind friendly thermomachines
2024-06-24 15:40:19 -07:00
Tayrtahn
8aea47a7ee Fix forcemap not bypassing requirements (#29426)
* Fix forcemap not bypassing requirements

* Add integration test for forcemap
2024-06-24 18:29:44 -04:00
PJBot
0822284cba Automatic changelog update 2024-06-24 22:04:11 +00:00
Emisse
7453f459c9 hardsuit fireproof nerf (#29416)
hardsuit nerf
2024-06-24 18:03:05 -04:00
PJBot
5aaac8b774 Automatic changelog update 2024-06-24 21:57:35 +00:00
Chief-Engineer
fd0511144a Use moderator perms for grant_connect_bypass (#29406)
use moderator perms for grant_connect_bypass
2024-06-24 23:56:29 +02:00
Pieter-Jan Briers
c1ad5cded0 Fix gay nuke layering (#29410)
I fucked up while exporting from aseprite whoops.
2024-06-24 20:01:24 +02:00
Pieter-Jan Briers
3df7309dbf Hotfix examine (#29408)
#55328 was failing tests and shouldn't have been merged, it broke examine.

The problem is that for some reason, client-side examine system doesn't call base Initialize. So my entity query change (that I did not test) broke.

By the way, this same "not calling base" meant that group examine system wasn't predicting properly when it totally could've. Incredible.
2024-06-24 18:02:43 +02:00
PJBot
f068687306 Automatic changelog update 2024-06-24 15:38:00 +00:00
Pieter-Jan Briers
e7bcb270e4 Ghosts can now always see examine details (#29404)
* Ghosts can now always see examine details

This means they bypass range and occlusion checks for getting extra detail, like the charge on an SMES.

* EntityQuery
2024-06-24 17:36:52 +02:00
Deserty0
eb8acd223a Size fix (#276)
* Update eyes.yml

* уэээ
2024-06-24 18:20:06 +03:00
ArkiveDev
d9506ce3a6 Force map confirmation (#29391)
* Add map check to forcemap command

* remove debug line

* remove accidental newline
2024-06-24 13:56:21 +03:00
metalgearsloth
c6e5b2339e Network BaseEmitSoundComponent (#29400)
* Network BaseEmitSoundComponent

* high intelligence
2024-06-24 19:55:28 +10:00
MureixloI
6888511e03 Fix cargo and salvage's computer point light (#29384) 2024-06-23 18:17:59 -04:00
PJBot
c41558aa6e Automatic changelog update 2024-06-23 19:34:18 +00:00
DrEnzyme
659010993f Add bagels (#24799)
Bagels are made by using a rolling pin on a dough slice to make a dough rope, then cooking the dough rope in a microwave for 5 seconds. There are two types: a normal bagel and a poppyseed bagel. The poppyseed bagel requires a poppy and a dough rope and has a small (5u) quantity of Bicaridine inside of it in addition to its nutriment.

Co-authored-by: Kevin Zheng <kevinz5000@gmail.com>
2024-06-23 12:33:12 -07:00
PJBot
08352151e3 Automatic changelog update 2024-06-23 17:32:41 +00:00
Tayrtahn
ac1bdd2c84 Fix unlabeled jugs in ChemVend (#29178)
* Spawn dummy entities on client for vending machine UI

* Asked sloth, and we kinda need this pr

---------

Co-authored-by: Vasilis <vasilis@pikachu.systems>
2024-06-23 19:31:34 +02:00
mhamster
ba164f9e48 ContainmentFieldComponent's garbage destruction can now be disabled (#29376)
* Garbage Vaporizer 3000

+ DestroyGarbage bool property
+ DestroyGarbage property check when dealing with incoming trash

* Update ContainmentFieldComponent.cs

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

---------

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
2024-06-23 11:34:32 -04:00
Pieter-Jan Briers
0c34eb6138 Ban template system (#29365)
To help out admins, so they can easily fill out datacenter bans and stuff. Supports ban exemption flags and everything.

This is for use with SS14.Admin so it's just DB models here.
2024-06-23 17:33:54 +02:00
Nemanja
19bc6f961d ironrock ores (#29381) 2024-06-24 01:02:16 +10:00
PJBot
6385c8c530 Automatic changelog update 2024-06-23 14:53:38 +00:00
eoineoineoin
2762470096 Add "Structure" tag to switches, buttons, and levers (#29378)
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
2024-06-23 10:52:30 -04:00
Errant
ba39b6f551 Survival box loadout group cleanup (#29379)
cleanup
2024-06-23 08:41:34 -04:00
Brandon Hu
e8a4808f16 fix(atlas): Replace mindshield crate with implanter crate (#29184) 2024-06-23 02:04:31 -06:00
Brandon Hu
93eded4803 fix: Adds a missing defribilator to nukie planet (#28362)
* fix: Adds a missing defribilator to nukie planet

* Fix: unpause nukie map

* What changes?
2024-06-23 02:04:09 -06:00
Brandon Hu
801c4f9181 tweak(medical): Reduce chemist slots (#28711)
* tweak(medical): Reduce chemist slots

* tweak(medical): roundstart chemists slot set to 2 on some maps

* tweak(fland): Chemist slots to 3

fland is target to 80-100 players
2024-06-23 02:03:00 -06:00
Brandon Hu
7399c758d3 fix(oasis): Replace mindshield crate with implanter crate (#29181) 2024-06-23 02:02:21 -06:00
Brandon Hu
33baf418cd fix(cluster): Replace mindshield crate with implanter crate (#29182) 2024-06-23 02:02:08 -06:00
Brandon Hu
8573eda852 fix(origin): Replace mindshield crate with implanter crate (#29183) 2024-06-23 02:01:54 -06:00
Brandon Hu
00e7aa4976 tweak(marathon): Fix some stuff (#29256)
* tweak(marathon): Add cargo request computer to bridge

* fix everything else
2024-06-23 02:01:11 -06:00
Brandon Hu
32e2a4e9ce tweak(meta): Swap around some of the computers in bridge (#29263)
* tweak(meta): Swap around some of the computers in bridge

* tweak(meta): unpause map
2024-06-23 02:00:42 -06:00
Brandon Hu
6ba2df7fa4 tweak(fland): Add radiation shutters to front of PA (#29265) 2024-06-23 02:00:13 -06:00
Brandon Hu
9455d0da7f tweak(emergency_box): Swap out Salvage Material crate with Engineering crate (#29269) 2024-06-23 01:59:57 -06:00
Brandon Hu
b1955f72d7 tweat(emergency_delta): Add screens around the evacuation shuttle (#29267) 2024-06-23 01:59:37 -06:00
Brandon Hu
252a3e6be4 tweak(saltern): Place a red phone in bridge meeting room, add another artifact spawn (#29359)
* tweak(saltern): Place a red phone in bridge meeting room

* add artifact spawn
2024-06-23 01:59:07 -06:00
Brandon Hu
bada3bc75b fix(omega): Connect the disposal unit in medbay to the disposal "network" (#29305)
fix(omega): Connect the disposal unit in medbay to the disposal pipe system
2024-06-23 01:57:20 -06:00
Brandon Hu
de22f659e8 fix(packed): Fill the medical lockers in medbay (#29319) 2024-06-23 01:57:04 -06:00
Nemanja
c90c065431 swap siren (#29369) 2024-06-23 00:38:41 -04:00
Tayrtahn
c2f8984e6c Apply RoleLoadout MinLimit fix to EnsureValid too (#29358)
Apply MinLimit fix to EnsureValid too
2024-06-23 12:17:28 +10:00
metalgearsloth
0546c9bf64 Revert "Weapon Reflection Movement Mechanic (#27219)" (#29326)
* Revert "Weapon Reflection Movement Mechanic (#27219)"

This reverts commit b90373356e.

# Conflicts:
#	Content.Shared/Alert/AlertType.cs
#	Content.Shared/Weapons/Reflect/ReflectSystem.cs

* Add myself to codeowners

* Add myself to codeowners

* Also the alerts
2024-06-22 22:16:08 -04:00
PJBot
089cdcf777 Automatic changelog update 2024-06-23 01:47:38 +00:00
WarMechanic
9f9cf08d72 TEG can power itself when turned on (#29072) 2024-06-22 18:46:31 -07:00
github-actions[bot]
f15ccea6dd Update Credits (#29363)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
2024-06-23 02:29:52 +02:00
PJBot
dbe283cb1f Automatic changelog update 2024-06-23 00:29:26 +00:00
Cojoke
966aca437c Add the ability to put hats on medibots (#28584) 2024-06-22 20:28:20 -04:00
PJBot
627b19c8fb Automatic changelog update 2024-06-22 23:47:25 +00:00
Floofi
3284c24ece add lemon juice and fix bad sprite allocation (#27465) 2024-06-22 19:46:19 -04:00
Pieter-Jan Briers
f582e690eb Remove robotics and supermatter lobby images (#29355)
They don't look good, we have way better ones now.
2024-06-22 17:00:09 -04:00
Vasilis
ae84889235 Don't add untriage lable if it has been labeled at issue creation (#29356) 2024-06-22 21:47:59 +02:00
PJBot
640115d646 Automatic changelog update 2024-06-22 17:50:56 +00:00
nikthechampiongr
6aced66406 Firelocks are no longer pryable by hand if they are powered (#29221) 2024-06-22 10:49:50 -07:00
Ed
34ae041f99 new lobby art (#267)
* add lobby art

* Update typicalAlchemistDay.webp
2024-06-22 19:27:57 +03:00
PJBot
061445ef6e Automatic changelog update 2024-06-22 15:48:08 +00:00
lzk
325ab97a7d Prying reinforced tile now will give you back metal rod (#29084)
* Reinforced tile can we welded back into metal rod

* more changes

* weh

* fix

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2024-06-23 01:47:02 +10:00
PJBot
b9172a7823 Automatic changelog update 2024-06-22 15:45:24 +00:00
K-Dynamic
2a6fc45ab5 Thief toolbox minor rebalance & description clean-up (#27771)
* thief clean-up

* anatomy set description change

* description changes
2024-06-23 01:44:18 +10:00
PJBot
f954970db8 Automatic changelog update 2024-06-22 15:23:12 +00:00
Partmedia
8112063a8b Add air alarm hysteresis (#29223)
Add firelock hysteresis
2024-06-23 01:22:17 +10:00
Partmedia
02fb432b05 Adjust some gas thresholds (#29331) 2024-06-23 01:22:06 +10:00
PJBot
4d6da0017c Automatic changelog update 2024-06-22 15:14:04 +00:00
deltanedas
475c2a0b42 add access reader log wire (#29094)
* add LoggingDisabled to AccessReader

* add LogWireAction

* -m give everything besides high-security door a log wire

* make LogAccess public and support string arg

* add log when pulsing

* m

* l

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-06-23 01:12:58 +10:00
PJBot
092cad4ba1 Automatic changelog update 2024-06-22 15:10:48 +00:00
marbow
5ee79b51ca Sound Station 14 like a nukie song (#29345)
Nukie song!!
2024-06-23 01:09:41 +10:00
Flareguy
45a4596e8b Disk """resprite""" (#29277)
* disk ""resprite""

* fix holodisk
2024-06-22 23:06:17 +10:00
MetalSage
061c1f520c Admin UI localization (#29340)
admin ui localization

Co-authored-by: MetalSage <metalsage.official@gmail.com>
2024-06-22 23:05:33 +10:00
PJBot
df5c4df894 Automatic changelog update 2024-06-22 10:44:24 +00:00
Errant
c418758a3a Fix for missing survival boxes (#29336)
storagefill order fix
2024-06-22 20:43:18 +10:00
Partmedia
dfe01c7bb1 Fix comments (#29330) 2024-06-21 23:02:06 -07:00
ArkiveDev
b5f6aa0c9d Pacifist messages use target's identity name instead of entity name (#29325) 2024-06-22 15:19:40 +10:00
Partmedia
bb61f44d92 Move air sensor components into abstract base prototype (#29261) 2024-06-21 21:57:14 -07:00
PJBot
104881763c Automatic changelog update 2024-06-22 04:16:27 +00:00
Nemanja
be7ffd89e2 AME Deconstruction Changes (#29317)
* AME deconstruction complexity

* review

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-06-22 14:15:21 +10:00
metalgearsloth
892263302f Update submodule to 226.3.0 (#29323) 2024-06-22 14:13:11 +10:00
Pieter-Jan Briers
07fe1a6b5a Rewrite the options menu (#28389)
* Basic attempt at rewriting how the options menu works, move accessibility settings into their own tab.

* Audio tab uses the new options system.

* Rewrite Misc tab

* Clean up heading styling

* Rewrite options tab and other minor cleanup all over the place.

* Documentation comments and minor cleanup.

---------

Co-authored-by: AJCM <AJCM@tutanota.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-06-22 14:11:14 +10:00
Doomsdrayk
e0a6604d06 Fix pistols not displaying ammo count in-hand (#29289)
* Make Drozd and C-20r not unwield on use

* Fix wielding mispredict

* add AmmoCounter to pistols
2024-06-22 11:46:51 +10:00
Ko4ergaPunk
6aa7e2edce Fix noticeboard drawdepth (#29262)
darwdepth added
2024-06-22 11:45:33 +10:00
PJBot
0ff144af73 Automatic changelog update 2024-06-22 01:12:48 +00:00
Alex Evgrashin
b7c088fbf3 Fix SSD indicator for scaled humanoids (#29310)
Fix ssd
2024-06-22 11:11:40 +10:00
Jaraten
294f81bd0f resprite stone&red_brick-walls (#265) 2024-06-22 00:17:10 +03:00
Nim
3492a7892a Mannequin (#253)
* mannequin

* fix

* fix2

* Update mannequin.yml

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
2024-06-21 23:17:49 +03:00
Ed
d973969a02 Merge pull request #263 from crystallpunk-14/ed-21-06-2024-upstream-sync
upstream sync
2024-06-21 18:47:38 +03:00
Ed
e440434938 Update arenas.yml 2024-06-21 18:37:24 +03:00
Ed
3a910a7f7f Merge remote-tracking branch 'upstream/master' into ed-21-06-2024-upstream-sync
# Conflicts:
#	Resources/Prototypes/Maps/europa.yml
#	Resources/Prototypes/Maps/train.yml
2024-06-21 18:30:31 +03:00
Ed
e2f97ece50 Wallmount update (#262)
* add wallmount systems

* add construction condition
2024-06-21 18:27:18 +03:00
Pieter-Jan Briers
f041f58a6d Add time index to connection log (#29281)
* Add time index to connection log

Queries go nyoom.

* Don't let me code shit at 5 AM
2024-06-21 15:29:10 +02:00
PJBot
730a4d289d Automatic changelog update 2024-06-21 12:07:14 +00:00
nikthechampiongr
76a65c8e43 Implement BlacklistedRange exempt flag (#29258)
* Implement a new kind of ip range ban that only applies to new players

* Put determining whether a player record exists to its own function

* Make BlacklistedRange bans get bypassed by any ban exemption

* Stop trying to get another DbGuard while already having one

This does break with convention on the functions in that area but
considering the use of this function it's probably fine?
I could alternatively just move the place it's called from.

Also I was suppossed to wait for tests to finish locally just to be
sure, but nah. I am pushing this now
2024-06-21 14:06:07 +02:00
PJBot
6b13f5f0cb Automatic changelog update 2024-06-21 10:51:58 +00:00
Leon Friedrich
70a40b62cb Fix some buckle interactions (#29293) 2024-06-21 03:50:52 -07:00
PJBot
38439996e9 Automatic changelog update 2024-06-21 09:43:00 +00:00
TsjipTsjip
949a837720 Ghostrole rule updates (#29249)
* First batch of ghostrole rule updates

* Second pass

* Re-word free agent

* Apply review comments

Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>

* You heard it here first folks

God rules are weird to write.

Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>

* Honkbot -> Free Agent

Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>

* Mimebot -> Free Agent

Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>

* Jonkbot -> Free Agent

Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>

* Softer blue

---------

Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>
2024-06-21 04:41:54 -05:00
Alex Pavlenko
711acedfe5 feat: update cyborg parts naming for them to be ordered consistently,… (#29272)
feat: update cyborg parts naming for them to be ordered consistently, closes #29270
2024-06-21 09:43:15 +03:00
PJBot
7ef1002101 Automatic changelog update 2024-06-21 05:43:23 +00:00
slarticodefast
d62dddcfcb fix initial infected icons and add a briefing to the character menu (#29259) 2024-06-21 15:42:17 +10:00
Tayrtahn
880fef507d Replace BlockSolutionAccessComponent with an attempt event (#26988)
* BlockSolutionAccessComponent now only blocks one specified solution.

* Significant overhaul
Separated spilling when worn functionality into its own component/system.
Removed BlockSolutionAccessComponent.
Added an event for solution access.
2024-06-21 13:04:02 +10:00
PJBot
f94d663452 Automatic changelog update 2024-06-21 03:03:30 +00:00
MilenVolf
9cd2705d6b Make stasis bed power toggleable (#29268)
Stasis bed is now power toggleable
2024-06-21 13:02:23 +10:00
Tayrtahn
afc800274c Fix null exceptions in SurveillanceCameraMonitorSystem (#29275)
* Add IsNullOrEmpty checks before indexing KnownSubnets

* actor
2024-06-21 10:17:16 +10:00
Tayrtahn
0b3459268a Add logging to SharedStorageSystem prototype indexing failure (#29273) 2024-06-21 10:16:43 +10:00
Tayrtahn
831d962e5a Make Loadout MinLimit not count failed attempts (#29264)
Loadout MinLimit doesn't count failed attempts
2024-06-21 10:15:37 +10:00
deltanedas
a3ffe22e66 return empty string for invalid identity (#29274)
Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-06-20 18:25:35 -04:00
Pieter-Jan Briers
c33644532d Rate limit ahelps (#29219)
* Make chat rate limits a general-purpose system.

Intending to use this with ahelps next.

* Rate limt ahelps

Fixes #28762

* Review comments
2024-06-21 00:13:02 +02:00
Ed
03adbaf851 Tiles update + iron bards (#260)
* wooden tiles update

* add iron bars

* dirt tile update

* fix foundation tile
2024-06-21 00:18:47 +03:00
Ed
ec3efce19c Ed 20 06 2024 grass update (#259)
* grass update

* +2 grass tile

* Update biomes_template_grasslands.yml

* Update biomes_template_grasslands.yml
2024-06-20 18:18:29 +03:00
Ghagliiarghii
b90c6acacd golden plunger (#29043)
* golden plunger

* Add wood material (the handle is still wood)

* 52 hours

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2024-06-21 00:24:36 +10:00
PJBot
0a3b221766 Automatic changelog update 2024-06-20 14:20:29 +00:00
MilenVolf
50146d4b98 Fix prying speed & log (#29210)
* cleanup prototypes with `PryingComponent` & fix jaws of life prying speed

* Minor cleanup for tools and prying systems

Remove some obsolete methods.

* Fix doafter continues when not held & log

* Modifiy delays for floor prying

* Fix test fail
2024-06-21 00:19:22 +10:00
PJBot
c91789a78d Automatic changelog update 2024-06-20 14:06:47 +00:00
Pieter-Jan Briers
cf374ac905 You can now pry multiple tiles at once (#29231)
* You can now pry multiple tiles at once

* More advanced do after duplicate checking.

Instead of just saying "lol tile prying can raise duplicates", we now have a system so tile prying can properly distinguish events on 2 different tiles. This is achieved with a virtual function on DoAfterEvent.
2024-06-21 00:05:40 +10:00
Errant
d15eafe133 Survival Box Loadouts, Nitrogen Emergency tanks (#29131)
* Nitrogen survival boxes

* Zero-setup workaround

* clown box

* cleanup and universal tanks

* cleanup

* more cleanup

* hide loadoutgroups

* remaining survival boxes

* space ninja

* Revert "space ninja"

This reverts commit a650f417f83f5861e0001b25418e4a361927c6c6.

* weh

* weh

* undo appearance change of syndicate survival boxes

* indentation fix and missing label
2024-06-21 00:05:01 +10:00
PJBot
7994175aba Automatic changelog update 2024-06-20 12:35:52 +00:00
Redfire1331
68c414e8ed made cup ramen eatable with anything with the fork component (#27826)
* made cup ramen eatable with anything with the fork component

* removed extra png

* made cupramen fillable with water, and made hot ramen dry ramen.

---------

Co-authored-by: redfire1331 <Redfire1331@users.noreply.github.com>
2024-06-20 22:34:46 +10:00
PJBot
514e7600c6 Automatic changelog update 2024-06-20 12:23:10 +00:00
Boaz1111
a74ca54cf8 moves explosive tech to T1 (#29227)
moves explo tech to T1
2024-06-20 22:22:04 +10:00
PJBot
0ac1b31e36 Automatic changelog update 2024-06-20 11:59:57 +00:00
lzk
4fe5235e37 Buff cube boxes (#29251) 2024-06-20 14:58:51 +03:00
PJBot
9fbcec1c74 Automatic changelog update 2024-06-20 11:17:18 +00:00
neutrino
9bf4a28f4d fixed Syndicate smokes pack being half-filled (#28371) 2024-06-20 21:16:06 +10:00
PJBot
4ccdc9070f Automatic changelog update 2024-06-20 11:14:04 +00:00
Mr. 27
8c9fcd4ca7 Fix ERT becoming sleeper agents and add sleeper agent preferences (#27817)
* b

* Update antags.ftl

* m

* ok

* Update events.yml

* antag

* a

* Create InitialInfectedExemptComponent.cs

* Delete InitialInfectedExemptComponent.cs

* yes

* Delete InitialInfectedExemptComponent.cs

* Create AntagImmuneComponent.cs
2024-06-20 21:12:58 +10:00
Mr. 27
ad89444c58 Make winter coat hood hide certain markings (#29238)
Update base_clothinghead.yml
2024-06-20 20:20:20 +10:00
IProduceWidgets
4bf6d9e171 add a type specifier where one was forgor (#29250)
* add a type specifier where one was forgor

* Fix other way because degub conditions

* okay this feels kinda dumb but it does fix it.

* Update Content.Client/Effects/ColorFlashEffectSystem.cs

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2024-06-20 20:04:07 +10:00
metalgearsloth
c1948d88d8 Update submodule to 226.2.0 (#29247) 2024-06-20 18:19:00 +10:00
PJBot
f2c0991467 Automatic changelog update 2024-06-20 07:16:46 +00:00
metalgearsloth
d438925d3b Fix entities getting stuck red (#28981) 2024-06-20 17:15:40 +10:00
Tayrtahn
40bcf66fc7 Fix and enable TestEmptyLoadout (#29228)
* Fix and enabled TestEmptyLoadout

* Fine, have a real name
2024-06-20 10:57:52 +10:00
PJBot
625fef00c1 Automatic changelog update 2024-06-20 00:10:50 +00:00
Mr. 27
872e927cc7 Hide moth antenna and lizard frills with hardsuit helmets, fix lizard snouts not being hidden (#29214)
* inital

* Update ClothingSystem.cs

* Update helmets.yml
2024-06-19 20:09:44 -04:00
PJBot
a8ad09ebf9 Automatic changelog update 2024-06-19 23:52:13 +00:00
Alice "Arimah" Heurlin
2b92ec79f7 Prevent fly-by fixture from powering containment field generator (#29225)
* Prevent fly-by fixture from powering containment field generator

* Update according to review
2024-06-19 19:51:07 -04:00
Pieter-Jan Briers
67cc089dd0 Fix terrible portable scrubber unlit layers (#29232)
Jesus fucking christ man
2024-06-19 18:14:47 -04:00
Vasilis
9759747176 Tools batch files (#29179)
* Tools batch files

* fine
2024-06-19 21:33:02 +02:00
PJBot
674409d3bf Automatic changelog update 2024-06-19 18:15:02 +00:00
lzk
912091e24e Add wet floor sign & warning cone to autolathe (#29205)
* Add wet floor sign & warning cone to autolathe

* removing
2024-06-19 14:13:55 -04:00
Flareguy
94995460fd Emergency toolbox fill rework (#29202)
* emergency toolbox fill rework

* Fuck
2024-06-19 14:13:27 -04:00
TsjipTsjip
39ccab6718 Fix documentation typo (#29209)
Fix everything.
2024-06-19 18:15:26 +02:00
Leon Friedrich
fa3c89a521 Partial buckling refactor (#29031)
* partial buckling refactor

* git mv test

* change test namespace

* git mv test

* Update test namespace

* Add pulling test

* Network BuckleTime

* Add two more tests

* smelly
2024-06-20 01:14:18 +10:00
Tayrtahn
e33f0341ad Code cleanup: radio jammer (#29052)
* Code cleanup for radio jammer

* More Entity<T> for the people, and fix an accidental variable reuse
2024-06-20 01:13:40 +10:00
Tayrtahn
024521b66b Add prediction for Tech Disks, cleanup (#29061)
* Add prediction for Tech Disks, cleanup

* Remove IsServer check in OnMapInit

* Use HashSet for techs, remove LINQ
2024-06-20 01:04:30 +10:00
Leon Friedrich
20544b0c76 Rejig device link sink & source startup & shutdown (#29035)
* Fix DeviceLinkSinkComponent not updating sources on shutdown

* Log error

* Misc link changes & fixes

* Fix core
2024-06-20 01:03:32 +10:00
PJBot
8a4ce13d1c Automatic changelog update 2024-06-19 14:50:25 +00:00
Flareguy
7c01ac931f hos cap resprite (#29208)
* hos cap resprite

* 1. 2. 3 4 Oh
2024-06-19 10:49:19 -04:00
PJBot
28ce298e7c Automatic changelog update 2024-06-19 14:07:18 +00:00
lzk
2b885272c8 Musician's skirt (#29203)
* Sprites&Meta

* Changing prototypes

* Adding to Theater vend

* Sprite_Change

* Sprite_Change

* Prototype_Changes

Is this exactly how it should be?...

* FUCKING FIX

* weh

---------

Co-authored-by: Арт <123451459+JustArt1m@users.noreply.github.com>
2024-06-19 17:06:03 +03:00
PJBot
37120c1f7f Automatic changelog update 2024-06-19 13:22:13 +00:00
Truoizys
fc40cd79fb Fixed cartridges installing more than once (#29187)
* fixed cartridges installing more than once

* replaced prototypes with CartridgeComponent

* relocated checks from InstallProgram to InstallCartridge
2024-06-19 15:21:05 +02:00
Chief-Engineer
c966db408d Restore default panic bunker and tweak baby jail (#29198)
restore default panic bunker
2024-06-19 06:36:05 +02:00
beck-thompson
6c810003db Grammar fix to medibot! (#29197)
fixed
2024-06-18 23:42:45 -04:00
Plykiya
9cd08b84d9 Fix some lathe recipe textures showing up blank (#28683)
* Update lathes to use entity prototype

* ScrollContainer my hero

* gets rid of excess newlines

---------

Co-authored-by: plykiya <plykiya@protonmail.com>
2024-06-19 13:18:45 +10:00
PJBot
8d52c1aeb3 Automatic changelog update 2024-06-19 02:42:47 +00:00
HS
f7db648e5f shorten short raffle (#28685) 2024-06-19 12:41:41 +10:00
PJBot
3901cda657 Automatic changelog update 2024-06-19 02:29:36 +00:00
beck-thompson
bde0f43171 Add some happier medibot messages! (#29147)
* Happy!

* opps

* one more
2024-06-19 12:28:30 +10:00
Ubaser
69afba67b6 Fix Underwing wings (#29092)
* add

* tweak thickness of stripe
2024-06-18 22:24:28 -04:00
Tayrtahn
198f028d7c Make Hamlet a valid chef's hat pilot (#29191) 2024-06-18 22:12:44 -04:00
PJBot
11496419ce Automatic changelog update 2024-06-19 02:05:10 +00:00
Flareguy
4cf60f805e Security Resprite (#29082)
* security resprite

* hos cap fix

* i forgor

* further fixes

* my furniture is broken

* fedora update
2024-06-18 22:04:03 -04:00
PJBot
bb6215142d Automatic changelog update 2024-06-19 01:58:06 +00:00
Nemanja
f9ddccbc22 Decrease meteor frequency (#29194) 2024-06-18 21:57:00 -04:00
Rouge2t7
c8de4ec397 PullingController cooldown change (#29177)
* Revert "Automatic changelog update"

This reverts commit 3358aef40f.

* Revert "Revert "Automatic changelog update""

This reverts commit 3d0b6a7ade06ec555d4f6df3f39134b139e5247c.

* Removal of the throw cooldown as it felt sluggish and unresponsive before.
2024-06-19 10:29:47 +10:00
deltanedas
0910983c4b unhardcode thief MaxSelectedSets (#29175)
* unhardcode thief MaxSelectedSets

* we do a little copy paste :trollface:

* :trollface:

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-06-19 10:29:06 +10:00
Vasilis
81136648da Upgrade rsi-diff's changed files action | Make it only return rsi and png changes (#29185)
It was brought up to me in https://github.com/space-wizards/space-station-14/pull/29179#issuecomment-2177140740 (and from a dm from them) that space bars can cause issues with the rsi bot.

Upon investigation its case we use "space-delimited" on the "get changes files" check. Which returns ALL changed files. Even if the change has nothing to do with png's or rsi's (example a downstream merging upstream)
2024-06-19 10:27:12 +10:00
Errant
9b2f9ce05f Hidden loadout groups (#29170)
* loadout hiding

* department of redundancy department
2024-06-19 10:26:46 +10:00
PJBot
baa6836489 Automatic changelog update 2024-06-19 00:22:03 +00:00
osjarw
707f1f4981 Fix air alarms (#29172)
Broken by #28272
2024-06-18 16:20:57 -08:00
PJBot
0b98ce83f0 Automatic changelog update 2024-06-18 21:48:25 +00:00
metalgearsloth
dabf3d1521 Fix material storage going BRRT (#29167)
If the volume hits 0 we just remove it.
2024-06-18 17:47:19 -04:00
PJBot
3358aef40f Automatic changelog update 2024-06-18 15:05:22 +00:00
IProduceWidgets
801d405919 Add the most anticipated gun in the game. Foam Force. (#29103)
* Foam Force

* make it available somewhere

* add clumsyproof and nuke dev item

* reorganize

* oopsy files

* Strap!

* woopsie layering

* fix grammar to rerun tests for rogue unrelated test fail.

* cleanup

* I eepy layer forgetti spaghetti

* For real last necessary commit

* Oops I broke the law! feexed

* Decided to just change it to the same source as the poster source in our repo for consistency.
2024-06-19 01:04:15 +10:00
Leon Friedrich
ee2c115e5b Turn interaction related attempt events into structs (#29168)
* Turn InteractionAttemptEvent into a struct event

* readonly

* GettingInteractedWithAttemptEvent

* ConsciousAttemptEvent
2024-06-19 00:30:41 +10:00
PJBot
db30b5e040 Automatic changelog update 2024-06-18 14:11:25 +00:00
Errant
d60829f1ce arachnid inventory layout fix (#29165)
arachnid inventory layout fixC
2024-06-19 00:10:18 +10:00
PJBot
cffa35692a Automatic changelog update 2024-06-18 14:03:12 +00:00
lzk
e49a0eb3b6 Add warning cones to engivend (#29085)
Add cones to engivend
2024-06-18 17:02:05 +03:00
metalgearsloth
b0b76a1133 Replace StationRandomTransform (#29149)
* Revert "Rotate and Offset station CCVar nuke (#26175)"

This reverts commit 44b20f60ff.

# Conflicts:
#	Content.Server/Station/Systems/StationSystem.cs
#	Resources/Prototypes/Maps/europa.yml

* Fix

* Review
2024-06-18 23:27:34 +10:00
PJBot
92159edba3 Automatic changelog update 2024-06-18 12:12:43 +00:00
metalgearsloth
65821c96f4 Fix conveyor mispredicts (#28157)
* Fix conveyor mispredicts

Instead of tracking active conveyors we instead track the conveyed entities. This also handles things like stacking conveyors more gracely.

* Fix ActiveConveyor

* Fix lerping
2024-06-18 22:11:36 +10:00
metalgearsloth
47653f359d Update submodule to 226.1.0 (#29159) 2024-06-18 22:07:35 +10:00
DrSmugleaf
bd0631c45b Add cvar to disable round end pvs overrides (#29151) 2024-06-18 22:00:29 +10:00
PJBot
af7e599654 Automatic changelog update 2024-06-18 11:00:45 +00:00
Tayrtahn
e5ef2a358c Implement vital chef's hat functionality (#25950)
* Implement crucial chef's hat functionality

* Unified stopping code and added events.

* Added documentation to events

* Rerun tests

* Made review changes, and fixed potential desync bug.

* Update whitelist
2024-06-18 20:59:37 +10:00
Ed
a1e66cfbb4 clean up weather systems (#28792)
* clean up weather systems

* Update WeatherComponent.cs

* Update SharedWeatherSystem.cs

* some fix

* Update SharedWeatherSystem.cs

* Update WeatherComponent.cs

* Update WeatherComponent.cs

* revert autoPause

* Update SharedWeatherSystem.cs
2024-06-18 20:27:34 +10:00
Mr. 27
82c4db67bc Fix female reptilians not having gasp sounds (#29143)
inital
2024-06-18 13:56:37 +10:00
Tayrtahn
0cf56b9bbd Fix DresserFilled storagefill rarely causing an error (#29135)
Add ClothingUniformJumpskirtColorPink to an OrGroup
2024-06-17 19:11:17 -04:00
PJBot
e04492e02d Automatic changelog update 2024-06-17 23:10:25 +00:00
Tayrtahn
9b5219a226 Fix double label on chem jugs (#29137) 2024-06-17 19:09:19 -04:00
Ed
4c12b6e7c6 cool hat, delete cave arena (#256)
* hat and glasses

* delete cave arena

* Update default.yml
2024-06-17 23:48:42 +03:00
Ed
02b7fe5933 marking update (#254)
* new horny horns

* fuck this horns

* horns and hairs

* glasses resprite

* наращивание волос

* больше наращивания

* Update braid.png
2024-06-17 22:11:22 +03:00
Tayrtahn
e5a85e2a13 Make wearing an Ushanka also apply accent to your name (#29111) 2024-06-17 14:03:55 -04:00
Ed
a6ccb25b4b Merge pull request #252 from crystallpunk-14/ed-17-06-2024-upstream
Ed 17 06 2024 upstream
2024-06-17 16:44:01 +03:00
Ed
4ecdb6f296 Update lube.ftl 2024-06-17 16:32:55 +03:00
Ed
917f2de69e Update glue.ftl 2024-06-17 16:16:09 +03:00
Ed
ac3a7a5c1b Update cluwne.ftl 2024-06-17 15:06:46 +03:00
Ed
f1c4e9e382 Update transformable-container-component.ftl 2024-06-17 14:48:40 +03:00
Ed
04d29b6268 Merge remote-tracking branch 'upstream/master' into ed-17-06-2024-upstream
# Conflicts:
#	Resources/Prototypes/Maps/oasis.yml
2024-06-17 14:20:38 +03:00
PJBot
efbcce21bd Automatic changelog update 2024-06-17 10:54:53 +00:00
Ubaser
5038012b67 Add new lizard horns, Demonic (#29022)
add
2024-06-17 13:53:47 +03:00
PJBot
b02e838926 Automatic changelog update 2024-06-17 05:21:53 +00:00
Nemanja
4aa74c5e1d improve meteor spawning (#29057) 2024-06-17 01:20:47 -04:00
PJBot
ffcaf61ffa Automatic changelog update 2024-06-17 03:31:16 +00:00
deltanedas
c332677971 remove robotics console emag checking, make it a bit fairer (#27876) 2024-06-16 23:30:10 -04:00
PJBot
7ff557d1ef Automatic changelog update 2024-06-17 03:22:36 +00:00
Cojoke
390f8d19d1 Makes Eyepatches Flippable (#26277) 2024-06-16 23:21:29 -04:00
deltanedas
f7aca6b15f nuke actions from map files (#28589) 2024-06-16 23:03:01 -04:00
PJBot
72665eb6e0 Automatic changelog update 2024-06-17 01:14:39 +00:00
Partmedia
388d372ee8 Fix incorrect use of atmos dt (#29112) 2024-06-16 21:13:32 -04:00
PJBot
8a199a882b Automatic changelog update 2024-06-16 23:25:39 +00:00
Futuristic-OK
1482345330 Delete RandomSentience event (#28982) 2024-06-17 02:24:29 +03:00
Jaraten
2b577ebfbe resprite glasses (#251) 2024-06-17 00:46:02 +03:00
Jaraten
f79c6de912 fix cardboard wall sprites (#250)
* fix cardboard wall sprites

* То что лень делать тебе, придется делать мне.

---------

Co-authored-by: Ed <edwardxperia2000@gmail.com>
2024-06-17 00:40:35 +03:00
Tayrtahn
89a9f07c3a Add a system for modifying entity names without causing conflicts (#27863) 2024-06-16 15:38:53 -04:00
deltanedas
ee2769ed9f atlas update (#28514)
* atlas update

* unkill previous changes

* fix lawyer room

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-06-16 13:38:00 -06:00
Nemanja
5e50bd83d6 Missing meteor presets (#29044)
* add meteors into missing game presets

* changes for real

* implement code

* this too
2024-06-16 21:37:43 +02:00
lzk
31d155dfe0 Update box (#28348)
* Update box

robotics console

* Morgue airlock

* update
2024-06-16 13:37:37 -06:00
lzk
ce5641036c Update fland (#28347)
robotics console
2024-06-16 13:37:26 -06:00
lzk
92e6e10c0a Update train (#28345)
robotics console
2024-06-16 13:37:17 -06:00
lzk
93ea4c07ff Update packed (#28346)
robotics console
2024-06-16 13:37:08 -06:00
lzk
99358e8d4d Update marathon (#28344)
* Update marathon

robotics console

* morgue door
2024-06-16 13:36:54 -06:00
lzk
771c34c304 Update omega (#28343)
* Update omega

robotics console

* morgue door
2024-06-16 13:36:38 -06:00
lzk
fdb487ccfe Update origin (#28342)
robotics console
2024-06-16 13:36:11 -06:00
metalgearsloth
6829630d0c Update submodule to 226.0.0 (#29100) 2024-06-17 01:51:08 +10:00
Leon Friedrich
14cd55e765 Remove ServerAlertsComponentTests (#29027) 2024-06-17 01:46:59 +10:00
Ed
e4678dc66e Nails, Hammer tool and construction recipe update (#249)
* foundation resprite

* stone material, stack

* nails!

* mini hammer resprite

* hammer tool

* wall building update

* table crafting update

* bonfire craft update

* add wooden wall craft

* chest craft update

* Update attributions.yml

* Update tables.yml

* Update simple.yml
2024-06-16 18:31:47 +03:00
PJBot
c9540db6b4 Automatic changelog update 2024-06-16 11:59:03 +00:00
deltanedas
1cb9f5dbed add carp hardsuit for traitors (#25155)
* FactionClothing

* swtich carp to the Dragon faction

* add carp hardsuit

* add carp hardsuit to uplink

* fixes

* webedit ops 1

* why did i name it that wtf

* among

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-06-16 21:57:57 +10:00
Jaraten
f0c3d99706 repsite hammer (#248) 2024-06-16 14:40:58 +03:00
PJBot
22efc2b4ac Automatic changelog update 2024-06-16 11:31:41 +00:00
Leon Friedrich
f121946b12 Fix RotateWhilePulling not working (#29032) 2024-06-16 21:30:35 +10:00
PJBot
ac979640bf Automatic changelog update 2024-06-16 11:28:41 +00:00
Cojoke
26f809aebf Instruments for Musician lodouts (#29059)
* Musician Instruments to Musician lodouts

* Move instruments to their own file, fix instruments spawning on the floor, Found bug of Loadout dropping items on the floor rather than sorting inventory

* Whoops, I removed bagpipes for some reason
2024-06-16 21:27:35 +10:00
deltanedas
f730d120c7 give spiders unique venom reagent (#29066)
* add mechanotoxin

* make tarantulas use mechanotoxin

* trolled

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-06-16 21:26:59 +10:00
DrSmugleaf
4954b6d79e Add cvar to disable ghosting killing your crit mob (#28945)
* Add cvar to disable ghosting killing your crit mob

* Update Content.Shared/CCVar/CCVars.cs

Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
2024-06-16 21:21:16 +10:00
DrSmugleaf
32e1d1a3b5 Use EntityQuery for mob state system resolves (#29021) 2024-06-16 21:20:54 +10:00
Nemanja
9348a5cea6 Apc & Substation resprite (#28998)
* substation

* apcs

* top pixels

* new screens
2024-06-16 05:43:22 -05:00
PJBot
732576b518 Automatic changelog update 2024-06-16 03:39:23 +00:00
Nemanja
3644602fb8 Fix magboots not needing a grid to work (#29034)
* Fix magboots not needing a grid to work

* ok fix it for realsies
2024-06-16 13:38:17 +10:00
PJBot
a341c3a1e9 Automatic changelog update 2024-06-16 02:07:18 +00:00
Keer-Sar
65af00afc4 Fixes capitalization mistake when non-humanoids insert things into machines: Fixes #28997 (#29071)
add CAPITALIZE()
2024-06-15 22:06:12 -04:00
Nemanja
dfe9d5264c Slightly speed up borgsystem module check (#29070) 2024-06-15 21:32:01 -04:00
Cojoke
2fde5ac580 Cleans up ClothingShoesBootsMagSyndie in magboots.yml (#28653)
* Remove Explosive Component from ClothingShoesBootsMagSyndie

* Makes BaseJetpack a parent of ClothingShoesBootsMagSyndie

* fix boots in hand looking like jetpack bug

* make syndicate magboots child of magboots
2024-06-15 21:25:51 -04:00
Nemanja
c2f88b2e17 fix exclusive borg module bug (#29038) 2024-06-15 21:10:21 -04:00
Partmedia
e633fe801b Widen power monitoring widget (#29062) 2024-06-15 21:06:54 -04:00
PJBot
17aa1f98a1 Automatic changelog update 2024-06-16 00:25:38 +00:00
github-actions[bot]
ddd7008bfe Update Credits (#29065)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
2024-06-15 20:25:34 -04:00
Keer-Sar
97761e49ca Change "they're" to "their" in the lungs cargo bounty: Fixes #29051 (#29064)
change they're to their
2024-06-15 20:24:29 -04:00
Nemanja
c063347ed6 fix meteor announcement color (#29058) 2024-06-15 19:24:15 -04:00
PJBot
904f15fed7 Automatic changelog update 2024-06-15 22:39:34 +00:00
Cojoke
280b0a1c24 Adds New Shoes to Sec loadouts (#29018)
* Adds New Shoes to Sec loadouts

* Remove Cowboy stuff from sec drobe(bye sheriff) + requested changed
2024-06-15 18:38:28 -04:00
PJBot
2a710ee4f6 Automatic changelog update 2024-06-15 21:43:19 +00:00
FunTust
6d6da1267a ToggleVisualLayers hair disappeared fix (#28949)
* Update ClothingSystem.cs

* did it in a better way

* Update ClothingSystem.cs
2024-06-15 17:42:13 -04:00
icekot8
a2affe3d00 add 👷 JobCondition system for reagents (#29023)
* hell 💀

* you're right

i'm dumb

* use the beautiful protoid and or in localization 🥩

* 🙏
2024-06-15 17:36:25 -04:00
DrSmugleaf
2ddebba0e9 Fix speech bubble occlusion being checked from the player's position instead of the eye's (#29012) 2024-06-15 17:35:05 -04:00
PJBot
b70f222cf1 Automatic changelog update 2024-06-15 21:33:56 +00:00
lzk
6d3d92cd50 Fix mime mask loadout minlimit (#29056) 2024-06-15 17:32:49 -04:00
PJBot
a9610d4f85 Automatic changelog update 2024-06-15 21:07:04 +00:00
Partmedia
6835e6b4aa Adjust TEG efficiency curve, remove heat transfer limit (#29050)
The TEG used to limit hot-cold energy transfer based on actual power drawn, and had maximum efficiency at whatever temperature difference. This PR adjusts the hot-cold energy transfer to be uncapped, "venting" the excess heat that is not used to generate power, and adds an efficiency curve that limits efficiency at low thermal temperatures.

People have been cheesing the TEG by hooking up the hot end to the CO2 miner (which produces infinite, room-temperature gas) and the cold end to a space radiator.

With this change, you will actually need to set up a burn chamber in order to get appreciable power out of the TEG (see below).

If you build a gas holding chamber, you will have to throttle the gas flowing into the TEG instead of constantly cycling the gas through over and over again.
2024-06-15 14:05:57 -07:00
PJBot
30cdb90ac2 Automatic changelog update 2024-06-15 17:52:01 +00:00
BombasterDS
81e41f8e8d Mannequin (#29004)
* Mannequin

* rsi license fix

* damage container fix

* container fix

hope this works

* layers fix + appearance comp (mb it help?)

* maybe fixed?

* one day it will work...

* can't even understand why test failing... (maybe fix?)

* last try?
2024-06-15 13:50:55 -04:00
PJBot
5dbee6fc41 Automatic changelog update 2024-06-15 15:46:02 +00:00
Ian
ca58811bdb make the donk microwave drop the correct board on normal deconstruction (#29037)
* make the donk microwave drop the correct board on normal deconstruction

* removed the unnecessary SyndicateMicrowaveMachineBoard tag
2024-06-15 11:44:56 -04:00
PJBot
ba16cd19b2 Automatic changelog update 2024-06-15 15:18:22 +00:00
ShadowCommander
789453adf0 Make firelock warning light not require power and add a PointLight (#29024)
* Add a PointLight to firelocks when warnings are active

* Remove power requirement for lights
2024-06-15 11:17:16 -04:00
TsjipTsjip
71eb4d9178 CVarify meteor behavior (#29030)
* CVarify meteor behavior

* Cache value to reduce CVar calls, hook into OnValueChanged

* _cfg is still null at construction time, fixed by just making it set up on Started instead

* Invoke immediately! Learning more every step of the way.

* Move cached value initialisation to Initialize call

* Add explicit supercall
2024-06-15 10:03:20 -04:00
Ed
c5a8e96dca Skills system (#247)
* init basic skill system

* add skill requirement to advanced melee weapon

* working hard

* more hard work

* shot skill issue

* Now the skills give you the components

* add job special autolearning skills

* traits recreating

* some tweaks

* remove bg and components for now

* sharpening now require skills

* add alchemist role on maps

* pestle skill issue
2024-06-15 16:55:04 +03:00
PJBot
7e4c7607e6 Automatic changelog update 2024-06-15 13:20:29 +00:00
Nemanja
31d1d3b6e7 fix borgs getting deleted by salvage magnets (#29006) 2024-06-15 23:19:23 +10:00
PJBot
e16bf41da1 Automatic changelog update 2024-06-15 11:26:48 +00:00
nikthechampiongr
9dc9e22d13 Bwoink fix (#28899)
* Fix incorrect usage of loc string

* Make it so you can no longer ahelp someone who is no longer selected
2024-06-15 04:25:42 -07:00
metalgearsloth
9b8c544191 Update submodule to 225.0.0 (#29016) 2024-06-15 17:18:48 +10:00
PJBot
7b6e30d688 Automatic changelog update 2024-06-15 06:53:55 +00:00
metalgearsloth
8f12e90b90 Don't use invalid defaults for loadouts (#28740)
* Don't use invalid defaults for loadouts

At the time it made more sense but now with species specific stuff it's better to have nothing.

* Loadout SetDefault only applies valid loadouts
2024-06-15 16:53:42 +10:00
metalgearsloth
f0fbedd640 Fix RoleLoadout equality (#28737)
* Fix RoleLoadout equality

Knew it was janky but thought SequenceEqual was better than it is so we just do it manually.

* Also implement this
2024-06-15 16:52:49 +10:00
Leon Friedrich
a3d9f7291d Fix IComponentFactory mock in benchmark (#29015) 2024-06-15 16:42:25 +10:00
LankLTE
bb61191b24 Set ahelp new player icon to use minutes, not seconds (#29014)
Replace seconds with minutes
2024-06-15 16:35:34 +10:00
PJBot
62b9e423c9 Automatic changelog update 2024-06-15 06:04:02 +00:00
Flareguy
7afbe3c98e Adds 2 new space ruins (#28971)
adds 2 new space ruins
2024-06-15 00:02:56 -06:00
deltanedas
65424e0253 saltern update (#29001)
Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-06-15 00:01:13 -06:00
PJBot
16e7fec5e8 Automatic changelog update 2024-06-15 05:21:49 +00:00
Nemanja
ba24cc8f5c Fix drinking from openable containers (#29010) 2024-06-14 22:20:42 -07:00
AJCM-git
c339773b5f Fixes the ShowRulesCommand and the client not syncing rules correctly (#28752) 2024-06-15 00:41:25 -04:00
PJBot
2953e87f1c Automatic changelog update 2024-06-15 04:02:28 +00:00
Nemanja
d907e4ef57 make pulled uncuffing slower & reduce uncuff spam cooldown (#29008)
* prevent people being pulled from uncuffing themselves

* block -> modify duration
2024-06-14 21:01:22 -07:00
PJBot
d6b8b34f25 Automatic changelog update 2024-06-15 03:44:29 +00:00
Nemanja
748e5831e8 Add moon boots (#29009) 2024-06-14 20:43:23 -07:00
PJBot
06c8238164 Automatic changelog update 2024-06-15 03:39:49 +00:00
Nemanja
f136657b38 Revamped Meteor Swarm (#28974)
* meteor code and balanced values

* Meteor Swarms

* Update meteors.yml

* Update meteors.yml

* HOO! (fix overkill bug and buff space dust)

* undo BloodstreamComponent.cs changes

* DamageDistribution -> DamageTypes

* part 2.
2024-06-14 20:38:43 -07:00
PJBot
1d5840c279 Automatic changelog update 2024-06-15 03:24:48 +00:00
Brandon Hu
298de1ba39 fix(uplink): Remove useless gps from death rattle box (#28999) 2024-06-14 23:23:42 -04:00
PJBot
97695cfa62 Automatic changelog update 2024-06-15 03:14:58 +00:00
Robert V
48f90322f2 Allow vending machines to be repaired (#28920)
Vending machines can be repaired
2024-06-14 23:13:52 -04:00
PJBot
6132b5e07a Automatic changelog update 2024-06-15 03:01:06 +00:00
Verm
41a081d5ef Donk co. microwave + microwave tweaks (#28951)
* THE syndie microwave

* Always burn to explode microwave when copying

* Make it so copying ids stop when the microwave is goign to explode

* Made explosion destroy the board and spit out the machine parts

* Move logic is MicrowaveSystem, make metal cooking use the same logic

* Fix passing the wrong malfunction time

* Shuttle cannot escape aggressive branding

* Always make it explode with an id

* Forgot to invert bool, move it after fry chance
2024-06-14 23:00:00 -04:00
PJBot
7d0798cea5 Automatic changelog update 2024-06-15 02:59:36 +00:00
Plykiya
835d1dd153 Prevent borgs from getting duplicate modules (#28943)
* Prevent borgs from getting duplicate modules

* outta the loop

---------

Co-authored-by: plykiya <plykiya@protonmail.com>
2024-06-14 22:58:30 -04:00
Zonespace
3cd740c32b Replaces reagent-effect-guidebook-missing with more descriptive guidebook entries (#28817)
removes `reagent-effect-guidebook-missing`

Co-authored-by: John Doe <johndoe@gmail.com>
2024-06-14 22:43:36 -04:00
deltanedas
9e4d191189 make RefillableSolution optional for SolutionTransfer (#28830)
Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-06-14 22:42:40 -04:00
PJBot
8eb85a08b6 Automatic changelog update 2024-06-15 02:20:14 +00:00
K-Dynamic
e803871172 Adds witch robes (#28965)
* ze

* autodrobe entry

* autodrobe crate cost adjust
2024-06-14 22:19:08 -04:00
PJBot
27ba344084 Automatic changelog update 2024-06-14 21:45:29 +00:00
Verm
68807cb25e Changes all the uplink ally icons to be a combination of the mob + radio (#28954)
* New Icons!

* Better meta info
2024-06-14 17:44:23 -04:00
Verm
a4ade69640 Move secure crate labels to the left (#28952)
Move secure label to the left
2024-06-14 17:42:58 -04:00
PJBot
e8dd5d4312 Automatic changelog update 2024-06-14 20:33:46 +00:00
Thomas
9ebfb1d64f Fix Loadout Requirements Only Displaying One Requirement (#28994)
Collect all group effects failed instead of only first one failed
2024-06-14 16:32:39 -04:00
PJBot
2711ef7f48 Automatic changelog update 2024-06-14 17:23:07 +00:00
Pieter-Jan Briers
ba6853d386 It is pride month, nukies. You know what that means. (#28992)
* Make the nuke gay

* I forgot to commit the gay

* Add pride month

* Use holiday visualizer for nuke

* Fix pride month

* Trans too
2024-06-14 19:22:01 +02:00
PJBot
9efa5de340 Automatic changelog update 2024-06-14 16:54:55 +00:00
dffdff2423
05cc7541dd Rename generic drugs (#28989)
* Rename generic drugs

Space Drugs and Stimulents cause quite a bit of confusion.

* Ensure everything is updated to the new names.
2024-06-14 12:53:48 -04:00
Ed
39bb249eb3 Alchemy fun mechanics (#246)
* heating solution refactor

* chromium slime effect refactor

* guidebook hint

* hint chance fix

* убираем ненужное
2024-06-14 19:10:16 +03:00
PJBot
795196c964 Automatic changelog update 2024-06-14 15:25:46 +00:00
Zonespace
6d71ec1b14 Non-uplink PDAs no longer can have TC inserted into them (#28985)
* PDAs no longer can have TC inserted into them

* far better way of doing this

---------

Co-authored-by: John Doe <johndoe@gmail.com>
2024-06-14 11:24:40 -04:00
Verm
24e7653c98 Resprite rodent inhands + add hamlet inhands (#28955)
* Resprite rodent inhands + add hamlet inhands

* Small ham adjustment
2024-06-14 09:45:01 -04:00
Hannah Giovanna Dawson
3b3163c4f4 SS-28662 Add cvars to support forcing people to departures and making those at departures invincible (#28765)
* SS-28662 Add cvar to force spawn everyone at departures

This cvar means everyone must spawn at departures. This
could be handy for an admin event? But mostly it's so the
tutorial departures terminal can be seen by all newbies on
gateway servers.

* Small fix to ArrivalsSystem flow

* Remove incorrect todo

* Add godmode arrivals cvar
2024-06-14 04:15:42 -07:00
Ubaser
e70131e5b4 Lighten throwing knive's border (#28977)
add
2024-06-14 10:55:30 +03:00
PJBot
0d869a317f Automatic changelog update 2024-06-14 06:25:24 +00:00
Moomoobeef
adad6b2b04 cargo can now order fax machines (#28968)
* cargo can now order fax machines

* removed fax manual
2024-06-14 16:24:18 +10:00
PJBot
e7a3fd5285 Automatic changelog update 2024-06-14 06:20:53 +00:00
Killerqu00
4c182298cc uncuffCooldown *= 5 (#28095) 2024-06-14 16:19:47 +10:00
IProduceWidgets
df2c3ec844 Evac shuttle for Oasis (#27998)
* Add robo control comp, also de-reinforce a lot of walls.

* Add Accordia Evac shuttle for Oasis.

* Revert "Add robo control comp, also de-reinforce a lot of walls."

This reverts commit b6be6b616aa9732b81e02bed76e3c9ae103cf7cb.
2024-06-13 23:26:39 -06:00
PJBot
39d7afec2b Automatic changelog update 2024-06-14 02:44:08 +00:00
Tabitha
c52073f542 Add chicken speech sound (#28948) 2024-06-13 19:43:02 -07:00
PJBot
bcf8594431 Automatic changelog update 2024-06-14 02:41:29 +00:00
Boaz1111
8059028015 makes PKA able to mine rocks in one hit (#27476)
gives it gatheringprojectile
2024-06-14 12:40:23 +10:00
Tayrtahn
6c343ddae2 Move SleepingSystem to Shared & cleanup (#28672)
* Move SleepingSystem to Shared & cleanup

* Remove empty OnShutdown handler
2024-06-14 12:15:29 +10:00
crasg
c79849ae29 Remove Rat King from MouseMigration and add it to it's own Event (#28872) 2024-06-14 12:12:24 +10:00
Repo
f40267e68e Add trailing comments on multiline lists - editorconfig. (#28922)
Add trailing comments on multiline lists.
2024-06-14 12:10:41 +10:00
PJBot
af11bc3f51 Automatic changelog update 2024-06-14 02:05:51 +00:00
Cojoke
57858cd6a5 Lasers passover objects like projectiles unless the target is clicked on (#28768)
* uh...

* fix

* alright, there we go

* Revert "alright, there we go"

This reverts commit 448180bfa58cc24c42a4d59ef34c017b9941f37b.

* Make lasers not hit certain objects and lying mobs unless clicked on

* comment

* Update Content.Server/Weapons/Ranged/Systems/GunSystem.cs

* an l vanished?

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2024-06-14 12:04:45 +10:00
PJBot
e481925ea4 Automatic changelog update 2024-06-14 02:02:39 +00:00
osjarw
ad3f1f77b7 Nodescanner now works with right click (#26873) 2024-06-13 22:01:32 -04:00
Ghagliiarghii
47bf64b883 Fix no combat knives in sec techfab (#28086) 2024-06-14 11:10:17 +10:00
MjrLandWhale
222d3b532d Override under-pressure lock-out in air alarm "Fill" mode (#28909) 2024-06-13 15:25:02 -08:00
Emisse
4e8375e5f9 bagel update (#28946) 2024-06-13 16:03:01 -06:00
lzk
ccd402d8d1 Adjust softdrink restock crate name (#28934)
These contain restocks for multiple vendors, so change the name and description to reflect this.
2024-06-13 12:21:24 -08:00
Ed
186f91f1d2 Merge pull request #241 from crystallpunk-14/ed-13-06-2024-upstream2
Ed 13 06 2024 upstream 3
2024-06-13 23:20:26 +03:00
Ed
147921c370 Update JobTest.cs 2024-06-13 23:06:08 +03:00
Ed
ac74198d63 Update JobTest.cs 2024-06-13 23:02:03 +03:00
Ed
0211a50581 Energy crystal (#243)
* init magic container system

* charging and discharging

* add energy regenerator

* thaumaturgy glasses, scanning energy

* add energy quartz prorotypes and sprites

* light power controller

* commit special for _des

* simple normalizer crystal slot

* YEEEEEEE BOIII, examined crystalls inside things

* кристал теперь видно, когда он вставлен в стабилизатор

* TryUseCharge приборами

* hello deserty, how are you doing?

* rename regenerator to EnergyDraw, allow draw from slot

* normalizer жрет magic energy файналли

* Update normalizer.yml

* visual polishing

* Update crystal.yml
2024-06-13 22:55:20 +03:00
Ed
791db753fe fuck this test 2024-06-13 22:50:27 +03:00
PJBot
29fa18418e Automatic changelog update 2024-06-13 18:37:44 +00:00
lzk
c3720f9fd9 Add order quantity to cargo invoice label (#28821) 2024-06-13 10:36:38 -08:00
PJBot
1559b080e4 Automatic changelog update 2024-06-13 18:22:55 +00:00
Nemanja
221cb73d8c Fix construction rotation (#28427) 2024-06-13 10:21:48 -08:00
PJBot
1bffa2aee7 Automatic changelog update 2024-06-13 18:12:03 +00:00
Doomsdrayk
7f5476b555 Fix Drozd and C-20r unwielding on use-in-hand (#28728)
Make Drozd and C-20r not unwield on use
2024-06-13 10:10:56 -08:00
Ed
898bf1fa8b try fix tests 2024-06-13 14:08:51 +03:00
Deserty0
d1af83c72a fixed ru emote sound v2 (#240)
* ultrafixxxxx

* Update speech_emotes.yml

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
2024-06-13 13:39:55 +03:00
Ed
124f6f3964 Update natural.yml 2024-06-13 13:29:46 +03:00
Ed
720d4ad144 save old grass sprite 2024-06-13 12:59:58 +03:00
Ed
fb7ffc4712 Update arenas.yml 2024-06-13 12:57:19 +03:00
Ed
43d8839f51 Update options-menu.ftl 2024-06-13 12:52:32 +03:00
Ed
d92d75affa Update ame-controller-component.ftl 2024-06-13 12:46:50 +03:00
Ed
151db2c9cc fix locale 2024-06-13 12:42:52 +03:00
Ed
db91bab5b1 Update CCVars.cs 2024-06-13 12:35:33 +03:00
Ed
8ff09f552b Merge remote-tracking branch 'upstream/master' into ed-13-06-2024-upstream2
# Conflicts:
#	Content.Client/Guidebook/GuidebookSystem.cs
#	Content.Server/Damage/Systems/DamageOtherOnHitSystem.cs
#	Content.Shared/Guidebook/GuideEntry.cs
#	Content.Shared/Preferences/HumanoidCharacterProfile.cs
#	Resources/Prototypes/Accents/word_replacements.yml
#	Resources/Prototypes/Maps/arenas.yml
#	Resources/Prototypes/Maps/atlas.yml
#	Resources/Prototypes/Maps/bagel.yml
#	Resources/Prototypes/Maps/box.yml
#	Resources/Prototypes/Maps/cluster.yml
#	Resources/Prototypes/Maps/core.yml
#	Resources/Prototypes/Maps/debug.yml
#	Resources/Prototypes/Maps/europa.yml
#	Resources/Prototypes/Maps/fland.yml
#	Resources/Prototypes/Maps/marathon.yml
#	Resources/Prototypes/Maps/meta.yml
#	Resources/Prototypes/Maps/oasis.yml
#	Resources/Prototypes/Maps/omega.yml
#	Resources/Prototypes/Maps/origin.yml
#	Resources/Prototypes/Maps/packed.yml
#	Resources/Prototypes/Maps/reach.yml
#	Resources/Prototypes/Maps/saltern.yml
#	Resources/Prototypes/Maps/train.yml
#	Resources/Prototypes/lobbyscreens.yml
2024-06-13 12:35:00 +03:00
PJBot
e02ef68259 Automatic changelog update 2024-06-13 06:39:49 +00:00
ShadowCommander
8791f98f0b Fix playtime on player tab getting set to Unknown (#28876)
Update play time on admin panel player tab after db loads
2024-06-12 23:38:43 -07:00
Tayrtahn
68dc1fb055 Fix ninja Spider Clan charge not getting a target (#28871) 2024-06-12 23:37:31 -07:00
PJBot
99f2e6ffa8 Automatic changelog update 2024-06-13 06:31:45 +00:00
Leon Friedrich
d38ad12262 Fix playtime_addrole command printing the wrong time (#28783) 2024-06-12 23:31:21 -07:00
Doomsdrayk
249e4a9c15 Fix guns appearing to cycle bolt when wielded (#28756)
Adds a check during wielding to see if the code is running clientside, and if so skip the part responsible for creating the virtual items.

This is necessary because TrySpawnVirtualItem is blocked from running clientside, so trying to spawn the virtual items for wielding causes the client to always believe the wield has failed. This erroneous failure leads to the display of incorrect feedback until the server's successful wield attempt makes it to the client. The added check prevents wielding from failing in this way and therefore allows the client to behave as expected.
2024-06-12 23:30:39 -07:00
Cojoke
d865bffff3 Fix .30 ammo listing wrong number of bullets in uplink (#28919) 2024-06-13 00:45:52 -04:00
deltanedas
d9bac82402 localize RoleBriefing (#28824)
Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-06-12 22:24:08 -04:00
geraeumig
ab8b3ecec2 Fix magazine sprites after Auto Eject (#28859)
Co-authored-by: geraeumig <alfenos@proton.me>
2024-06-12 22:23:15 -04:00
Moomoobeef
22b1ec9775 added a new sprite for the super synthesizer. (#28884) 2024-06-12 22:20:28 -04:00
PJBot
020b2919ac Automatic changelog update 2024-06-13 02:20:16 +00:00
Plykiya
1d4d6c3331 Fix gauze stopping if it stops bleeding (#28844)
delete a line

Co-authored-by: plykiya <plykiya@protonmail.com>
2024-06-12 22:19:10 -04:00
PJBot
7d4586b27b Automatic changelog update 2024-06-13 02:18:41 +00:00
Cojoke
865810c6e1 New Sprites for Tranq Shells + Add consistancy to printing Tranqs (#28903)
* New Sprites for Tranq

* Add consistancy to secfab print
2024-06-12 22:17:35 -04:00
Stalen
d322a82bdf Pets toggle internals fix (#28904) 2024-06-12 22:17:07 -04:00
Verm
0e32d632fa Make automatic gasps not create a chat message (#28907)
No chat gasp
2024-06-12 22:15:43 -04:00
Partmedia
dc0327c3c0 Update PA admin warnings (#28911)
With singulo fixed, PA strength 3 and below (level 2) are now safe.
Update the admin logging to reflect this.
2024-06-12 22:15:15 -04:00
bibbly
12911d292f Reach Fixes (#28913)
various small changes to Reach
2024-06-12 20:09:10 -06:00
PJBot
1aa5e023d4 Automatic changelog update 2024-06-12 22:57:13 +00:00
Partmedia
35e5a96b7e Fix queued deletion check (singulo loosing at beyond PA 1 but only on live servers) (#28906)
Fix queued deletion check
2024-06-12 15:56:07 -07:00
dragonryan06
b091a55d7d Add new icon for Remove Evidence verb (#28898) 2024-06-12 18:05:56 -04:00
PJBot
ca39135c99 Automatic changelog update 2024-06-12 18:12:00 +00:00
deltanedas
8c514b90fd fix pda ui troll (#28896)
* fix pda ui troll

* bruh

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-06-12 20:10:53 +02:00
Ed
d462ce85f8 minor AlchemyTest map update (#237) 2024-06-12 18:38:48 +03:00
PJBot
9b40bcc1d9 Automatic changelog update 2024-06-12 13:34:04 +00:00
Robert V
94bf301a8b Comms Consoles without CanShuttle can no longer recall (#28803)
Consoles without CanShuttle can no longer recall
2024-06-12 09:32:57 -04:00
PJBot
a0f709918d Automatic changelog update 2024-06-12 10:33:18 +00:00
Deserty0
90354fa6d3 Fix "no materials loaded" messege in lathes (#28885)
fix
2024-06-12 13:32:11 +03:00
Flareguy
9a32a1949c Removes Trials of Mana grassland sprites: Bare Minimum Edition (#28868)
* replace the grass sprites. again

* Fix dirt

---------

Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
2024-06-11 23:04:43 -07:00
PJBot
d6399446b6 Automatic changelog update 2024-06-12 01:08:43 +00:00
Boaz1111
3d25893664 Cluster Update (#28854)
Changes armoury, cargo job slot
2024-06-11 19:07:37 -06:00
PJBot
c5b30a384f Automatic changelog update 2024-06-11 22:19:37 +00:00
Tayrtahn
bd42c2b56a Fix nearest beacon messages reporting the opposite direction (#28869)
* Fix nearest beacon messages reporting the opposite direction

* Lets document that method, shall we?
2024-06-11 18:18:30 -04:00
Ed
f37b6f47f2 Merge pull request #235 from crystallpunk-14/revert-230-ed-09-06-2024-upstream
Revert "Ed 09 06 2024 upstream"
2024-06-11 15:20:59 +03:00
Ed
5e78ac2c22 Revert "Ed 09 06 2024 upstream (#230)"
This reverts commit 50470c3aaa.
2024-06-11 15:20:47 +03:00
Ed
b30db3a30f Merge pull request #234 from crystallpunk-14/revert-233-revert-230-ed-09-06-2024-upstream
Revert "Revert "Ed 09 06 2024 upstream""
2024-06-11 15:20:08 +03:00
Ed
bb3c74d557 Revert "Revert "Ed 09 06 2024 upstream (#230)" (#233)"
This reverts commit b89117f8e6.
2024-06-11 15:19:52 +03:00
Ed
b89117f8e6 Revert "Ed 09 06 2024 upstream (#230)" (#233)
This reverts commit 50470c3aaa.
2024-06-11 15:19:27 +03:00
Ed
36da152d73 Clothing update (#231)
* added cotton shirts

* pants update

* add new cloaks

* Update misc_startinggear.yml

* glasses update

* Update migration.yml

* remove yellow hoodie helmet
2024-06-11 13:48:01 +03:00
PJBot
b6d7a6a8e2 Automatic changelog update 2024-06-11 09:34:42 +00:00
lzk
41a0ffba38 Add reward line in bounty label (#28853) 2024-06-11 12:33:36 +03:00
lzk
2b2883005d Fix some wideswing animations (#28819)
* Fix some wideswing animations

* 2
2024-06-11 08:55:37 +03:00
PJBot
3c2b1affef Automatic changelog update 2024-06-11 02:49:30 +00:00
dffdff2423
f571e23037 Enable save button on changing job unavailable preference (#28839)
Enable save button on changing unavailable pref

Fix an issue where the save button was disabled when just changing your job unavailable preference
2024-06-11 12:48:23 +10:00
PJBot
d3d8a9e59c Automatic changelog update 2024-06-10 13:22:04 +00:00
Nemanja
63ad5e0b83 enable search filters on drinks guidebook (#28815) 2024-06-10 09:20:58 -04:00
PJBot
b60c9a8fe8 Automatic changelog update 2024-06-10 13:20:31 +00:00
Zonespace
bc5a6279f5 Fixes a typo in the glossary (#28818)
independance -> independence

Co-authored-by: John Doe <johndoe@gmail.com>
2024-06-10 09:19:24 -04:00
Chief-Engineer
7032c0106a Fix description of temp servers and add region tags (#28811)
* Fix description of LRP temp servers

* update regions
2024-06-09 22:13:26 -05:00
nikthechampiongr
e95fb9aa7f Disable panic bunker for servers (#28812)
* Disable panic bunker for servers

* Add disabled stuff back in to be reenabled later
2024-06-10 01:41:04 +02:00
Pieter-Jan Briers
0804020410 FUCK (#28808) 2024-06-10 00:13:29 +02:00
Leon Friedrich
edd13ad82f Fix wizardsDenCoreOnly.toml (#28807)
Fix wizardsDenCoreOnly
2024-06-10 07:48:47 +10:00
Chief-Engineer
d741968714 Temporarily update server configs (#28780)
* update configs

* Update Resources/ConfigPresets/WizardsDen/wizardsDenGateway.toml

* Update Resources/ConfigPresets/WizardsDen/wizardsDenLRPTide.toml

* LF

* Apply suggestions from code review

Co-authored-by: Julian Giebel <juliangiebel@live.de>

* Update Resources/ConfigPresets/WizardsDen/wizardsDenGateway.toml

Co-authored-by: Julian Giebel <juliangiebel@live.de>

---------

Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
Co-authored-by: Julian Giebel <juliangiebel@live.de>
2024-06-09 23:32:10 +02:00
Ed
50470c3aaa Ed 09 06 2024 upstream (#230)
* Revert "Buff the AME until somebody fixes engineering" (#28419)

* Automatic changelog update

* hand teleport portals now may start in the same grid. (#28556)

* Microwave recipes now uses stacktype id instead of entity prototype id for stacked entities (#28225)

* Automatic changelog update

* Add "fill level" sprites to mops and damp rag (#28590)

* Automatic changelog update

* Reword some criminal records text (#28597)

* Update criminal-records.ftl

* Update criminal-records.ftl

* Update criminal-records.ftl

* Remove obsolete VisibilitySystem functions (#28610)

Remove obsolete visibility functions

Co-authored-by: plykiya <plykiya@protonmail.com>

* Prayable datafield typo (#28622)

* notifiactionPrefix -> notificationPrefix

* notifiactionPrefix -> notificationPrefix

* Update engine to v224.1.0 (#28624)

* Use dummy sessions in NukeOpsTest (#28549)

* Add dummy sessions

* Update NukeOpsTest

* Fix PvsBenchmark

* Update engine to v224.1.1 (#28632)

* Add Job preference tests (#28625)

* Misc Job related changes

* Add JobTest

* A

* Aa

* Lets not confuse the yaml linter

* fixes

* a

* Add logs that provide session to player admin logs (#28628)

* Cluster Update (#28627)

done here

* Automatic changelog update

* minor banner changes (#28636)

* minor banner changes

* Uhrmm actchually it's you're, not your

* Update banners.yml

props Hyenh

* Revenant spell catalog locale (#28638)

locale

* Make cuff default range again (#28576)

* Make cuff default range again

* uncuff distance

* how about ONE

---------

Co-authored-by: plykiya <plykiya@protonmail.com>

* Automatic changelog update

* Machine-code cleanup (#28489)

* Make Projectiles Only Hit a Variety of Station Objects Unless Clicked on (#28571)

* Automatic changelog update

* Fix Smoke-grenade.ogg not being mono (#28593)

* Fix Cigars Sprites + YAML fix for Inhand unlit cigars/cigs (#28641)

* Automatic changelog update

* Clean up Eva and Hardsuit helm yml + Lets atmos firesuit helm work as a BreathMask (#28602)

* Shifts borgs hats to the right a bit (#28600)

* Fix mouse inhands (#28623)

* Adjust some touch reaction damage levels (#28591)

* Automatic changelog update

* Add closing storage UIs to StorageInteractionTest (#28633)

* Update rules (#28452)

* Add support for LocalizedDatasets to RandomMetadata (#28601)

* Fix Admin Object tab sorting and search (#28609)

* Automatic changelog update

* Internals are kept on as long as any breathing tool is on (#28595)

* Automatic changelog update

* Convert rules to use guidebook parsing (#28647)

* Gives Insulation and NoSlip to all bots (#28621)

* Gives Insulation and NoSlip to all bots

* remove NoSlip from children

* Automatic changelog update

* Nerfs welderbombing (#28650)

nerf welderbombing

* Automatic changelog update

* Give jobs & antags prototypes a guide field (#28614)

* Give jobs & antags prototypes a guide field

* A

* space

Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>

* Add todo

* Fix merge errors

---------

Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>

* Automatic changelog update

* Fix typo in Space Law's restricted gear (#28668)

This typo was included in the wiki as well.

Reported-by: Bobberson in the Discord

* Automatic changelog update

* fixed "silicones" typo in new rules (#28671)

fixed all appearances of silicone where it should have been silicon

* fix janitor not spawning with a survival box (#28669)

hi

* Automatic changelog update

* Fix typo in slime naming conventions (#28682)

* Flatpacker fixes (#28417)

* Return medicine recipe solid material costs to 1 (#28679)

Set material costs of medicine recipes to 1

* Automatic changelog update

* Update Core (#28689)

add

* Fixed the guidebook listing every single rule (#28680)

* Well i tried this way

* New approach (start)

* Did it

* makes spacelaw available, put it under sec

* Automatic changelog update

* rule fixes first pass (#28701)

update

* Add JobRequirementOverride prototypes (#28607)

* Add JobRequirementOverride prototypes

* a

* invert if

* Add override that takes in prototypes directly

* Tweak chapel salvage wreck (#28703)

add

* Fixes client having authority over rules popup cvars (#28655)

* Fixes client having authority over rules popup cvars

* Delete duplicate migration

* Pre-update

* Post-update

* Add locale support for booze and soda jugs labels (#28708)

* Swap some InRangeUnobstructed for InRangeUnoccluded (#28706)

Swap InRangeUnobstructed to InRangeUnoccluded

Co-authored-by: plykiya <plykiya@protonmail.com>

* Automatic changelog update

* Ports the singularity's values from vgstation (#28720)

* ports the singularity values from vgstation

* guidebook fix

* 5000 energy level 6 singulo

* Fix action icons when dragging an active action to another slot (#28692)

* Add DoPopup data field to OnUseTimerTrigger (#28691)

* Dropping Corpses Devoured by Space Dragons on Gib/Butcher. (#28709)

* Update DevourSystem.cs

* Update DevourSystem.cs

* Update Content.Server/Devour/DevourSystem.cs

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Automatic changelog update

* Improve grammar of various petting messages (#28715)

Improve grammar of various petting message

* Fix DamageOtherOnHit.OnDoHit when the target is terminating or deleted (#28690)

* Update Core (#28735)

add

* Fix flatpacker (#28736)

* Fix flatpacker

* a

* rn, atp (#28674)

* Update speech-chatsan.ftl

* Update word_replacements.yml

* Atm-at the moment

* Atm

* Update Resources/Locale/en-US/speech/speech-chatsan.ftl

* Update Resources/Prototypes/Accents/word_replacements.yml

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Add loadout group check for role proto (#28731)

MFW same bug twice at 2 layers because I'm stupid.

* Automatic changelog update

* Try fix RGBee (#28741)

* Automatic changelog update

* Ensure packager creates a release folder (#28426)

I was screaming at the github actions runner before i noticed something i had done before caused me to never have a release folder and thus fail.

* allow ' in character names (#28652)

* Automatic changelog update

* Make freeze, freeze & mute, and unmute verbs work on disconnected players. (#28664)

* Automatic changelog update

* fix singulo decay (#28743)

* Automatic changelog update

* Don't use invalid defaults for loadouts (#28729)

At the time it made more sense but now with species specific stuff it's better to have nothing.

* Maybe fix invalid loadout prototypes (#28734)

* Maybe fix invalid loadout prototypes

So if we have existing data SetDefault is not normally called iirc. So what I think is happening is that if we have old loadout groups that get saved to DB and loaded these get dropped entirely and nothing is used to replace the group unless the person specifically looks at their loadout.

Need someone affected to send me their loadout to confirm it's fixed.

* Better fix

* Automatic changelog update

* Fix null ref exception in PrayerSystem (#28712)

* Fix null ref exception in PrayerSystem

* Also check that prayable ent/comp still exist

* Guidebook Updates for the Amateur Spessman (#28603)

* Created NewPlayer.xml

* Created NewPlayer.yml and added it to guides.ftl

* shifted some controls from Space Station 14 to New? Start here!, as well as made a character creation xml to be written later

* switched some stuff between the New? entry and the Space Station 14 entry

* Made everything so nice!!!!!!!!!!!!!!

* fixed formatting inconsistencies

* added a How to use this guidebook section

* build correction and guidebook clarification for other servers

* wrote character creation ig probs fo shizzle

* added new terms to the glossary and alphabetized it

* meh this seems important enough to add

* okay no more shitsec bad idea

* I HATED Roleplaying.xml ANYWAY!!!

* I REALLY REALLY HATED IT ACTUALLYLLL

* Moved Controls and Radio into newplayer.yml, making meta.yml and radio.yml obsolete

* Separated the character creation bits that are just cosmetic from the ones that matter

* also put all the related new player xml files in their own folder

* expanded Radio.xml, kinda fixed survival.xml

* removed the line that mighta maybe sorta possibly could encourage self antag

* thought about this randomly but ICK OCK

* talking is no longer a key part of this game

* moves stuff around, a lot of stuff. basically moves everything but the jobs themselves around

* ah probably should make sure this works first also me when i lie on the internet

* don't be such a grammar nukie

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

* okay nevermind that's justified

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

* prepare. it is coming. the great reorganization...

* yesyes that's all well and goo- THE REORG IS COMING. THE REORG IS COMING. WAKE UP.

* rename that real quick

* step one begins. first, consolidate existing service entries into their own yaml. this makes botany.yml obsolete.

* update shiftandcrew.yml to only have departments as children also fuck it alphabetization

* consolidated salvage into cargo

* made a new entry for command

* gave salvage a home and service an existence

* made some XML files to be filled out later

* quick rename...

* took some stuff from Intro.txt and i think Gameplay.txt and put it in NewPlayer.xml

* The Great Writing about Departments (25XX, black and white)

* added a bunch of links everywhere

* biochemical is no longer a thing

* service formatinaaaaaaa

* shiny...,,,,,,,,, colo(u)rz..,,,,,,,,,,,,,

* let's get that fixed

* second time i made a typo there as well

* we hate fun around here

* grammar?!???/

* various fixes and more linkings

* oops

* wewlad lol!!

---------

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: AJCM <AJCM@tutanota.com>

* Automatic changelog update

* Add suffixes to excap survival boxes (#28755)

Update emergency.yml

* Add Jani lobby background (#28724)

* Add jani lobby background

* Actually make new lobby screen functional

* Fix license

* Automatic changelog update

* Strip markdown from silicon laws before saying them (#28596)

* saltern update (#28773)

Co-authored-by: deltanedas <@deltanedas:kde.org>

* revert Tornado regex

* Update HumanoidCharacterProfile.cs

* Update arenas.yml

* test

* fix locale

* Update options-menu.ftl

* Update species-names.ftl

* Update debug.yml

* aaaaaa

---------

Co-authored-by: Moony <moony@hellomouse.net>
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
Co-authored-by: icekot8 <93311212+icekot8@users.noreply.github.com>
Co-authored-by: blueDev2 <89804215+blueDev2@users.noreply.github.com>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: TsjipTsjip <19798667+TsjipTsjip@users.noreply.github.com>
Co-authored-by: Plykiya <58439124+Plykiya@users.noreply.github.com>
Co-authored-by: plykiya <plykiya@protonmail.com>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
Co-authored-by: Boaz1111 <149967078+Boaz1111@users.noreply.github.com>
Co-authored-by: Hmeister-real <118129069+Hmeister-real@users.noreply.github.com>
Co-authored-by: lapatison <100279397+lapatison@users.noreply.github.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
Co-authored-by: Cojoke <83733158+Cojoke-dot@users.noreply.github.com>
Co-authored-by: DrSmugleaf <10968691+DrSmugleaf@users.noreply.github.com>
Co-authored-by: Ps3Moira <113228053+ps3moira@users.noreply.github.com>
Co-authored-by: Verm <32827189+Vermidia@users.noreply.github.com>
Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>
Co-authored-by: Repo <47093363+Titian3@users.noreply.github.com>
Co-authored-by: Flareguy <78941145+Flareguy@users.noreply.github.com>
Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>
Co-authored-by: Moomoobeef <62638182+Moomoobeef@users.noreply.github.com>
Co-authored-by: Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>
Co-authored-by: Ubaser <134914314+UbaserB@users.noreply.github.com>
Co-authored-by: AJCM-git <60196617+AJCM-git@users.noreply.github.com>
Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>
Co-authored-by: Lyndomen <49795619+Lyndomen@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: MerrytheManokit <167581110+MerrytheManokit@users.noreply.github.com>
Co-authored-by: Vasilis <vasilis@pikachu.systems>
Co-authored-by: Whisper <121047731+QuietlyWhisper@users.noreply.github.com>
Co-authored-by: nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
Co-authored-by: UBlueberry <161545003+UBlueberry@users.noreply.github.com>
Co-authored-by: AJCM <AJCM@tutanota.com>
Co-authored-by: Psychpsyo <60073468+Psychpsyo@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
2024-06-09 23:53:10 +03:00
Hannah Giovanna Dawson
1bb9d9451f Panic Bunker uses minutes not hours (#28805)
* Panic Bunker uses minutes not hours

* Fixing an instance of hours
2024-06-09 22:45:47 +02:00
Nemanja
50d83b9360 Cap scramble tag (#28804) 2024-06-09 16:01:05 -04:00
Julian Giebel
de07c291de Implement map text (#28705) 2024-06-09 15:18:54 -04:00
Hannah Giovanna Dawson
3ceb92a0c4 SS14-28662 Add Baby Jail: a Jail for Babies (inverse panic bunker) (#28763) 2024-06-09 14:58:10 -04:00
PJBot
f4e80b0dae Automatic changelog update 2024-06-09 18:29:52 +00:00
Thomas
fffa1dfd3f Update Cargo Guidebook (#28775) 2024-06-09 14:28:46 -04:00
Nemanja
b51e787fd7 new station and shifts guide (#28799) 2024-06-09 14:03:47 -04:00
Nemanja
1490fc36d3 Redo new player & controls guidebooks (#28794) 2024-06-09 14:02:35 -04:00
PJBot
bcf1069c7b Automatic changelog update 2024-06-09 16:27:56 +00:00
AJCM-git
346ac44a28 Open the guidebook when people with less than an hour playing join the round (#28774)
* Open the guidebook when people with less than an hour playing join the round

* Filter for gameplayState

* Fix tests

* tweaks

* saltern update (#28773)

Co-authored-by: deltanedas <@deltanedas:kde.org>

* Fix admin menu objects list (#28787)

* Make `MakeAntag()` log errors instead of throwing exceptions (#28771)

Make `MakeAntag()` log errors instead of throw

* add default page support for the guidebook (#28772)

* Probably a better way to handle this

---------

Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
2024-06-09 12:26:48 -04:00
Nemanja
c549573f7a add default page support for the guidebook (#28772) 2024-06-09 11:55:21 -04:00
Leon Friedrich
ad9d18771e Make MakeAntag() log errors instead of throwing exceptions (#28771)
Make `MakeAntag()` log errors instead of throw
2024-06-09 09:53:03 -04:00
Leon Friedrich
8d52f6b617 Fix admin menu objects list (#28787) 2024-06-09 09:51:02 -04:00
Ed
d7c0a4ec1e Tile burning (#228)
* tile burning

* add big planks burning, some fix

* FIRE!!! more structures can burn

* wallmount burn

* fuck Jetbrains!

* Update CP14FireSpreadSystem.cs
2024-06-09 15:45:27 +03:00
deltanedas
fb1ab6469a saltern update (#28773)
Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-06-08 20:33:40 -06:00
Tayrtahn
5f91c3f27f Strip markdown from silicon laws before saying them (#28596) 2024-06-09 09:57:07 +10:00
PJBot
468728c995 Automatic changelog update 2024-06-08 23:30:57 +00:00
Psychpsyo
182fe2993f Add Jani lobby background (#28724)
* Add jani lobby background

* Actually make new lobby screen functional

* Fix license
2024-06-08 19:29:51 -04:00
TsjipTsjip
c061d9c248 Add suffixes to excap survival boxes (#28755)
Update emergency.yml
2024-06-08 19:26:12 -04:00
PJBot
6a8892f930 Automatic changelog update 2024-06-08 23:01:50 +00:00
UBlueberry
c6ff1e44fb Guidebook Updates for the Amateur Spessman (#28603)
* Created NewPlayer.xml

* Created NewPlayer.yml and added it to guides.ftl

* shifted some controls from Space Station 14 to New? Start here!, as well as made a character creation xml to be written later

* switched some stuff between the New? entry and the Space Station 14 entry

* Made everything so nice!!!!!!!!!!!!!!

* fixed formatting inconsistencies

* added a How to use this guidebook section

* build correction and guidebook clarification for other servers

* wrote character creation ig probs fo shizzle

* added new terms to the glossary and alphabetized it

* meh this seems important enough to add

* okay no more shitsec bad idea

* I HATED Roleplaying.xml ANYWAY!!!

* I REALLY REALLY HATED IT ACTUALLYLLL

* Moved Controls and Radio into newplayer.yml, making meta.yml and radio.yml obsolete

* Separated the character creation bits that are just cosmetic from the ones that matter

* also put all the related new player xml files in their own folder

* expanded Radio.xml, kinda fixed survival.xml

* removed the line that mighta maybe sorta possibly could encourage self antag

* thought about this randomly but ICK OCK

* talking is no longer a key part of this game

* moves stuff around, a lot of stuff. basically moves everything but the jobs themselves around

* ah probably should make sure this works first also me when i lie on the internet

* don't be such a grammar nukie

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

* okay nevermind that's justified

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

* prepare. it is coming. the great reorganization...

* yesyes that's all well and goo- THE REORG IS COMING. THE REORG IS COMING. WAKE UP.

* rename that real quick

* step one begins. first, consolidate existing service entries into their own yaml. this makes botany.yml obsolete.

* update shiftandcrew.yml to only have departments as children also fuck it alphabetization

* consolidated salvage into cargo

* made a new entry for command

* gave salvage a home and service an existence

* made some XML files to be filled out later

* quick rename...

* took some stuff from Intro.txt and i think Gameplay.txt and put it in NewPlayer.xml

* The Great Writing about Departments (25XX, black and white)

* added a bunch of links everywhere

* biochemical is no longer a thing

* service formatinaaaaaaa

* shiny...,,,,,,,,, colo(u)rz..,,,,,,,,,,,,,

* let's get that fixed

* second time i made a typo there as well

* we hate fun around here

* grammar?!???/

* various fixes and more linkings

* oops

* wewlad lol!!

---------

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: AJCM <AJCM@tutanota.com>
2024-06-09 01:00:43 +02:00
Tayrtahn
7f686a6ae5 Fix null ref exception in PrayerSystem (#28712)
* Fix null ref exception in PrayerSystem

* Also check that prayable ent/comp still exist
2024-06-08 14:50:20 -04:00
PJBot
cce50da170 Automatic changelog update 2024-06-08 18:49:15 +00:00
metalgearsloth
e3c37f6e9b Maybe fix invalid loadout prototypes (#28734)
* Maybe fix invalid loadout prototypes

So if we have existing data SetDefault is not normally called iirc. So what I think is happening is that if we have old loadout groups that get saved to DB and loaded these get dropped entirely and nothing is used to replace the group unless the person specifically looks at their loadout.

Need someone affected to send me their loadout to confirm it's fixed.

* Better fix
2024-06-08 14:48:09 -04:00
metalgearsloth
1fdbf9403a Don't use invalid defaults for loadouts (#28729)
At the time it made more sense but now with species specific stuff it's better to have nothing.
2024-06-08 14:43:21 -04:00
Ed
2cfdc4a52f Solution normalizer (#227)
* dropper

* add stabilizer

* fuck, now

* Update CP14SolutionNormalizerComponent.cs
2024-06-08 18:46:09 +03:00
PJBot
c79384c5fd Automatic changelog update 2024-06-08 14:37:53 +00:00
Nemanja
4089d6a664 fix singulo decay (#28743) 2024-06-09 00:36:47 +10:00
PJBot
33e68dc51f Automatic changelog update 2024-06-08 10:41:39 +00:00
nikthechampiongr
8cf9037273 Make freeze, freeze & mute, and unmute verbs work on disconnected players. (#28664) 2024-06-08 20:40:33 +10:00
PJBot
511336beb8 Automatic changelog update 2024-06-08 10:39:01 +00:00
Whisper
123dfee3a3 allow ' in character names (#28652) 2024-06-08 20:37:55 +10:00
Vasilis
db6548bc99 Ensure packager creates a release folder (#28426)
I was screaming at the github actions runner before i noticed something i had done before caused me to never have a release folder and thus fail.
2024-06-08 20:33:51 +10:00
PJBot
c4966e5177 Automatic changelog update 2024-06-08 10:28:27 +00:00
Leon Friedrich
7ef7fe6761 Try fix RGBee (#28741) 2024-06-08 20:27:21 +10:00
PJBot
74ed68b2d5 Automatic changelog update 2024-06-08 10:05:00 +00:00
metalgearsloth
45015188cd Add loadout group check for role proto (#28731)
MFW same bug twice at 2 layers because I'm stupid.
2024-06-08 20:03:54 +10:00
MerrytheManokit
b50faffcc3 rn, atp (#28674)
* Update speech-chatsan.ftl

* Update word_replacements.yml

* Atm-at the moment

* Atm

* Update Resources/Locale/en-US/speech/speech-chatsan.ftl

* Update Resources/Prototypes/Accents/word_replacements.yml

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2024-06-08 18:48:49 +10:00
Leon Friedrich
2c7598fd5b Fix flatpacker (#28736)
* Fix flatpacker

* a
2024-06-08 18:48:23 +10:00
Ubaser
c2bbc72cf4 Update Core (#28735)
add
2024-06-08 02:35:58 -06:00
DrSmugleaf
a7c7cd74ec Fix DamageOtherOnHit.OnDoHit when the target is terminating or deleted (#28690) 2024-06-08 15:53:54 +10:00
Tayrtahn
49496b40e5 Improve grammar of various petting messages (#28715)
Improve grammar of various petting message
2024-06-08 15:53:17 +10:00
PJBot
4d10f3523b Automatic changelog update 2024-06-08 05:50:48 +00:00
Lyndomen
1584a50a1d Dropping Corpses Devoured by Space Dragons on Gib/Butcher. (#28709)
* Update DevourSystem.cs

* Update DevourSystem.cs

* Update Content.Server/Devour/DevourSystem.cs

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2024-06-08 15:49:42 +10:00
DrSmugleaf
7f1933169e Add DoPopup data field to OnUseTimerTrigger (#28691) 2024-06-07 22:36:29 -07:00
DrSmugleaf
0762f9da17 Fix action icons when dragging an active action to another slot (#28692) 2024-06-07 22:34:48 -07:00
Flareguy
f37060fc1b Ports the singularity's values from vgstation (#28720)
* ports the singularity values from vgstation

* guidebook fix

* 5000 energy level 6 singulo
2024-06-07 22:15:13 -04:00
PJBot
b714210e38 Automatic changelog update 2024-06-08 00:58:14 +00:00
Plykiya
d19b430a92 Swap some InRangeUnobstructed for InRangeUnoccluded (#28706)
Swap InRangeUnobstructed to InRangeUnoccluded

Co-authored-by: plykiya <plykiya@protonmail.com>
2024-06-07 20:57:07 -04:00
lzk
567d6a0888 Add locale support for booze and soda jugs labels (#28708) 2024-06-07 20:56:25 -04:00
Ed
d998e6bf9a Lumishroom (#226)
* added lumishroom art

* lumishroom

* Update migration.yml

* fix

* fix x2

* Update alchemy_test_layer2.yml

* worldgen

* Update chromium_inverse.yml

* add new barrels and vials
2024-06-08 01:03:21 +03:00
AJCM-git
63e0ee08cb Fixes client having authority over rules popup cvars (#28655)
* Fixes client having authority over rules popup cvars

* Delete duplicate migration

* Pre-update

* Post-update
2024-06-07 21:53:20 +02:00
Ubaser
a1a3a0d131 Tweak chapel salvage wreck (#28703)
add
2024-06-07 14:39:22 -04:00
Deserty0
278e41c694 rokirovochka (#225) 2024-06-07 20:20:15 +03:00
Leon Friedrich
b632a65385 Add JobRequirementOverride prototypes (#28607)
* Add JobRequirementOverride prototypes

* a

* invert if

* Add override that takes in prototypes directly
2024-06-07 09:43:02 -07:00
Chief-Engineer
b3debf449a rule fixes first pass (#28701)
update
2024-06-07 09:03:22 -05:00
PJBot
2405502177 Automatic changelog update 2024-06-07 11:30:02 +00:00
AJCM-git
accf8adf97 Fixed the guidebook listing every single rule (#28680)
* Well i tried this way

* New approach (start)

* Did it

* makes spacelaw available, put it under sec
2024-06-07 06:28:55 -05:00
Ubaser
7ba26f4592 Update Core (#28689)
add
2024-06-06 23:00:02 -06:00
PJBot
6bae088d7a Automatic changelog update 2024-06-07 01:25:13 +00:00
blueDev2
f2792e98b7 Return medicine recipe solid material costs to 1 (#28679)
Set material costs of medicine recipes to 1
2024-06-06 21:24:07 -04:00
Nemanja
b317fa4ccf Flatpacker fixes (#28417) 2024-06-06 20:55:35 -04:00
Verm
08d2918fe7 Fix typo in slime naming conventions (#28682) 2024-06-06 20:37:41 -04:00
PJBot
997e34de9f Automatic changelog update 2024-06-06 22:27:19 +00:00
Mr. 27
3dc4f82833 fix janitor not spawning with a survival box (#28669)
hi
2024-06-07 01:26:13 +03:00
Ed
819dac54de Chasms (#224)
* chasm sprites

* add proto

* Update chasm.yml
2024-06-07 01:24:39 +03:00
Moomoobeef
6e98965e6a fixed "silicones" typo in new rules (#28671)
fixed all appearances of silicone where it should have been silicon
2024-06-06 15:47:41 -04:00
PJBot
5773970a2a Automatic changelog update 2024-06-06 19:25:20 +00:00
Thomas
e72ac31d5d Fix typo in Space Law's restricted gear (#28668)
This typo was included in the wiki as well.

Reported-by: Bobberson in the Discord
2024-06-06 15:24:13 -04:00
Ed
df695cc39b Dirt wall (#223)
* add dirt wall sprites

* added dirt wall proto

* add dirt material, dirt wall crafting and dirt drop from wall
2024-06-06 21:06:32 +03:00
Deserty0
14da5bbc63 additional shorthand (#222)
* Update ChatSanitizationManager.cs

ru-RU

* Update ChatSanitizationManager.cs
2024-06-06 18:16:04 +03:00
PJBot
f2c2a14cd0 Automatic changelog update 2024-06-06 12:07:04 +00:00
Leon Friedrich
e7f2ae52ab Give jobs & antags prototypes a guide field (#28614)
* Give jobs & antags prototypes a guide field

* A

* space

Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>

* Add todo

* Fix merge errors

---------

Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
2024-06-06 05:05:58 -07:00
PJBot
236d2e5337 Automatic changelog update 2024-06-06 10:09:31 +00:00
Flareguy
c625cee1c6 Nerfs welderbombing (#28650)
nerf welderbombing
2024-06-06 03:08:25 -07:00
PJBot
520e0dd547 Automatic changelog update 2024-06-06 09:33:43 +00:00
Cojoke
02c345d129 Gives Insulation and NoSlip to all bots (#28621)
* Gives Insulation and NoSlip to all bots

* remove NoSlip from children
2024-06-06 12:32:36 +03:00
Nemanja
1333b48747 Convert rules to use guidebook parsing (#28647) 2024-06-06 03:11:26 -04:00
PJBot
8b40d1887c Automatic changelog update 2024-06-06 07:02:51 +00:00
Plykiya
dec1c281a8 Internals are kept on as long as any breathing tool is on (#28595) 2024-06-06 03:01:45 -04:00
PJBot
180f1e8005 Automatic changelog update 2024-06-06 06:42:18 +00:00
Repo
039fd932b2 Fix Admin Object tab sorting and search (#28609) 2024-06-06 02:41:11 -04:00
Tayrtahn
d71b88a747 Add support for LocalizedDatasets to RandomMetadata (#28601) 2024-06-06 02:37:49 -04:00
Chief-Engineer
fea2bc9422 Update rules (#28452) 2024-06-05 19:59:22 -04:00
Leon Friedrich
ba57e3e4d9 Add closing storage UIs to StorageInteractionTest (#28633) 2024-06-05 18:14:25 -04:00
PJBot
8e85bec2ce Automatic changelog update 2024-06-05 22:09:47 +00:00
Tayrtahn
8a1f3f4971 Adjust some touch reaction damage levels (#28591) 2024-06-05 18:08:41 -04:00
Verm
110c8a96e0 Fix mouse inhands (#28623) 2024-06-05 18:06:57 -04:00
Cojoke
72df1a0ae5 Shifts borgs hats to the right a bit (#28600) 2024-06-05 18:04:09 -04:00
Cojoke
27a5d08db4 Clean up Eva and Hardsuit helm yml + Lets atmos firesuit helm work as a BreathMask (#28602) 2024-06-05 18:03:31 -04:00
Ed
7f27b36506 Quartz crystal as alchemy reagent (#217)
* added quartz as alchemy reagent

* quartz is not deadend

* added barrels
2024-06-06 00:19:30 +03:00
PJBot
014c5eb3e8 Automatic changelog update 2024-06-05 21:17:38 +00:00
Ps3Moira
f223931ed3 Fix Cigars Sprites + YAML fix for Inhand unlit cigars/cigs (#28641) 2024-06-05 17:16:32 -04:00
DrSmugleaf
513023a9f0 Fix Smoke-grenade.ogg not being mono (#28593) 2024-06-05 17:06:24 -04:00
PJBot
a710c75809 Automatic changelog update 2024-06-05 20:48:33 +00:00
Cojoke
c368d5d36f Make Projectiles Only Hit a Variety of Station Objects Unless Clicked on (#28571) 2024-06-05 16:47:27 -04:00
Nemanja
729e67af7f Machine-code cleanup (#28489) 2024-06-05 16:23:23 -04:00
PJBot
8a7b0f675e Automatic changelog update 2024-06-05 20:16:02 +00:00
Plykiya
d75de9fa24 Make cuff default range again (#28576)
* Make cuff default range again

* uncuff distance

* how about ONE

---------

Co-authored-by: plykiya <plykiya@protonmail.com>
2024-06-05 13:14:56 -07:00
lapatison
4c0a878f6f Revenant spell catalog locale (#28638)
locale
2024-06-05 13:10:58 -07:00
Hmeister-real
192a3187df minor banner changes (#28636)
* minor banner changes

* Uhrmm actchually it's you're, not your

* Update banners.yml

props Hyenh
2024-06-05 13:10:27 -07:00
PJBot
ca9830a284 Automatic changelog update 2024-06-05 17:51:47 +00:00
Boaz1111
bc360784ff Cluster Update (#28627)
done here
2024-06-05 11:50:37 -06:00
Ed
36c7e5c9a0 fix 2024-06-05 20:16:49 +03:00
Jaraten
a623704416 add&resprite furnitures (#196)
* add&resprite furnitures

* license and sprite fix

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
2024-06-05 20:15:51 +03:00
Ed
b803496694 Procedural + z-levels refactor (#216)
* create biome tile spawner

* spawner now spawn decals and entities

* fancy spawners

* remove old decals

* randomize seed

* fix bugs

* update alchemy test map to new system

* update z-level system

* autolink tweak

* add documentation

* Update GravityComponent.cs

* Update GravityComponent.cs
2024-06-05 19:59:39 +03:00
ShadowCommander
f933922c9e Add logs that provide session to player admin logs (#28628) 2024-06-06 00:19:54 +10:00
Leon Friedrich
adeed705e6 Add Job preference tests (#28625)
* Misc Job related changes

* Add JobTest

* A

* Aa

* Lets not confuse the yaml linter

* fixes

* a
2024-06-06 00:19:24 +10:00
Leon Friedrich
e1541351a5 Update engine to v224.1.1 (#28632) 2024-06-05 23:00:33 +10:00
Leon Friedrich
7bd1b45f2b Use dummy sessions in NukeOpsTest (#28549)
* Add dummy sessions

* Update NukeOpsTest

* Fix PvsBenchmark
2024-06-05 18:37:22 +10:00
Leon Friedrich
0f3a2424e8 Update engine to v224.1.0 (#28624) 2024-06-05 18:21:47 +10:00
TsjipTsjip
86cf5cc7d1 Prayable datafield typo (#28622)
* notifiactionPrefix -> notificationPrefix

* notifiactionPrefix -> notificationPrefix
2024-06-05 10:32:58 +03:00
Plykiya
41549db282 Remove obsolete VisibilitySystem functions (#28610)
Remove obsolete visibility functions

Co-authored-by: plykiya <plykiya@protonmail.com>
2024-06-05 17:04:31 +10:00
TsjipTsjip
ec5a3b0fd2 Reword some criminal records text (#28597)
* Update criminal-records.ftl

* Update criminal-records.ftl

* Update criminal-records.ftl
2024-06-04 17:47:52 -04:00
Ed
454930bb85 Alchemy patch (#214)
* added tiefling and elf blood + new bloodgrass reactions

* buff chromium slime

* full restruct reactions files

* remove deadend thirst and satiate

* more rules

* Create fail.yml

* remove rainbow and cough deadend
2024-06-04 23:08:42 +03:00
PJBot
3a0880fb83 Automatic changelog update 2024-06-04 18:49:31 +00:00
Tayrtahn
a4881f56b0 Add "fill level" sprites to mops and damp rag (#28590) 2024-06-04 14:48:24 -04:00
Ed
0d2de81ac5 localization upstream (#213) 2024-06-04 20:14:51 +03:00
PJBot
1de261d1b1 Automatic changelog update 2024-06-04 17:13:07 +00:00
blueDev2
0e93d13cb7 Microwave recipes now uses stacktype id instead of entity prototype id for stacked entities (#28225) 2024-06-04 13:12:01 -04:00
icekot8
627187988e hand teleport portals now may start in the same grid. (#28556) 2024-06-04 12:34:07 -04:00
PJBot
b394eb9e84 Automatic changelog update 2024-06-04 16:00:39 +00:00
Moony
71a6e60818 Revert "Buff the AME until somebody fixes engineering" (#28419) 2024-06-04 07:59:33 -08:00
Deserty0
6f3805fdb8 update commands (#211)
* update commands

* Update CP14InitDayCycleCommand.cs

* Update CP14AddTimeEntryCommand.cs

* Update CP14InitDayCycleCommand.cs

* Update CP14SetTimeEntryCommand.cs

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
2024-06-04 18:27:17 +03:00
Ed
5607cdc80f Merge pull request #212 from crystallpunk-14/ed-04-06-2024-upstream
Ed 04 06 2024 upstream
2024-06-04 18:27:01 +03:00
Ed
3c4d40935c Update SharedStorageSystem.cs 2024-06-04 18:16:06 +03:00
Ed
7f8e47b843 Update SharedStorageSystem.cs 2024-06-04 18:14:53 +03:00
Ed
b891542ca9 Merge remote-tracking branch 'upstream/master' into ed-04-06-2024-upstream
# Conflicts:
#	Resources/Prototypes/Accents/word_replacements.yml
2024-06-04 18:09:38 +03:00
Tornado Tech
95b726c0ff Updated day cycle (#171)
* Updated day cycle

* Fixed DayCycleComponent attributes

* Added new commands, as well as synchronization

* Update cave-arena.yml

* Update alchemy_test.yml

---------

Co-authored-by: Ed <edwardxperia2000@gmail.com>
Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
2024-06-04 17:54:49 +03:00
Kevin Zheng
d5019cee96 Add CVar to disable pow3r parallel processing (#28488)
* Add CVar to disable pow3r parallel processing

* Cache CVar value

* Fix pointyhat

* Move all CVar-ing to Content.Server
2024-06-04 16:54:22 +02:00
Ed
fdf9413088 sharpened fix (#209) 2024-06-04 16:59:53 +03:00
PJBot
b3cfd9b4ff Automatic changelog update 2024-06-04 13:27:27 +00:00
Hannah Giovanna Dawson
0b4fc7e298 Make projectile & hitscan reflection only try once with the best reflector (#28539) 2024-06-04 09:26:19 -04:00
Hannah Giovanna Dawson
d4fe7eda51 SS14-26964 Clown Waddling Replicates, etc (#26983) 2024-06-04 09:23:09 -04:00
Errant
58647e7036 Don't switch-unwield if mob has more than 2 hands (#28438) 2024-06-04 09:11:48 -04:00
Ed
16bc737d9a Battle hammer (#206)
* add hammer

* Update battleHammer.yml

* remove 32
2024-06-04 15:28:52 +03:00
Ghagliiarghii
87fe804831 tyvm, tysm (#28577)
* tyvm, tysm

* cya -> see you

* ya
2024-06-04 13:57:17 +02:00
deltanedas
a3a1538d32 move gamerule components to shared (#28572)
* move MinMax to shared

* cleanup MinMax

* move other ticking components to shared just because

* remove unused prototype file

* update everything to use shared components

* test

* test 2

* test 3

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-06-04 21:53:24 +10:00
Tayrtahn
9d2b4ed3b2 Add an integration test for solution fill level sprites. (#28564) 2024-06-04 10:23:43 +10:00
deltanedas
16b3fb1204 LoadMapRule grid storage rework (#28210)
*
2024-06-03 20:04:19 -04:00
Mr. 27
7d22897d02 Job starting gear is now defined in the starting gear rather than backpack prototypes (#27605)
*
2024-06-03 19:52:15 -04:00
Verm
2ae5c953de Humans can no longer honk on command (#28566)
* Humans can no longer honk on command

* Undo change it emote file

* I hate tabs

* Some comments
2024-06-04 01:45:00 +02:00
Plykiya
b51f04a765 Gets rid of obsolete EntityWhitelist.IsValid() function (#28565)
Gets rid of obsolete IsValid function

Co-authored-by: plykiya <plykiya@protonmail.com>
2024-06-03 18:42:50 -04:00
Plykiya
c5ff647ca6 Replace obsolete EntityWhitelist IsValid usages part 2 (#28506) 2024-06-03 17:40:03 -04:00
Verm
2bd4f85966 Fix Weh Juice and Other emote chems not working (#28562) 2024-06-03 17:07:41 -04:00
Leon Friedrich
5e51a1d73c Add StorageInteractionTest (#28541) 2024-06-03 17:05:51 -04:00
Velcroboy
98ab251f92 Remove duplicate entities (#28561) 2024-06-03 16:55:43 -04:00
Ed
70df945fe1 Elf species (#205)
* add elves names

* fix

* fix dwarf clothing preview

* elf!

* add marking locales

* fuck ss14 species

* Update SpeciesPrototype.cs
2024-06-03 23:50:05 +03:00
Tayrtahn
af7f70bade Add integration test for LocalizedDatasets (#28485) 2024-06-03 15:40:46 -04:00
PJBot
b1c123efae Automatic changelog update 2024-06-03 18:49:52 +00:00
lzk
713c6d966b Make borgs shown in logprobe (#27788) 2024-06-03 14:48:44 -04:00
RenQ
3e2eb6cc7a "Death gasp" for a moth (#28409) 2024-06-03 14:48:01 -04:00
Ed
a4d1601758 Accent trait limit (#28046) 2024-06-03 14:47:06 -04:00
Tayrtahn
ee8224bce2 Tip 51 does not exist (#28555) 2024-06-03 12:59:59 -04:00
Tayrtahn
b5e8a69622 Add a test for sliceable cargo bounty exploits (#28357) 2024-06-03 12:24:32 -04:00
AJCM-git
619d82ed42 Small code cleanup to health bar (#28554) 2024-06-03 12:22:26 -04:00
PJBot
1e04b3c9f4 Automatic changelog update 2024-06-03 16:13:28 +00:00
AJCM-git
8c10581010 Cleans up StatusIconSystem and fixing some bugs (#28270) 2024-06-03 12:12:21 -04:00
Deserty0
c006e7cfdf fix (#204) 2024-06-03 19:00:43 +03:00
lzk
87ffbab461 Remove locale related changelog (#28547) 2024-06-03 09:37:30 -04:00
Leon Friedrich
0b4388d5d4 Try fix KeyNotFoundException in KillTrackingSystem (#28553) 2024-06-03 09:36:07 -04:00
DrSmugleaf
def04cdaf5 Add more info to GettingAttackedAttemptEvent (#28548) 2024-06-03 09:30:47 -04:00
deltanedas
8d78b7442a make objectives use entityCategory (#28269) 2024-06-03 09:23:52 -04:00
PJBot
33d963a149 Automatic changelog update 2024-06-03 13:05:14 +00:00
Cojoke
e784f2cf3c Make projectiles not hit crates unless clicked on (#28072) 2024-06-03 09:04:07 -04:00
deltanedas
977bd5ad6d make GameRule use entity category (#28294) 2024-06-03 08:39:25 -04:00
deltanedas
50f8de08a4 prevent nukie kidnapping (#28387) 2024-06-03 08:34:50 -04:00
PJBot
f8f55dea1e Automatic changelog update 2024-06-03 12:11:31 +00:00
Cojoke
a0b49116be Adds Chat Triggers to the Gasp Emote (#28466) 2024-06-03 08:10:24 -04:00
PJBot
64ff99231a Automatic changelog update 2024-06-03 12:06:20 +00:00
Cojoke
eb026c9b5b Gives Medibots Random Lines(not a good title) (#28543) 2024-06-03 08:05:14 -04:00
PJBot
ba5af33ee4 Automatic changelog update 2024-06-03 11:55:38 +00:00
Verm
36396e3f86 Changes SyndiCat spawner to a radio (#28492) 2024-06-03 07:54:32 -04:00
Leon Friedrich
d36ff569ab Add PrototypeUploadTest (#28522) 2024-06-03 01:21:46 -04:00
Tayrtahn
0d864d324c Add support for HeldPrefix to SolutionContainerVisualsSystem (#28532) 2024-06-03 01:12:13 -04:00
PJBot
39481fb2b0 Automatic changelog update 2024-06-03 03:34:36 +00:00
AJCM-git
be35a5d369 Header of Gas tank UI screen now fetched from Entity name and local (#28545) 2024-06-02 23:33:30 -04:00
PJBot
42217079b7 Automatic changelog update 2024-06-03 03:31:08 +00:00
PJBot
0a8167f055 Automatic changelog update 2024-06-03 03:30:03 +00:00
AJCM-git
91875e91e1 Strip Items From Things Before Biomassing Them (#28544) 2024-06-02 23:30:00 -04:00
Verm
31eb3ed62c Welding tweaks (#27959) 2024-06-02 23:28:53 -04:00
AJCM-git
509e3aedf7 RespawnRuleSystem tweaks. (#28528) 2024-06-02 23:28:38 -04:00
PJBot
7ecff3e699 Automatic changelog update 2024-06-03 02:19:55 +00:00
Whisper
9dbdacda95 Rename admin cloak to weh cloak (#28540) 2024-06-02 19:18:49 -07:00
Pieter-Jan Briers
307a0428c7 Shut up a child throwing a tantrum (#28538) 2024-06-03 03:05:18 +02:00
PJBot
947ed7bb22 Automatic changelog update 2024-06-02 23:52:25 +00:00
Voomra
504208c665 fix: localize PraySystem UI (#28535)
tweak: localize PraySystem UI
2024-06-02 16:51:19 -07:00
Deserty0
c66fb13639 Belt slots now depending on pants (#202)
* Update human_inventory_template.yml

* And key slot

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
2024-06-02 23:10:56 +03:00
stellar-novas
81821e87af Update to nixpkgs 24.05 (#28529) 2024-06-02 15:49:31 -04:00
Killerqu00
4eadbbc39d fix typos in bonfire descriptions (#28515)
* fix typo

* a
2024-06-02 15:40:02 -04:00
UBlueberry
c591864866 Drawl capitalization coldfix (part 2: rise of accidentally commiting to master) (#26639)
fixed finally yay
2024-06-02 15:13:57 -04:00
PJBot
054118757b Automatic changelog update 2024-06-02 17:31:33 +00:00
Errant
66835ac84e Beacons no longer glitch off on grid split (#28518) 2024-06-02 19:30:27 +02:00
PJBot
6b40b5269e Automatic changelog update 2024-06-02 16:53:47 +00:00
AJCM-git
9a23a6c695 Fix mid round antags not starting (#28523) 2024-06-02 12:52:40 -04:00
Leon Friedrich
77a3d6c6f1 Update engine to v224.0.1 (#28520) 2024-06-03 00:59:22 +10:00
Ed
1adca91ccd Merge pull request #201 from crystallpunk-14/ed-02-06-2024-lang-patch
localize eng name species generation
2024-06-02 15:56:49 +03:00
Ed
26957472ac localize eng name species generation 2024-06-02 15:32:55 +03:00
Ed
456b9a3ccb Merge pull request #199 from crystallpunk-14/ed-02-06-2024-upstream
Ed 02 06 2024 upstream
2024-06-02 14:57:43 +03:00
Ed
f91e3c7aca Update jobs.yml 2024-06-02 14:43:54 +03:00
Ed
ee1aed5f33 Update jobs.yml 2024-06-02 14:43:42 +03:00
Ed
2b556d0e9c finally fix jobs 2024-06-02 14:07:00 +03:00
Ed
32c85b5498 upstream complexinteraction moment 2024-06-02 13:32:51 +03:00
Ed
3ee8164e1b Job rename 2024-06-02 12:54:25 +03:00
Ed
7b5a593481 fix coins, roles, trackers 2024-06-02 12:34:19 +03:00
Ed
a3a7605ac7 alchemist role + locales fix 2024-06-02 12:22:22 +03:00
Leon Friedrich
16be126ca1 Remove noSpawn: true from action entity prototypes (#28508) 2024-06-02 01:11:48 -07:00
Ed
6a5fae3403 Merge remote-tracking branch 'space-station-14/master' into ed-02-06-2024-upstream 2024-06-02 11:01:34 +03:00
Plykiya
ba04f94e48 Emergency Fix for Whitelist logic (#28510)
fix issue

Co-authored-by: plykiya <plykiya@protonmail.com>
2024-06-02 02:21:07 -04:00
Leon Friedrich
79e841056b Update engine to v224.0.0 (#28502) 2024-06-02 14:27:48 +10:00
Leon Friedrich
452b53988c Add debug asserts to ensure that network groups are up to date (#28495) 2024-06-01 21:26:42 -07:00
PJBot
827211369c Automatic changelog update 2024-06-02 04:18:59 +00:00
slarticodefast
1283989346 Flash overlay rework and bugfixes (#27369) 2024-06-02 00:17:53 -04:00
PJBot
f5bc921bdd Automatic changelog update 2024-06-02 04:14:18 +00:00
Cojoke
4c667b2d8f Fix Lasers Being Blocked by External Airlocks and Shuttle Airlocks (#28065) 2024-06-02 00:13:12 -04:00
Leon Friedrich
6235fa1ac6 Content changes for entity categories PR (#27232)
* Content changes for entity categories PR

* Poke tests

* Why are tests suddenly working?
2024-06-02 14:08:15 +10:00
eoineoineoin
b44b159431 Replace Matrix3 with System.Numerics.Matrix3x2 (#27443)
Replace Matrix3 with Matrix3x2
2024-06-02 14:07:41 +10:00
Nemanja
21d0b1fd55 Guidebook Tables (#28484)
* PJB's cool table control (it probably doesn't work)

* ok wait wrong file

* Guidebook Tables
2024-06-01 20:58:33 -07:00
Plykiya
d6ba166d3b Replace obsolete EntityWhitelist IsValid usages (#28465)
* Replace obsolete whitelist is valid with whitelist system

* Consistency

* Fix logic

* Bork

* I figured out how to get whitelists on the client lol

* test fail

* woops

* HELP ME FUNCTIONS

* Fix errors

* simplify

---------

Co-authored-by: plykiya <plykiya@protonmail.com>
2024-06-01 23:10:24 -04:00
PJBot
dce68e48e8 Automatic changelog update 2024-06-02 01:42:12 +00:00
DrSmugleaf
29e34cae35 Disable rainbow overlay when reduced motion is enabled (#28496)
Disable rainbow ovelray when reduced motion is enabled
2024-06-01 18:41:06 -07:00
Tornado Tech
21bc3bfa22 Cleans up tag system (#28272)
* Updated tag system

* Added params methods

* Fixed tag integration tests

* Fixed params methods recursion

* Revert has All/Any tag one argument realisation

* Updated tag integration tests

* Shit happens

* Added individual List/HashSet methods, docs, tests
2024-06-02 11:11:19 +10:00
github-actions[bot]
da6a1bbdd4 Update Credits (#28493)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
2024-06-02 03:03:51 +02:00
Tornado Tech
07dfefc4a2 Hiding and clearing department prototype code (#28114) 2024-06-01 19:49:34 -04:00
Kevin Zheng
ad1fc0cdba Adjust power monitor power display (#28487) 2024-06-01 16:56:57 -04:00
MilenVolf
5d970b0861 Station event component and system tweaks (#28331)
* Make anomaly, artifact and gifts events announcement sound optional

* Requested changes + Added new "GameRuleAfterAddedEvent" for StationEventSystem

We need to call "Add" in "StationEventSystem" after others GameRule's in case if we need to change StationEventComponent variables.

* Fix margins

* Makes use of GameRuleComponent.Delay and remove station system handling of delays plus small cleanup

* Fix merge

---------

Co-authored-by: AJCM <AJCM@tutanota.com>
2024-06-01 16:34:58 -04:00
DrSmugleaf
8c32072f67 Fix error when removing chasm falling component on a terminating entity (#28471) 2024-06-01 15:00:31 -04:00
PJBot
6501a5b180 Automatic changelog update 2024-06-01 17:50:34 +00:00
AJCM-git
09256cfaa5 Makes machine parts stackable, removes unused field in stack prototypes (#28434)
* Makes machine parts stacks, removes unused field in stack prototypes

* forgor

* Fix tests

* Fixes lathe construction. Yes. This sucks but there's no better way that doesnt involve refactoring machine parts completely

* detail

* a
2024-06-01 13:49:28 -04:00
Tornado Tech
a29b6a6894 Clean up new HTNs tasks (#28469)
* Clean up new HTNs tasks

* Added docs to math operations
2024-06-01 13:46:35 -04:00
PJBot
81a328c543 Automatic changelog update 2024-06-01 17:30:52 +00:00
beck-thompson
5bb0c4d6a2 Fixed bug where ID card computer defaulted to the atmos as the job icon. (#28462)
Fixed ID atmos bug!
2024-06-01 13:29:46 -04:00
Deserty0
b032c38917 ru-RU ChatSan (#197)
* ru-RU ChatSan

* Update Resources/Locale/ru-RU/_CP14/speech/speech-chatsan.ftl

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>

* Update Resources/Locale/ru-RU/_CP14/speech/speech-chatsan.ftl

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>

* Update Resources/Locale/ru-RU/_CP14/speech/speech-chatsan.ftl

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>

* Update Resources/Locale/ru-RU/_CP14/speech/speech-chatsan.ftl

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>

* Update Resources/Prototypes/Accents/word_replacements.yml

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>

* Update Resources/Prototypes/Accents/word_replacements.yml

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>

* Update speech-chatsan.ftl

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
2024-06-01 18:53:40 +03:00
Nemanja
be6f55a090 Clean up store system (#28463) 2024-06-01 11:29:17 -04:00
DrSmugleaf
19be94c9ea Add job whitelist system (#28085)
* Add job whitelist system

* Address reviews

* Fix name

* Apply suggestions from code review

Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>

* cancinium

---------

Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2024-06-01 05:08:31 -07:00
DrSmugleaf
e3a66136bf Fix the client thinking it cannot shoot after mispredicting when it actually can (#28464) 2024-06-01 02:35:14 -07:00
PJBot
727a176ca8 Automatic changelog update 2024-06-01 08:15:50 +00:00
Nemanja
68992735d8 Clean up command perms (#28451)
* Change BanExemption command to AdminFlags.Ban permissions

* Change LOOC to check for Moderator permission

* Change ListVerbs from Admin to Debug AdminFlags

* Change RunVerbAs from Admin to Fun AdminFlags

* More permission changes

* Change GhostKick to Moderator perm

* Clean up command perms

* fuck

---------

Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
2024-06-01 01:14:43 -07:00
PJBot
81387fa220 Automatic changelog update 2024-06-01 07:25:01 +00:00
Geekyhobo
94a113dbd6 Adds a Pii Flag, Censors Hwid and Ip (#27776)
* yes

* fixes
2024-06-01 00:23:54 -07:00
PJBot
90f606f5e5 Automatic changelog update 2024-06-01 05:52:22 +00:00
Kevin Zheng
355d0fee38 Increase Tesla coil power output (#28424)
* Increase Tesla coil power output

* Make number bigger
2024-06-01 01:51:16 -04:00
PJBot
69b61fcb8e Automatic changelog update 2024-06-01 04:59:13 +00:00
beck-thompson
54a38daee5 Added verb for removing evidence! (#28101) 2024-06-01 00:58:07 -04:00
PJBot
480d5558d1 Automatic changelog update 2024-06-01 04:55:29 +00:00
Cojoke
cbba09ae25 Gives Mediborg the Medical Hud (#28391) 2024-06-01 00:54:24 -04:00
PJBot
e39c6bcd9d Automatic changelog update 2024-06-01 04:52:14 +00:00
Verm
a9a65b7e0d Randomizes more humanoid appearances (#27997) 2024-06-01 00:51:07 -04:00
Nemanja
a1a8f04036 Decouple interactions from hands, cleanup old events, add new fears (#28393)
* ok basic shit

* second part

* pretend it isn't real it can't hurt you.

* 👁️ 👁️

* shadowcommander review
2024-05-31 13:26:19 -07:00
Leon Friedrich
c4291920a6 Make chat & examine systems use FormattedMessage.EscapeText() (#28431) 2024-05-31 16:05:34 -04:00
Flareguy
2ddca94375 Adds more spawners (#28280)
* adds more spawners

* make it WORK. ooo.. a. e

* fix

* outerclothing capitalization

* prototype fix

* flashbang fix
2024-05-31 12:52:04 -07:00
PJBot
311d684b61 Automatic changelog update 2024-05-31 19:45:29 +00:00
Brandon Li
114a99eb8d Chem colors (#28367)
* chem colors

* lithium & sodium colors

* update oxygen color

* update fluorine color
2024-05-31 12:44:22 -07:00
Flesh
e145a666c9 Use existing probability field (#28422)
Remove the PlantAdjustAttribute "Prob" field and use the existing probability field from ReagentEffects instead.
2024-05-31 09:56:41 -08:00
PJBot
faa3554d14 Automatic changelog update 2024-05-31 17:26:09 +00:00
Leon Friedrich
7b25f84119 Fix hugging mispredict (#28432)
* git mv

* Move namespaces

* Fix hugging mispredict
2024-05-31 11:25:03 -06:00
Ubaser
baf561845e Update Core (#28444)
* update

* i forgot 1 thing
2024-05-31 11:24:42 -06:00
ShadeAware
478768fa1d Pizza Parties no longer flood the station with more than it could ever eat. (#28448)
Removes pizza flood
2024-05-31 11:59:52 -04:00
deltanedas
5da2151924 dragon antag refactor (#28217)
* remove dragon system usage of GenericAntag

* add AntagRandomSpawn for making antags spawn at a random tile

* add AntagSpawner to make an antag spawner just spawn an entity

* add antag prototype for dragon since it never had one

* make dragon spawner a GhostRoleAntagSpawner, remove GenericAntag

* make dragon rule use AntagSelection and stuff

* remove dragon GenericAntag rule

* add back to spawn menu

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-05-31 11:08:26 -04:00
PJBot
6e278a12fb Automatic changelog update 2024-05-31 14:57:26 +00:00
ShadowCommander
42de8df519 Add firelock warnings popup when opening on access allowed (#28420) 2024-05-31 10:56:20 -04:00
PJBot
3c00eef877 Automatic changelog update 2024-05-31 14:50:06 +00:00
NazrinNya
9eb3239fcc make it so you cant build disposal pipes in impassable objects (#28447)
make it so you cant build disposal pipes in impassable objects (like walls)
2024-05-31 10:49:00 -04:00
beck-thompson
46d57f8a0f Fixed grammar for solution transfers! (#28437)
Fixed grammar for solution transfer
2024-05-31 10:44:21 -04:00
PJBot
2ae0c56244 Automatic changelog update 2024-05-31 08:45:27 +00:00
Ubaser
ae3a22398e Give janitors a roundstart light replacer (#28441)
add
2024-05-31 02:44:21 -06:00
deltanedas
b7ac36593f saltern update (#28443)
Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-05-31 02:39:14 -06:00
deltanedas
3e26491fbd atlas update (#28442)
Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-05-31 02:39:08 -06:00
PJBot
fe5e20fa31 Automatic changelog update 2024-05-31 07:38:53 +00:00
Ubaser
ec28a077a2 Give botanists a roundstart plant clipper (#28439)
add
2024-05-31 00:37:47 -07:00
PJBot
7a1849c4ba Automatic changelog update 2024-05-31 06:29:15 +00:00
ShadowCommander
3ed1ee6a5b Add search filter to the admin menu player tab (#28030) 2024-05-31 02:28:08 -04:00
Flesh
dbcdefc5fd Fix trailing periods in some plant metabolism descriptions (#28428)
fxied tpyos
2024-05-30 23:37:04 -04:00
Leon Friedrich
07866e4764 Prevent Identity.Name NRE exception (#28433)
Fix Identity.Name exception
2024-05-31 13:11:21 +10:00
Leon Friedrich
27e63f5919 Make tests automatically reset modified cvars (#28219)
* Make tests automatically reset modified cvars

* Fix bad return

* A

* Try Fix tests

* clarify comment

* update eng
2024-05-31 12:44:35 +10:00
Leon Friedrich
54337911d3 Only auto-enable internals when necessary (#28248)
* Only auto-enable internals when necessary

* Add toxic gas check

* Rename Any -> AnyPositive
2024-05-31 12:28:11 +10:00
PJBot
dee9634c01 Automatic changelog update 2024-05-31 02:07:27 +00:00
Nemanja
8422eaa073 Fix latejoin antag preferences not being respected (#28430)
* Fix latejoin antag preferences not being respected

* thank fuck for tests
2024-05-31 12:06:21 +10:00
PJBot
716fda3af3 Automatic changelog update 2024-05-31 02:00:31 +00:00
ShadowCommander
7e8e145d07 Reflow the player tab to show more of the names (#28029) 2024-05-30 21:59:25 -04:00
PJBot
6b19d0a62c Automatic changelog update 2024-05-31 01:56:07 +00:00
metalgearsloth
d90cbee7f2 Fix verb categories shuffling (#28368)
If it's an extra category we leave it in its default spot.
2024-05-31 11:55:01 +10:00
PJBot
75ef8e4fec Automatic changelog update 2024-05-31 00:29:18 +00:00
Ghagliiarghii
abfa12e315 Create sale console computer board (#28425) 2024-05-30 20:28:12 -04:00
ShadowCommander
c6b22fb01c Fix TryGetActionData error triggering when run on deleting entities (#27839)
* Fix TryGetActionData error triggering when run on deleting entities

* Only get metadata once
2024-05-31 10:25:13 +10:00
Ed
b33a094f65 change licenses (#191)
* change licenses

* Update rsi-schema.json

* change codebase license

* try make schema

* Create rsi.json

* rga fix
2024-05-31 00:01:22 +03:00
PJBot
9df7f5cd2f Automatic changelog update 2024-05-30 20:46:22 +00:00
Moony
2459572ecc Handheld teleporter portals now must start on the same grid. (#28423)
Co-authored-by: moonheart08 <moonheart08@users.noreply.github.com>
2024-05-30 13:45:16 -07:00
Ed
d3e8cf28a8 Update rsi-schema.json (#194) 2024-05-30 23:20:13 +03:00
c4llv07e
419eebfa49 Fix can't draw from the water on the floor (#192) 2024-05-30 22:54:31 +03:00
PJBot
9163af46b6 Automatic changelog update 2024-05-30 17:26:14 +00:00
ShadowCommander
34486f7451 Fix firelocks not requiring engineering access (#28415) 2024-05-30 13:25:07 -04:00
Kevin Zheng
5a25d1cc4b Make mapping actions slightly more useable (#28394) 2024-05-30 12:09:07 -04:00
Tayrtahn
98446cb061 Convert advertisements to use localized datasets (#28400)
* Convert advertisements to use LocalizedDatasets

* File consolidation

* Arcade machines too
2024-05-30 12:08:42 -04:00
Tayrtahn
d6f1f0ac1c Convert story generation to use LocalizedDatasets (#28402)
Converted story generation to use LocalizedDatasets
2024-05-30 14:49:12 +03:00
Ed
a1bcaf5897 Localize tips (#28285)
* localize tip

* localizzedDataset
2024-05-30 07:39:07 -04:00
Ed
893f0573d1 Merge pull request #190 from crystallpunk-14/ed-30-05-2024-upstream
Ed 30 05 2024 upstream
2024-05-30 13:43:41 +03:00
Ed
209f02a0dd Merge remote-tracking branch 'upstream/master' into ed-30-05-2024-upstream
# Conflicts:
#	Resources/Prototypes/Maps/Pools/default.yml
2024-05-30 13:29:19 +03:00
Ed
70a1856736 Ru Alchemy playtest bugfixes (#188)
* Update chromium_inverse.yml

* bufixes

* mortar fix

* fuel fix
2024-05-30 13:22:25 +03:00
PJBot
c3b687f7d6 Automatic changelog update 2024-05-30 07:33:22 +00:00
metalgearsloth
e4a5f2a145 Predict ActivatableUIRequiresPower (#28405)
A lot of BUIs aren't going to handle the state coming in cleanly but we can fix em as we find em.
2024-05-30 00:32:16 -07:00
ShadowCommander
e2bf127323 Move ApcPowerReceiverComponent Powered state to shared (#28206)
* Try syncing powered state to client

For some reason the client is not receiving the ApcPowerReceiverComponentState, so it's not working.

* Fix powered state not syncing to client

The client PowerReceiverSystem was abstract, which prevented it from
running initialize.

* Flip check so that it runs bigger checks first

PowerDisabled skips the others.
NeedsPower skips the receiving check.

* Disallow changing Powered manually

* Move Powered update to PowerReceiverSystem

* Move appearance to event subscription

* Move metadata component to AllEntityQuery

* Cleanup

* Move Powered update back to PowerNetSystem

It's easier to use the EntityQueries and it dosen't need to be updated
anywhere else.

* Put appearance updating back

* Move IsPowered to shared

* Simplify IsPowered

* Cleanup

* Remove duplicate PowerChangedEvent

PowerChangedEvent on ProviderChanged doesn't seem to be needed
PowerChangedEvent gets raised by in update if the power state changes
after a new provider is connected
2024-05-30 16:46:22 +10:00
PJBot
ce2446a612 Automatic changelog update 2024-05-30 04:19:13 +00:00
blueDev2
3efd7559b0 Fixed hypo and injector entities going into disposal units (#28317) 2024-05-30 00:18:07 -04:00
PJBot
620ce8fb2a Automatic changelog update 2024-05-30 04:16:37 +00:00
Lamrr
aa94a85721 Fix some abnormally high-capacity boxes (#28314) 2024-05-30 00:15:30 -04:00
PJBot
a6a54baf0d Automatic changelog update 2024-05-30 00:35:48 +00:00
Kevin Zheng
241b8d8be5 Fix flow rate display (#28372) 2024-05-29 20:34:41 -04:00
deltanedas
404fe818e8 item cabinet rework + stuff (#26779) 2024-05-29 16:08:33 -04:00
Brandon Hu
a315f90abc fix: Include the officer name in all criminal records status changes (#28332) 2024-05-29 15:55:38 -04:00
IProduceWidgets
0374574572 Update Oasis -- robo control comp, other minor changes. (#27990)
* Add robo control comp, also de-reinforce a lot of walls.

* Maybe increase atmos refill rates?

* wawoowewoo
2024-05-29 13:20:29 -06:00
metalgearsloth
962a1192bd Block gas analyzer updates if the UI doesn't open (#28376)
Fixes the gas analyzer UI coming up when used with a target.
2024-05-29 10:19:06 -08:00
Nemanja
5d79f897b9 Clean up RefiningSystem (#27904)
cleanup RefiningSystem
2024-05-29 11:06:50 -07:00
metalgearsloth
a90cb25ef7 Fix surveillance camera closing (#28374)
The boilerplate sucks but I haven't thought of something good.
2024-05-29 10:25:09 -07:00
PJBot
ca34b5dc75 Automatic changelog update 2024-05-29 16:47:29 +00:00
lzk
a8dade2332 Replace salvage access with cargo for artifact container (#28386) 2024-05-29 12:46:23 -04:00
ShadowCommander
8f7e2c81d8 Change PlaceableSurfaceSystem.cs to file scoped namespace (#28379) 2024-05-29 08:56:14 -04:00
metalgearsloth
08952b467d Fix single-user BUIs erroneously closing (#28375) 2024-05-29 03:25:16 -07:00
DrSmugleaf
ffce93c3e1 Fix FixedPoint2.Abs multiplying the value by 100 (#28378) 2024-05-29 18:42:15 +10:00
metalgearsloth
c4ddc8e529 Update submodule to 223.3.0 (#28377) 2024-05-29 17:37:03 +10:00
metalgearsloth
b8a2decb4b Fix shuttle audio clipping (#27527)
Changed engine to use grid local-center and very high maxdistance / refdistance values so it's seamless.
2024-05-29 17:32:20 +10:00
PJBot
0a4458909d Automatic changelog update 2024-05-29 05:22:54 +00:00
Kevin Zheng
4b9fa926c0 Tune spacing speed to fix under-pressure lockout (#28370) 2024-05-28 23:21:48 -06:00
PJBot
7a30f3d8b9 Automatic changelog update 2024-05-29 04:06:48 +00:00
ShadowCommander
49982acc88 Popup duplicate stacking (#27978) 2024-05-29 00:05:40 -04:00
Tayrtahn
7f9ed797af Fix off-by-one error in LocalizedDatasetPrototype (#28366) 2024-05-28 23:37:03 -04:00
metalgearsloth
c53b5d422d Don't update APC states unless UI open (#27803) 2024-05-28 20:34:46 -04:00
PJBot
6bdcbf1548 Automatic changelog update 2024-05-29 00:17:49 +00:00
Cojoke
a852c3c3f3 Create Consistency in the Syndicate Borgs (#27875) 2024-05-28 20:16:43 -04:00
PJBot
b144354d71 Automatic changelog update 2024-05-28 23:57:48 +00:00
lzk
a2f4540cb5 Remake gasp popup to emote (#27736) 2024-05-28 19:56:41 -04:00
Verm
fedc01a2a9 Fix buzz tense (#27708) 2024-05-28 19:54:25 -04:00
basic pack
69be7089d1 Lowers restart round vote's minimum players dead percentage. (#27470) 2024-05-28 19:51:25 -04:00
Ed
f0fa3af1ab clean up and local patch (#185)
* locales pack

* more fix and tweaks and locales

* more locale

* fix 0.5

* Update biological.yml
2024-05-29 01:32:48 +03:00
Ed
496c7638c0 More Alchemy stuff (#184)
* mortar and vat fix

* alchemy playtest preparation

* Update PostMapInitTest.cs

* balance tweak
2024-05-28 22:07:34 +03:00
Tayrtahn
0bca934c9d Add LocalizedDatasetPrototype (#28310) 2024-05-28 14:41:41 -04:00
PJBot
7b93b0cff9 Automatic changelog update 2024-05-28 18:18:39 +00:00
WarMechanic
51515c730a Allow wieldable guns to cycle in hand (#28002) 2024-05-28 14:17:33 -04:00
PJBot
7c4ac79a54 Automatic changelog update 2024-05-28 18:01:48 +00:00
Repo
eb3f27526b Fix late join & observe to de-admin admins. (#28319) 2024-05-28 14:00:42 -04:00
PJBot
1777eea9a4 Automatic changelog update 2024-05-28 15:36:14 +00:00
deltanedas
229c3cd729 missing nukies can be filled in by ghost roles (#28316) 2024-05-28 11:35:08 -04:00
lzk
bec21d443f Fix paper scrap layers + cleanup paper.yml (#28299)
Fix paper scrap + cleanup paper.yml
2024-05-28 11:01:19 -04:00
PJBot
4f14d9698b Automatic changelog update 2024-05-28 15:00:19 +00:00
ShadowCommander
e4f1201b4c Add pressure and temperature warning text to firelocks (#28341) 2024-05-28 10:59:13 -04:00
S1rFl0
5141a95ed2 Fix some grammar and spelling mistakes (#28350)
Fix some wacky grammar and spelling mistakes
2024-05-28 10:43:12 -04:00
MilenVolf
5172114dbb Localize emergency shuttle's direction for announcements (#28340)
Localize emergency shuttle direction
2024-05-28 10:23:05 -04:00
PJBot
691450974d Automatic changelog update 2024-05-28 14:03:22 +00:00
Repo
4cec8110b0 Fix wall vending machines spawning items in walls. (#28279)
* Find spawning of wall vending machines.

* Review fixes
2024-05-28 17:02:15 +03:00
Ed
8c0017f891 experimental mixing reactions (#183)
* experimental mixing reactions

* Update biological.yml
2024-05-28 13:26:10 +03:00
lzk
dc895feab3 Fix unlocked locker on Omega (#28247) 2024-05-28 01:52:59 -06:00
deltanedas
b0afbf6a3e saltern cryo untroll (#28333)
Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-05-28 01:52:30 -06:00
PJBot
ac6c9bc476 Automatic changelog update 2024-05-28 00:53:03 +00:00
Nemanja
a269f9bb9e Small anomaly behavior fix (#28290)
* Small anomaly behavior fix

* well put together code
2024-05-27 17:52:56 -07:00
slarticodefast
c740fbc68c Cargo bounty corrections (#28255)
cargo bounty corrections
2024-05-27 17:51:50 -07:00
Ghagliiarghii
b95df6530d Update Antagonists Guidebook Sections (#27931)
* Update MinorAntagonists.xml

Flesh out the Rat King and Space Dragon sections of MinorAntagonists.xml in the guidebook.

* Rope the rest of the Guidebook Antag Entries into this (except Zombies they were fine) - Also fix two typos I discovered during research

* oops missed a hyphen

* Sydnicate :despair:

* AUTOTELL ON -> OPERATIVES
2024-05-27 17:51:30 -07:00
lzk
0a0c0f37a1 Add popup for owner when inserting item in hand (#28032) 2024-05-27 17:46:54 -07:00
PJBot
a57b4ff520 Automatic changelog update 2024-05-28 00:05:38 +00:00
Nemanja
4e09743d44 remove firefighting remote and bolting firelocks (#28330)
remove firefighting remote
2024-05-28 10:04:32 +10:00
Kara
5ac6630671 Update engine to 223.2.0 (#28329) 2024-05-27 16:09:40 -07:00
PJBot
056097e481 Automatic changelog update 2024-05-27 22:44:23 +00:00
Nemanja
217d081b29 Fix under-selecting antags (#28327)
Fix under selecting antags
2024-05-27 15:43:17 -07:00
PJBot
5f533e8753 Automatic changelog update 2024-05-27 22:41:06 +00:00
Emisse
0805637807 derotate train atm until i redo its atmos (#28328)
webedit webedit webedit
2024-05-27 16:40:00 -06:00
PJBot
ab3abfde17 Automatic changelog update 2024-05-27 22:38:34 +00:00
Nemanja
44b93e68ee Prevent stacking pipes (#28308)
* prevent stacking pipes

* access

* notafet review

* notafet review pt. 2

* not the actual fix
2024-05-27 16:37:27 -06:00
alex-georgeff
984af3584f Rewords plant/effect descriptions for clarity (#28156) (#28169)
* Rewords plant/effect descriptions for clarity (#28156)

* Forgot Robust Harvest.

* Update Resources/Locale/en-US/guidebook/chemistry/effects.ftl

---------

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
2024-05-27 18:00:19 -04:00
Flareguy
7309704ace Cleans up some entity-related spawnmenu stuff (#28234)
* cleans up a lot of stuff in the spawnmenu

* skibidi dode

* spawners update

* Revert "spawners update"

This reverts commit bc27d9f556b29f6fb1f89cebbe0ac37e28319fd0.
2024-05-27 17:59:10 -04:00
Pieter-Jan Briers
cf8fcb170a Remove bogus C# finalizers (#28315)
Begging people to learn how this programming language works before throwing random syntax into a file.

None of these finalizers ever worked. I also checked whether they were memory leaks and needed *proper* shutdown logic, but they're all instantiated-once UI controls that last for the entire lifetime of the program so it's probably fine.
2024-05-27 17:52:23 -04:00
Ed
7a75835908 Wild sage alchemy reagent (#182)
* add wild sage root

* Update biological.yml

* added complex wild sage reaction

* add wild sage in worldgen

* Update basic-effects.yml
2024-05-27 23:24:08 +03:00
Nemanja
224af2af0e fix mirror server crashes (#28318) 2024-05-27 17:50:05 +02:00
Ed
5d0bef74a1 alchemy mini fix (#181)
* hotfix

* Update herbals.yml
2024-05-27 18:18:31 +03:00
metalgearsloth
5a59c6f262 Add loadout group check (#28311)
Forgot to add it back in one of the rewrites.
2024-05-27 01:04:34 -07:00
PJBot
642bcffbaf Automatic changelog update 2024-05-27 00:12:24 +00:00
metalgearsloth
af70b9a3c7 Selectively revert PullController (#28126)
I am leaving the issues open and have updated #26547 with more info on what we should do long-term. This is just to bandaid the short-term complaining.
2024-05-26 20:11:17 -04:00
Nemanja
cba23487d3 fix borg ui mispredict opening (#28305)
move borg ui junk to shared
2024-05-26 13:07:16 -07:00
PJBot
fed072ee20 Automatic changelog update 2024-05-26 14:49:40 +00:00
Mr. 27
2586427c52 Fix hypodarts not injecting with people that have ANY outerclothing (#28301)
Update darts.yml
2024-05-26 10:48:34 -04:00
PJBot
0be71c400d Automatic changelog update 2024-05-26 05:15:35 +00:00
deltanedas
492ccc93d0 fix antag selection being evil (#28197)
* fix antag selection being evil

* fix test

* untroll the other tests

* remove role timer troll

* Allow tests to modify antag preferences

* Fix antag selection

* Misc test fixes

* Add AntagPreferenceTest

* Fix lazy mistakes

* Test cleanup

* Try stop players in lobbies from being assigned mid-round antags

* ranting

* I am going insane

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: ElectroJr <leonsfriedrich@gmail.com>
2024-05-26 01:14:29 -04:00
PJBot
af10de61d3 Automatic changelog update 2024-05-26 04:47:47 +00:00
Nemanja
d747fa98f8 actually fix magic mirrors (#28282) 2024-05-25 21:46:41 -07:00
Leon Friedrich
b177fb8179 Make NetworkConfigurator use BoundUserInterfaceCheckRangeEvent (#28293) 2024-05-26 13:20:29 +10:00
Leon Friedrich
a38e6475cb Fix stripping not marking interactions as handled (#28292) 2024-05-26 13:18:27 +10:00
PJBot
b8020776cc Automatic changelog update 2024-05-26 02:12:43 +00:00
Leon Friedrich
12841da9a1 Fix storage UI interactions (#28291)
* Fix storage UI interactions

* Add VV support
2024-05-26 12:11:37 +10:00
PJBot
d5aae7a48b Automatic changelog update 2024-05-26 01:18:07 +00:00
Errant
6574c9b7c3 Changing hands unwields item (#28161)
Unhand me, fiend
2024-05-25 21:17:01 -04:00
github-actions[bot]
d99e73ed92 Update Credits (#28288)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
2024-05-25 20:32:32 -04:00
DrSmugleaf
436344c36d Make it possible to hide full health bars below a total damage threshold (#28127)
* Make it possible to hide full health bars below a total damage threshold

* Fix not setting state
2024-05-25 17:07:27 -04:00
Ady4ik
f84e87a010 Move PendingZombieComponent to Shared (#28143)
* Move PendingZombieComponent to Shared

* network me boy

---------

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
2024-05-25 17:07:18 -04:00
eoineoineoin
229f6d697c Objects ordered through cargo system shouldn't start anchored (#28115)
* Order normal space heater instead of anchored variant

* Make sure ordered objects don't spawn anchored

* Order space heater flatpack instead of a regular space heater

* Remove obsolete TODO

* Remove unnecessary name

---------

Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
2024-05-25 16:26:48 -04:00
PJBot
ac08f0068f Automatic changelog update 2024-05-25 20:24:40 +00:00
metalgearsloth
93f289c7dc Fix water postshader (#28130) 2024-05-25 16:23:34 -04:00
Ed
afb1acab10 Fix candles (firestack fading) (#28139)
Update FlammableSystem.cs
2024-05-25 16:22:34 -04:00
MilenVolf
de8b663124 Add direction relative to station for emergency shuttle's docking & nearby announcement (#28164)
* Use nav beacon location for emergency shuttle's docking announcement

Location of the shuttle relative to the nearest nav beacon in docking announcement message of the emergency shuttle

* Add directions relative to station
2024-05-25 16:20:43 -04:00
PJBot
bc5b92b815 Automatic changelog update 2024-05-25 20:19:46 +00:00
Ed
7c9e5a0779 Tomato killers don't kill the server anymore. (#28173)
* tomato killer auto death

* fix

* Update miscellaneous.yml
2024-05-25 16:18:40 -04:00
Repo
90d3699c1d Fix gamerule display issues (#28178)
* A comprehensive rule list for joining admins and mid round command to get rule list added

* Fix up for when a rule is added vs started and some logging

* fix command help localization, fix admin flags and spam anouncement.

* Send admin message only to the joining player not all admins.

* Bit better formatting in chat box
2024-05-25 16:18:05 -04:00
deltanedas
739c81c230 move nukie profile loading into its own rule (#28208)
* move profile loading out of nukeops rule

* make BaseNukeopsRule and use AntagLoadProfileRule

* untroll

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-05-25 16:15:56 -04:00
deltanedas
a06ea58249 antag objective issuing refactor (#28216)
* add AntagObjectives from GenericAntag

* add AntagRandomObjectives that traitor and thief can use

* make ObjectivesSystem use initial character name which AntagSelection passes

* make thief and traitor use AntagRandomObjectives

* remove now unused locale

* make sleeper agents rule use baseTraitorRule

* restore dragon rule oop

* bandaid for genericantag

* real

* typo

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-05-25 16:14:48 -04:00
Vasilis
f1c70d69f2 Remove the network tab (#28231)
It is useless and bloat, if a user needs to change these settings they are free to modify their cvars manually via the clientconfig.toml file or via the cvar command.
2024-05-25 16:09:52 -04:00
PJBot
cb17fe2845 Automatic changelog update 2024-05-25 20:09:22 +00:00
deltanedas
37ad81c59c fix id card console not updating records (#28237)
* fix id card console not updating records

* test

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-05-25 16:08:15 -04:00
DrSmugleaf
8619f241d4 Fix not networking whitelist and blacklist in storage component (#28238) 2024-05-25 16:07:37 -04:00
PJBot
87d073b81a Automatic changelog update 2024-05-25 20:04:12 +00:00
Leon Friedrich
4735cb7d2d Fix dud modular grenade visuals (#28265) 2024-05-25 16:03:05 -04:00
Ed
64ae9e9545 Merge pull request #175 from crystallpunk-14/ed-25-05-2024-upstream
Ed 25 05 2024 upstream sync
2024-05-25 19:20:49 +03:00
Ed
e216eeae20 Merge remote-tracking branch 'space-station-14/master' into ed-25-05-2024-upstream
# Conflicts:
#	Content.Server/Atmos/Components/FlammableComponent.cs
#	Content.Shared/Lock/LockSystem.cs
#	Content.Shared/Storage/EntitySystems/SharedStorageSystem.cs
2024-05-25 18:49:49 +03:00
Ed
af114a93f6 Chromium slime (#174)
* added chromium slime

* inverse poison damage
2024-05-25 17:41:29 +03:00
Ed
f8564b3661 Agaric shroom! (#172)
* agaric shrooms!

* add agaric reagents

* add agaric into worldgen
2024-05-25 13:30:33 +03:00
Leon Friedrich
a58323cca1 Update engine to v223.1.2 (#28273) 2024-05-25 19:49:46 +10:00
Leon Friedrich
d0cf620a85 Fix weapon error logs (#28264) 2024-05-25 13:13:24 +10:00
Tayrtahn
98503fc793 Hotfix for crashes from bad item names (#28256) 2024-05-24 12:57:02 -07:00
Ed
505a12606a add wallet (#169) 2024-05-24 18:59:10 +03:00
PJBot
aa09741a41 Automatic changelog update 2024-05-24 14:45:49 +00:00
nikthechampiongr
b2ca9b6a9c Fix firelock prediction issues with periodic pulses of closing lights (#28227)
* Fix firelock prediction issues with periodic pulses of closing lights

For some reason this function was setting a time for the next state
which was triggering the door system to try to close the firelock.
This does not happen serverside because the function only fires from an
event called clientside apparently.
It appears to be an attempt to stop firelocks from closing instantly
that did not function properly, and I cannot discern any other purpose.
As such I have removed it.

* Remove redundant serverside check

This became redundant with commit 439a87f2
2024-05-24 16:44:42 +02:00
Leon Friedrich
926f72ee13 Update engine to v223.1.1 (#28245)
* Update engine to v223.1.0

* Update engine to v223.1.1
2024-05-24 17:02:04 +10:00
PJBot
933a679c1a Automatic changelog update 2024-05-24 05:04:10 +00:00
Leon Friedrich
76e13eed35 Improve InteractionSystem range & BUI checks (#27999)
* Improve InteractionSystem range & BUI checks

* Ghost fixes

* AAA

* Fix test

* fix nullable

* revert to broadcast event

* Fixes for eengine PR

* Ah buckle code

* )
2024-05-24 15:03:03 +10:00
Leon Friedrich
01e7c9c37e Update engine to v223.0.0 (#28239) 2024-05-24 14:11:45 +10:00
Leon Friedrich
5d50467466 Content changes for engine delta-state PR (#28134)
* Update GasTileOverlayState

* Update DecalGridState

* Update NavMapState

* poke

* poke2

* poke3

* Poke dem tests
2024-05-24 14:08:23 +10:00
Nemanja
8a95cb186c Remove AlertType and AlertCategory (#27933) 2024-05-23 22:43:04 -04:00
DrSmugleaf
594a898260 Fix whatever the fuck is going on in storage system slightly (#28236)
* Fix whatever the fuck is going on in storage system slightly

* Fix inverted check

* h

* Add silent bool

* Silent
2024-05-23 18:23:55 -07:00
PJBot
5cb914e4a6 Automatic changelog update 2024-05-23 20:28:53 +00:00
blueDev2
2ccd8e234d Add Fruit Tag to watermelon slice (#28226) 2024-05-23 16:27:45 -04:00
Ed
907b41a4d1 Water floor antity (#168)
* add rivers and lake test generation

* add water animation
2024-05-23 18:35:38 +03:00
DrSmugleaf
0e0f50f3d1 Prioritize empty item slots when inserting (#28203)
* Prioritize empty item slots when inserting

* Revert "Prioritize empty item slots when inserting"

This reverts commit 4272a65cba5fc18df801812b0af20123aec08409.

* Prioritize empty item slots when inserting

* Try drop

* Check for any can insert before dropping
2024-05-23 14:16:14 +10:00
Ed
2e91620630 Wall lantern + floor water (PLaceholders) (#167)
* fix lamp sprite

* Update wallmount_torch.yml

* add water test sprite

* add simple water entity

* add reversed crystall sprites

* add sand tile
2024-05-22 23:18:18 +03:00
Ed
8da9910814 Merge pull request #164 from Jaraten/NewChests
New Chests
2024-05-22 22:14:21 +03:00
Ed
327ee24b19 Update meta.json 2024-05-22 22:13:46 +03:00
Ed
5b653eea4f Update meta.json 2024-05-22 22:13:12 +03:00
lzk
c082773b5f Remove dupe closet janitor bombsuit (#28177)
* Remove dupe closet janitor bombsuit

* Update Resources/migration.yml

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
2024-05-22 10:59:49 -06:00
Doctor-Cpu
79d4c0eee0 misc atlas fixes (#28191)
misc fixes
2024-05-22 10:59:33 -06:00
Julian Giebel
1fa493e1af Implement permissive version of AddMarkup and use it for tips (#28204)
* Implement permissive version of ddMarkup
Use permissive ddMarkup for news article input
Use permissive ddMarkup for tips

* Fix doc comment format
2024-05-22 10:23:55 -04:00
ShadowCommander
687bf8caaa Revert "Make hotplate and grill anchorable on table" (#28202)
Revert "Make hotplate and grill anchorable on table (#28026)"

This reverts commit 26747be232.
2024-05-22 05:29:19 -07:00
PJBot
456e6f07ec Automatic changelog update 2024-05-22 11:17:27 +00:00
nikthechampiongr
df8b9a659e Firelock improvements part 1 (#26582)
* Change prying system and pryunpoweredcomp to allow for custom time modifiers

This will be useful if I go the route of making firelocks pryable when
unpowered instead of just being able to open and close instantly when
unpowered.

* Make firelocks properly predicted

Shared system made. Since atmos checks can only be done on the server we
just have it set relevant bools on the component and then dirty it.
Ditched atmos checks on trying to open, they now only happen whenever
firelocks are updated.

* Make firelocks pryable without a crowbar

While this usually would only allow you to do this when a door is
unpowered, firelocks do not have the airlock component which actually
does that check. As such firelocks will always allow you to pry them
open/closed by hand.

* Clean up System. Change update interval to be based on ticks. Move as much as possible to shared

* Make firelocks unable to emergency close for 2 seconds after being pried open

* Clean up

* More cleanup

* Reorganize SharedFirelockSystem methods to match Initialize order

---------

Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
2024-05-22 04:16:20 -07:00
Ed
8fde83c821 Merge pull request #165 from crystallpunk-14/ed-22-05-2024-upstream
Ed 22 05 2024 upstream
2024-05-22 13:40:07 +03:00
Ed
6d51ea95a1 Merge remote-tracking branch 'upstream/master' into ed-22-05-2024-upstream 2024-05-22 13:29:42 +03:00
PJBot
6a9139b4e1 Automatic changelog update 2024-05-22 07:54:04 +00:00
Ed
ede1406128 Artifact portal effect changes (#28200)
Update portal.yml
2024-05-22 00:52:57 -07:00
Jaraten
41c505afa0 New Chests 2024-05-21 18:06:41 +05:00
Jaraten
26f91c3a5a resprite tiles (#163) 2024-05-21 15:50:37 +03:00
DrSmugleaf
dbb7dcd16d Add defib event, add fields to be able to disable crit defib and do after movement (#28174)
* Add defib event, add fields to be able to disable crit defib and do after movement

* Fix check
2024-05-21 14:11:49 +02:00
PJBot
68a0e568e4 Automatic changelog update 2024-05-21 10:17:43 +00:00
Killerqu00
79c77635fa sleeper agent appear later into the round and only once (#28160) 2024-05-21 12:16:35 +02:00
Ed
c0f158bd19 Ed anomalies (#28175)
Update CODEOWNERS
2024-05-21 12:23:55 +03:00
Jaraten
82013c2be1 Wooden Window Fix (#162) 2024-05-21 11:54:45 +03:00
Ed
f9394f4da2 Update PULL_REQUEST_TEMPLATE.md 2024-05-21 11:48:56 +03:00
Leon Friedrich
0f6e1196d8 Use non-generic TryComp() for metadata & transform (#28133) 2024-05-20 22:40:35 -07:00
Ed
18e4e86b21 Ed 19 05 2024 building2 (#161)
* added wooden planks from wooden logs

* update construction crafts from new wood planks

* Update simple.yml

* add wall frame and wall construction graph

* noSpawn old planks, fix wooden frame layering

* update Jaraten sprites

* add wooden window and restruct files

* fix

* Update wall.yml

* add new walls!

* restruct wallmounts, fix bugs

* door fix

* Update walls.yml

* Update simple.yml
2024-05-21 00:07:51 +03:00
Killerqu00
3b61368946 rotate forensic scanner stored sprite (#28162)
rotate forensic scanner
2024-05-20 15:59:07 -04:00
PJBot
c22329b86c Automatic changelog update 2024-05-20 14:13:11 +00:00
Tayrtahn
8995810ade Fix non-ghosts and admins counting toward most followed (#28120)
* Fixed non-ghosts and admins counting toward most followed

* Redone to better leverage EntityQueryEnumerator

* Remember to test your code before you commit it, kids

* Review revisions

* Update Content.Shared/Follower/FollowerSystem.cs

Co-authored-by: ShadowCommander <shadowjjt@gmail.com>

* Update Content.Shared/Follower/FollowerSystem.cs

Co-authored-by: ShadowCommander <shadowjjt@gmail.com>

* Update Content.Shared/Follower/FollowerSystem.cs

* Clean up

---------

Co-authored-by: ShadowCommander <shadowjjt@gmail.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
2024-05-20 07:12:05 -07:00
Tayrtahn
fa06783986 Prevent ghosts from spawning on terminating maps/grids (#28099)
* Extra checks to prevent ghosts spawning on terminating maps/grids

* Add test for grid deletion
2024-05-20 06:52:49 -07:00
PJBot
4ed12b60d3 Automatic changelog update 2024-05-20 13:33:31 +00:00
Tayrtahn
68ec204a67 Slightly emphasize popup when someone points at you (#28152)
Slightly emphasize when someone points at you
2024-05-20 15:32:25 +02:00
Verm
dce2bfe2b8 Remove extra gear prototype (#28062)
Remove extra prototype
2024-05-20 13:24:15 +02:00
PJBot
5863700a56 Automatic changelog update 2024-05-19 23:05:22 +00:00
TsjipTsjip
daac303783 Admin access configurator (#28107)
* Port spritework and initial prototypes by @Arimah

Co-authored-by: Alice 'Arimah' Heurlin <30327355+arimah@users.noreply.github.com>

* Make Admin PDA's spawn with a universal ID card

* Add universal access configurator to aghost satchel of holding

* Add Admin suffixes to adminonly items: AdminPDA, UniversalIDCard, AccessConfiguratorUniversal

* Admin jobicon

---------

Co-authored-by: Alice 'Arimah' Heurlin <30327355+arimah@users.noreply.github.com>
2024-05-19 17:04:16 -06:00
PJBot
27088a38f4 Automatic changelog update 2024-05-19 23:02:50 +00:00
Flesh
c551cafdae Add plant metabolism effects to chemical guidebook (#28038)
* draft one of plant metabolism guidebook

* loc fix?

* add attributes loc

* fix loc syntax

* improved appearance

* last commit was undercooked, my bad

* last commit was still undercooked, my worse

* last commit was even still undercooked, my worst

* Addressed comments?

* Fix newlines

* Hopefully this works

* Cleanup, I think

* 2xs
2024-05-19 17:01:44 -06:00
PJBot
f2df51660d Automatic changelog update 2024-05-19 22:37:01 +00:00
Nemanja
a30fb2661f Fix magic mirror (#28084)
* Fix magic mirror

* buff magic mirror
2024-05-19 16:35:55 -06:00
DrSmugleaf
b7eed5c348 Make standing state down sound nullable (#28132) 2024-05-19 16:35:22 -06:00
PJBot
0307cb2a83 Automatic changelog update 2024-05-19 22:23:52 +00:00
Killerqu00
3c4295697a add (un)equip delay for EVA helmets to fix sound spam (#28142)
add equip delay for EVA helmets
2024-05-19 16:23:38 -06:00
Teemu Kauhanen
d5875fd4a1 add WhiteCane recipe (#28146) 2024-05-19 16:22:45 -06:00
Leon Friedrich
53213a0200 Fix gun cooldown timespan overflow exception (#28136) 2024-05-19 16:07:45 -06:00
lzk
e06b58abce Resprite zookeper id (#28131)
Change zookeper id
2024-05-19 16:05:12 -06:00
MilenVolf
c8a72e1aa6 Fix toilet texture & fixture (#28125)
* Fix toilet texture & fixture

Passangers that got stuck between wall and a toilet will thank you

* Fix mask, add layer None
2024-05-19 16:04:55 -06:00
Tayrtahn
16aa1c206b Improve "points at self" messages (#28147) 2024-05-19 13:01:54 -07:00
Ed
dbff4c1397 Merge pull request #159 from crystallpunk-14/ed-19-05-2024-upstream
Ed 19 05 2024 upstream
2024-05-19 17:20:56 +03:00
Ed
1dbb4e7e94 Merge branch 'master' into ed-19-05-2024-upstream 2024-05-19 15:57:20 +03:00
Ed
6a639107b3 Merge remote-tracking branch 'space-station-14/master' into ed-19-05-2024-upstream
# Conflicts:
#	Resources/Prototypes/Entities/Structures/Walls/asteroid.yml
2024-05-19 15:43:25 +03:00
Ed
1ce32bd1c7 Logs + fireplace fix + Trees (#158)
* add wooden log stacks

* setup wood material

* update trees

* fix fireplaces

* stack now properly works in fireplace system

* bonfire fix

* Update materials.yml

* Update base.yml
2024-05-19 15:40:28 +03:00
Leon Friedrich
6e83c4d570 Update component query benchmarks (#27967)
* Add more component query benchmarks.

* Rename benchmark
2024-05-19 11:55:10 +10:00
Leon Friedrich
b4a5399ad4 Modify battery assert to avoid floating point errors (#28007) 2024-05-19 11:54:52 +10:00
PJBot
e5f30b12d2 Automatic changelog update 2024-05-19 01:36:52 +00:00
DrSmugleaf
3d41d5f2bc Make wielding automatically drop the item on your other hand (#27975)
* Make wielding automatically drop the item on your other hand

* Fix docs

* Remove redundant parameter

* Fix not deleting virtuals on fail

* Make count freeable hands method

* Add popup when dropping item
2024-05-18 18:35:46 -07:00
github-actions[bot]
676fc22eb4 Update Credits (#28124)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
2024-05-19 03:33:41 +02:00
PJBot
74e853ee7d Automatic changelog update 2024-05-19 00:24:50 +00:00
dffdff2423
9f1d95e335 Fix Flavor Text editor not saving correctly (#28122)
* Check for flavor text equality in profile.

* Fix some characters being deleted from flavor text

Sometimes the last few characters of the flavor text would get deleted. This fixes this issue.
2024-05-19 02:23:44 +02:00
Tayrtahn
22aa8596de Fix activatable UI popup message spam (#28123)
Fixed activatable UI popup message spam
2024-05-18 17:12:47 -07:00
Ed
13d104c0de update ladder color 2024-05-19 00:44:37 +03:00
Ed
b66ce952af Minecraft update (#157)
* add shovel and digging tool quality

* dirt digging effect

* variantize deconstructed tile

* added dirt tile borders

* revert variantize tiles, add dirt blocks entity

* add dirt stack

* Update simple.yml
2024-05-19 00:26:52 +03:00
Ed
fc11cc90ac Revert "Tile variantize after deconstruct" (#28119)
Revert "Tile variantize after deconstruct (#28118)"

This reverts commit bf0529df56.
2024-05-18 23:23:40 +03:00
Ed
bf0529df56 Tile variantize after deconstruct (#28118)
Update TileSystem.cs
2024-05-18 15:06:36 -04:00
Tayrtahn
bad3bb4a89 Random book story generator refactor (#28082)
* Randomized book overhaul

* Fix prototype names

* Improved setting paper content

* Praise Ratvar
2024-05-18 12:20:00 -04:00
Ed
225a05ecdb Nuke spaceshroom ore (#28110)
nuke spaceshroom ore
2024-05-18 12:17:46 -04:00
Ed
8c7f26f860 Overworld biome overhaul (#156)
* decals filter adding

* add planet generation!

* Update biomes_template_grasslands.yml
2024-05-18 18:06:53 +03:00
Tornado Tech
0aa0abb949 New tiefling hue (#155)
* Добавлен отдельный тип цвета кожи для тифлингов

* Немного чистки

* Автоматом поправил, будет мешать при мердже
2024-05-18 17:46:19 +03:00
PJBot
8bbd2394ef Automatic changelog update 2024-05-18 14:24:24 +00:00
double_b
0525c63332 Resolves Bible summon message being sent to all users (#28104)
* Changed PopupEntity overload used to ensure message is only sent to user

* Updated uid for PopupEntity call

* Updating _popupSystem.PopupEntity call in AttemptSummon
2024-05-18 10:23:16 -04:00
Ed
9690077532 Bloodgrass gatherable entity + gatherable system cleanup + bugfix (#154)
* added 4 basic reagent effects

* entrance bugfixes

* add bloodgrass world sprites

* preuso cherry pick

* add planet bloodgrass and sickle gathering

* +1 gather sound
2024-05-18 15:16:20 +03:00
lzk
37382b3186 Move pens out of paper.yml mess (#28044)
* Move pens out of paper.yml mess

* forgor

* fix tests

* fux

* fix 2
2024-05-18 12:51:02 +03:00
PJBot
ca96a27c31 Automatic changelog update 2024-05-17 19:47:51 +00:00
YuNii
99072341eb Add keybind option for the Emote Menu (#28083)
* Add keybind option for the Emote Menu

* Update .editorconfig

oopsies
2024-05-17 21:46:45 +02:00
PJBot
6082df7eac Automatic changelog update 2024-05-17 16:34:28 +00:00
lzk
b08f79fb38 Move replacement chance from ReplacementAccentComponent to ReplacementAccentPrototype (#28049)
Move replacement chance to ReplacementAccentPrototype
2024-05-17 19:33:22 +03:00
Ed
a29034a133 tile filter (#153) 2024-05-17 18:16:14 +03:00
Ed
811cc8a41d Underworld + Overworld (#151)
* Setup new dungeon system (v2)

* add custom basic generation

* add maps linking

shitcode, boo

* add auto linking sub-world portal

* fix deleted component

* clearing otherside of the tiles manually (im stuck in wall, brother!)

* Upgrade cave biome generation

* add TODO

* add ladder and hole sprites

* add dungeon entrance prototypes

* clean up, add docs

* add many ambient sounds

* Update CP14StationDungeonMapSystem.cs

* remove bugs
2024-05-17 17:07:29 +03:00
Ed
a2c164bb07 Merge pull request #152 from crystallpunk-14/ed-17-05-2024-upstream
Ed 17 05 2024 upstream
2024-05-17 13:07:44 +03:00
Ed
918ba35ccb Merge remote-tracking branch 'refs/remotes/upstream/master' into ed-17-05-2024-upstream 2024-05-17 12:57:04 +03:00
DrSmugleaf
de7e1b33dd Add data field for id card microwave behaviour (#28087) 2024-05-17 10:48:22 +02:00
PJBot
fd8b195c4e Automatic changelog update 2024-05-17 07:52:35 +00:00
Nemanja
868b6c202d fix orphaned storage grid pieces getting stuck to the cursor (#27960)
* fix orphaned storage grid pieces getting stuck to the cursor

* instead of denying it, update it smartly
2024-05-17 00:51:28 -07:00
Emisse
157c57a94f bagel update (#28080) 2024-05-17 00:15:52 -06:00
Pieter-Jan Briers
7ddd0979a4 Update engine to v222.3.0 (#28078)
* Update engine to v222.3.0

* v222.4.0 instead
2024-05-17 06:12:13 +02:00
PJBot
0a9ac37fcc Automatic changelog update 2024-05-16 20:52:13 +00:00
deltanedas
b453b94148 fix ninja hacking not affecting sechud (#28021)
minor refactor and fix

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-05-16 16:51:06 -04:00
Джексон Миссиссиппи
893b60dba9 Make some CCVars server-change only (#28079)
* | CVar.SERVER

* Ooh ee ooh aah aah ting tang walla walla bing bang
2024-05-16 21:44:20 +02:00
Pieter-Jan Briers
b35dc427e1 Fix sandbox check failure when compiling with latest .NET SDK. (#28077)
Roslyn now compiles char + string with string.Concat(ROS<char>). This means doing ref char -> ROS<char> which is not sandbox safe. Actually fixing this in the sandboxer is difficult so I'm gonna just pass on that for now.
2024-05-16 19:55:32 +02:00
Errant
6c5b84a346 Remove throngler lottery mention from Tips (#28073)
You sit on a throne of lies
2024-05-16 13:53:46 +03:00
DrSmugleaf
e53f225a39 Move most rotting code to shared (#28050)
* Move most rotting code to shared

* Remove unused dependency
2024-05-15 17:45:50 -04:00
PJBot
91afb12993 Automatic changelog update 2024-05-15 21:04:04 +00:00
EdenTheLiznerd
f3910d3410 Remove The Throngler from Grand Lottery (#28060)
Peace and Quiet
2024-05-15 23:02:58 +02:00
Dexler
9b5dd1fab2 Disposal unit recharging state fix (#28059) 2024-05-15 16:55:01 -04:00
PJBot
6fd5015940 Automatic changelog update 2024-05-15 10:32:00 +00:00
Verm
2be4287193 Fix Shuttle Roles spawning without PDAs and Headsets (#28045)
* Move to starting gear, define a bunch of stuff

* Spacing
2024-05-15 13:30:53 +03:00
deltanedas
e37f95c24c biome flexibility changes (#28017)
make biome apply template on mapinit, add api for setting Enabled

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-05-14 23:27:25 -04:00
DrSmugleaf
c94751f2d2 Fix the client not passing the weapon to can attack checks (#28040) 2024-05-14 23:26:02 -04:00
Flareguy
3243afbb03 Makes bullet casings destructible by explosions (#27910)
makes casings destructible
2024-05-14 20:23:24 -04:00
PJBot
13ba3fc4da Automatic changelog update 2024-05-15 00:00:52 +00:00
ShadowCommander
9ea06f3a39 Fix salvage magnet UI opening again when activating the console twice (#28010) 2024-05-14 19:59:46 -04:00
Nairod
f1260dae00 Replace Chef Ship Helmet (#28036)
Replace Chef Ship EVA Helm
2024-05-14 19:59:06 -04:00
PJBot
3d2f3c174b Automatic changelog update 2024-05-14 23:58:30 +00:00
Tunguso4ka
9e8920c9aa Renamed old snake_case IDs to PascalCase IDs (#28014)
* Renamed soda_dispenser to SodaDispenser

* oops, wrong time

* oops

* guidebook

* chem_master
2024-05-14 19:57:42 -04:00
lzk
26747be232 Make hotplate and grill anchorable on table (#28026)
Make hotplate and grill anchorable
2024-05-14 19:57:23 -04:00
deltanedas
bad5367479 fire troll fix (#28034)
Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-05-14 16:47:00 -07:00
beck-thompson
550a3afc52 Fix incorrect message displaying when trying to remove stuck item from someones hand. (#28024)
* Fix

* Fixed the other spot!
2024-05-14 15:01:12 -04:00
PJBot
0edc9218d6 Automatic changelog update 2024-05-14 04:54:53 +00:00
DrSmugleaf
f22e5404aa Make failing to fire a gun that requires wielding not delay the next shot (#27973)
Make failing to fire a wield-only gun not delay the next shot
2024-05-13 21:53:47 -07:00
ShadowCommander
63c551b20d Fix profile editor save buttons disappearing at small resolutions (#28001) 2024-05-14 14:03:06 +10:00
Nemanja
950adc8fde Revert "Stop Toilets crushing you into walls" (#27994)
Revert "Stop Toilets crushing you into walls (#27778)"

This reverts commit 24e227660a.
2024-05-14 10:29:50 +10:00
PJBot
f78da7da33 Automatic changelog update 2024-05-13 21:50:50 +00:00
deltanedas
4b2193a8a0 fix fire spread round removal (#27986)
* fix a resolve debug assert

* rewrite fire spread

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-05-13 17:49:44 -04:00
PJBot
d68186ff5c Automatic changelog update 2024-05-13 21:47:23 +00:00
Brandon Li
bfed85aff2 Reagent dispenser UI (Again) (#27958)
* reagent dispenser: fancy window

* reagent dispenser: dispense button grid

* reagent dispenser: rearrange containers & info

* reagent dispenser: remove `reagent-dispenser-window-container-label`

* reagent dispenser: add `Scrollcontainer` on right side

* reagent dispenser: get rid of pointless actions

* reagent dispenser: cleanup actions and `inventory` field on bound ui state

* reagent dispenser: cool reagent cards & finishing touches

* reagent dispenser: final cleanup and formatting

* reagent dispenser: `ButtonGrid` and `ReagentDispenserSetDispenseAmountMessage` refactor

* reagent dispenser: cleanup code & address minor concerns

* reagent dispenser: text in reagent cards no longer clips

* reagent dispenser: oh wait i forgot to change this and thats why the builds keep failing probably

* reagent dispenser mayybe this

* reagent dispenser: remove `using FastAccessors;`

* delete unused classes

* disable reagent button when container is empty

* Make things a bit bigger

* remove obsolete text color override
2024-05-13 17:46:16 -04:00
PJBot
1a9766bd67 Automatic changelog update 2024-05-13 19:27:06 +00:00
lzk
74020abc91 Fix skirts femalemask (#27984)
Fix skirts
2024-05-13 13:25:58 -06:00
Ed
0a449d64d6 Remove station ambient (#149)
* Update audio.yml

* setup ambience rule
2024-05-13 18:56:39 +03:00
Ed
608eaae9f6 Merge pull request #148 from crystallpunk-14/ed-13-05-2024-upstream
Ed 13 05 2024 upstream
2024-05-13 18:45:00 +03:00
Ed
dda8ea2b09 Merge remote-tracking branch 'refs/remotes/upstream/master' into ed-13-05-2024-upstream
# Conflicts:
#	Content.Shared/Lock/LockSystem.cs
#	Resources/Prototypes/Maps/oasis.yml
2024-05-13 18:32:59 +03:00
Leon Friedrich
1f03111ff8 Change some EntityQueryEnumerator to AllEntityQuery (#27969) 2024-05-13 15:11:49 +10:00
metalgearsloth
ce0a175c73 Implement Equals for ApcBoundInterfaceState (#27965)
* Implement Equals for ApcBoundInterfaceState

Saves a lot on bandwidth. Also made it round to the nearest 5.

* Also this
2024-05-13 14:05:37 +10:00
Nemanja
03af7fcdc1 fix weird behavior with storage HUD buttons (#27961) 2024-05-13 11:07:52 +10:00
Kara
993eef1e7c Resolve 'EntitySystem.Get<T>()' is obsolete in content (#27936)
* PROJECT 0 WARNINGS: Resolve `'EntitySystem.Get<T>()' is obsolete` in content

* pass entman

* dog ass test

* webeditor
2024-05-12 20:34:52 -04:00
PJBot
efc430f651 Automatic changelog update 2024-05-13 00:04:13 +00:00
Kara
d6e2cc0a8b Open slot storage keybind can now also close the UI (#27962) 2024-05-12 20:03:07 -04:00
PJBot
c325ca8566 Automatic changelog update 2024-05-12 22:15:41 +00:00
ShadowCommander
9c3dab0be3 Fix borg UI regenerating every tick (#27956)
* Fix UI elements being recreated when they didn't need to be

* Fix up comparison
2024-05-12 18:14:35 -04:00
PJBot
cfee7e3fdc Automatic changelog update 2024-05-12 15:09:00 +00:00
nikthechampiongr
c8b55e5e44 Record deletion (#27883)
* Allow for Station Records interface for aghosts to delete records

* Fix record consoles not working when there are more than 2 crew members.

HOW DID NOONE NOTICE THIS SOONER???

* Stop being unconventional
2024-05-12 17:07:54 +02:00
DrSmugleaf
ed7075942d Add live templates for networked data field, networked component and auto state component (#27906)
* Add live templates for networked data field, networked component and auto state component

* Fix field access

* Fix readonly
2024-05-12 10:36:46 -04:00
PJBot
17e0a7f56c Automatic changelog update 2024-05-12 14:36:37 +00:00
no
37099e481e Prevent admin-frozen players from ghosting or suiciding, add "Freeze And Mute" verb (#27813)
* prevent admin-frozen players from ghosting or suiciding

* Add "Freeze and Mute" admin verb

* Allow "Freeze And Mute" admin verb when player is already frozen but not muted

* Remove redundant scream handler (scream action just emotes, duh)

* AdminFrozenSystem: clean imports

* Update Content.Server/Chat/Commands/SuicideCommand.cs

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Update Ghost.cs

* retrigger ci (empty commit)

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2024-05-12 10:35:30 -04:00
Kara
855234aa30 Resolve 'TransformComponent.MapPosition' is obsolete in content (#27939)
* Resolve `'TransformComponent.MapPosition' is obsolete: 'Use TransformSystem.GetMapCoordinates'` in content

* build?
2024-05-12 10:31:54 -04:00
ShadowCommander
8938e1d8b2 Replace AttachToGridOrMap with DropNextTo (#27950) 2024-05-12 10:30:17 -04:00
Kara
1596e04d0f Resolve all non-obsoleting warnings in content (#27934)
* Resolve all non-obsoleting warnings in content

* Update ClientGameTicker.cs

* Update SkeletonAccentSystem.cs

* Update BwoinkSystem.cs
2024-05-11 20:13:58 -07:00
Джексон Миссиссиппи
cf148288a0 Add an admin smite for making people slip really far (and localize the admin smites better) (#27246)
* Sliiiiiiiiiiiiiiiiiip

* what

* Localize!

* antiterminate
2024-05-11 22:01:58 -04:00
github-actions[bot]
db2beafd59 Update Credits (#27938)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
2024-05-11 21:23:48 -04:00
Ghagliiarghii
829e12d263 Embed a few more Cryogenics chems in Guidebook (#27935) 2024-05-11 21:18:17 -04:00
PJBot
b7c447f1c5 Automatic changelog update 2024-05-11 23:19:28 +00:00
metalgearsloth
332f54a3ae Lobby refactor + species loadouts support (#27576)
* Vox stuff

* Species loadouts and lobby refactor

The control flow for lobby is all over the shop so I pulled it all up from the individual controls so now they handle the bare minimum required and LobbyUIController handles the rest.

* a

* Bulk changes

* a

* weh

* Character import / export

* finalise

* woops this stuff too

* Also datafield exporting

* comments

* Review
2024-05-12 09:18:21 +10:00
keronshb
999d044139 Magic Refactor + Wizard Grimoire (#22568)
* Brings over changes from the original magic refactor PR

* Adds Master Spellbook, spellbook categories, WizCoin currency, and locale

* Wiz€oin™

* Adds currency whitelist to Spellbook preset, grants contained actions on action added.

* Adds grant contained action and remove provided action.

* adds a way for actions to be upgraded to the store

* Adds Fireball 3 and fixes action upgrade logic so that it checks if the action can level or if the action can upgrade separately

* Fixes upgrade logic in ActionUpgradeSystem to allow for level ups without an actual upgrade. Fixed action upgrade logic in store system as well

* Removes current action entity from the bought entities list and adds new or old action entity

* Removes Current Entity

* Removes old comments, fixes TransferAllActionsWithNewAttached

* Removes TODO

* Removes Product Action Upgrade Event

* reverts changes to immovablerodrule

* Removes stale event reference

* fixes mind action grant logic

* reverts shared gun system change to projectile anomaly system

* forgor to remove the using

* Reverts unintended changes to action container

* Adds refund button to the store

* Refreshes store back to origin.

* Refund with correct currency

* Init refund

* Check for terminating and update interface

* Disables refund button

* Removes preset allow refund

* dont refund if map changed

* adds refunds to stores

* Adds method to check for starting map

* comments, datafields, some requested changes

* turns event into ref event

* Adds datafields

* Switches to entity terminating event

* Changes store entity to be nullable and checks if store is terminating to remove reference.

* Tryadd instead of containskey

* Adds a refund disable method, disables refund on bought ent container changes if not an action

* Removes duplicate refundcomp

* Removes unintended merges

* Removed another unintended change from merge

* removes extra using statement

* readds using statement

* might as well just remove both usings since it won't leave the PR

* Fixes Action upgrades from stores

* Changes to non obsolete method uses

* Shares spawn code between instant and world

* Adds action entity to action event, adds beforecastspellevent, adds spell requirements to magic component

* puts prereq check in spell methods, sets up template code for before cast event

* checks for required wizard clothes

* Networks Magic Comp and Wizard Clothes Comp. Renames MagicSpawnData to MagicInstantSpawnData.

* Removes posdata from projectiles

* Speech > RequiresSpeech

* Fixes ActionOnInteract

* checks for muted

* popup for missing reqs

* Validate click loc for blink spell

* Checks if doors are in range and not obstructed before opening

* Check ents by map coords

* Adds speak event

* Comments spellbooks

* Removes comments

* Unobsoletes smite spell

* Invert if

* Requirements loc

* Fixes spell reqs

* Inverts an if

* Comment updates

* Starts doafter work

* Removes doafter references

* Balances fireball upgrades to be more reasonable

* Enables refund on master spellbooks

* Spells to do

* update spellbook doafter

* knock toggles bolts

* Touch Spell comments

* Comments for pending spells

* more comments

* adds spider polymorph to spellbook

* TODOs for spells

* reorganizes spellbook categories and adds wands

* fixes spacing and adds limited conditions

* commented owner only for future store PR

* reenables owner only for the grimoire

* fixes grimoire sprite

* Adds wizard rod polymorph

* summon ghosts event

* Moves rod form to offensive category

* Adds charge spell and loc for rod polymorph

* Oops forgor the actual chages

* Item Recall comment

* Fixes UI

* removes extra field for wizard rod

* Cleanup

* New Condition (INCOMPLETE)

* Fix linter

* Fix linter (for real)

* fixed some descriptions

* adds regions to magic

* Adds a non-refund wizard grimoire, fixes blink to deselect after teleporting, reduces force wall despawn time to 12 seconds

* removes limited upgrade condition

---------

Co-authored-by: AJCM <AJCM@tutanota.com>
2024-05-11 19:06:49 -04:00
PJBot
73c1420648 Automatic changelog update 2024-05-11 15:43:17 +00:00
DrSmugleaf
8b88fe4bb7 Make projectiles not hit crit mobs unless clicked on (#27905) 2024-05-11 11:42:11 -04:00
PJBot
1698e1cfab Automatic changelog update 2024-05-11 15:04:48 +00:00
icekot8
4e26be8617 revenant can no longer harvest souls while in solid objects (#27612)
meow
2024-05-11 11:04:17 -04:00
ShadowCommander
a985c5e83e Fix ghosts getting spawned in nullspace (#27617)
* Add tests for ghost spawn position

* Make ghosts spawn immediately

* Format mind system

* Move ghost spawning to GhostSystem

* Spawn ghost on grid or map

This fixes the ghosts being attached the parent entity instead of the grid.

* Move logging out of the ghost system

* Make round start observer spawn using GhostSystem

* Move GameTicker ghost spawning to GhostSystem

Moved the more robust character name selection code over.
Moved the TimeOfDeath code over.
Added canReturn logic.

* Add overrides and default for ghost spawn coordinates

* Add warning log to ghost spawn fail

* Clean up test

* Dont spawn ghost on map delete

* Minor changes to the role test

* Fix role test failing to spawn ghost

It was failing the map check due to using Nullspace

* Fix ghost tests when running in parallel

Not sure what happened, but it seems to be because they were running simultaneously and overwriting values.

* Clean up ghost tests

* Test that map deletion does not spawn ghosts

* Spawn ghost on the next available map

* Disallow spawning on deleted maps

* Fix map deletion ghost test

* Cleanup
2024-05-11 11:03:40 -04:00
PJBot
742a1a5fbd Automatic changelog update 2024-05-11 15:02:36 +00:00
Vasilis
b860774d7c Do not wake up NPC if there is still a mind attached. (#27651)
* Do not wake up NPC if there is still a mind attached.

This became apparent with diona nymphs (?) and slime gyras (?). This caused players that disconnected while a nymph, gyras or other npc to resume their NPC behavior. Which I would call unwanted. This fixes that.

* Zombies become AI anyway

* Update Content.Server/NPC/Systems/NPCSystem.cs

---------

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
2024-05-11 11:01:28 -04:00
Flareguy
8366c743f2 Gives vox The Brows in their front facing sprite (#27922)
* gives vox The Brows in their front facing sprite

* JASON
2024-05-11 10:54:56 -04:00
RiceMar1244
5da04e1cfc Fixes oversight in wieldable smg accuracy (#27907) 2024-05-11 10:40:01 -04:00
Mr. 27
9ee42e1138 Fix security jumpsuit sprite's asymmetry (#27925)
* inital

* Update meta.json
2024-05-11 08:52:57 -05:00
DrSmugleaf
9a04170e86 Fix shuttle cvars comments (#27923)
* Fix shuttle cvars comments

* Add another line to ftl mass limit
2024-05-11 22:11:20 +10:00
ShadowCommander
1db48b86d1 Fix collection modified error when locking storage (#27913) 2024-05-11 02:25:40 -07:00
DrSmugleaf
7524fb93b6 Fix const data field in BlindableComponent (#27919)
* Fix const data field in BlindableComponent

* Fix usages
2024-05-11 01:20:48 -07:00
DrSmugleaf
eed560bf3e Make FTL constants in ShuttleSystem into cvars (#27706)
* Make FTL constants in ShuttleSystem into cvars

* Fix tests
2024-05-11 00:00:15 -07:00
PJBot
c81c1c1f1e Automatic changelog update 2024-05-11 02:22:24 +00:00
ike709
af4c6373f6 Adds Support for Guidebook Buttons in UIs (#27891)
* Adds Support for Guidebook Buttons in UIs

* read it from the component

* the code is perfect

* moony review

---------

Co-authored-by: ike709 <ike709@github.com>
2024-05-10 22:21:18 -04:00
Mr. 27
9845d8bd30 Fix ninja suit suit storage and other armor missing their suit storage (#27897)
b
2024-05-10 22:20:18 -04:00
metalgearsloth
5578bcc6f8 Fix votes using an audio entity (#27871)
* Fix votes using an audio entity

Just retains a source around and uses that. I think the audio limit is like 256 sources on the lower end so this is like whatever to persist.

* Restart

* weh
2024-05-10 21:21:06 -04:00
DrSmugleaf
9741fda672 Add ActionPerformedEvent, ActionsSystem.SetIfBiggerCooldown, action id to action events and BackgroundOn field (#27682)
* Add ActionPerformedEvent and ActionsSystem.SetIfBiggerCooldown

* Add action id to action events and backgroundon field to action component
2024-05-10 20:04:01 -04:00
lzk
bc53a46a73 Change o2/plasma ratio in TEG guidebook (#27763) 2024-05-10 19:58:19 -04:00
slarticodefast
938c3104e7 Remove THC oil (#27889)
remove THC oil
2024-05-10 19:56:48 -04:00
PJBot
0250cd99be Automatic changelog update 2024-05-10 23:51:02 +00:00
youtissoum
267d648172 Add slime and spider wideswinging (#27856)
* Add wide swinging to spiders

* Add wide swinging to slimes
2024-05-10 19:49:56 -04:00
IProduceWidgets
40802738ec change shadowstone desc. (#27900)
shadowstone desc.
2024-05-10 13:44:27 -07:00
PJBot
abd961d9c4 Automatic changelog update 2024-05-10 15:58:28 +00:00
MisterMecky
d688ad2878 fix fland kitchen freezer (#27532)
* fix fland kitchen freezer

* run fixgridatmos
2024-05-10 09:57:21 -06:00
Ubaser
cfa6a0050e Update Core (#27887)
add
2024-05-10 09:28:09 -06:00
PJBot
501d039b26 Automatic changelog update 2024-05-10 11:37:05 +00:00
Ed
e522bbf90d New event: Approaching unknown shuttle (#24490)
* setup codebase

* Add first shuttle

* tak

* sync striker

* sync 2

* pipipi

* Preloaded roundstart shuttles!

* Make it abstract "PreloaderGrid" not "PreloaderShuttle"

* to do

* added china cuisin shuttle

* fixes

* add disaster evacpod

* remove enemy

* final shuttles

* weight 5 -> 10

* move data to component

* remove autotrailer touching

* doc, respath

* fix frozen positioning

* fixes + cvar

* finally

* fix evacpod

* remove blacklistrules

* remove `UnknownShuttleSpawnRule`, refactor `LoadMapRule` to support preloaded grids

* use tryload

* cleanup

* fixes

* use preloadedgrid for loneops

* weight unknown shuttles differently (preliminal)

* leftover

* cleanup and raffling

* partial review

* singleton gridpreloader no station coupling

* fix grid atmoses

* `roleLoadout` support for `LoadoutComponent`, fix missing gear

* weighting changes

* init logic fix

---------

Co-authored-by: Kara <lunarautomaton6@gmail.com>
2024-05-10 04:35:59 -07:00
deltanedas
d061aa437e saltern robotics console (#27834)
Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-05-10 02:15:56 -06:00
PJBot
f76d3d8a5e Automatic changelog update 2024-05-10 08:13:21 +00:00
Doctor-Cpu
d4ea3ca25a Atlas Rework (#27702)
* reworked atmos

* fix rtg atmos

* security perma and bridge

* misc tweaks

* minor fixes

* fix skill issue

* fix map render

* requested changes

* fix cameras

* add robotics console

* remove door states

* air alarm

* fix funky tiles at bar

* add missing tiny fans

* remove pod fan from last commit

* moved robodrobe (why did i change sci slightly)

* add buckets and water to jani
2024-05-10 02:12:14 -06:00
PJBot
6c99534761 Automatic changelog update 2024-05-10 02:59:21 +00:00
RiceMar1244
2287f59e8a Adds wielding for all large guns (#26970)
* Adds wielding assets

* Modifies meta.json files and adds artist credit

* Adds wieldable component to a bunch of weapons

* Moves shotgun inhands and wield inhands to their own folders (because its the only way the sprites would work)

* Removes the wieldable component from some guns

* Adds wielding sprites for wieldable guns that didnt have them

* Adds gun wielding bonuses and base innaccuracy to wieldable guns.

* Corrects wielded accuracy to be default accuracy instead of perfect

* Makes the drozd smg and bulldog shotgun wieldable

* Makes nukie c20r wieldable and adds sprites

* Adds BaseGunWieldable

* Makes all the newly wieldable gun use the base inheritable

* Adds accuracy to smgs to resolve inheritance conflict

* Makes all wieldable shotguns require wielding to fire because of a bug involving spread innacuracy

* Adds wield bonus message on examine
2024-05-09 19:58:15 -07:00
Jajsha
00733d87d0 Players can no longer see that emagged cyborgs' internals have been tampered with. (#27816)
* Add emag-detection funtionality to diag huds

* Add component to the omniHUD

* Fix namespace

* Adress discord review, just axe the message.
2024-05-09 19:57:34 -07:00
Boaz1111
973a8b3ad7 Cluster med refactor V2, robotics console, emergency N2 lockers (#27840)
* Cluster med refactor V2, robotics console, emergency N2 lockers

* adresses some more issues

* removes bible an chest rig
2024-05-09 20:45:13 -06:00
PJBot
c838d17fdb Automatic changelog update 2024-05-10 02:38:10 +00:00
Brandon Li
98b2a79e77 Reagent dispenser UI (#27831)
* reagent dispenser: fancy window

* reagent dispenser: dispense button grid

* reagent dispenser: rearrange containers & info

* reagent dispenser: remove `reagent-dispenser-window-container-label`

* reagent dispenser: add `Scrollcontainer` on right side

* reagent dispenser: get rid of pointless actions

* reagent dispenser: cleanup actions and `inventory` field on bound ui state

* reagent dispenser: cool reagent cards & finishing touches

* reagent dispenser: final cleanup and formatting

* reagent dispenser: `ButtonGrid` and `ReagentDispenserSetDispenseAmountMessage` refactor

* reagent dispenser: cleanup code & address minor concerns

* reagent dispenser: text in reagent cards no longer clips

* reagent dispenser: oh wait i forgot to change this and thats why the builds keep failing probably

* reagent dispenser mayybe this

* reagent dispenser: remove `using FastAccessors;`
2024-05-09 19:37:03 -07:00
PJBot
4dc3ec390e Automatic changelog update 2024-05-10 02:20:13 +00:00
Джексон Миссиссиппи
da2b9afc3a Make suit storage only available for hardsuits, softsuits, and armor (#27546)
* AAAAAAAAAAAAdd!

* o shit

* I FUCKING HATE INDENTATION GRAAAAAAAAAH
2024-05-09 20:19:07 -06:00
PJBot
b55cf45ec5 Automatic changelog update 2024-05-10 02:16:40 +00:00
Boaz1111
5b42380261 Minor map fixes (#27564)
secradio to oasis, crimrec instead of statrec on box, reporter actually added on oasis
2024-05-09 20:15:34 -06:00
PJBot
1a4d238247 Automatic changelog update 2024-05-10 02:02:56 +00:00
Mr. 27
967de41a5c Fix evac shuttles not activating the shuttle ETA timer (#27847)
* Update emergency_lox.yml

* tge
2024-05-09 19:02:12 -07:00
Boaz1111
882b687d12 gives loneops a proper ghost role raffle (#27841) 2024-05-09 19:01:49 -07:00
username
42571b12e9 Traitor objective issuers (#27855)
* the thing

* another one

---------

Co-authored-by: whateverusername0 <whateveremail>
2024-05-09 19:01:02 -07:00
PJBot
a4ab997f1f Automatic changelog update 2024-05-10 01:41:55 +00:00
Moomoobeef
1699ddecf8 Adds new "Short-Sighted" trait! (#26037)
* initial commit

* blindness trait now uses minDamage as suggested by deathride

* made fixes for review for shortsightedness

* review appeasal

* removed PermanentPoorVision & merged its functionality into PermanentBlindness
2024-05-09 18:40:49 -07:00
PJBot
581e105aa2 Automatic changelog update 2024-05-10 01:36:35 +00:00
PrPleGoo
e41a487658 add health icons to the secmed hud (#27483)
redo change
2024-05-09 18:35:29 -07:00
Tayrtahn
0d0d46e01f Fix two issues with ReplacementAccentSystem (#27866) 2024-05-09 18:31:31 -07:00
DrSmugleaf
0e3a2b3ba1 Move id and health examinable to shared (#27867)
* Move id and health examinable to shared

* Make GetInfo public
2024-05-10 11:26:39 +10:00
metalgearsloth
4e3332636a Revert "Add auto map vote cvar" (#27869)
Revert "Add auto map vote cvar (#27496)"

This reverts commit fe35188e2c.
2024-05-10 11:25:37 +10:00
PJBot
55e82ab239 Automatic changelog update 2024-05-09 21:55:01 +00:00
Hanz
77ee0088f9 CMO Drip DLC (#26153)
* All the stuff

yes yes

* THE GOD DAMN META

bruh

* New sprites and all that jazz

yay

* loadouts working?
2024-05-09 17:53:55 -04:00
DrSmugleaf
2de3dbc9ce Fix NoMaterialArbitrage crashing when multiple lathe recipes give the same product (#27842) 2024-05-09 17:53:05 -04:00
PJBot
b5e31cbf2b Automatic changelog update 2024-05-09 21:46:29 +00:00
Mr. 27
fe5f4162ac Prevent non-inital infected from getting the succumb to zombie action (#27820)
* b

* Update ZombieRuleSystem.cs

* hi
2024-05-09 17:45:23 -04:00
lzk
4231efc780 Change minimalist theme empty slot outline (#27860)
Change minimalist them empty slot outline
2024-05-09 17:17:33 -04:00
MilenVolf
c0c3b89a6a Fix borgwalk volume (#27846) 2024-05-09 17:16:56 -04:00
Mr. 27
74e39fb918 senior security jumpskirt resprite and security jumpskirt sprite minor fix (#27804)
inital
2024-05-09 07:28:28 -05:00
PJBot
0d8149f151 Automatic changelog update 2024-05-09 07:13:54 +00:00
deltanedas
cd92046966 make fire not burn through hardsuits (#27161)
* add FireProtection system and event

* minor optimisation + make flammable use fire protection event

* add fire protection values to some things, nerf firesuit heat resistance

* bruh

* unrevert laser nerfs, make elite hardsuit fully fireproof

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-05-09 00:12:48 -07:00
deltanedas
b96ed726f1 fix master (#27833)
pro

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-05-09 00:07:17 -07:00
Sphiral
de729f9037 Make storage UI close upon being locked (#27810)
* make storage close on lock

* formatting and comments

* Update Content.Shared/Storage/EntitySystems/SharedStorageSystem.cs

Co-authored-by: ShadowCommander <shadowjjt@gmail.com>

* Apply suggestions from code review

Co-authored-by: ShadowCommander <shadowjjt@gmail.com>

* Swap to foreach instead of for

Co-authored-by: Kara <lunarautomaton6@gmail.com>

---------

Co-authored-by: ShadowCommander <shadowjjt@gmail.com>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
2024-05-08 23:50:50 -07:00
PJBot
c866c2f524 Automatic changelog update 2024-05-09 06:50:00 +00:00
vorkathbruh
86405ecace Nukie agent requires chemistry hours, rather than general medical hours. (#27098)
* Update nukeops.yml

Change nukie agent's playtime requirement from 5 hours medical to 5 hours chemistry.

* Update nukeops.yml again

5 hours -> 3 hours
2024-05-08 23:48:53 -07:00
Killerqu00
7d918c95d0 Revolutionaries can now cuff command instead of killing/exiling them (#27627)
* command can now be restrained for revs victory

* headrevs still must be killed
2024-05-08 23:48:32 -07:00
PJBot
bf0de0ffeb Automatic changelog update 2024-05-09 06:37:14 +00:00
deltanedas
b33730db22 malf killer 9000 (robotics console) (#24855)
* create devicenet frequencies

* create borg transponder and give it to all nt borgs

* add robotics console

* actually implement battery charge display + some fix

* tab

* real explosion

* little safer

* disable destroy button clientside too when on cooldown

* m

* how do i do this when i review things...

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* webedit ops

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>

* ui updates

* oracle java

* do a thing

* update ui when a borg times out

* maybe fix test

* add IsLocked to LockSystem

* make destroying gib the chassis again, so emagging isnt sus

* use locking

* require using alt click to unlock so normal click is open ui

* the

* use LogType.Action

* take this L

* pocket lint?

* sharer

* pro ops

* robor pushmarkup

* m

* update and make it not use prototype anymore

* frame0

* update yaml

* untroll

* bad

* h

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
2024-05-08 23:36:07 -07:00
deltanedas
24ab5c0982 ninja criminal records hacking (#24982)
* more humour

* spotted a troll

* add TryFindObjective to MindSystem

* replace copypaste bool conditions with CodeCondition

* use CodeConditionSystem in ninja + add handling for criminal hack

* add criminal records hacking

* update objectives

* :trollface:

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-05-08 23:35:11 -07:00
lzk
fe35188e2c Add auto map vote cvar (#27496)
* Add auto map vote cvar

* :trollface:
2024-05-08 23:33:08 -07:00
Plykiya
1593a11aa9 Make ERT use short raffle timer (#27830)
Co-authored-by: plykiya <plykiya@protonmail.com>
2024-05-08 23:11:50 -07:00
PJBot
38a2beff92 Automatic changelog update 2024-05-09 06:04:51 +00:00
Plykiya
5154568248 Add Missing Unlocks to Emagged Lathes and Move Recipes to Protolathe (#27575)
* Add missing emag recipes to lathes

* Move autolathe dynamic recipes over to the protolathe

* No disablers!

* Move blast grenades to protolathe as well

* Forgot about tranq shells

* forgotten things from the autolathe PR

* Altered lathe descriptions to more accurately reflect their purpose

---------

Co-authored-by: Plykiya <plykiya@protonmail.com>
2024-05-08 23:03:44 -07:00
PJBot
9d4ead30b9 Automatic changelog update 2024-05-09 06:01:53 +00:00
Alzore
4d991d1554 Atmos pipes now deal blunt damage (#27673)
* pipe

* weak

* inhand

* IT WORKS

* inventory
2024-05-08 23:00:47 -07:00
metalgearsloth
a2329889aa Add CanAttack check if target is in a container (#27689) 2024-05-08 23:00:16 -07:00
PJBot
a7b86f724e Automatic changelog update 2024-05-09 05:57:19 +00:00
Rio
372807673b Drinking from spray bottles (#27815)
Added drinking from spray bottles
2024-05-08 22:56:13 -07:00
deltanedas
1f67733775 fix mech energy display for 0 (#27828)
Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-05-08 22:55:15 -07:00
Plykiya
4c68fce064 Adds supplybot to crafting menu (#27827)
Add supplybot to crafting menu

Co-authored-by: plykiya <plykiya@protonmail.com>
2024-05-08 22:54:48 -07:00
Ed
50c4fd3a58 Content stitching (#147)
* upgrade loadouts and gamemode

* fixes

* fix lobby images, add localization to loadouts

* fix clothing layers

* fix checks

* Update base.yml

* Update base.yml

* fuckthis, secret weights
2024-05-08 22:41:34 +03:00
Plykiya
db4c9787c9 Fix Supplybot Ghostrole (#27811)
* Add raffle to supply bot

* Add GhostTakeoverAvailable

---------

Co-authored-by: plykiya <plykiya@protonmail.com>
2024-05-08 18:54:17 +03:00
Agoichi
b74d1b62b5 Adding attributes (#146)
* Delete Resources/Audio/_CP14/Effects/crystal_shatter.ogg

* Create attributions.yml

* Update attributions.yml

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
2024-05-08 17:27:28 +03:00
Ed
7b2328ba22 Alchemy tools: pestle and mortar (#144)
* add mortar & pestle mechanic

* setup prototypes

* Update mixing_types.yml

* add bubble sound collection, fix errors
2024-05-08 17:15:31 +03:00
deltanedas
85780dce96 fix mapping door access (#27784)
Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-05-08 06:14:17 -07:00
PJBot
00aa6d0bdd Automatic changelog update 2024-05-08 12:31:49 +00:00
K-Dynamic
c1ed854264 Bike Horn, Clown Recorder, Suspenders for Theatrical Performances Crate (#27668)
added clown and mime item to theatrical crate
2024-05-08 05:30:43 -07:00
PJBot
130ab51e38 Automatic changelog update 2024-05-08 10:23:05 +00:00
DrSmugleaf
401350759c Move step sound distance and footstep variation to MobMoverComponent (#27799) 2024-05-08 20:22:09 +10:00
Plykiya
45bc0e2dfa Katana Dash checks based on vision rather than collision (#27793)
* Fix dash check

* unused

* obsolete function

---------

Co-authored-by: plykiya <plykiya@protonmail.com>
2024-05-08 20:21:59 +10:00
Litogin
54d86b8d8f whitelist alchemy furnace (#143) 2024-05-08 12:41:18 +03:00
Ed
27047a3a37 Merge pull request #145 from crystallpunk-14/ed-08-05-2024-upstream
Ed 08 05 2024 upstream
2024-05-08 12:38:08 +03:00
Ed
b92032fdd7 Merge remote-tracking branch 'refs/remotes/upstream/master' into ed-08-05-2024-upstream
# Conflicts:
#	Content.Server/GameTicking/GameTicker.Spawning.cs
#	Content.Shared/Preferences/HumanoidCharacterProfile.cs
#	Resources/Prototypes/lobbyscreens.yml
2024-05-08 12:26:05 +03:00
Tornado Tech
31491775e5 Added new HTN operations and preconditions (#27486)
* Added new HTN operations & preconditions

* Ok I forgot about partial

* Namespace pierce the skies

* Some fixes, debug and new operators

* Bruh git eat my files
2024-05-08 12:18:03 +03:00
Ed
9fe1528490 Update eldermourne.ogg 2024-05-08 12:10:05 +03:00
Ed
6102d3c63d +1 song 2024-05-08 12:07:41 +03:00
PJBot
29860a0cf7 Automatic changelog update 2024-05-08 07:31:59 +00:00
Hobbitmax
aad5b9e53b Replace Train syndicate Jaws (#27734)
Should push the right changes to my Train Branch
2024-05-08 10:30:53 +03:00
Plykiya
1952ae3267 Reimplement supplybots as non-vehicles (#27769)
* Reimplement supplybots as non-vehicles

* what the hell is a container container?

* Dumpable

* let them hear supply comms

* unmigrate

* no more QM access

* Skill issue

---------

Co-authored-by: plykiya <plykiya@protonmail.com>
2024-05-08 10:30:03 +03:00
Kukutis96513
dd51d0e19e Secoff senior uniform fix (#27775)
* weh.

* get the weh out of my repository

* add best lizard figurine

* remove umbra stuff from master

* remove the additional pixels from the senior secoff jumpskirt sprite

* fix the fix
2024-05-08 08:57:21 +02:00
PJBot
c097c98a1e Automatic changelog update 2024-05-08 06:50:34 +00:00
ShadowCommander
83099640e6 Fix pull not stopping when character is downed (#27796) 2024-05-08 08:49:28 +02:00
PJBot
1a09374b01 Automatic changelog update 2024-05-08 06:47:10 +00:00
Verm
99212762d6 Fix cak and breaddog not being able to escape inventories (#27794)
Fix cak and breaddog
2024-05-08 08:46:48 +02:00
Cojoke
b104125c0e Shoot Over Racks (#27797)
Racks now have table collisions
2024-05-08 08:46:03 +02:00
DrSmugleaf
15153d95a4 Fix the changelog window being very laggy until a tab is clicked (#27795) 2024-05-07 23:23:26 -07:00
Flareguy
caa822b9a0 Revert "Make the floppy lizard ears have two colors." (#27790)
Revert "Make the floppy lizard ears have two colors. (#27679)"

This reverts commit bd06aa2365.
2024-05-07 20:48:42 -07:00
Pieter-Jan Briers
9efe4dc701 Fix preferences sent to client not being sanitized (#27789)
Fucking whoops

In #27742 I made it so sanitization of character profiles was moved to be *after* database load. Except that means I moved it to be after the copy of all character profiles got sent to the client.

Move the sending to *also* be in that second load stage, and rename it. Fixes the issue.
2024-05-08 04:24:54 +02:00
PJBot
ab1a2de367 Automatic changelog update 2024-05-08 00:26:47 +00:00
deltanedas
d6d1c9ed8a make dragons breathe fire (#26746)
* add ActionGun system

* add RepeatingTrigger

* dragons breath projectile, repeatedly explodes

* give dragon fire breathing action, fireproof it

* oop

* oop 2

* prevent troll

* proper repeating thing

* pro

* webedit ops

* realops

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-05-07 17:25:41 -07:00
pigeonpeas
bd06aa2365 Make the floppy lizard ears have two colors. (#27679)
* Make the floppy lizard ears have two colors.

* please fix whatever the hell happened

* fix the error

* suggestion from Ubaser

* another suggestion from ubaser
2024-05-07 17:22:25 -07:00
PJBot
18bd221407 Automatic changelog update 2024-05-08 00:21:01 +00:00
OnsenCapy
8ec52ff69c Change combat gloves sprite (#27373)
* Changed combat gloves sprite.

* Edited combat gloves sprite.
2024-05-07 17:19:55 -07:00
deltanedas
89cbb100fd make hyper printer inherit base lathe (#27777)
Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-05-07 16:42:28 -04:00
TurboTracker
24e227660a Stop Toilets crushing you into walls (#27778) 2024-05-07 21:44:20 +02:00
PJBot
685188fd10 Automatic changelog update 2024-05-07 18:21:50 +00:00
deltanedas
262b9698cf make lube speed up lathes (#25515)
* add LatheGetSpeedEvent

* add LatheLube system

* make typical lathes accept lube

* spill

* :trollface:

* rework to generic ReagentSpeedSystem

* hyperlathe ops

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-05-07 14:20:43 -04:00
PJBot
6301e94390 Automatic changelog update 2024-05-07 18:16:04 +00:00
Hannah Giovanna Dawson
b90373356e Weapon Reflection Movement Mechanic (#27219)
* Weapon Reflection Movement Mechanic

Adds a movement mechanic to deflection.
Standing still gives you your best chance of deflecting a shot.
Moving lowers this to 2/3rds. Sprinting to 1/3rd.

This allows for robust players to express better and provides
counterplay to someone finding a goober-strong deflection
weapon, giving more design space.

As part of this PR I've also touched the numbers of a few swords,
shields, etc. and modified some descriptions to make them read
better. The balance numbers are not remotely final, but as intent:

1. All the sidearm swords (katana, cutlass, captain's sabre) have the same damage. There's no good reason the "ceremonial" blade the captain has doing more damage than a katana.
2. The Captain's Sabre has a 30% reflect chance, dropping to 20% when moving and 10% when sprinting. This one is controversial due to the recent nerf, I suspect: This could easily be 15->10->5?
3. The Energy Katana has a flat 30% reflect chance.
4. The meme Throngler has a 30% reflect chance, dropping to 20% when moving and 10% when sprinting.
5. The E-Sword has a 30% reflect chance, dropping to 20% when moving and 10% when sprinting.
6. The Double E-Sword has a mighty 75% reflect chance, dropping to 50% and then 25%.
7. Both reflective shields - Mirror and Energy - have a 95% deflect chance, dropping to 63% then 31%.

* Resolve PR comments.

* Weh?

* Reign in double esword a tad

* Shield nerfs no longer real

* Improve Mirror Cult desc

* Simple alert for deflection! No art yet.

* Added a new icon for deflecting
2024-05-07 20:14:58 +02:00
PJBot
cd8e90c58e Automatic changelog update 2024-05-07 15:56:09 +00:00
cool dolphin
64548a7ead More trinkets for loadouts (#27292)
* woo yea more tinket

* plushie has no timer
2024-05-07 17:55:03 +02:00
ShadowCommander
0926891f4f Set max line width to 120 (#27765) 2024-05-07 17:33:00 +02:00
PJBot
31a8327106 Automatic changelog update 2024-05-07 15:14:35 +00:00
Kara
09b5319270 Log event starts to admin alert chat (#27761) 2024-05-07 17:13:28 +02:00
Łukasz Mędrek
28f5d490a4 Fix construction instructions on flippables (#27574)
Fixes #27547
2024-05-07 20:53:59 +10:00
metalgearsloth
1e30234539 Revert "Fix turned off thrusters consume power" (#27755)
Revert "Fix turned off thrusters consume power (#26690)"

This reverts commit 70959e7bb0.
2024-05-07 20:52:18 +10:00
ShadowCommander
b9906eb34c Make arguments and parameters wrap to one variable per line (#27766) 2024-05-07 20:50:22 +10:00
PJBot
35dc85fd47 Automatic changelog update 2024-05-07 07:27:38 +00:00
lzk
d099b63424 Little morgue overhaul (#27750) 2024-05-07 10:26:33 +03:00
PJBot
0cb50a24c3 Automatic changelog update 2024-05-07 04:22:10 +00:00
Pieter-Jan Briers
7a38b22ddb Fix preference loading bugs (#27742)
First bug: if an error occured during pref loading code, it would fail. If the person then readied up, it would likely cause the round to fail to start.

Why could they ready up? The code only checks that the prefs finished loading, not that they finished loading *successfully*. Whoops.

Anyways, now people get kicked if their prefs fail to load. And I improved the error handling.

Second bug: if a user disconnected while their prefs were loading, it would cause an exception. This exception would go unobserved on lobby servers or raise through gameticker on non-lobby servers.

This happened even on a live server once and then triggered the first bug, but idk how.

Fixed this by properly plumbing through cancellation into the preferences loading code. The stuff is now cancelled properly.

Third bug: if somebody has a loadout item with a playtime requirement active, load-time sanitization of player prefs could run into a race condition because the sanitization can happen *before* play time was loaded.

Fixed by moving pref sanitizations to a later stage in the load process.
2024-05-07 14:21:03 +10:00
PJBot
61c1aeddf3 Automatic changelog update 2024-05-07 03:25:14 +00:00
Kara
7d7c71e6a6 Reduce ratking chance severely (#27760) 2024-05-06 23:23:50 -04:00
Flareguy
e4a516514f Adds most non-displacement-mappable vox sprites (#27577)
* non-displacement-mappable vox sprites part 2

* fixes

* more fixes

* a

* more para sprites + ntrsa voidhelm

* no more clown...
2024-05-06 23:23:27 -04:00
Ed
cc9e40820f Night on Europa (#27731)
night
2024-05-06 20:02:22 -07:00
PJBot
19aeff26ec Automatic changelog update 2024-05-07 01:49:23 +00:00
no
630a7a78ed Add ghost role raffles (#26629)
* Add ghost role raffles

* GRR: Fix dialogue sizing, fix merge

* GRR: Add raffle deciders (winner picker)

* GRR: Make settings prototype based with option to override

* GRR: Use Raffles folder and namespace

* GRR: DataFieldify and TimeSpanify

* GRR: Don't actually DataFieldify HashSet<ICommonSession>s

* GRR: add GetGhostRoleCount() + docs

* update engine on branch

* Ghost role raffles: docs, fix window size, cleanup, etc

* GRR: Admin UI

* GRR: Admin UI: Display initial/max/ext of selected raffle settings proto

* GRR: Make a ton of roles raffled
2024-05-06 18:48:16 -07:00
Jezithyr
6685146a1e Moved Serverside solution container code to shared (yes that includes ensureSolution!) (#27478)
* Added warning to tryGetSolution, moved SolutionContainer code to shared
- Added an optional warning (false by default) to print an error if a solution is missing when using tryGetSolution methods
- Moved ensuring solution containers to shared, left the old method stubs for compatability and marked them as obsolete.

* Update SharedSolutionContainerSystem.cs

* Update SharedSolutionContainerSystem.cs

* Update SolutionContainerSystem.cs

* Update SharedSolutionContainerSystem.cs

* Fixing ensuring chem solutions always returning false on client
- ensuring chem solutions will only return false on the client if it is waiting for a server solutionEntity to be synced

* Added concentration helpers

* fix whitespace
2024-05-06 17:27:36 -07:00
Ed
547e15a158 hair update (#139) 2024-05-07 01:10:12 +03:00
PJBot
008f6ef94a Automatic changelog update 2024-05-06 20:21:25 +00:00
Alzore
7794ab8609 Reduce the amount of burn damage from touching lights (#27728)
* chilled

* external
2024-05-06 13:20:19 -07:00
Alzore
7d23d01445 Half the amount of bleed rate cauterized by burn damage (#27726)
half
2024-05-06 13:19:57 -07:00
Ygg01
b58d8a02b6 Remove duplicate liar word id. Again (#27727)
Missed one translation
2024-05-06 18:02:50 +03:00
PJBot
ddb07d5f63 Automatic changelog update 2024-05-06 11:26:17 +00:00
Kara
aaabd5e914 Fix TryFindRandomTile grid weighting (#27724) 2024-05-06 04:25:11 -07:00
PJBot
8fa7ea7cf9 Automatic changelog update 2024-05-06 10:11:18 +00:00
Kara
8f4362df03 Event frequency balance pass (#27721)
balance
2024-05-06 03:10:12 -07:00
Ygg01
fbe8374c0f Remove duplicate liar word id (#27723) 2024-05-06 12:28:48 +03:00
Kara
aa426c9c3a Fix missing command desc (#27722) 2024-05-06 01:54:37 -07:00
PJBot
3dcb65feb2 Automatic changelog update 2024-05-06 08:18:41 +00:00
T-Stalker
026af631f8 New lobby art: Just a week away (#27717)
just a week away
2024-05-06 01:17:35 -07:00
Kara
c1aae2398b Round event frequency simulation command (#27718) 2024-05-06 00:33:30 -07:00
T-Stalker
b8d03b814b Update license of deadline.ogg (#27715) 2024-05-06 15:26:18 +10:00
metalgearsloth
13dbb95d45 Update submodule to 222.1.0 (#27714) 2024-05-06 14:22:59 +10:00
PJBot
3b3cc0e66c Automatic changelog update 2024-05-06 04:00:07 +00:00
0x6273
c7a5587e07 Dock device link port (#27646)
* Add dock device link port

* SpawnAndDeleteAllEntitiesInTheSameSpot moment

* The fuck is TryStopNukeOpsFromConstantlyFailing??

Do we have a new test that can randomly fail?
2024-05-06 13:59:01 +10:00
PJBot
1ecc36b049 Automatic changelog update 2024-05-06 03:52:40 +00:00
exincore
7ffa74abd0 fix(ui): Fix shuttle control radius marking text vertical spacing (#27695) 2024-05-06 13:52:35 +10:00
T-Stalker
104c2afe69 New Salvage song: Deadline (#27707)
Deadline
2024-05-06 13:51:33 +10:00
DrSmugleaf
eee8e03c15 Fix tests (#27711)
* Fix tests

* Fix test fail

* Apply same fix to other tests
2024-05-05 19:08:56 -07:00
DrSmugleaf
c20df3e39f Fix AlertControl throwing an error if the sprite view entity is deleted multiple times (#27690)
* Fix AlertControl throwing an error if disposed multiple times

* Replace default check with deleted check
2024-05-05 21:38:55 -04:00
PJBot
82fe5ab55d Automatic changelog update 2024-05-06 01:13:36 +00:00
Ty Ashley
b8144df7a5 Added new icons for the emote wheel (#27541)
* Added new icons for the emote wheel

* Corrected weh path

* Changed whistle to better match other vocal emotes. Modified honk icon to match dimensions of box. Corrected chirp and chitter emote icons.

* Cleaned up edges of icons

* Added attributions.yml to emotes folder
2024-05-05 20:12:30 -05:00
metalgearsloth
d1a5d35623 Expeditions audio tweaks (#27524)
- Now uses a SoundCollection.
- Now properly handles going between maps (audio rework mucho wow).
- GetAudioLength used so it can properly countdown ANY song (wow audio rework wow wow).
2024-05-06 10:19:43 +10:00
PJBot
254a9177fc Automatic changelog update 2024-05-05 23:33:50 +00:00
Mr. 27
93c5e86857 Add solution temperature to chemical analysis goggles (#27693)
yes
2024-05-06 09:32:43 +10:00
PJBot
b947490d08 Automatic changelog update 2024-05-05 23:31:13 +00:00
Killerqu00
7d35d54a81 welding masks on utility belts (#27694) 2024-05-06 09:30:06 +10:00
Vasilis
c61e683354 Remove useless line in runclient (#27701)
I forgor
2024-05-06 01:16:12 +02:00
metalgearsloth
2335be5e83 Update submodule to 222.0.0 (#27700) 2024-05-06 09:00:31 +10:00
Pieter-Jan Briers
4a2a63a86b Cache regex instances in most cases (#27699)
Using static Regex functions that take in a pattern is bad because the pattern constantly needs to be re-parsed. With https://github.com/space-wizards/RobustToolbox/pull/5107, the engine has an analyzer to warn for this practice now.

This commit brings most of content up to snuff already, though some of the tricker code I left for somebody else.
2024-05-06 08:57:32 +10:00
Verm
70d3cf7ba4 Emergency Tank + Plasma Can visible on suit storage slot (#27598)
* Suitstorage Sprites + Plasma tank slots

* Fix some extra brackets
2024-05-06 00:42:22 +03:00
Litogin
b1fca44b63 Bonfire whitelist (#137)
* Bonfire whitelist

* fix

* Update bonfire.yml

* Update tags.yml

* Update CP14Paper.yml

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
2024-05-05 23:53:47 +03:00
Vasilis
eb2fac40db Use dotnet run for the run batch files instead of directly calling the exe (#27698)
* Use dotnet run for the run batch files instead of directly calling the exe

* FUCK
2024-05-05 22:18:26 +02:00
PJBot
92c2ff0b05 Automatic changelog update 2024-05-05 14:43:41 +00:00
lzk
ead78b72d2 Add default whistle + whistles reorganize (#27676)
* Add default whistle + whistle reorganize

* aaa

* fux?

* fiiiiix???

* Revert "fiiiiix???"

This reverts commit 15353465d58db615185afa8c549e1819099c1a5b.

* Apply suggestions from code review

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

---------

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
2024-05-05 16:42:35 +02:00
RumiTiger
45fc6bed2f Rename ChemCleanBoodstream.cs (#27691) 2024-05-05 09:37:10 -04:00
Nemanja
5183f3ed8b Scattershot antag fixes (#27429)
* scattershot antag fixes

* this too?

* dawg fuck this code

* ok so we kinda need this?
2024-05-05 19:23:43 +10:00
metalgearsloth
37d0cb9c90 Revert "npc can no longer attack you through a locker" (#27680)
Revert "npc can no longer attack you through a locker (#27677)"

This reverts commit 83b486b63f.
2024-05-05 19:22:33 +10:00
github-actions[bot]
2f3f917007 Update Credits (#27681)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
2024-05-04 21:23:45 -04:00
Ed
2b6e12898b Corvax ctrl+c ctrl+v Russian localization (#135)
* Corvax ru localization

* remove Corvax stuff

* adventurer
2024-05-05 00:44:03 +03:00
Nim
f411126191 rifle (#134) 2024-05-05 00:43:56 +03:00
Pok
c3fe975e8b More descriptions for the beakers in the status panel (#27669)
Bottles

Descriptions for status panel
2024-05-04 22:07:29 +02:00
PJBot
4bb0786018 Automatic changelog update 2024-05-04 20:07:22 +00:00
Alzore
1c125cb14e Floodlights now have medium powercells instead of small (#27672)
mediumcellfloodlight
2024-05-04 22:06:16 +02:00
PJBot
0a15d08550 Automatic changelog update 2024-05-04 20:01:28 +00:00
Alzore
873799095c Security belts can now hold more items commonly carried by secoffs/HoS (#27674)
holobarrier
2024-05-04 22:00:22 +02:00
PJBot
8ee9ca2227 Automatic changelog update 2024-05-04 19:59:06 +00:00
Tyzemol
83b486b63f npc can no longer attack you through a locker (#27677) 2024-05-04 21:57:58 +02:00
Ed
6b173a4df5 Merge pull request #133 from crystallpunk-14/04-05-2024-upstream
04 05 2024 upstream
2024-05-04 21:35:22 +03:00
Ed
445f08ae07 Merge remote-tracking branch 'space-station-14/master' into 04-05-2024-upstream
# Conflicts:
#	Resources/Prototypes/Maps/Pools/default.yml
#	Resources/Prototypes/Maps/train.yml
2024-05-04 21:13:30 +03:00
Ed
72b8fcf99c Tiles rework (#131)
* tile restruct

* filter tiles

* Update ContentTileDefinition.cs

* oopsie

* Update migration.yml

* Update cave-arena.yml

* floors fix
2024-05-04 16:35:59 +03:00
PJBot
540c45cbe9 Automatic changelog update 2024-05-04 11:12:52 +00:00
Flareguy
0e829eb380 Vox customization fixes & updating (#27663)
vox customization
2024-05-04 04:12:11 -07:00
Ed
5ab1cc0c84 Pathological Liar (#27618)
* content

* upgrade

* n't

* ye ya

* Update speech-liar.ftl

* Mith replacement ideas

* fix

* more!

* Revert "more!"

This reverts commit 6d10bdf694985c525a2b451ed39380f975059b44.

* Update Content.Server/Speech/Components/ReplacementAccentComponent.cs

---------

Co-authored-by: Kara <lunarautomaton6@gmail.com>
2024-05-04 04:11:46 -07:00
PJBot
07d43af4a6 Automatic changelog update 2024-05-04 11:11:14 +00:00
Ed
e7d24b5648 Added Train station into map rotation (#27534)
* Update default.yml

* more sec
2024-05-04 04:10:08 -07:00
Agoichi
ba009f34fa Crystal/ punk-update (#129)
* Crystalpunk-update

* Crystalpunk-update

* Update Resources/Prototypes/_CP14/SoundCollections/hit_impacts.yml

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>

* Update Resources/Prototypes/_CP14/Entities/Structures/crystal.yml

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>

* Update Resources/Prototypes/_CP14/Entities/Structures/crystal.yml

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>

* clean up

* Update crystal.yml

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
Co-authored-by: Ed <edwardxperia2000@gmail.com>
2024-05-04 13:39:32 +03:00
Litogin
1d233226bb Animation of tails (#128)
Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
2024-05-04 13:31:14 +03:00
Ed
ba05b56d51 Fence fix + Navy revolver (#130)
* Update fence_wood.yml

* added revolver navy

* Update guns.yml

* Update wooden_fence.yml
2024-05-04 13:20:21 +03:00
Vasilis
1b3481f094 Rename Lizard urist (#27652) 2024-05-03 23:18:01 -07:00
Mr. 27
96a3967c3f Change return to continue in gamerulesystem (#27656)
Update GameRuleSystem.cs
2024-05-04 13:03:56 +10:00
PJBot
1d5392f86b Automatic changelog update 2024-05-04 00:04:58 +00:00
Mr. 27
6ecbf0a04c Fix some gamerules' round summary not working (#27654)
Update GameRuleSystem.cs
2024-05-03 20:03:52 -04:00
PJBot
960f268d1c Automatic changelog update 2024-05-03 20:24:49 +00:00
nikthechampiongr
6fc684812d Ninja's pinpointer tracks the research server (#27552)
Change the tracked component on the ninja's pinpointer from BecomesStation to Research Server
2024-05-03 22:23:43 +02:00
Ed
acd8f93b36 added Kocherga fences 2024-05-03 21:33:24 +03:00
Ed
dd84d48fed Refactors, bugfixs + Crystals (#127)
* fix dwarf displacement map

* Big Fireplace update

* add crystalls placeholder

* bonfire update

* displaccement update

* Update wallmount_torch.yml
2024-05-03 20:40:31 +03:00
PJBot
c045e2488e Automatic changelog update 2024-05-03 17:27:16 +00:00
Just-a-Unity-Dev
76ecdee946 Geras bug fixes (#27308)
* Geras bug fixes

* oops

* its as shrimple as that

toggled transferName in the polymorph yml instead of using the system to manually change it

* its as shrimple as that (2.0)

fixed reviews for zombies having a dummy action, instead - properly implemented removal of action

* its as shrimple as that (3.0)

fixed tests by removing nameidentifier from slime (its already inherited, anyway)
2024-05-03 19:26:09 +02:00
Ed
e5246f1e76 doors update (#126) 2024-05-03 18:22:10 +03:00
Ed
0450a416e2 Revert "Make immovable rod announce at the end of the event" and "Rod event has a proper annoucement" (#27645)
* Revert "Make immovable rod announce at the end of the event (#27587)"

This reverts commit efceaa89e0.

* Update immovable-rod.ftl
2024-05-03 04:10:24 -07:00
PJBot
bedec83cd9 Automatic changelog update 2024-05-03 07:52:39 +00:00
Jay
0056befd4b Allow EMP implants to be used while stunned or cuffed. (#27644)
Update types.yml
2024-05-03 09:51:33 +02:00
PJBot
40a4eeaa39 Automatic changelog update 2024-05-03 06:58:43 +00:00
Hanz
a8bf2689a4 Red bool update (#27597)
* the meat and potatoes

yuh yuh yuh

* what the hell is a copyright?

am I right?
2024-05-03 08:57:37 +02:00
Lamrr
a28296433b Fixes the grammar for the captain's supervisor (#27638)
Fixes the grammar on the captain's supervisor
2024-05-03 12:12:34 +10:00
PJBot
4ede46003a Automatic changelog update 2024-05-03 01:25:27 +00:00
Errant
f64dd5f45f Space Ninjas auto-toggle internals after spawning (#25083)
* fix engine version

* actually fix engine version

* Automatically activated breathing masks

* weh

* who needed that component anyway

* check if internals are already running

* Update Content.Server/Atmos/Components/BreathToolComponent.cs

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Update Content.Server/Body/Systems/InternalsSystem.cs

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* prediction

* record struct event

* remove delayed activation, instead ensure that masks spawn last

* leftover

* engine version

* re-implement

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-05-03 11:24:21 +10:00
PJBot
192de3d9cb Automatic changelog update 2024-05-03 00:14:41 +00:00
Mr. 27
c69bf2f2aa Add syndicate sleeper agents random event (#27501)
* Intercept rule (#10)

* add

* b

* add this back lol

* fix test fails (alert levels dont have prototypes)

* tweaks
2024-05-03 10:13:35 +10:00
Leon Friedrich
f348e6aa30 Add EntityWhitelistSystem (#27632)
* Add EntityWhitelistSystem

* Sandbox fix

* update test
2024-05-03 10:10:15 +10:00
PJBot
291ecf9643 Automatic changelog update 2024-05-03 00:04:58 +00:00
Plykiya
71dbb955ce Increase Blast Grenade Recipe Cost and Add Research Requirement (#27580)
* Adjust blast grenade recipe

* Move blast grenades into tier 2 research

* Move blast grenades to dynamic recipes for secfab and autolathe

---------

Co-authored-by: Plykiya <plykiya@protonmail.com>
2024-05-03 10:03:52 +10:00
PJBot
f76a471e5a Automatic changelog update 2024-05-02 23:38:26 +00:00
Leon Friedrich
3c3c2daf26 Fix UI interaction priority (#27631) 2024-05-03 09:37:20 +10:00
Ed
f9204832d2 Merge pull request #125 from crystallpunk-14/02-05-2024-upstream
02 05 2024 upstream
2024-05-02 21:01:59 +03:00
Ed
7d11ff5562 Merge remote-tracking branch 'space-station-14/master' into 02-05-2024-upstream 2024-05-02 20:46:45 +03:00
Ed
4c692d7d4a Alchemy + Guidebook initialization (#124)
* remove Guidebook

* water and blood

* localization things

* added vital extract

* some fixes

* added bloodgrass

* guidebook localization

* fixes icons and remove unnecesary fields

* added inhand cauldron

* fix wallmount board

* Update bonfire.yml

* Update bonfire.yml

* alchemy furnace + mist

* fixes

* Guidebook localization

* Update drinks.yml

* Revert "remove Guidebook"

This reverts commit 7924cf235f.

* fix filtering guidebook

* test fix

* Update heater.yml
2024-05-02 20:41:11 +03:00
PJBot
8a7f709794 Automatic changelog update 2024-05-02 17:10:44 +00:00
Tayrtahn
9b17693396 Fix SpawnItemsOnUse not playing sound (#27621)
Made SpamItemsOnUse play sound at entity coordinates instead of parenting
2024-05-02 13:10:20 -04:00
deltanedas
8909dc7d40 make ducky slippers waddle (#27628)
Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-05-02 20:09:38 +03:00
slarticodefast
eab276a12d small SpawnItemsOnUse cleanup (#27625)
* small SpawnItemsOnUse cleanup

* that one was not needed
2024-05-02 20:08:26 +03:00
PJBot
09b6f5c128 Automatic changelog update 2024-05-02 16:18:43 +00:00
Lamrr
b728f36f30 Wine and beer bottles can be inserted into booze dispenser (#27626)
Fixes tags on wine and beer bottles
2024-05-02 12:17:36 -04:00
PJBot
64a732ad7b Automatic changelog update 2024-05-02 14:50:59 +00:00
Vasilis
a4b0a34bc7 Remove airtight flaps from the construction menu (#27619)
They are meant to be mapping only items.
2024-05-02 10:49:53 -04:00
PJBot
235091b377 Automatic changelog update 2024-05-02 12:38:18 +00:00
Michael
131c269e2b Improve CMO's lab coat (#27551)
This Aims at balancing the viability of the CMO's lab coat compared to his other available options, those being his winter coat (which is just a straight up upgrade) and his hardsuit.

and also its suppose to level him with RD since RD's lab coat has special rad protection

Co-authored-by: Michael <107807667+Bugfinder1@users.noreply.github.com>
2024-05-02 15:37:12 +03:00
PJBot
ce3ba577e0 Automatic changelog update 2024-05-02 12:36:17 +00:00
nao fujiwara
316a3d7f4d added a bunch more fox noises (#27578)
* fuck it we ball

* added recommended copyright information

* revised copyright license

* revised copyright license x2

* finalized the fops

# reduced the number of audio clips
# adjusted the volume of all fox sounds to be consistent with each other

* added new sounds to the overall fox parent mob because we forgot oopsie
2024-05-02 14:35:10 +02:00
PJBot
b90a58d88b Automatic changelog update 2024-05-02 12:33:57 +00:00
Mr. 27
6680bd4c60 emote wheel fixes (#27545)
* cheese

* Update disease_emotes.yml
2024-05-02 15:33:51 +03:00
Plykiya
70f734edcc Disarm throws item in random direction (#27589)
* Disarm throws item in random direction

* Slightly increased offset

* Return the return

---------

Co-authored-by: Plykiya <plykiya@protonmail.com>
2024-05-02 15:32:47 +03:00
Tayrtahn
236da1cd27 Make UseDelay SetLength do EnsureComp (#27601)
Make UseDelay.SetLength do EnsureComp
2024-05-02 22:16:16 +10:00
PJBot
05f0fddf5d Automatic changelog update 2024-05-02 06:24:28 +00:00
Repo
17304068b4 Track Admin Game Time (#24945)
* AdminTime tracked

* Attempts to fix PR issues.

* Admin afk logic update
2024-05-01 23:23:22 -07:00
PJBot
889b578e56 Automatic changelog update 2024-05-02 06:01:07 +00:00
Leon Friedrich
fd9894164f Fix Gas Analyzers not opening (#27610) 2024-05-02 16:00:01 +10:00
Leon Friedrich
a7e6337cbd Replace NavMap dictionaries with int[] (#27602)
* Replace NavMap dictionaries with int[]

* Remove badly named const

* Remove unnecessary offset

* Prioritize airlocks
2024-05-02 12:51:21 +10:00
PJBot
11a4f9d21f Automatic changelog update 2024-05-02 02:41:13 +00:00
metalgearsloth
5053c8afdb Fix effects (#27533)
* Fix effects

- Fix muzzle flash rotations.
- Fix effects so they update every frame.
- Fix effects tanking client performance.

* Fix merge artifact
2024-05-02 12:40:07 +10:00
metalgearsloth
6596584722 Update submodule to 221.2.0 (#27603) 2024-05-02 12:27:08 +10:00
PJBot
05be6d376d Automatic changelog update 2024-05-02 00:19:44 +00:00
metalgearsloth
7ba228732d Optimise navmaps significantly (#27528)
* Optimise navmaps significantly

- Reduce the delta state size significantly.
- Remove AirtightChangedEvent because this will spam them out constantly.

* weh

* review

---------

Co-authored-by: ElectroJr <leonsfriedrich@gmail.com>
2024-05-02 10:18:38 +10:00
PJBot
a95b0d000a Automatic changelog update 2024-05-01 22:27:28 +00:00
lzk
efceaa89e0 Make immovable rod announce at the end of the event (#27587) 2024-05-01 18:26:22 -04:00
PJBot
52ad84c397 Automatic changelog update 2024-05-01 22:24:48 +00:00
Simon
c00987500f Add DoorBumpOpener to BaseMobAdultSlimes (#27591) 2024-05-01 18:24:31 -04:00
FungiFellow
7cd1e4e30d Grilles now take Structural Damage (#27596)
damageContainer: Inorganic -> StructuralInorganic
2024-05-01 18:23:42 -04:00
Ciac32
cf633b4849 Enforce inequality between different species (#27586)
Fix missing species check in humanoid equality operation
2024-05-01 13:01:15 -04:00
Ed
2c34befbcb Fireplace (#123)
* bonfire!

* fix

* update torch

* docs

* add audio, fix errors

* loc string + fix errors
2024-05-01 19:55:48 +03:00
ShadowCommander
577106251b Fix pinpointer errors for missing sprite layer (#27582) 2024-05-01 11:51:12 -04:00
PJBot
2b33cb9a47 Automatic changelog update 2024-05-01 15:25:11 +00:00
NotSoDana
9ca1d01218 Gildlager empty bottle fix (#27581)
* rename goldschlager bottle

* migration

* fix rsi
2024-05-01 11:24:05 -04:00
PJBot
b9cf9c1d60 Automatic changelog update 2024-05-01 15:18:54 +00:00
Ciac32
648472233c Fix antag verb incorrectly giving role to admin player instead of target (#27584)
Fix antag verb giving role to admin player instead of target
2024-05-01 11:18:32 -04:00
Plykiya
6e1f0ba390 Make insert telecrystal message only show to player (#27585)
Restrict message to player and fix grammar

Co-authored-by: Plykiya <plykiya@protonmail.com>
2024-05-01 11:17:47 -04:00
deltanedas
ff762e56a7 add ghostnado button to warp menu (#27556)
* add ghostnado button to warp menu

* translator ops

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-05-01 06:59:35 -07:00
Verm
133d9280ae Add correct lawyer bags to loadouts (#27573)
* add lawyerbackpack to locale

* lawyer backpack group

* Add bags

* add loadout group

* Be less lazy and spot formatting problems
2024-05-01 18:48:28 +10:00
PJBot
99130ff332 Automatic changelog update 2024-05-01 03:28:27 +00:00
Ciac32
b160c42926 Fix Loadout Editor not closing when Character Editor is closed. (#27539)
Remove duplicate UpdateRoleRequirements call screwing up update ordering
2024-05-01 13:28:13 +10:00
K-Dynamic
446f516590 Simplified and consistent honkbot & jonkbot recipes (#27535)
simplified honkbot & jonkbot recipes
2024-05-01 13:27:21 +10:00
DrSmugleaf
5548d90f0d Add explosion.can_create_vacuum cvar (#27548) 2024-05-01 13:11:27 +10:00
no
81e553401c Make female reptilians use female cry sound instead of male (#27563) 2024-05-01 13:09:31 +10:00
DrSmugleaf
c57164211b Update Patrons.yml (#27560) 2024-04-30 18:20:39 -07:00
lzk
c0e3c4fac7 add noSpawn: true to tippy (#27538) 2024-05-01 01:07:30 +03:00
Psychpsyo
0d88a1fd7d Fix sprite for coder socks (#27553) 2024-04-30 17:54:50 -04:00
metalgearsloth
2a0fe88aaf Reduce rusty wall occurrences (#27522)
Every station looks like barratry as there will be many rusty walls onscreen everywhere.
2024-04-30 17:54:22 -04:00
Jezithyr
6869adfa78 Move GasMixture to shared (#27480)
* Moved GasMixture to shared

* Temp Fix for sandbox violation, idk why Array.Resize isn't working properly. It's already sandboxed.

* The most powerful webedit in history
2024-04-30 14:31:05 -07:00
Jezithyr
b8c0372ac6 Update submodule to v221.1.0 (#27554) 2024-04-30 14:01:09 -07:00
Errant
c3a0ba9dd8 Size-based entity whitelist (#26798)
* Size based whitelisting

* namespace and misc refactor

* modern datafields, what will they think of next

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>

* the future is now

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>

* Update TagSystem to work with ProtoId lists

* I guess someone might run into these too, one day

* copypaste moment

* update to sawmill

* Okay, but what if it just worked

---------

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
2024-04-30 11:06:56 -04:00
Ed
0169cb55d8 Alchemy instruments (#122)
* add beer barrel

* add vet

* add storage to vat

* make bucket viable!

* bandage vat item fix

* Update vat.yml

* add small vial

* tiny vial

* Update SharedStorageSystem.cs

* Create biological.yml

* spilable and bonfire climbing
2024-04-30 16:48:08 +03:00
PJBot
046d062230 Automatic changelog update 2024-04-30 12:15:12 +00:00
ERROR404
e57f5fadc5 Add chameleon projector in thief toolbox (#27491)
Base
2024-04-30 15:14:06 +03:00
Magnus Larsen
f1c36af0a5 Fix Melee swing effect rotation (#27494)
* Melee swing effect: Allow rotation

* Make melee weapon effects follow the user
2024-04-30 21:56:41 +10:00
T-Stalker
bf3e9fe3b4 Add neckfull frills for lizards (#27523)
* light

* neckfrills

* Delete Resources/Prototypes/XenoArch/Effects/normal_effects.yml

* Revert "Delete Resources/Prototypes/XenoArch/Effects/normal_effects.yml"

This reverts commit 6e6fad609a66a0615abcd545009cdb2f52c9b955.

* Revert "light"

This reverts commit d1f111d4c64da4d2a64907f7dfead104892d1462.

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-04-30 19:18:00 +10:00
PJBot
d30b12708d Automatic changelog update 2024-04-30 06:50:42 +00:00
T-Stalker
d9d36b050a Makes flares quieter (#27521)
* light

* flares quieter
2024-04-30 16:49:35 +10:00
Mr. 27
a7bf9583dd monkeys get a different deathgasp emote (#27497)
a
2024-04-30 00:14:45 -04:00
Mr. 27
0c8a499a66 give cap sabre the cane blade noises (#27508)
Update belts.yml
2024-04-30 00:13:56 -04:00
PJBot
44e6f3f5db Automatic changelog update 2024-04-30 04:06:20 +00:00
T-Stalker
4b55f01c55 Rod event has a proper annoucement (#27515)
roddies
2024-04-29 21:05:14 -07:00
PJBot
d85d9fbbd1 Automatic changelog update 2024-04-30 03:02:43 +00:00
lzk
9631fee7f2 Remove barozine from mutatuion (#27512)
Remove barozine from mutatuib
2024-04-30 05:01:38 +02:00
PJBot
2e3fd3114b Automatic changelog update 2024-04-30 00:20:13 +00:00
ShadowCommander
dfa365f701 Fix microwave construction (#27500)
The microwave system would update UserInterface on any container changed instead of just the microwave_entity_container. This would cause it to error when trying to update the UI when ConstructionSystem inserted the circuit board and components.
2024-04-29 20:19:07 -04:00
KittenColony
4b39c358c8 Fix sprite for frontal splotch snout (#27479)
frontal sprite fix
2024-04-29 17:30:38 -04:00
Ed
91028a5149 remove Injector SolutionName constant (#27493)
remove stupid constant
2024-04-29 17:29:15 -04:00
PJBot
2cfc12c134 Automatic changelog update 2024-04-29 17:10:36 +00:00
FungiFellow
657d9ab740 Syndi-Cat QoL Changes (#27408)
* Syndi-Cat Wideswing, Shoes, and Explosion Resist

* Damn you Plykiya

* 10/10Pierce/Structural -> 6/6/15 Pierce/Slash/Structural

* Update animals.yml
2024-04-29 20:09:30 +03:00
Ed
743c732162 Merge pull request #121 from crystallpunk-14/29-04-2024-upstream
29 04 2024 upstream
2024-04-29 16:39:56 +03:00
Ed
9520f63aa1 Merge remote-tracking branch 'space-station-14/master' into 29-04-2024-upstream
# Conflicts:
#	Resources/Prototypes/Entities/Mobs/Customization/Markings/human_hair.yml
2024-04-29 16:28:04 +03:00
Ed
098111948e Disposal aftermerg fix (#27488)
* wtf

* fix

* delta fixes

* Update ThrowInsertContainerSystem.cs
2024-04-29 23:26:28 +10:00
PJBot
5dda487db4 Automatic changelog update 2024-04-29 13:13:36 +00:00
Ed
bf8002569c Throwing into disposals logic splitting (#27487)
* wtf

* fix
2024-04-29 23:12:42 +10:00
DrSmugleaf
6b5e99f5eb Make bullets inherit the velocity of the grid, not the gun or player (#27484) 2024-04-29 23:12:29 +10:00
metalgearsloth
386454706b Fix snappop (#27264)
* Fix snappop

Bunch of stuff slipped through.

* name
2024-04-29 19:54:40 +10:00
Nemanja
e2087115af Fix position swapping with QSI and artifacts (#26364) 2024-04-29 19:11:07 +10:00
metalgearsloth
569253940f Update submodule to 221.0.0 (#27477) 2024-04-29 19:09:43 +10:00
Leon Friedrich
3c154abb5b Content changes for engine exception tolerance PR (#27455)
* Content changes for engine exception tolerance PR

* Poke tests
2024-04-29 18:43:15 +10:00
metalgearsloth
6d619c9420 Tippy fixes (#27475)
How does that UISystemDependency not crash.
2024-04-29 18:41:58 +10:00
PJBot
5aece1679a Automatic changelog update 2024-04-29 08:37:24 +00:00
Leon Friedrich
6471f55a49 Action UI fixes (#27468) 2024-04-29 18:36:18 +10:00
PJBot
0ab5696391 Automatic changelog update 2024-04-29 06:39:45 +00:00
Plykiya
7dae58c9f8 Late join thieves! (#27466)
Co-authored-by: Plykiya <plykiya@protonmail.com>
2024-04-28 23:38:38 -07:00
Kara
f59a4f2a86 Make events generally much more common (#27469)
Make events generally more common
2024-04-28 23:38:14 -07:00
PJBot
571cff8cab Automatic changelog update 2024-04-29 04:53:41 +00:00
KrasnoshchekovPavel
199e05fb34 fixed formatting of floating point numbers during localization (#27441) 2024-04-28 21:52:35 -07:00
PJBot
4c66e4f9dc Automatic changelog update 2024-04-29 04:39:38 +00:00
MilenVolf
7ee18433c8 New borg sounds (#27205)
* New borg sounds

* Add manic laughter of an assault borg

Never wanted, but needed

* Fix wrong attribution

* Some requested changes

* Change borgwalk sounds

* Forgor
2024-04-28 21:38:31 -07:00
Morb
16b3e2233a Emotes Menu (#26702)
* Basic emote radial menu

* Move out from corvax

* Move to UI controller & add to top menu bar and key bind

* Make emote play

* Add name localization for emotes

* Localize chat messages

* Fix emote menu

* Add categories localization

* Fixes

* Fix

* Add emotes entity blacklist

* Fix entity whitelist required all logic

* Remove unused wagging emote

* Revert sprite

* Set default texture for emote icon

* Update Resources/keybinds.yml

---------

Co-authored-by: Kara <lunarautomaton6@gmail.com>
2024-04-28 21:38:23 -07:00
SlamBamActionman
373c368b94 Tippy, the helpful hint clown! (#26767)
* Tippy is BACK

* Clean up clippy from aprils fools

* Changed names from clippy to tippy, added localization, removed local_clippy command, made it easier to target a specific player

* Rename clippy.yml to tippy.yml

---------

Co-authored-by: Kara <lunarautomaton6@gmail.com>
2024-04-28 21:38:16 -07:00
lzk
eb9ee4541f Add more telecomms variations (#26822)
* Add more telecomms variations

* fox :fox:

* oops
2024-04-28 21:26:17 -07:00
TsjipTsjip
aab103865e Update PR Labeler to v5 (#26845)
* Update PR Labeler to v5

* Change conflict labeler.

* Implement draft filtering functionality

* Actually, pull_request_target is appropriate here.
2024-04-28 21:23:49 -07:00
PJBot
328134ab18 Automatic changelog update 2024-04-29 04:17:10 +00:00
Mangohydra
8afae8a1f1 Martyr Cyborg Module, borg law 2 explode (#25815)
* borg law 2 explode

* attributions fix + CL fix

* please dear god work i beg you

* maybe this will work :godo:

* 50% off deal + disc change

* absolving merge conflict

* merge conflict fix

* Update Resources/Prototypes/Entities/Objects/Weapons/Throwable/grenades.yml

* Update Resources/Prototypes/Entities/Objects/Weapons/Throwable/grenades.yml

* Update Resources/Audio/Effects/Grenades/SelfDestruct/attributions.yml

* Apply suggestions from code review

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
2024-04-28 21:16:04 -07:00
PJBot
16f65f42fc Automatic changelog update 2024-04-29 04:14:20 +00:00
Gotimanga
eb41f1da5f Adding new Cryogenics Reagent - Opporozidone (Attempt 2) (#24074)
* Fixing mistakes

* How did I make the same mistake twice

---------

Co-authored-by: Kara <lunarautomaton6@gmail.com>
2024-04-28 21:13:14 -07:00
PJBot
5f216ef1ee Automatic changelog update 2024-04-29 04:07:33 +00:00
Leon Friedrich
7c7d8eb645 ActivatableUI tweaks (#27448)
* ActivatableUI tweaks

* EntGotRemovedFromContainerMessage

* A
2024-04-29 14:06:43 +10:00
potato1234_x
cd90c05ce5 Rainbow Weed (#25759)
* rainbow weed

* Lipolicide

* psicodine + mannitol

* happiness

* ground + dried + smokables

* damn you notepad++

* fix

WHY NOT TELL ME ALL THE PROBLEMS AT THE SAME TIME!!!

* work

* work i beg you

* recipe good

* possibly fix merge conflict

* remove reagents
2024-04-28 21:06:27 -07:00
Kukutis96513
9cb3287de4 Senior physician sleeve symmetry (#27016)
* weh.

* get the weh out of my repository

* add best lizard figurine

* remove umbra stuff from master

* sprite time!!

* revert stuff?

* newer spritesss
2024-04-29 00:02:46 -04:00
Leon Friedrich
8f1a44fe05 Prevent SecretRule from picking invalid presets (#27456)
* Prevent SecretRule from picking invalid presets

* remove lonely semicolon

---------

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
2024-04-29 00:00:41 -04:00
PJBot
2393ce1ceb Automatic changelog update 2024-04-29 03:39:51 +00:00
Hanz
33e1752a49 HoP and QM Stamps (#25604)
the meat and potatoes

yup
2024-04-28 20:38:45 -07:00
PJBot
511d8a7267 Automatic changelog update 2024-04-29 03:37:17 +00:00
Magnus Larsen
5118865d47 Allow more items to be recycled (#24435)
Give more items a PhysicalComposition for recycling
2024-04-28 20:36:11 -07:00
Leon Friedrich
1eb81427d3 Stop admin verb pop-in (#27450) 2024-04-29 13:24:10 +10:00
Leon Friedrich
a466b35b27 Move UnpoweredFlashlight to shared (#27449) 2024-04-29 13:22:11 +10:00
PJBot
a1b12f95a5 Automatic changelog update 2024-04-29 03:09:47 +00:00
beck-thompson
cdd900cef6 Infinate chem dupe fixed (Toilet, drain) + dirty water toilet fix (#27446)
innital commit
2024-04-29 13:08:41 +10:00
Plykiya
405e020bfa Fix doubled gas mask action message (#27463)
Fix doubled message

Co-authored-by: Plykiya <plykiya@protonmail.com>
2024-04-29 13:02:30 +10:00
PJBot
757d59cbdd Automatic changelog update 2024-04-29 02:46:00 +00:00
Plykiya
4416a21dd5 Make Smile the Slime grabbable like geras (#27458)
Make smile grabbable like geras

Co-authored-by: Plykiya <plykiya@protonmail.com>
2024-04-29 12:44:54 +10:00
beck-thompson
2135cbdb23 Fixed some mop .ftl capitalization (#27447) 2024-04-29 02:26:44 +02:00
Ed
6cb97502aa KBAS5 clothing + Jaraten Structures (#120)
* add barbarian clothes

* add jaraten floors and wall

* locale

* add stonebrick walls and gold\silver ore cave walls

* fix brick black, update cave arena

* Update roundstart.yml

* Update cave-arena.yml
2024-04-28 22:47:01 +03:00
PJBot
f89133b3ad Automatic changelog update 2024-04-28 11:08:42 +00:00
Ubaser
008935f6ec New plant mutation: Pyrotton (#27200)
* WIP

* sprites n stuff

* flavour

* maybe fix

* add stack

* fix parent
2024-04-28 13:07:36 +02:00
PJBot
5476daf64e Automatic changelog update 2024-04-28 09:29:21 +00:00
osjarw
f3e9db0141 DelayedForce and Rapid anom behaviors fixed (#27435) 2024-04-28 12:28:16 +03:00
PJBot
ab66ae9ab0 Automatic changelog update 2024-04-28 08:24:34 +00:00
FungiFellow
1efdf4a40a Bows fit on Airtank Slot (#27433)
Update bow.yml
2024-04-28 18:23:28 +10:00
PJBot
18fa8bf633 Automatic changelog update 2024-04-28 07:12:52 +00:00
Plykiya
0efcd30ac6 Hardsuits, EVA suits, Firesuits, and others now protect your feet from Glass Shards (#26764)
* Hardsuits and softsuits count as having shoes for step triggers

* Add softsuit tag prototype

* Change to suitEVA tag

* Get rid of softsuit tag, found suitEVA tag

* Full pass of ShoesRequiredStepTriggerImmune

* Adds check to outerClothing for ShoesRequiredStepTriggerImmune

* return

* fuck Dionas

* Convert to comp, space dragons immune as well

* Merge conflict

* Merge conflict

* fix leftover tags

* empty spaces

* turns out the dragon didn't need it

* minor optimization

* Add access for system, add comp to baseShoes, check slotflags for every slot besides pockets

* fix

* fuck it we ball

---------

Co-authored-by: Plykiya <plykiya@protonmail.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-04-28 17:11:46 +10:00
Plykiya
db200faf11 yml fix for locker deconstruction (#27430)
Actual fix for lockers and deconstruction

Co-authored-by: Plykiya <plykiya@protonmail.com>
2024-04-28 16:22:10 +10:00
PJBot
cbb2554c94 Automatic changelog update 2024-04-28 06:13:51 +00:00
exincore
faa7f3461c feat(fax): Fax machines print, copy, and send paper labels (#25979)
* feat(fax): Client fax file-print parses and stores label

* feat(fax): Fax machines print, copy, and send paper labels

* style(Fax): Comments and formatting

* feat(fax): Make fax admin logging more consistent and clear

* refactor(fax): Replace ternary with a simpler null coalescing

* refactor(fax): Make FaxSystem Send method signature consistent with Copy, PrintFile

* refactor(fax): Read entire file and process later instead of peeking first

* refactor(fax): Remove local variables only used for style

* style(fax): Fix some nearby style errors

* fix(fax): Undo an inaccurate change to admin log formatting

* refactor(fax): Separate `firstLine` variable

* fix(fax): Use Environment.NewLine

* bienvenidos

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-04-28 16:12:45 +10:00
PJBot
5c817ddfc1 Automatic changelog update 2024-04-28 05:50:09 +00:00
Boaz1111
a8c297a374 Hyperconvection Circuit Imprinter (#27283)
* not done yet

* i may be stupid

* Update electronics.yml

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2024-04-28 15:49:03 +10:00
PJBot
47c5f0dba3 Automatic changelog update 2024-04-28 05:47:59 +00:00
Boaz1111
fe8ad485f2 Circuit imprinter now uses less glass (#27310)
* moved from 9 sheets of glass to 5 sheets of glass for all circuit recipes

* Revert "moved from 9 sheets of glass to 5 sheets of glass for all circuit recipes"

This reverts commit 45bb8d40150cddbbe005f5d66d34532b79143f98.

* adresses merge conflict

* fixed error

* parents base computer board to base machine board

* Revert "parents base computer board to base machine board"

This reverts commit dec3a799a90b4a0cb121b6694ecf65d9a0abd6a3.

* other thing was causing errors, guess it's this now
2024-04-28 15:46:53 +10:00
SlamBamActionman
f544c91298 Revert Exterminator pending newmed/redesign (#26978)
* Reverts Exterminator

* Includes commented out parts + sprites

* Readd stuff, comment out yaml

* Popup ads

* review

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-04-28 15:45:54 +10:00
PJBot
d90cba6eed Automatic changelog update 2024-04-28 05:28:02 +00:00
Nemanja
783d3a9aa8 Actual fix for lockers and deconstruction (#27431)
actual actual locker construction fix
2024-04-28 15:26:55 +10:00
PJBot
ee35fb12a7 Automatic changelog update 2024-04-28 05:05:54 +00:00
Keer-Sar
9f747485e9 Medal case whitelist (#27428)
* Create Medal tag and assign tag to medals

* Update Resources/Prototypes/tags.yml

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2024-04-28 15:04:49 +10:00
PJBot
afbbcd35fa Automatic changelog update 2024-04-28 04:49:25 +00:00
KrasnoshchekovPavel
3fcbbc0732 Added localization of groups and types: damage, metabolism (#27368)
* Added localization of groups and types: damage, metabolism (displayed in the guide book). The text for the health analyzer, weapon damage inspection is now taken from damage prototypes

* fix damage tests

* fix damage test yml

* fix damage test prototypes

* Update Content.Shared/Damage/Prototypes/DamageGroupPrototype.cs

* Update Content.Shared/Damage/Prototypes/DamageTypePrototype.cs

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2024-04-28 14:48:19 +10:00
RumiTiger
f5b8b5fbdc Sprites for drinks without sprite (attempt 2) (#27227)
* A beer can and a wine can

* fix wrong file locations


---------

Signed-off-by: c4llv07e <kseandi@gmail.com>
Co-authored-by: c4llv07e <kseandi@gmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2024-04-28 14:43:45 +10:00
PJBot
f88b6f6154 Automatic changelog update 2024-04-28 04:41:13 +00:00
NotSoDana
f5aa5f1f22 Several new bartender tools (#27406)
* added bar specs

* specs in boozeomat

* added jigger in bartender guide

* fixed ice bucket

* cdn

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-04-28 14:40:07 +10:00
metalgearsloth
72f790844f Fix recharger (#27426) 2024-04-28 14:39:42 +10:00
metalgearsloth
d66ad739ee Fix godmode serialization (#27427)
IDK
2024-04-28 14:30:39 +10:00
PJBot
09379a5c77 Automatic changelog update 2024-04-28 04:20:36 +00:00
osjarw
a4504e2fef Fix handlabeler/utility belt misprediction (#26660)
* Fix handlabeler/utility belt misprediction

* Partly moved HandLabelerSystem to shared
And cleaned up HandLabelerComponent

* WIP format the files so later commits look clearer
Doesn't change individual code lines, but may move
functions to another file

* WIP some more code movement

* Hand Labeler is now mostly predicted
Only the UI isn't

* WIP: Formatting and moved stuff

* Using componentstates for prediction correction

* review

* Update label on label change

* Don't overwrite label while editing

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
Co-authored-by: ElectroJr <leonsfriedrich@gmail.com>
2024-04-28 14:19:30 +10:00
PJBot
1c78f60bc3 Automatic changelog update 2024-04-28 03:20:39 +00:00
icekot8
a7ad59f6ba Portable Recharger: Arsenal T3 (#26655)
* sys

* item

* ahm.

* Update Content.Server/Power/Components/ChargerComponent.cs

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-04-28 13:19:33 +10:00
PJBot
49d8fe33a3 Automatic changelog update 2024-04-28 03:04:02 +00:00
Plykiya
a478446e5a Printable Special and Empty Mags for Autolathes (#27396)
* Change emag recipes to print mags instead of single ammo

* Get rid of useless single ammo printing recipes

* Add in submachine gun mags

* missing magazine shotgun beanbag in nonlethal research

* Sort lathes that use ammo crafting recipes alphabetically

---------

Co-authored-by: Plykiya <plykiya@protonmail.com>
2024-04-28 13:02:56 +10:00
Ed
f079e77554 Displacement maps now works on any layers (#27405)
* try

* pipupi

* Update ClientClothingSystem.cs

* Update vox.yml

* Update ClientClothingSystem.cs
2024-04-28 12:35:40 +10:00
PJBot
599a66230b Automatic changelog update 2024-04-28 02:26:25 +00:00
Plykiya
be09520aa5 Reduce selection of traitor max from 12 to 8 (#27415)
TOO MANY DAMN SYNDIES

Co-authored-by: Plykiya <plykiya@protonmail.com>
2024-04-28 12:25:19 +10:00
github-actions[bot]
02d2611d94 Update Credits (#27413)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
2024-04-27 18:21:52 -07:00
Ed
33d04ef35b Dwarf species (#119)
* add dworf sprites

* dwarf prototypes

* add shoes displacement. FUCK! its doesnt work

* spaces

* footfix

* final dwarf!

* fixes
2024-04-28 01:44:43 +03:00
Agoichi
353fcd9cfe Magic Flashlight (#116)
* fucking flaslight

* flaslight

* Update objects.ftl
2024-04-28 00:56:02 +03:00
PJBot
9ccf95e333 Automatic changelog update 2024-04-27 19:11:52 +00:00
SlamBamActionman
2cb421bc43 Fix suit baldness (#27404)
Initial commit
2024-04-27 13:10:47 -06:00
PJBot
1d2335699d Automatic changelog update 2024-04-27 19:09:44 +00:00
RiceMar1244
8869fc3bb2 Resprite antique laser pistol (#27037)
* Resprites the captain's antique laser pistol

* Adds artist credit

* Improves icon outline and shading

* Replaces new sprites with something more resembling the in-game version
2024-04-27 13:08:38 -06:00
Nim
64218bfcab Coffin (#118)
* coffin

* eng
2024-04-27 22:04:52 +03:00
Terraspark4941
34ab1e760d The Honored Quran (Sprite addition) (#27400)
The Honored Quran
2024-04-28 02:36:04 +10:00
PJBot
7c2ea18088 Automatic changelog update 2024-04-27 16:34:03 +00:00
metalgearsloth
74041cf66f Fix literally every single activatable UI bug (#27401)
* Fix all activatable bugs

Apparently this was a load-bearing nullable enum.

* build
2024-04-28 02:32:57 +10:00
nao fujiwara
8a59e9e1f8 repositioned spooky long hair to its proper place in the alphabet (tweak) (#27370)
* repositioned spooky long hair to its proper place in the alphabet

* forgot the meta.json for hairstyles oopsie
2024-04-27 16:58:14 +02:00
Ed
2cefd0ee10 Displacement Map Visualizer QoL (#27392)
* Update Displacement Map Visualizer.lua

* Add files via upload

* Fix background layer being offset

This was caused by not taking the cel's own bounds into account.
Aseprite doesn't make an image layer "full size" if it only covers a
small part of the sprite.

---------

Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2024-04-27 16:55:28 +02:00
PJBot
2621e31343 Automatic changelog update 2024-04-27 13:54:22 +00:00
MilenVolf
974129689c Glass box fixes + Construction & Stealthy deconstruction (#25365)
* Showcase update

* Fix craft prototype. Add glass box deconstruction for stealth gameplay

* Remove duplicated tag

* Forgor

* Some cleanup

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2024-04-27 23:53:16 +10:00
PJBot
c56f98f99f Automatic changelog update 2024-04-27 13:52:03 +00:00
brainfood1183
c0ce5fba2a Rodents can be Faxecuted (executed via Fax machine) (#21461)
* Rodents can be Faxecuted (executed via Fax machine)

* use brute instead of new group.

* fax visuals now use tags for mouse and hamster instead of comps

* fix for ubuntu, damn ubuntu bane of my life

* cant copy hamlet, can now faxecute mothroaches.

* fix

* fix

* fixes

* removed ifs now using switch, removed hastag now using string.

* fixes and no more switch

* cleanup

* more cleanup

* fix

* cleanup

* moved damage out of faxmachine and into own system and component.

* changes

* fixes and done i think.

* tidy

* Fixes

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-04-27 23:50:57 +10:00
PJBot
37105b3400 Automatic changelog update 2024-04-27 13:28:24 +00:00
Ramlik
db555a7c79 Add a handy security radio (#25913)
* Add a handy security radio

I've always wanted to have a handy security radio in game and I thought it would be cool to have one in game.

Demonstation can be found in here: https://youtu.be/VQOLiTQAmKc

* Merged radio files and changed sprite location

* Fixed RSI not having license and copyright

* Added a chance to spawn in security closets

All security closets will have 50% chance to spawn a handy security radio in it

* Update radio id

Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>

* Change id in locker spawn

* Change id in locker spawn

* Changed id to RadioHandheldSecurity as suggested

* Add radio to vending machine instead of locker

Removed radio from lockers and added it to security vending machine

* Fixed radio not having a sprite

---------

Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>
2024-04-27 23:27:18 +10:00
metalgearsloth
6d3e788dd6 Update cane UI key (#27395)
* Update cane UI key

* none of the pr passed ci yippee

* weh
2024-04-27 23:17:23 +10:00
Ed
d4556c2657 Merge pull request #117 from crystallpunk-14/ed-27-04-2024-displacement-upstream
Ed 27 04 2024 displacement upstream
2024-04-27 15:21:33 +03:00
Ed
3f508c899d ui fixes 2024-04-27 15:08:25 +03:00
Ed
1c38d46cd3 fixes 2024-04-27 14:48:55 +03:00
PJBot
3a198cbb0d Automatic changelog update 2024-04-27 11:18:52 +00:00
Tainakov
6d6e7f0c98 [Admin QOL] +Adminchat flag (#26930) 2024-04-27 13:17:46 +02:00
PJBot
4d223f2efd Automatic changelog update 2024-04-27 10:40:05 +00:00
Plykiya
cafb41c161 Printable Special Mags and Empty Mags and Material Rebalance for Ammo (#26178)
* Printable Empty Magazines

* Adjust values of ammo boxes, adjust material costs, add empty lethal/non-lethal mags, swap secfab shotgun shells with shotgun ammo boxes, add recipe for shotgun ammo boxes

* Adds fully loaded pistol mags at secfab, removes printing respective cartridges at secfab

* Adds fully loaded rifle mags at secfab, removes respective cartridges

* Adds fully loaded light rifle mags at secfab, removes respective cartridges from secfab

* Adds fully loaded speedloader to secfab, removes respective cartridges from secfab

* small id mismatch fix

* another wrong ID fix

* capitalize Ls in speedloader

* Add missing SpeedLoader recipe

* Adds fully loaded shotgun drums to secfab, removes respective shells from secfab

* add rifle ammo unlocks back in, forgot ammo unlocks affect other fabs as well

* Moves tranquilizer shells to the non-lethal ammunition research

* Account for the removal of rubbers, adds in craftable disablers

* rubber rounds don't exist, remove empty non-lethal mags to just have empty mags

* Add in WT550 mags

* Convert latheRecipes to use LayeredTextureRect instead of TextureRect

* Fix for issue, texture layering now works

* Add in missing shell uranium box art

* add shelluranium to meta.json

* Fix yml issue

* Get rid of unused single ammo printing unlocks

---------

Co-authored-by: Plykiya <plykiya@protonmail.com>
2024-04-27 20:38:59 +10:00
PJBot
dec101465b Automatic changelog update 2024-04-27 10:36:19 +00:00
Ed
4903bc2e3d Small tomato killer tweak (#27265)
* Update miscellaneous.yml

* Update mobspawn.yml

* Update miscellaneous.yml

* Update miscellaneous.yml
2024-04-27 20:35:13 +10:00
PJBot
4d85ca5c2a Automatic changelog update 2024-04-27 10:34:41 +00:00
Errant
a62e8701cb vox oxygen toxicity, respiration changes (#26705)
* vox oxygen toxicity and related stuff

* Review

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-04-27 20:33:35 +10:00
PJBot
670ad3d962 Automatic changelog update 2024-04-27 10:25:05 +00:00
eoineoineoin
b8a8d6f8fc Add tooltips to artifact analyzer UI (#27393)
Add tooltips to indicate why "Extract" button is disabled.

Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
2024-04-27 20:25:02 +10:00
Łukasz Mędrek
1861ae8e2b fix: localisation keys in random content books (#27390)
Fixes #27327
2024-04-27 20:23:55 +10:00
PJBot
324cce9bff Automatic changelog update 2024-04-27 10:23:16 +00:00
Ps3Moira
77d7c77f59 Canes + Cane Blade for Syndicate Librarians (#25873)
* Cane + Cane Blade

* Add - type: ContainerContainer

* Add another - type: ContainerContainer

* Fix and add proper ContainerContainer component

* Add UserInterface component

* Remove Space

* Stat Changes

* review

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-04-27 20:22:10 +10:00
nao fujiwara
35885345c2 tweaked the old dress sprite (#27391)
# made the waistband position consistent when rotating
2024-04-27 12:57:35 +03:00
Ed
6174713383 Merge remote-tracking branch 'refs/remotes/upstream/master' into ed-27-04-2024-displacement-upstream
# Conflicts:
#	Resources/Prototypes/Entities/Mobs/Customization/Markings/human_hair.yml
2024-04-27 10:45:35 +03:00
Ed
1840003e1c update cave wall to high format (#113)
* high cave wall

* some minor fixes

* Update cave-arena.yml

* Update natural.yml
2024-04-27 10:02:59 +03:00
PJBot
de85e6d518 Automatic changelog update 2024-04-27 06:31:35 +00:00
Łukasz Mędrek
8442a9142c fix: deconstruct verb on undeconstructables (#27387)
Some of prototypes don't specify their deconstructTarget node, which
made them show the deconstruct verb as deconstructTarget is set to
"start" node by default. This patch makes attempt to check if is it even
possible from current construction node to reach specified
deconstructTarget.

Fixes #27330
2024-04-27 16:30:29 +10:00
metalgearsloth
5ec5e5ab89 Fix lint (#27388) 2024-04-27 16:30:13 +10:00
ShadowCommander
6eb681958b Fix prying error when opening locked airlocks (#27386)
It would try to pry the door and fail to resolve a prying component on the entity trying to open the door.
2024-04-27 16:28:17 +10:00
metalgearsloth
92f14648ac Update submodule to 220.2.0 (#27385) 2024-04-27 16:07:26 +10:00
Errant
257b04d277 Vox sprite rework (#26985)
weh
2024-04-27 16:04:51 +10:00
Pieter-Jan Briers
2f7d0dedbd Displacement map prototype (#26709)
Requires https://github.com/space-wizards/RobustToolbox/pull/5023

This uses the new engine features (above) to add a displacement map shader. This allows deforming a sprite based on another sprite.

Primary use case is automatically adapting human clothing sprites to different species, something we want to make species like Vox a reality.

A basic example of wiring this up with Vox has been added. The system is however incredibly simple and **will** need more work by a content developer to select and toggle displacement maps when appropriate. I am leaving that to somebody else. For example right now the displacement map is applied even if a species already has custom-fit sprites for a piece of clothing, such as the grey jumpsuit for Vox.

Basic Aseprite plugins to help with authoring displacement maps have also been made.
2024-04-27 16:03:58 +10:00
PJBot
b4212a08f4 Automatic changelog update 2024-04-27 05:59:15 +00:00
Vigers Ray
36abf1d9ba Fix stupid NPC. (#26868)
* init commit

* Review

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-04-27 15:58:09 +10:00
PJBot
f898e72e57 Automatic changelog update 2024-04-27 05:48:44 +00:00
Nemanja
0215292baa welding gas mask (#27108)
* welding gas mask

* eek
2024-04-27 15:47:38 +10:00
Vyacheslav Kovalevsky
87cd1bb0ef add cancer mouse for real (#26768)
* cancer mouse

* minor tweaks

* less radioactive

* less common

* i forgor

* even more rare
2024-04-27 15:46:50 +10:00
vorkathbruh
defb8dd941 Adjusts price of SWAT crate (#27365)
Adjusts price of SWAT crate in cargo_security.yml from 5500 to 7500.
2024-04-27 15:44:59 +10:00
PJBot
bebcc70c7d Automatic changelog update 2024-04-27 05:14:19 +00:00
Tayrtahn
55177fc388 Hide disposal unit "Jump inside" verb for mobs that won't fit (#27367)
Hide "Jump inside" verb showing for mobs that won't fit
2024-04-27 15:13:39 +10:00
DrSmugleaf
46d6bf18a8 Add test for failing and then successfully starting a round (#27375)
* Add test for failing and then successfully starting nukeops preset

* Make test independent from nukeops

* Fix nullable error
2024-04-27 15:13:24 +10:00
Ty Ashley
7d4d66887b Persist Agent ID Job Icon between UI loads (#27379)
Modified the Agent ID Card to persist the selected Job Icon between UI loads
2024-04-27 15:13:12 +10:00
metalgearsloth
cc2fa6f57e Remove redundant HasUi (#27381)
Doesn't fix anything but still.
2024-04-27 15:08:50 +10:00
metalgearsloth
1dd0e0718c Update submodule to 220.1.0 (#27380) 2024-04-27 12:35:18 +10:00
PJBot
18e27342d1 Automatic changelog update 2024-04-26 22:59:31 +00:00
Pgriha
ef7d85d285 More characters slots! (#27361)
Add more character slots
2024-04-26 18:58:25 -04:00
Froffy025
0601075e79 enTranslationHelp (#115)
* enTranslationHelp

* Update tiles.ftl

* Update human-facial-hair.ftl
2024-04-26 23:40:11 +03:00
PJBot
012857331b Automatic changelog update 2024-04-26 18:52:32 +00:00
nao fujiwara
c6d935497c spooky dress and hairstyle (#27333)
* first draft loooong hair

* *added the old dress item *added old dress to the theatrical performances create

* updated spooky long hair name

* fixed an oopsie made when updating item names
2024-04-26 12:51:26 -06:00
PJBot
a04d143c2c Automatic changelog update 2024-04-26 13:07:49 +00:00
Mr. 27
50fb91bd18 monkey reinforcement teleporters can now select between kobold or monkey with a verb (#25982)
* inital

* Update animals.yml

* Update animals.yml

* Update Content.Server/Ghost/Roles/Components/GhostRoleMobSpawnerComponent.cs

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

* Update Content.Server/Ghost/Roles/Components/GhostRoleMobSpawnerComponent.cs

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

* Update Content.Server/Ghost/Roles/Components/GhostRoleMobSpawnerComponent.cs

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

* Update Content.Server/Ghost/Roles/Components/GhostRoleMobSpawnerComponent.cs

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

* Update Content.Server/Ghost/Roles/Components/GhostRoleMobSpawnerComponent.cs

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

* selecting different role will change the description and name

* fix name

* gargh

* the review

Hello

* e

---------

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
2024-04-26 15:06:43 +02:00
PJBot
36084d9712 Automatic changelog update 2024-04-26 13:03:14 +00:00
DrSmugleaf
413d69e71f Fix the game giving up forever when not being able to start a preset (#27359) 2024-04-26 23:02:08 +10:00
metalgearsloth
30b74027fb Fix RD suffix (#27358) 2024-04-26 22:58:24 +10:00
metalgearsloth
394c325246 Fix PAI BUI (#27357) 2024-04-26 22:45:38 +10:00
lzk
3bed1ddc48 Add morgue access door (#26852)
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2024-04-26 22:45:30 +10:00
PJBot
053ec6a309 Automatic changelog update 2024-04-26 12:41:02 +00:00
wafehling
8febdc5fc4 Added hotkey and controller to re-open end of round scoreboard (#25884)
* Added keybind for scoreboard, starting work

* Fixed the window appearing

* Added loc text

* Updated namespace for ScoreboardUIController.cs

* Switched to UISystemDependency

"- UIControllers can use [Dependency] as normal for IoC services and other controllers, but must use [UISystemDependency] for entity systems, which may be null as controllers exist before entity systems do." Jezithyr — 10/12/2022 1:20 PM

* Reverted back to functional state

* Replace with UISystemDependency

* Move RoundEndSummaryWindow to ScoreboardUIController

* Convert to EntitySystem

* Clean up command bind

* Move to RoundEnd directory

* Remove Nukeops rule when no nukies

* Cleanup

* Change to toggle hotkey

* Cleanup

* Revert "Remove Nukeops rule when no nukies"

This reverts commit 5d4bbca09f45110b24a674d59b505be87b602b67.

* Cleanup

* Make the Toggle hotkey work in lobby

* Fix error

---------

Co-authored-by: SlamBamActionman <slambamactionman@gmail.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
2024-04-26 14:39:56 +02:00
Redfire1331
080b1b1e0c Added Chopsticks (#27298)
* added chopstick sprites

* Create chopsticks.yml

* added chopstick yml

* hopfully it acts like a forke

* added chopsticks to dinnerware vendor

* uncapitalized the name

* Update Resources/Prototypes/Entities/Objects/Misc/chopsticks.yml

Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>

* made the chopsticks icon a reasonable size

* added chopsticks to chang vendor

* made paired chopsticks you can break apart

* added them to vendors

---------

Co-authored-by: redfire1331 <Redfire1331@users.noreply.github.com>
Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>
2024-04-26 22:39:32 +10:00
metalgearsloth
e1a5247770 Fix magic mirror prediction (#27356) 2024-04-26 22:37:09 +10:00
PJBot
11227c754c Automatic changelog update 2024-04-26 12:32:56 +00:00
WarMechanic
498109a833 fix wieldable guns not being able to cycle inhand (#27307)
* Add UnwieldOverride variable that overrides unwielding inhand to enable other interactions

* Give LMGs UnwieldOverride

* logically inverted UnwieldOverride to UnwieldOnUse

* fixed typo
2024-04-26 08:31:50 -04:00
PJBot
80bbf19f95 Automatic changelog update 2024-04-26 12:18:31 +00:00
DrSmugleaf
adce579370 Fix mobs not being able to pry doors by just left clicking on them (#27349) 2024-04-26 14:17:25 +02:00
metalgearsloth
13c6537842 Fix network configurator memory leaking (#27346)
* Fix network configurator memory leaking

Doesn't dispose this window.

* Fix the other part
2024-04-26 20:36:57 +10:00
Plykiya
35edea1c96 Fixes blank syndicate uplink UI (#27344)
Co-authored-by: Plykiya <plykiya@protonmail.com>
2024-04-26 20:29:56 +10:00
metalgearsloth
37e03e0d29 Update submodule to 220.0.0 (#27338) 2024-04-26 18:22:23 +10:00
PJBot
934c5089a9 Automatic changelog update 2024-04-26 08:17:30 +00:00
metalgearsloth
5896e68752 Content update for UI prediction (#27214)
* Content update for UI refactor

* Big update

* Sharing

* Remaining content updates

* First big update

* Prototype updates

* AUGH

* Fix UI comp ref

* Cleanup

- Fix predicted message, fix item slots, fix interaction range check.

* Fix regressions

* Make this predictive

idk why it wasn't.

* Fix slime merge

* Merge conflict

* Fix merge
2024-04-26 18:16:24 +10:00
Ed
1f9f88883c Content (#110)
* Add many test walls

* minor bug fix

* fix torch

* add wallmount variation

* final wood wall!

* great sprite clearing + locales

* fixes

* Update bonfire.yml

* Update wallmount_torch.yml

* Update cave-arena.yml
2024-04-26 11:09:38 +03:00
PJBot
32b81de8c5 Automatic changelog update 2024-04-26 08:02:27 +00:00
Boaz1111
8af23749a1 Cluster med refactor + un-abandoning of surgery room (#27293)
* done

* cryo tweaks

* fixes error
2024-04-26 02:01:21 -06:00
IProduceWidgets
290a984c90 Oasis small tweaks (#27335)
do the easy reviews
2024-04-26 02:01:07 -06:00
DrSmugleaf
c122fdf183 Move job info changing methods for id cards to shared (#27337)
* Move job info changing methods for id cards to shared

* Revert "Move job info changing methods for id cards to shared"

This reverts commit 95cbc46b2d1934fa7bf5c72d7d3de9f9168992a1.

* Reapply changes
2024-04-26 18:00:16 +10:00
metalgearsloth
d745a788ea Fix UseDelay issues (#27336)
* Fix UseDelay issues

- Fix it not predicting properly by deep-copying the classes (realistically they should be structs).
- Fix the `z` path not applying UseDelay similarly to the `e` path.

* click
2024-04-26 17:58:06 +10:00
PJBot
fe67634397 Automatic changelog update 2024-04-26 07:49:21 +00:00
FungiFellow
e26662b545 Quiver Crafting Recipe (#27198)
* Update quiver.yml

* Create quiver.yml

* Update clothing.yml

* Update pneumatic_cannon.yml

* Update pneumatic_cannon.yml

* Update pneumatic_cannon.yml

* Update pneumatic_cannon.yml
2024-04-26 17:48:15 +10:00
PJBot
abc46f171c Automatic changelog update 2024-04-26 07:48:07 +00:00
IlyaElDunaev
3847a298c1 Treatment of blood loss in the Rat King (#26887)
Bloodloss-RatKing
2024-04-26 17:47:01 +10:00
PJBot
d578d293df Automatic changelog update 2024-04-26 07:45:46 +00:00
FungiFellow
9b63bb672f Whitelisted Sec Webbing (#27303)
* Whitelisted Sec / Merc Webbing

* Update belts.yml

* Misplaced Components fixed

* Trying to fix mapped fills

* Update belts.yml

* Update belts.yml

* Removed an Empty line

* Update belts.yml
2024-04-26 17:44:40 +10:00
PJBot
1dca65defd Automatic changelog update 2024-04-26 07:35:26 +00:00
SkaldetSkaeg
9378688ffc No echo from handheld radio (#27046)
I found the echo from my own radio very annoying.
2024-04-26 17:34:20 +10:00
Leon Friedrich
0ae942101a Fix client-side replay error (#27332) 2024-04-26 17:30:03 +10:00
Ed
7bf0ddbaa8 Merge pull request #111 from crystallpunk-14/ed-26-04-2024-upstream
26.04.2024 Upstream
2024-04-26 09:25:25 +03:00
Nemanja
735eeefa03 Migrate out rubber bullets/mags (#27329) 2024-04-26 14:22:49 +10:00
PJBot
de965416bd Automatic changelog update 2024-04-26 02:26:58 +00:00
Tayrtahn
b292905216 Expand UseDelay to support multiple delays per entity; fix bible healing and bag pickup (#27234)
* Upgraded UseDelay to support multiple delays per entity

* Implement secondary delay for bibles.
Also some improvements to make it work nicely.

* Documentation is good

* Reserve the previous change; now Storage uses the special ID and Bible uses the default.

* .0

* Added VV support to UseDelayInfo

* Serialize better

* No register, just setlength
2024-04-25 22:25:52 -04:00
PJBot
0aee198adf Automatic changelog update 2024-04-26 00:27:03 +00:00
Nemanja
a0b3a6b679 fix antag bugs (#27319)
* fix antag bugs

* Update NukeopsRuleComponent.cs
2024-04-25 17:25:57 -07:00
PJBot
281e5fa448 Automatic changelog update 2024-04-25 23:19:46 +00:00
cool dolphin
4f056672f9 Glasses in loadouts (#27286)
* loadouts now have aaall the glasses

* cheap sunglasses dont exist at all

* empty commit to rerun tests, there's no way i fucked something up
2024-04-26 01:18:39 +02:00
Ed
057556b605 Merge remote-tracking branch 'space-station-14/master' into ed-26-04-2024-upstream
# Conflicts:
#	Content.IntegrationTests/Tests/Station/EvacShuttleTest.cs
2024-04-26 00:33:04 +03:00
ShadowCommander
cf45005471 Add command to toggle ghost visibility on the client (#27314)
* Add command to toggle ghost visibility on the client

* Fix description

* Fix index of arg parsing

* Allow setting GhostVisibility directly
2024-04-25 18:26:21 +02:00
SoulFN
960a50c0ff Buff revenant structural damage (#27309)
* 15 > 50

* update

50 >> 60
2024-04-25 21:02:25 +10:00
PJBot
e450fadbaa Automatic changelog update 2024-04-25 02:20:23 +00:00
beck-thompson
d3b1178428 Radio jammer update! (#25912)
* Added selectable power level to radio jammer

* Cleaned up OnGetVerb

* Settings are now stored in the .yml file. Simplified stuff a lot!

* Minor fixes!

* Small little baby fix :)

* Added the power level switch to the examine menu and also removed the ftl file as it was in the incorrect location.

* Minor code cleanup

* Changed byte -> int

* Update sprite

* Fixed licence

* Added power LED that changes if the jammer is on low power.

* Removed tabs

* Changed github link to the commit

* Changed all the RemComp to RemComDeferred

* Moved NetworkedComponent to shared

* Changed radio jammer textures back with minor edits

* Added a space because it was annoying me

* Jammer now updates range for suit sensors properly! Thanks nikthechampiongr :)

* Removed useless comment

* Cleaned up code that updates the range of tracking devices.

* Fixed client namespace and removed newline

* Cleaned up ChangeLEDState and ChangeChargeLevel.

* Added comments

* Read only

* Fixed another comment

* Locked in

* Made server inherit shared

* Update Content.Shared/Radio/EntitySystems/SharedJammerSystem.cs

* Update Content.Shared/Radio/EntitySystems/SharedJammerSystem.cs

* review fixes

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-04-25 12:19:16 +10:00
Leon Friedrich
6d16d6b1c9 Fix DoAfter attempt event null error (#27280)
* Fix DoAfter attempt event null error

* A
2024-04-25 11:54:25 +10:00
Nemanja
161fd6c83c Mega Antag Refactor (#25786)
* Mega Antag Refactor

* last minute delta save

* more workshopping

* more shit

* ok tested this for once

* okkkkk sure

* generic delays for starting rules

* well darn

* nukies partially

* ouagh

* ballin' faded and smonkin wed

* obliterated the diff

* Spread my arms and soak up congratulations

* I've got plenty of love, but nothing to show for it

* but there’s too much sunlight
Shining on my laptop monitor, so I
Can’t see anything with any amount of clarity

* ok this junk

* OOK!

* fubar

* most of sloth's review

* oh boy

* eek

* hell yea!

* ASDFJASDJFvsakcvjkzjnhhhyh
2024-04-25 11:31:45 +10:00
Nemanja
771661f478 fix analysis console bias button for real (#27299)
fix bias button for real
2024-04-25 11:26:55 +10:00
metalgearsloth
f6ac494ad3 Fix .ftl keys (#27289)
Required for https://github.com/space-wizards/RobustToolbox/pull/4885 to not kill content
2024-04-24 21:19:17 -04:00
PJBot
eb648dd0eb Automatic changelog update 2024-04-24 21:28:40 +00:00
pigeonpeas
ef0a4d64c8 Add a trash bag to the advanced cleaning borg module. (#27226)
add the trash bag

puts the trash bag in the advanced cleaning module
2024-04-25 00:27:34 +03:00
deltanedas
d797e3753f saltern bar stool (#27263)
saltern stool

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-04-24 13:40:54 -06:00
Ed
045c81b3c4 Merge pull request #108 from crystallpunk-14/ed-24-04-2024-workshop-ports
Jaraten walls and wallmounts
2024-04-24 20:45:21 +03:00
Ed
8ef8cf6098 add wallmounts things 2024-04-24 20:28:25 +03:00
metalgearsloth
17160fad83 Update submodule to 219.2.0 (#27294) 2024-04-25 00:35:56 +10:00
Leon Friedrich
8aabb1c2e5 Content changes & tests for engine prototype validation PR (#27188)
* Content changes & tests for engine prototype validation PR

* A
2024-04-25 00:27:13 +10:00
Pieter-Jan Briers
7b90c08a2c Various item status fixes/tweaks (#27267)
* Always display item status panel fully

Initial feedback from the UI changes seems to be that a lot of people go "why is there empty space" so let's fix that.

* Fix item status middle hand being on the wrong side

I think I switched this around when fixing the left/right being inverted in the UI code.

* Minor status panel UI tweaks

Bottom-align contents now that the panel itself doesn't dynamically expand, prevent weird gaps.

Clip contents for panel

* Fix clipping on implanters and network configurators.

Made them take less space. For implanters the name has to be cut off, which I did by adding a new ClipControl to achieve that in rich text.

* Update visibility of item status panels based on whether you have hands at all.

This avoids UI for borgs looking silly.

Added a new "HandUILocation" enum that doesn't have middle hands to avoid confusion in UI code.

* Use BulletRender for laser guns too.

Provides all the benefits like fixing layout overflow and allowing multi-line stuff. Looks great now.

This involved generalizing BulletRender a bit so it can be used for not-just-bullets.

* Fix geiger word wrapping if you're really fucked
2024-04-25 00:01:31 +10:00
PJBot
38f490e5eb Automatic changelog update 2024-04-24 13:45:03 +00:00
FungiFellow
5fa424a43b Add Truncheon to Secbelt Whitelist (#27281)
* Add Truncheon to Secbelt Whitelist

* Update belts.yml

* Added Truncehon Tag in Tags.yml

* Update security.yml

* Update security.yml
2024-04-24 16:43:56 +03:00
PJBot
7f6f9c1209 Automatic changelog update 2024-04-24 13:22:36 +00:00
Alzore
4290d5f13e Make the cargo telepad T2 civilian (#26270)
therearetwowaystodothis
2024-04-24 23:21:28 +10:00
Tayrtahn
480d26aba6 Fix climbing and bonking simultaneously (#27268)
* Properly network ClumsyComponent

* Fix being able to climb and bonk at the same time.
Also properly subscribe to AttemptClimbEvent by-ref.

* Update Content.Shared/Interaction/Components/ClumsyComponent.cs
2024-04-24 23:02:43 +10:00
Ed
b0a11462d6 cave wall sprite fix 2024-04-24 11:39:05 +03:00
Ed
6307c1b1b5 add walls 2024-04-24 11:28:25 +03:00
Leon Friedrich
91aa16f08a Add NukeOps Test (#27207)
* Add NukeOps Test

* Update EvacShuttleTest to also check mapinit

* Update RuleMaxTimeRestartTest

* Fix cvar cleanup

* A

* Revert some changes

* comments

* Add MappingTests

* Finally fix the test

* A
2024-04-24 15:38:43 +10:00
Nemanja
49f1c8b197 fix analysis console not saving bias button state (#27275) 2024-04-24 01:35:16 -04:00
PJBot
829b453e3c Automatic changelog update 2024-04-24 02:43:41 +00:00
Plykiya
14bc595442 Do-afters belonging to other players are now shaded (#27273)
Make do-afters belonging to other players shaded

Co-authored-by: Plykiya <plykiya@protonmail.com>
2024-04-23 19:42:34 -07:00
Flareguy
10ad53df72 Revert "Maints Exit Sign" (#27271)
Revert "Maints Exit Sign (#26831)"

This reverts commit 905102064c.
2024-04-23 20:40:26 +02:00
PJBot
0c851d256d Automatic changelog update 2024-04-23 12:08:18 +00:00
Nemanja
1bfc63c546 fix cargo teleporter (#27255)
* fix cargo teleporter

* don't delete orders

* basado
2024-04-23 22:07:12 +10:00
PJBot
8117131c91 Automatic changelog update 2024-04-23 11:35:15 +00:00
pigeonpeas
c129bb177c Allow the purchase of emitters from cargo. (#27229)
add emitter crates back to cargo + changes the contents of an emittercrate from emitter to emitterflatpack

👍
2024-04-23 21:34:09 +10:00
PJBot
716cdcbdf8 Automatic changelog update 2024-04-23 11:32:54 +00:00
brainfood1183
905102064c Maints Exit Sign (#26831)
* Maints Exit Sign

* change description

* id, sprites changed from maints to exit
prototype now has an unshaded layer so it can be seen in the dark.
2024-04-23 21:31:48 +10:00
PJBot
401911b734 Automatic changelog update 2024-04-23 11:31:07 +00:00
Whisper
eee056eaf0 lower max firestacks to 10, refactor flammable (#27159)
* lower max firestacks to 10, refactor flammable

* fix

* uncap fire stack damage, lower fire stack damage
2024-04-23 21:30:01 +10:00
PJBot
2f0c02ef35 Automatic changelog update 2024-04-23 11:26:04 +00:00
Ghagliiarghii
88b56efba1 Increase availibility of combat knives to security (#27224)
* Increase availibility of combat knives to security

* whitelisted combatknife in secbelt for Diona

* Revert SecDrobe change for MGS
2024-04-23 21:24:58 +10:00
PJBot
31b9f98e6d Automatic changelog update 2024-04-23 08:58:15 +00:00
Skye
32c1f8f8cd Fix: Suit Sensors Vitals (#27259)
Vitals now functions correctly
2024-04-23 10:57:09 +02:00
PJBot
c4a6bcca5c Automatic changelog update 2024-04-23 08:49:33 +00:00
Tyzemol
0e2f5d6bf7 Fix slime storage issue (#27260)
fix_slime_storage
2024-04-23 10:48:26 +02:00
Leon Friedrich
06a5e00c99 Update engine to v219.1.3 (#27257) 2024-04-23 14:28:09 +10:00
PJBot
ee0f63d273 Automatic changelog update 2024-04-22 22:47:28 +00:00
Tayrtahn
8eecd9cc2d Prevent ghosts from triggering examine artifact triggers (#27249) 2024-04-22 18:46:22 -04:00
Ed
e888747d0c Merge pull request #107 from crystallpunk-14/ed-22-04-2024-weapon-update
Weapon update
2024-04-22 23:55:52 +03:00
Ed
8ba56847bb add crossBOLT 2024-04-22 22:01:47 +03:00
Ed
39f64dea73 added light crossbow 2024-04-22 21:46:11 +03:00
Ed
43384c1125 weapon rebalance + weapons equipping on move 2024-04-22 20:36:54 +03:00
Ed
08960fb197 Merge pull request #106 from crystallpunk-14/21-04-2024-cleaning-up
Upstream Sync
2024-04-22 20:22:28 +03:00
Ed
23df20c0fe Update EvacShuttleTest.cs 2024-04-22 20:10:01 +03:00
Ed
1210e1da86 Revert "return maps prototypes"
This reverts commit 894c10c409.
2024-04-22 20:05:14 +03:00
Ed
f94997fe5f Revert "Update PostMapInitTest.cs"
This reverts commit 32bf32d2dc.
2024-04-22 20:05:05 +03:00
Ed
6185ddc64c Revert "fix"
This reverts commit 132cc73fb7.
2024-04-22 20:05:01 +03:00
Ed
132cc73fb7 fix 2024-04-22 18:32:26 +03:00
Ed
32bf32d2dc Update PostMapInitTest.cs 2024-04-22 18:12:21 +03:00
Ed
894c10c409 return maps prototypes 2024-04-22 18:09:21 +03:00
lzk
5b0c3ecf73 Little analysis console rearrangement (#27244) 2024-04-22 10:00:13 -04:00
PJBot
8bc2ee81dd Automatic changelog update 2024-04-22 12:19:34 +00:00
FungiFellow
32a90120eb Syndi-Cat Tweaks (#27222)
* Syndicat Price 10 -> 6

* Update animals.yml

* Update animals.yml

* Update uplink_catalog.yml

* Update uplink_catalog.yml

* Update animals.yml
2024-04-22 15:18:28 +03:00
Ed
f972f3129d update debug walls 2024-04-22 13:37:44 +03:00
Kara
85c6383cc0 Minor slime fix (#27237) 2024-04-22 03:18:36 -07:00
PJBot
289bbc70d7 Automatic changelog update 2024-04-22 10:04:08 +00:00
Just-a-Unity-Dev
fd0ca42c58 General slime improvements (#23425)
* General slime improvements

* Finish morphing

* oops 2x2 not 3x3

* actually lets ball - 2x3 inventory

* Last two things on the todo list

* .\RobustToolbox\

* JUST COMPILE

* fix tests 2.0

* fix tests 3.0

* Do reviews

* minor change

* guideboob

* more

---------

Co-authored-by: Kara <lunarautomaton6@gmail.com>
2024-04-22 03:03:03 -07:00
PJBot
af516cff61 Automatic changelog update 2024-04-22 09:00:00 +00:00
Terraspark4941
c5ab839b2c Engineering guidebook update (#26851)
* RTG page update

* old commits from #22272

* Small fixes over most pages

* TEG tweaks

* Fixed a thing in airlock security

* fixed an italics tag

* singularity page now includes tesla

* Added a burn chamber to TEG page

* Prettyprinted TEG page, fixed some more issues with details

* Moved ONE singular comma

* Change Singularity page heading to include tesla

* Singularity page pretty printing + fixes

* TIL its [italic] NOT [italics]

* RTG Prettyprinting

* Access Config Prettyprinting + Netconfig tweak

* Atmospherics prettyprinting

* Construction keybind fix

* Apply suggestions from code review

---------

Co-authored-by: Kara <lunarautomaton6@gmail.com>
2024-04-22 01:58:54 -07:00
PJBot
52204dfa35 Automatic changelog update 2024-04-22 08:46:44 +00:00
potato1234_x
e2b260d894 Psicodine, Mannitol, Lipolicide and Happiness (#27134)
* reagents

* Update Resources/Locale/en-US/reagents/meta/narcotics.ftl

---------

Co-authored-by: Kara <lunarautomaton6@gmail.com>
2024-04-22 01:45:38 -07:00
PJBot
35ac720d19 Automatic changelog update 2024-04-22 08:45:19 +00:00
Weax
b5bcf86b74 Make CLF3 reaction require heating first. (#27187)
* heat your bombs

* Removing comment
2024-04-22 01:44:14 -07:00
PJBot
bffad8053a Automatic changelog update 2024-04-22 08:43:33 +00:00
deltanedas
fcf5057b61 make fire spreading scale with mass (#27202)
* make fire spreading scale with mass

* realer

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-04-22 01:42:26 -07:00
DrSmugleaf
b0e6ff6779 Add events for custom action target validation (#27230) 2024-04-22 01:39:50 -07:00
keronshb
210e6f6444 Polymorphs spawn using the parents world rotation (#27223)
changes polymorph spawn to use angle
2024-04-22 01:39:07 -07:00
DrSmugleaf
81f2dc7cf9 Add SharedPopupSystem.PopupClient for cursor and coordinates (#27231) 2024-04-22 13:57:13 +10:00
Pieter-Jan Briers
6b1866625c Make sterile masks a tiny item (#27213)
This minorly annoyed me because breath masks are tiny too, so if I swapped them I may run out of inventory space.
2024-04-22 13:51:29 +10:00
Wrexbe (Josh)
c93052c755 Escape markup for in-game chat, and labeler (#26359)
* Escape markup for in-game chat, and labeler

* different way

* remove a using

---------

Co-authored-by: wrexbe <wrexbe@protonmail.com>
2024-04-21 20:37:50 -04:00
beck-thompson
877ccd6e8f Fixed grammar when drinking empty drink (#27218)
Fix
2024-04-21 14:57:39 -04:00
Ed
f947f97878 remove oasis 2024-04-21 21:08:56 +03:00
Ed
a899122d1b Merge remote-tracking branch 'space-station-14/master' into 21-04-2024-cleaning-up
# Conflicts:
#	Content.IntegrationTests/Tests/PostMapInitTest.cs
#	Resources/Prototypes/Maps/Pools/default.yml
#	Resources/Prototypes/Maps/europa.yml
#	Resources/Prototypes/Recipes/Lathes/electronics.yml
#	Resources/Textures/Interface/Nano/item_status_left.svg.96dpi.png
#	Resources/Textures/Interface/Nano/item_status_middle.svg.96dpi.png
#	Resources/Textures/Interface/Nano/item_status_right.svg.96dpi.png
2024-04-21 20:54:50 +03:00
Ed
71fae31507 Merge pull request #104 from crystallpunk-14/21-04-2024-deathmatch-gamemode
Deathmatch gamemode
2024-04-21 20:16:34 +03:00
Ed
4609079680 balance tweaks 2024-04-21 19:45:00 +03:00
PJBot
541e87395a Automatic changelog update 2024-04-21 16:10:32 +00:00
Hannah Giovanna Dawson
f059714a75 SS14-26480 Roll Traversal Distorter into regular Artifact Analyzers (#26545)
* SS14-26480 Roll Traversal Distorter into regular Artifact Analyzers

Bit of a grab-bag of cleanup of Xenoarchaeology prompted by #26480.

1. Traversal distortion biases are now "up" and "down" instead of "in" and "out".
2. Node generation has been tidied up to make it a little clearer how it works.
3. Traversal Distorters have been removed from the game along with their board.
4. Traversal distortion is now done by the artifact analyzers by default.
5. Some loc strings have been made clearer.
6. The Abnormal Artifact Manipulation tech has been made slightly cheaper.
7. The aformentioned tech is now localized as Artifact Recycling, given all it does is unlock the crusher.
8. The Xenoarchaeology guidebook entry has been given a bit of a rewrite, putting all information into
one page and making sure to cover the basics that otherwise would require someone typing "Liltenhead
artifact tutorial" into Youtube.

* Fix references to deleted guidebook entry

* Add fancy button to console because @EmoGarbage404 asked me to

* migration comprete

* Fixed a goober comment

* maint fails to resolve conflicts: more at 11

* Resolve PR comments

* Make UI nice

---------

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
2024-04-21 12:09:26 -04:00
Ed
faff0d203a Update cave-arena.yml 2024-04-21 18:31:56 +03:00
Ed
0ca5d5110d Update cave-arena.yml 2024-04-21 18:28:32 +03:00
K-Dynamic
e009a80a8c Removed CC and recall reference in pallet descriptions (#27209)
cleaned pallet descriptions
2024-04-21 11:21:36 -04:00
Ed
2c0df7fc72 Update PostMapInitTest.cs 2024-04-21 18:07:55 +03:00
Tayrtahn
50631f430d Add clothing equipped/unequipped events (#27155)
* Added ClothingGotEquipped/ClothingGotUnequipped events

* Better version

* Implemented in a few places

* More implementations

* Add ClothingDidEquipped/ClothingDidUnequipped events
2024-04-21 11:00:50 -04:00
Ed
b092f190f6 cp14 2024-04-21 17:55:18 +03:00
Ed
b701804836 Merge branch '21-04-2024-deathmatch-gamemode' of https://github.com/crystallpunk-14/crystall-punk-14 into 21-04-2024-deathmatch-gamemode 2024-04-21 17:33:13 +03:00
Ed
49b39e9535 fixes 2024-04-21 17:32:52 +03:00
Ed
59dc76b423 Merge branch 'master' into 21-04-2024-deathmatch-gamemode 2024-04-21 17:19:26 +03:00
Ed
ba03750394 add map and gamerule 2024-04-21 17:14:03 +03:00
Pieter-Jan Briers
84c3d225ca Buff welding supplies closet (#27212)
In SS13 this closet gives you THREE welding masks and THREE welders. Over here, sometimes it only contained a single mini welding tool.
2024-04-21 09:40:00 -04:00
Ed
cf96612a81 Merge pull request #103 from crystallpunk-14/21-04-2024-species-naming
add species name generation
2024-04-21 16:28:04 +03:00
PJBot
7c07391998 Automatic changelog update 2024-04-21 13:17:29 +00:00
Pieter-Jan Briers
58f025ba80 THE RETURN OF ITEM STATUS (#22986)
* THE RETURN OF ITEM STATUS

Item status is now inline with the hands again. You can now see item status for both hands at once.

If you have more than 2 hands, the last active hand of that side is displayed in the respective item status.

The item status for the active hand is also highlighted.

Item status has been given a new look so it looks unique and matches every UI theme.

* Shrink item status to 125px

This is going to require fixing the existing controls. Do that later.

* New bullet item status rendering

sex

* Make gun item status look just a little bit nicer.

Avoid only one or two bullets ending up on a single row of an item status.

* Delete Eris theme files

* More improvements

Fixed the fact that left/right were flipped around when assigning status panel locations. Involved renaming all the UI textures.

Redid how content margins are set from the theme. Less complex and cleaner now.

Made the item name always left-aligned, just looks better since other UI elements don't adapt anyways.

* Compact down item status text

Now it fits 3 lines of text on one line. Yay.

This is achieved by compacting RichTextLabels by reducing their line height and giving them a negative bottom margin.

* Add item status sprites for Ashen theme.

* Add status control to show beaker/bucket/jug solution/transfer volumes

Also PollingItemStatusControl I'll be using that more.

* Fix welder item status, clean up welder code

The item status control implementation was ancient and bad. That's why it was buggy.

Removed all the complex dated networking stuff for welders, we just sync the solution contents now anyways so none of that is needed anymore. This moves a buncha stuff to shared and just removes code.

Cleanup. The code was doing some really dumb stuff.

* Spray bottles show contents in item status.

* cowtools

* Fix plasmafire and clockwork themes.

Actual git gaslighting wtf.

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-04-21 23:16:23 +10:00
Ed
c156d09081 add comment 2024-04-21 15:46:46 +03:00
Ed
8f135d9745 localize human names 2024-04-21 15:43:26 +03:00
Ed
d342db3d65 Merge branch 'master' into 21-04-2024-species-naming 2024-04-21 15:26:41 +03:00
Ed
b2226cbe16 localized tiefling name 2024-04-21 15:25:22 +03:00
PJBot
ee4ef4b96a Automatic changelog update 2024-04-21 11:54:14 +00:00
Alzore
fb8dcfe6bf Add rainbow jumpsuit to passenger loadout. (#27211)
* Add all colored jumpsuits to passenger loadout

* onlyrainbowiguess
2024-04-21 21:53:08 +10:00
Ed
d29afc0f4c add species name generation 2024-04-21 14:42:12 +03:00
Ed
caf5ca3dc8 Merge pull request #102 from crystallpunk-14/20-04-2024-clothing-pack
Torch + aristocratic clothing set
2024-04-21 14:42:01 +03:00
Ed
fb96392077 add torch crafting 2024-04-21 13:52:22 +03:00
Júlio César Ueti
362033a0c7 Fix ghost prayer interaction (#27199)
fix ghost prayer interaction

Co-authored-by: Júlio César <j.cesarueti@yahoo.com>
2024-04-21 19:01:00 +10:00
Leon Friedrich
8b2179d0ae Update engine to v219.1.2 (#27206) 2024-04-21 19:00:23 +10:00
PJBot
9fa08fe8c2 Automatic changelog update 2024-04-21 06:53:50 +00:00
Leon Friedrich
29302ae6cd Update engine to v219.1.1 (#27201) 2024-04-21 16:52:45 +10:00
PJBot
0526384d16 Automatic changelog update 2024-04-21 06:20:27 +00:00
SpeltIncorrectyl
b6d751eb70 Adds security webbing and security belts to Security Officer loadout (#27189)
* added filled security webbing

* moved sec belt to loadout

* added webbing for head of security and warden
2024-04-21 00:19:20 -06:00
KittenColony
b48d0ddefc Two-Tone lizard snouts (#27143)
snouts
2024-04-21 00:18:33 -06:00
PJBot
2b3076832f Automatic changelog update 2024-04-21 06:00:19 +00:00
IProduceWidgets
7b0b894e44 Add map Oasis (#25736)
* Add map Oasis

* integration test fix

* psych job

* 1984 an invalid component

* address reviews

* address reviews, touch ups.

* tiny feexes

* move a tree

* Actually put it in the active maps pool.

* minor tweeks

* tweek some door accesses.

* add extra lawyer, make evac the right docking arrangement.

* Address the small things, fix cryopods, make perma huge.

* Fix some small things in the new perma.

* Improve perma spacing resiliancy... maybe.

* burn the invalids

* Pray to the Sloth gods that painters arent cooked.

* rearrange some buttons

* fix fax names and add a genedrobe.

* Housekeeping

* fix some stuff I thought I already fixed

* wood benches

* Some under door tiles, a couple missing decals.

* one pipe got brokey. feexit!

* astrograsses and lathe to cargo

* N2 lockers, minor things.

* cap laser to case

* GridFill the briggle so it feels better. Some other minor things

* name the Briggle correctly
2024-04-20 23:59:12 -06:00
Ubaser
01ce407019 Update Core (#27195)
* add

* fix invalid
2024-04-20 23:58:23 -06:00
github-actions[bot]
d2fb5130c9 Update Credits (#27192)
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
2024-04-21 04:13:08 +02:00
Leon Friedrich
c4f050259d Try fix random shuttle test failures (#27186) 2024-04-21 08:03:55 +10:00
Tayrtahn
5d80e49d37 Make material arbitrage test ignore price of contained entities (#27182)
Material arbitrage test now ignores price of contained entities
2024-04-21 08:03:11 +10:00
Tayrtahn
f253067a69 Possible fix for evac shuttle test failures (#27175)
It couldn't be this easy, could it?
2024-04-21 07:55:43 +10:00
Ghagliiarghii
380ace4ef0 Fixed potential duplicate engraved lighter steal objective (#27177)
* Fixed potential duplicate engraved lighter steal objective

* Update Resources/Prototypes/Entities/Clothing/OuterClothing/coats.yml

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

* Implement pigeonpeas' suggestion

* Also replaced the one if the vending machine, unsure if this vending machine is used or if vended items retain their fills, but figure can't hurt

---------

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
2024-04-21 07:32:24 +10:00
Tayrtahn
1fb7393a1b Make material arbitrage test more verbose (#27180)
List entities spawned by destruction for debugging
2024-04-21 07:23:09 +10:00
Leon Friedrich
3bfd5d2c4e Un-revert #26994 (#27184) 2024-04-21 09:18:09 +12:00
ElectroJr
3a8249e5fd Un-revert #26994 2024-04-20 17:01:15 -04:00
Leon Friedrich
5982007d0e Updatte engine to v219.1.0 (#27183) 2024-04-21 08:54:59 +12:00
ElectroJr
bd63a3f9c1 Updatte engine to v219.1.0 2024-04-20 16:54:04 -04:00
Mr. 27
663542b82e belts get their equip sound (#27174)
done
2024-04-20 15:52:02 -04:00
Plykiya
6ad039d0f9 Fix for inventory and belt not opening (#27179)
Co-authored-by: Plykiya <plykiya@protonmail.com>
2024-04-20 20:24:52 +02:00
PJBot
ac7842cacd Automatic changelog update 2024-04-20 16:19:32 +00:00
nikthechampiongr
f96f92f54f Make banpanel defaults use cvars (#27168)
* Make banpanel respect CCVars. Add CCVars for default ip/hwid/use last
details checkboxes.

* Move severity handling for server/role ban to another function

* Save sawmill

* Line goofyness

---------

Co-authored-by: Vasilis <vasilis@pikachu.systems>
2024-04-20 18:18:26 +02:00
Ed
c266046cbd nuke it 2024-04-20 18:02:09 +03:00
PJBot
af939af47c Automatic changelog update 2024-04-20 14:45:16 +00:00
Whisper
c7bbaa48a4 fix burning to ash not working on all mobs (#27158) 2024-04-20 10:44:10 -04:00
K-Dynamic
b6781946df Corrected misleading protections in jumpsuit/skirt descriptions (#27160)
removed misleading protections
2024-04-20 10:08:21 -04:00
Ed
966a54fbc6 add torch 2024-04-20 16:54:03 +03:00
deltanedas
9482144a19 disable rehydration prediction (#27166)
Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-04-20 09:51:56 -04:00
Ed
f271c8cff0 add aristocratic set 2024-04-20 15:59:15 +03:00
Ed
0b587e9fb9 Merge pull request #101 from crystallpunk-14/20-04-2024-nospawn-global
barrel + CP14 prefix
2024-04-20 15:03:38 +03:00
Ed
bbbf7172a9 fixes 2024-04-20 14:54:01 +03:00
Ed
6db92d86b5 Update walls.yml 2024-04-20 14:43:27 +03:00
Ed
e98a6e17a3 Update structures.ftl 2024-04-20 14:18:22 +03:00
Ed
4763bffeac locale update 2 2024-04-20 14:16:11 +03:00
Ed
d74a33d46b locale update 2024-04-20 14:10:10 +03:00
Ed
c70b267bbb barrel update 2024-04-20 14:03:06 +03:00
Ed
c3f7ad2fae fix character preview 2024-04-20 13:26:41 +03:00
Ed
5e498f68a6 fixes 2 2024-04-20 13:01:45 +03:00
Ed
af734dc5c2 fixes 2024-04-20 12:45:25 +03:00
Ed
bb24ead3b9 Update barrel.yml 2024-04-20 12:28:33 +03:00
Ed
ca01030da1 Fucking big refactor 2024-04-20 11:51:04 +03:00
DrSmugleaf
5eae6335e1 Make remaining IPrototypes partial (#27157) 2024-04-20 17:48:38 +10:00
PJBot
ddaaadd204 Automatic changelog update 2024-04-20 06:47:07 +00:00
deathride58
396c613366 Adds the option to fit the viewport to vertical screenspace (#27061)
* Adds the option to fit your viewport to your vertical screenspace

* fixes documentation

* Removes commented-out leftover

* Hides the viewport width slider and also we dont know if the viewport width causing stretching/squishing was a bug present before but we fixed that while we were at it

* Removes commented out leftovers
2024-04-20 16:46:02 +10:00
no
5c69031d11 Admin log shuttle gibbing + Make shuttle gibbing and immovable rods drop organs and correctly put player in ghost (#27114)
* Add admin log when someone gets gibbed by a shuttle

* Make shuttle gibbing work properly again

* Fix immovable rod gibbing, no longer puts you into nullspace

* Update Content.Server/ImmovableRod/ImmovableRodSystem.cs

* Update Content.Server/Shuttles/Systems/ShuttleSystem.FasterThanLight.cs

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2024-04-20 16:27:38 +10:00
PJBot
f395c45dd2 Automatic changelog update 2024-04-20 06:27:06 +00:00
MilenVolf
2da53d97e5 Windoors now contain proper electronics (#27133)
* Windoors now contain proper electronics

* weh
2024-04-20 16:26:00 +10:00
PJBot
de9c234e20 Automatic changelog update 2024-04-20 06:24:26 +00:00
DrSmugleaf
3c6722bd6f Move storage binds and slot click handling to shared (#27135) 2024-04-20 16:23:45 +10:00
MilenVolf
812abd33a0 Fix crates masks (#27137)
Fixes crates masks not allowing them to go under plastic flaps + crates no longer can go trough windoors.
2024-04-20 16:23:20 +10:00
Verm
58e21a8532 Add medical gloves and sterile masks to medical loadouts (#27029)
* Add medical gloves to loadouts

* Realize I don't need to duplicate them

* Re-add extra lines

* I did it wrong...

* Format it back to how it was this time for sure

* For real this time

* ...

* Add sterile masks too

* I can't spell officer apparently

* Standardize order of where gloves are

* Add Nurse Hat to doctors

* Remove duplication of gloves and masks

* Remove extra space

* Name glove protos similiar to other ones

* Remove latex gloves proto from medical (sci has it)
2024-04-20 16:22:48 +10:00
PJBot
16ed6ee81d Automatic changelog update 2024-04-20 06:22:18 +00:00
SoulFN
95c66b4f96 Glass shards damage (#26783)
* Update shards.yml

Changed glass shards damage depends on their type, each tier of glass gains 1 more damage, also changed attack rate to 1, because you cant fast swing with weapon that can hurt you

* Oops

Forgot about base shard

* Update shards.yml

Cleanup

* Update shards.yml

Changed damage on step (Attack damage + 1)
2024-04-20 16:21:12 +10:00
PJBot
238c87ce17 Automatic changelog update 2024-04-20 06:18:01 +00:00
Verm
089c9cb967 You can bless more containers with a bible (#26526)
* Made more things blessable

* Removed junk

* Remove whatever that was

* Make bowls blessable

* New mixablesolution component, converted everything to work with it

* Fix minor mishaps

* Fix extra spaces in bottle yml

* Fix last extra space, fix bottle havign the wrong solution name

* Remvoe unneeded event(I think), fix alcohol bottles not being mixable

* I missed cans
2024-04-20 16:16:55 +10:00
PJBot
c85bdef7f1 Automatic changelog update 2024-04-20 06:11:29 +00:00
UBlueberry
8eab1f499f Guidebook update for the Space Ninja (#26650)
* added ninja to Antagonists.xml

* give the space ninja some love

* by the way did you know there are now 25 fiber types? i demand this number get updated with every single PR
2024-04-20 16:10:22 +10:00
Nim
3f2e15896b Floor trap (#26314)
* trap

* without effect
2024-04-20 16:09:00 +10:00
Leon Friedrich
12bb476a2d Add evac shuttle test. (#27152)
* Add evac shuttle test.

* Fix typo in comment
2024-04-20 15:57:55 +10:00
Tayrtahn
4594700d19 Fixed debug assert while getting network state in ClothingSystem (#27153) 2024-04-20 15:54:44 +10:00
PJBot
fc7839eeba Automatic changelog update 2024-04-20 03:45:44 +00:00
slarticodefast
b22c06230c fix cryopod volume (#27148) 2024-04-19 23:44:39 -04:00
Nemanja
e5a5196b1f make filled inventory slots blank (#27150)
* blank filled slots

* Update InventoryTemplatePrototype.cs
2024-04-20 13:17:29 +10:00
metalgearsloth
ef7f0b8322 Optimise immovable rod mapinit (#27149)
Redundant getworldpos.
2024-04-20 13:07:25 +10:00
keronshb
6be204e3f4 Adds non randomized rod velocity (#27123)
* adds non randomized rod velocity

* Adds despawn suffix to despawn rod
2024-04-19 22:18:25 -04:00
PJBot
533453eb81 Automatic changelog update 2024-04-20 02:11:25 +00:00
Leon Friedrich
349f78dc80 Try fix emergency shuttle not spawning (#27144) 2024-04-20 14:10:19 +12:00
PJBot
5a5167d6cb Automatic changelog update 2024-04-20 02:07:54 +00:00
Gyrandola
fa5b93871f chili/chilly peppers sprite alignment fix & minor refactorization (#25971)
* png alignment and minor refactorization

* Update migration.yml

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-04-20 12:06:48 +10:00
metalgearsloth
b2b1926ecc More storage tweaks (#25970)
- Fix some prediction stuff.
- Fix some jank.
- UseDelay.
- Cap.
2024-04-20 11:51:16 +10:00
PJBot
7000974319 Automatic changelog update 2024-04-20 01:16:03 +00:00
osjarw
acb112b054 Wallmount substations can once again be created (#27138)
* Wallmount substation once again obtainable

* Fill mapped wallmount substations with components
2024-04-20 11:14:57 +10:00
PJBot
ce5934bd67 Automatic changelog update 2024-04-20 01:08:16 +00:00
dffdff2423
cff8083650 Disable Communication Console Announcement Button for Too Long Messages. (#27145)
Disable comms console announce for long messages

Disable the "announce" button on the communications console for messages
above the cap. I did not touch broadcasting because I could not identify
an easy way to check the maximum length for it.
2024-04-20 11:07:10 +10:00
Aexxie
fa9abbaff4 No More Bartender Incendiaries on Meta (#27142)
deleted bartender's incend
2024-04-20 11:06:21 +10:00
pigeonpeas
aa0fc72b1a Add new jukebox song. (#27074)
add song to jukebox

for funsies!
2024-04-19 19:41:32 -04:00
PJBot
610e73543c Automatic changelog update 2024-04-19 23:23:42 +00:00
superjj18
fdf04c2779 Reduced Pneumatic Cannon inventory space by 75%, removed cannon blacklist (#26878)
Reduced Pneumatic Cannon inventory space by 75%, removed cannon whitelist.
2024-04-19 19:22:36 -04:00
PJBot
c6f8cf080a Automatic changelog update 2024-04-19 23:21:36 +00:00
Nemanja
a47c5561a9 add fuel costs back to finishing welding (#27030)
* add fuel costs back to welding

* ack

* meh

* eek!
2024-04-19 19:20:30 -04:00
ElectroJr
7aa1818823 Update EmergencyShuttleSystem.cs 2024-04-19 19:00:55 -04:00
ElectroJr
6373454242 Fix emergency shuttle initialization 2024-04-19 18:57:12 -04:00
Tayrtahn
299da35c87 Make YAML Linter validate server/client-only components (#26809)
* YAML Linter now validates invalid fields in server-only and client-only components

* Update to change in engine PR

* Use reflection manager to get the lists of client/server assemblies.

Also made it use a hashset on type instead of the previous code.

* I'm dumb my bad.

* Fix 2 errors that snuck through, showing why we need this.

---------

Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
2024-04-19 13:28:33 -04:00
PJBot
5b62724de0 Automatic changelog update 2024-04-19 05:51:16 +00:00
deltanedas
33abb6bb3f webedit ops (#27131) 2024-04-19 15:50:34 +10:00
shamp
1bfcc062f2 Stunprod rework (#25922)
stunprod
2024-04-19 15:50:10 +10:00
PJBot
8703a30647 Automatic changelog update 2024-04-19 05:40:54 +00:00
deltanedas
350843d2c0 add dirty calls to mask system (#27128)
* add dirty calls to mask system

* among

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-04-19 15:40:23 +10:00
SlamBamActionman
7aa4beede6 Fix lizard snouts disappearing when wearing masks (#25716)
* fixes it

* Snout fix

* Partway commit

* Partway commit

* Update masks and helmets to use the new system
2024-04-19 15:39:47 +10:00
no
94f296f9d6 "make thief" admin action: fix missing icon (#27119) 2024-04-19 15:27:36 +10:00
Golinth
5146853484 Fix Mindshield positioning (#27120)
fixed-ops

Im sure there is a more elegant way of fixing this, but this way requires no code changes. So I guess it works.
2024-04-19 15:27:18 +10:00
Leon Friedrich
36eaa8c941 Make station components use StationPostInitEvent (#27126) 2024-04-19 15:26:56 +10:00
Leon Friedrich
8245caaf61 Hide some map related logs from clients (#27127)
* Hide some map related logs from clients

* #if !DEBUG

* Fix typo
2024-04-19 15:26:21 +10:00
DrSmugleaf
45df595c15 Fix storage fill giving no reason for failing (#27122) 2024-04-18 23:24:13 -04:00
Leon Friedrich
6ec40900ef Fix fixgridatmos command (#27113) 2024-04-18 19:39:38 -07:00
PJBot
f9f098f64e Automatic changelog update 2024-04-18 23:44:07 +00:00
Iztok Bajcar
f56373321a Made glass more opaque (#26948)
* Made glass more opaque

* Made glass a bit less opaque
2024-04-18 19:43:01 -04:00
PJBot
77090fca62 Automatic changelog update 2024-04-18 23:42:17 +00:00
Whisper
7decf64c39 Raise difficulty class of RD hardsuit objective (#27103)
Raise difficulty class of RD hardsuit
2024-04-18 19:41:11 -04:00
PJBot
5a89fe0395 Automatic changelog update 2024-04-18 23:39:31 +00:00
Mr. 27
c8202dd80d add roboticist gear to science loadout (#27045)
* inital

* yes

* g

* death

* DEATH
2024-04-18 19:38:17 -04:00
lzk
d5e187dc50 Changes to frills axolotl (#27104) 2024-04-18 19:02:21 -04:00
deltanedas
4509235604 saltern update (#27071)
Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-04-18 16:05:38 -06:00
deltanedas
71d5d2a563 atlas update (#27070)
Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-04-18 16:05:29 -06:00
Mr. 27
620a6de0ff Fix duplicate science backpack for reserach assistant (#27096)
Update research_assistant.yml
2024-04-19 07:44:55 +10:00
Ed
1eba437555 Merge pull request #100 from crystallpunk-14/17-04-2024-melting
+Ores
2024-04-19 00:15:59 +03:00
Ed
98503cca7c Update tiles.yml 2024-04-18 23:41:02 +03:00
Ed
81d2a4730e Merge pull request #99 from crystallpunk-14/revert-90-nospawn
Revert "NoSpawn markers and weapons"
2024-04-18 23:37:32 +03:00
Ed
0b4c5bb988 +2 ores 2024-04-18 23:34:45 +03:00
Ed
05ca2baa3d Revert "NoSpawn markers and weapons (#90)"
This reverts commit 3dff87b3e1.
2024-04-18 22:56:51 +03:00
Ed
02bcfc4593 revert melting 2024-04-18 22:45:01 +03:00
Ed
79b4ae3998 add wall destructions 2024-04-18 22:37:49 +03:00
Whisper
f801a86351 fix RD hardsuit description (#27094) (#27095) 2024-04-18 14:47:35 -04:00
PJBot
10beb47e0f Automatic changelog update 2024-04-18 18:06:51 +00:00
Flareguy
77612e8e51 Nerfs the Experimental Research Hardsuit's size (#27094)
* nerfs rds hardsuit to be the size all other hardsuits are

* 4x4 > 5x5
2024-04-18 14:05:45 -04:00
Vasilis
5769bf38f8 Revert #26994 and #27077 (#27090) 2024-04-18 17:06:56 +02:00
PJBot
b14e6e31ea Automatic changelog update 2024-04-18 11:29:00 +00:00
Ed
e82034c16b Component of planet initialization on the map (#26510)
* no cl no fun

* DevPlanet

* fix europa?

* Update Content.Server/Station/Components/StationBiomeComponent.cs

* Update Content.Server/Station/Components/StationBiomeComponent.cs

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2024-04-18 21:27:54 +10:00
PJBot
403852cd01 Automatic changelog update 2024-04-18 11:23:02 +00:00
Ed
f3a97fc0c5 Killer tomatoes (#26053)
* make tomatoes

* many friends! many mommies

* finish

* renaming system

* fix

* Update miscellaneous.yml

* Update Content.Server/NPC/Systems/NPCImpritingBehaviourSystem.cs

Co-authored-by: faint <46868845+ficcialfaint@users.noreply.github.com>

* N

* deleete exception?

* merge conflict fix

* fix?

* fuck you

* sloth fixes

* fixess?

* fix

---------

Co-authored-by: faint <46868845+ficcialfaint@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-04-18 21:21:56 +10:00
Ed
59b8757f14 add iron and ore fragments items 2024-04-18 14:16:09 +03:00
PJBot
0b0e20ea41 Automatic changelog update 2024-04-18 10:53:39 +00:00
Mr. 27
73a5a3830d Chemists now start with chemical analysis goggles (#27047)
Update chemist.yml
2024-04-18 20:52:33 +10:00
PJBot
a66e233839 Automatic changelog update 2024-04-18 10:51:17 +00:00
Velcroboy
394390b35b Adds plasma windoors for Armory, Sec, Command, and Atmos (#26149)
* Adds plasma windoors for Armory, Sec, Command

* Adds atmos too

---------

Co-authored-by: Jeff <velcroboy333@hotmail.com>
2024-04-18 20:51:13 +10:00
superjj18
ebf87be9f2 Emergency Lights now changes color depending on alert level and whether or not the light is powered. (#26932)
* Emergency Lights now change color depending on alert level and whether or not they are powered.

* Made a condition for null alert level, added summary doc.

* Refactored uid and emergencylightcomponent into Entity<EmergencyLightComponent>
2024-04-18 20:50:08 +10:00
Ed
390249f0cc add ore vein wall dumb proto 2024-04-18 13:37:16 +03:00
Ed
dc1b38054e add iron and gold ore 2024-04-18 12:53:15 +03:00
Flareguy
7b94e244b3 Ports a fuckton of vox clothing from Paradise and /vg/station (#27021)
* adds a bunch of vox clothing sprites

* bird up

* bee mask

* fix test fails. i hope. this better be the only damn one

* fix "eqipped"

* A.

* outerclohting

* ???

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2024-04-18 16:43:42 +10:00
Detintinto
5b9e0fb08e Fixing the cryogenic section of the guidebook (#26803)
Its fixed, but the cryopod is being partially covered by text and the caption is not aligned to the captions next to it. No clue how to fix this, but good enough for me.
2024-04-18 16:33:33 +10:00
Nemanja
3af744e4a9 Flash buff (#25730)
* flash buff

* oops!

* bool

* 3 -> 1.5 seconds

* okay fix

* sluth
2024-04-18 16:30:01 +10:00
Hannah Giovanna Dawson
b1136c98d7 Chatfactor: Chat Repository, Admin Commands, Chat Created Events (#26113)
* Chatfactor: Chat Repository, Admin Commands, Chat Created Events

This addition-only PR covers a repository that stores chat messages.
This PR defines what chat messages can be stored, what can be done
with those stored messages, and what events occur when the repository
does things.

This PR also includes to admin commands that show how the repository
will be used for administration purposes at first. Because all chat
messages will be uniquely identified per round (and, as rounds are
uniquely identified, are essentially a GUID) we can delete, amend
or nuke messages.

Note there's no "amend" command right now. The original chatfactor PR
didn't include one, and I'm avoiding further feature bloat with these
chatfactor PRs...

* Remove an event that shouldn't be in this PR

* Resolve PR comments.

* Resolve peak goober moment

* Also make sure we tell the user why if their delete command fails

* Supply a reason if the nukeuserids command is malformed

* Tidy messages

* Some more docstring tidyup

* Imagine tests handling IOC correctly chat

* Imagine tests handling IOC correctly chat

* Resolve PR comments

* Fix goobering with needing to use ToolshedCommand

* In which we bikeshed toolshed

* loud metal pipe sound effect

* One must imagine funny boulder pushing man happy

* Move commands to new folder

* Mald, seethe, cope.

* I hate toolshed I hate toolshed I hate toolshed

* Fix command ftls

* Bit of tidy-up and a YAGNI removal of a get we don't need yet

* Whelp lmao

* UserIDs are in a weird fucky state I didn't anticipate, so I've removed the remove-by-userID command for the time being.

* Rename ChatRepository to ChatRepositorySystem.

* Resolve PR review comments

---------

Co-authored-by: Your Name <you@example.com>
2024-04-18 14:59:10 +10:00
metalgearsloth
126f64a914 Fix merg conflict (#27080)
bo
2024-04-18 14:36:40 +10:00
Leon Friedrich
ee96d8aa66 Content changes for MapManager/System refactor (#26994)
* Content changes for MapManager/System refactor

* Poke Tests

* Why is this failing?

* Will this make the analyzer happy?
2024-04-18 14:30:06 +10:00
metalgearsloth
20452ba5bb Update submodule to 219.0.0 (#27077) 2024-04-18 14:20:41 +10:00
Errant
7120e8736a Cleanup in HumanoidCharacterAppearance (#26974)
* namespace

* Tidy up the code for selecting random humanoid color
2024-04-18 13:27:11 +10:00
PJBot
24a0298f76 Automatic changelog update 2024-04-18 03:25:21 +00:00
ArZarLordOfMango
94aa61b323 Add recipe of beverage jug (#25681)
* Add craft of beverage jug

* Change steel to plastic

* Fix price
2024-04-18 13:24:15 +10:00
PJBot
31f88ec865 Automatic changelog update 2024-04-18 03:21:50 +00:00
Krunklehorn
460b588de5 Refactor status icons take 2, cyborgs don't see criminal status (#26207)
* Initial commit.

* review

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2024-04-18 13:20:44 +10:00
PJBot
020f322e27 Automatic changelog update 2024-04-18 03:05:19 +00:00
Golinth
a3750f0e64 Nukie Medivisor REAL (#26218)
* Nukie Medihud REAL

adds a new HUD that the nukie agent starts with, does the same shit as the other visor, but with health bars. Also tinted slightly blue to differentiate it. (also medhuds are blue)

* the blue-ening

makes the icons bluer 'cause someone asked.
2024-04-18 13:04:14 +10:00
Token
8d21ef0aa2 Rebalance: From Insuzine recipe removed Benzene (#26829)
* From Insuzine recipe removed Benzene

* Remove ash from Insuzine recipe
2024-04-18 13:03:39 +10:00
PJBot
d9ee1600ee Automatic changelog update 2024-04-18 03:02:18 +00:00
metalgearsloth
9b1a8b07d7 Fix loadouts UI not refreshing on char change (#27075)
I love lobby code. Refreshing the entire jobs UI doesn't seem to cause issues. At least jobpriorityselector was my fault when I was far fucking stupider writing this shit.
2024-04-18 13:01:12 +10:00
Pancake
3c1ec9ac34 Add Hardhats to Station Engineer Loadouts (#27044)
* Add hardhats to loadout.

* Update Resources/Prototypes/Loadouts/Jobs/Engineering/station_engineer.yml

* Update Resources/Prototypes/Loadouts/loadout_groups.yml

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2024-04-18 13:00:55 +10:00
PJBot
b672ea73f0 Automatic changelog update 2024-04-18 01:51:04 +00:00
Tayrtahn
cfa94be4c2 Add ability to shake fizzy drinks so they spray in peoples' faces (#25574)
* Implemented Shakeable

* Prevent shaking open Openables

* Prevent shaking empty drinks. Moved part of DrinkSystem to Shared.

* DrinkSystem can have a little more prediction, as a treat

* Cleanup

* Overhauled PressurizedDrink

* Make soda cans/bottles and champagne shakeable. The drink shaker too, for fun.

* We do a little refactoring.
PressurizedDrink is now PressurizedSolution, and fizziness now only works on solutions containing a reagent marked as fizzy.

* Documentation, cleanup, and tweaks.

* Changed fizziness calculation to use a cubic-out easing curve.

* Removed broken YAML that has avoid the linter's wrath for far too long

* Changed reagent fizzy bool to fizziness float.
Solution fizzability now scales with reagent proportion.

* Rename file to match changed class name

* DoAfter improvements. Cancel if the user moves away; block if no hands.

* Match these filenames too

* And this one

* guh

* Updated to use Shared puddle methods

* Various fixes and improvements.

* Made AttemptShakeEvent a struct

* AttemptAddFizzinessEvent too
2024-04-18 11:49:58 +10:00
PJBot
8d64d2bc1e Automatic changelog update 2024-04-18 01:23:15 +00:00
Mr. 27
06ecf2af05 add greysec loadout (#27023)
* inital

* George orwell
2024-04-17 21:22:09 -04:00
deepdarkdepths
b3ee929f1b Reduces the captain's sabre reflect chance to 10% (#26969)
add
2024-04-18 11:21:04 +10:00
PJBot
ac8d3d55cc Automatic changelog update 2024-04-18 01:17:54 +00:00
MisterMecky
4453fe50cf fix soap popup (#27054)
fix soap
2024-04-17 21:17:18 -04:00
Flareguy
66f32d4289 Partially reverts the remote signaller resprite (#27073)
de-sprites the remote signaller
2024-04-17 21:16:48 -04:00
PJBot
d76211514b Automatic changelog update 2024-04-18 01:07:39 +00:00
Bellwether
8213c89fdb Low-Key Zombie Rebalance (#27060)
initial soft zombie rebalance - lower infection chance, damage, and chance of outbreak

Co-authored-by: Bellwether <null>
2024-04-17 21:06:33 -04:00
Ghagliiarghii
40d90ddcb3 Make Holy Water more like Water (#27068)
holy water can now be used to satiate thirst, water plants, and extinguish fires.
2024-04-17 21:04:56 -04:00
PJBot
45cefc9643 Automatic changelog update 2024-04-18 00:33:27 +00:00
icekot8
fd109d61b8 cargo console radio messages on approving (#27038)
* 1

* void --> "Unknown"
2024-04-17 17:32:21 -07:00
PJBot
92089da192 Automatic changelog update 2024-04-18 00:09:12 +00:00
Ed
5659edd207 Chances of triggering effects (#27056)
* electrocution

* slippery

* flashibg

* Update SlipperyComponent.cs

* Update SlipperySystem.cs
2024-04-18 10:08:42 +10:00
Krunklehorn
d67d782f99 Standardize HoS/Warden winter coats, add unarmored variants for printing (#24865)
* Both winter coats with same armor as their counterparts

* Matching description for HoS's, unarmored variants for balancing the uniform printer

* Forgot some text

* New sprite provided by PursuitinAshes, old sprite moved to unarmored version

* Removed the 'unarmored' specifier, in line with the rest of the winter coats

* Remove unarmored warden, no sprite

* Re-implemented the warden's unarmored coat, with sprites from Dutch-VanDerLinde

* CRLF to LF

* Move armor values to abstract
2024-04-18 10:08:06 +10:00
PJBot
d2dc0734df Automatic changelog update 2024-04-17 22:17:30 +00:00
ShadowCommander
a95fc86f7a Fix PDA and ID card data not getting set on loadouts (#27062) 2024-04-18 00:16:24 +02:00
Emisse
da136826e7 box update (#27069)
* box update

* argh
2024-04-17 16:01:24 -06:00
PJBot
a376f4784a Automatic changelog update 2024-04-17 21:49:42 +00:00
deltanedas
395c33024c prop hunt ss14 (real) (#26691)
* texture appropriation

* add code for projector

* add chameleon projector yml

* damage and actions

* prevent small props being killed round removing you (700 damage from a single shot)

* tweak default

* oop

* do appearance properly, need engine update

* fix bugs, blacklist pda

* remove status icons

* amou

* sus

* fix test + make props fast

* amouuuung

* remove funny log

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-04-17 14:48:35 -07:00
deltanedas
46733616df atlas artifact update (#26506)
atlas update

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-04-17 15:36:29 -06:00
deltanedas
d08600240f saltern update (#26507)
* saltern update

* update atmos too

* run fixgridatmos

* fix power outside botany, fix botany air alarm

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-04-17 15:36:18 -06:00
Emisse
f2ed508562 meta update (#27067) 2024-04-17 15:25:03 -06:00
Emisse
e0589a1350 fland update (#27064)
* fland update

* n2 lockers
2024-04-17 15:08:41 -06:00
chromiumboy
009d06d978 Navmap rework (#26713)
* Optimized the drawing of lines and tracked entities

* Optimized nav map updating and added thin wall support

* Added support for thin doors

* Removed floor tile seams, more line drawing optimizations

* Fixed split grids not updating correctly

* Cleaned up NavMapControl code

* Fix nav map header

* Converted nav map updates from system network messages to delta-states

* Addressed review comments

* Fixed timing issue where NavMapSystem would update before AirtightSystem did
2024-04-17 12:59:31 -05:00
PJBot
20b16944ad Automatic changelog update 2024-04-17 17:43:30 +00:00
Ed
c5b4df22a6 modified cave wall 2024-04-17 20:42:28 +03:00
slarticodefast
5a5efa11cf Show volume on the gas analyzer (#25720)
The gas analyzer now shows the volume of pipes, tanks, canisters and the environment.

Adjust gas analyzers so that the volume and number of moles shown corresponds to only the scanned element, e.g. a canister or single pipe in a pipenet.
2024-04-17 09:42:24 -08:00
Ed
e94cd726e1 init melting reagent and system 2024-04-17 17:49:47 +03:00
Pieter-Jan Briers
ef72d3cf7f Revert "Update .editorconfig to correspond Code Conventions" (#27051)
Revert "Update .editorconfig to correspond Code Conventions (#26824)"

This reverts commit 882aeb0314.
2024-04-17 15:42:06 +02:00
lzk
24390ef51b Make cargo pallets smoothing with eachother (#27049) 2024-04-17 23:22:09 +10:00
PJBot
9f461dec5a Automatic changelog update 2024-04-17 10:11:09 +00:00
beck-thompson
afcdc8b866 Fixed gloved weapons being able to attack when not equipped. (#26762)
* Initial commit. No evil hidden files this time :)

* Added newline because I forgot :(

* We <3 tags :)

* Fixed! Works now

* Update Content.Shared/Weapons/Melee/MeleeWeaponComponent.cs

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2024-04-17 20:10:03 +10:00
PJBot
0785516eac Automatic changelog update 2024-04-17 10:07:16 +00:00
metalgearsloth
f9f204a6d0 Fix character preview not updating on character change (#27043)
I love lobby code :3
2024-04-17 20:06:10 +10:00
PJBot
03f51ca3aa Automatic changelog update 2024-04-17 10:05:30 +00:00
Verm
432e6ec45d Fix capitalization for pirates and rats (#26644)
* Fix capitalization for pirates and rats

* Deal with replacements better

* Be smarter about caps

* Do last word properly

* Variables named a bit better

* Fix Consistency

* Undo change that's not needed anymore

* Fix up pirate since it doesn't need to check early either

* Make mobster replacin' a bit better anyway

* Remove extra space

* Use capture groups for mobster in', add comments for first and last words

* Slightly more clarification with comments
2024-04-17 20:04:24 +10:00
Alfred Baumann
5b8468c9d8 Mobs auto state handlers (#26957)
* Autogenerate MobStateComponentState

* changed CurrentState to DataField, updated DataField attribute for AllowedStates

* Update Content.Shared/Mobs/Components/MobStateComponent.cs

* Update Content.Shared/Mobs/Components/MobStateComponent.cs

---------

Co-authored-by: BuildTools <unconfigured@null.spigotmc.org>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2024-04-17 20:00:05 +10:00
lzk
e2341c0089 Add jani gloves loadout (#27011) 2024-04-17 19:38:49 +10:00
PJBot
ceef55b8d3 Automatic changelog update 2024-04-17 09:28:08 +00:00
metalgearsloth
2db374988c Added Jukebox (#26736)
* Added Jukebox, along with music for jukebox

* Fixed Jukebox meta.json copyright

* Removed songs I couldn't find a license for.

* Renamed files to solve check failures from spaces

* Added missing attributions.yml

* Fixed lack of description in Jukebox

* Jukebox is now constructable.

* Change Jukebox menu to FancyWindow

* Moved Jukebox messages out of jukebox component

* Removed Jukebox OnValueChanged.

* JukeboxComp now uses AutoGenerateComponentState

* Removed state code, since it's auto generated

* Fixed various Jukebox code to match conventions.

* Updated Standard.yml to match changed song list.

* fixes

* Jukebox workin

* Fix

* Polishing

* Finalising

* Revert

* bad

* jukey

* Reviews

* name

* Update submodule to 218.2.0

---------

Co-authored-by: iNVERTED <alextjorgensen@gmail.com>
2024-04-17 19:27:00 +10:00
metalgearsloth
177d69cb98 Update submodule to 218.2.0 (#27041) 2024-04-17 19:10:53 +10:00
7283 changed files with 467446 additions and 118221 deletions

View File

@@ -1,4 +1,5 @@
root = true
[*]
charset = utf-8
@@ -9,9 +10,10 @@ indent_style = space
tab_width = 4
# New line preferences
end_of_line = crlf:suggestion
#end_of_line = crlf
insert_final_newline = true
trim_trailing_whitespace = true
max_line_length = 120
#### .NET Coding Conventions ####
@@ -104,7 +106,6 @@ csharp_preferred_modifier_order = public, private, protected, internal, new, abs
# 'using' directive preferences
csharp_using_directive_placement = outside_namespace:silent
csharp_style_namespace_declarations = file_scoped:suggestion
#### C# Formatting Rules ####
@@ -278,7 +279,7 @@ dotnet_naming_style.t_upper_camel_case_style.capitalization = pascal_case
dotnet_naming_style.t_upper_camel_case_style.required_prefix = T
dotnet_naming_style.upper_camel_case_style.capitalization = pascal_case
dotnet_naming_symbols.constants_symbols.applicable_accessibilities = public,internal,protected,protected_internal,private_protected
dotnet_naming_symbols.constants_symbols.applicable_accessibilities = public, internal, protected, protected_internal, private_protected
dotnet_naming_symbols.constants_symbols.applicable_kinds = field
dotnet_naming_symbols.constants_symbols.required_modifiers = const
@@ -317,27 +318,32 @@ dotnet_naming_symbols.private_static_fields_symbols.required_modifiers = static
dotnet_naming_symbols.private_static_readonly_symbols.applicable_accessibilities = private
dotnet_naming_symbols.private_static_readonly_symbols.applicable_kinds = field
dotnet_naming_symbols.private_static_readonly_symbols.required_modifiers = static,readonly
dotnet_naming_symbols.private_static_readonly_symbols.required_modifiers = static, readonly
dotnet_naming_symbols.property_symbols.applicable_accessibilities = *
dotnet_naming_symbols.property_symbols.applicable_kinds = property
dotnet_naming_symbols.public_fields_symbols.applicable_accessibilities = public,internal,protected,protected_internal,private_protected
dotnet_naming_symbols.public_fields_symbols.applicable_accessibilities = public, internal, protected, protected_internal, private_protected
dotnet_naming_symbols.public_fields_symbols.applicable_kinds = field
dotnet_naming_symbols.static_readonly_symbols.applicable_accessibilities = public,internal,protected,protected_internal,private_protected
dotnet_naming_symbols.static_readonly_symbols.applicable_accessibilities = public, internal, protected, protected_internal, private_protected
dotnet_naming_symbols.static_readonly_symbols.applicable_kinds = field
dotnet_naming_symbols.static_readonly_symbols.required_modifiers = static,readonly
dotnet_naming_symbols.static_readonly_symbols.required_modifiers = static, readonly
dotnet_naming_symbols.types_and_namespaces_symbols.applicable_accessibilities = *
dotnet_naming_symbols.types_and_namespaces_symbols.applicable_kinds = namespace,class,struct,enum,delegate
dotnet_naming_symbols.types_and_namespaces_symbols.applicable_kinds = namespace, class, struct, enum, delegate
dotnet_naming_symbols.type_parameters_symbols.applicable_accessibilities = *
dotnet_naming_symbols.type_parameters_symbols.applicable_kinds = type_parameter
# ReSharper properties
resharper_braces_for_ifelse = required_for_multiline
resharper_csharp_wrap_arguments_style = chop_if_long
resharper_csharp_wrap_parameters_style = chop_if_long
resharper_keep_existing_attribute_arrangement = true
resharper_wrap_chained_binary_patterns = chop_if_long
resharper_wrap_chained_method_calls = chop_if_long
resharper_csharp_trailing_comma_in_multiline_lists = true
[*.{csproj,xml,yml,yaml,dll.config,msbuildproj,targets,props}]
indent_size = 2

13
.github/CODEOWNERS vendored
View File

@@ -15,6 +15,7 @@
/Content.*/GameTicking/ @moonheart08 @EmoGarbage404
/Resources/ServerInfo/ @moonheart08 @Chief-Engineer
/Resources/ServerInfo/Guidebook/ @moonheart08 @EmoGarbage404
/Resources/ServerInfo/Guidebook/ServerRules/ @Chief-Engineer
/Resources/engineCommandPerms.yml @moonheart08 @Chief-Engineer
/Resources/clientCommandPerms.yml @moonheart08 @Chief-Engineer
@@ -23,11 +24,12 @@
/Resources/Prototypes/Body/ @DrSmugleaf # suffering
/Resources/Prototypes/Entities/Mobs/Player/ @DrSmugleaf
/Resources/Prototypes/Entities/Mobs/Species/ @DrSmugleaf
/Resources/Prototypes/Guidebook/rules.yml @Chief-Engineer
/Content.*/Body/ @DrSmugleaf
/Content.YAMLLinter @DrSmugleaf
/Content.Shared/Damage/ @DrSmugleaf
/Content.*/Anomaly/ @EmoGarbage404
/Content.*/Anomaly/ @EmoGarbage404 @TheShuEd
/Content.*/Lathe/ @EmoGarbage404
/Content.*/Materials/ @EmoGarbage404
/Content.*/Mech/ @EmoGarbage404
@@ -35,7 +37,7 @@
/Content.*/Stack/ @EmoGarbage404
/Content.*/Xenoarchaeology/ @EmoGarbage404
/Content.*/Zombies/ @EmoGarbage404
/Resources/Prototypes/Entities/Structures/Specific/anomalies.yml @EmoGarbage404
/Resources/Prototypes/Entities/Structures/Specific/anomalies.yml @EmoGarbage404 @TheShuEd
/Resources/Prototypes/Research/ @EmoGarbage404
/Content.*/Forensics/ @ficcialfaint
@@ -53,3 +55,10 @@
#Jezi
/Content.*/Medical @Jezithyr
/Content.*/Body @Jezithyr
# Sloth
/Content.*/Audio @metalgearsloth
/Content.*/Movement @metalgearsloth
/Content.*/NPC @metalgearsloth
/Content.*/Shuttles @metalgearsloth
/Content.*/Weapons @metalgearsloth

View File

@@ -1,43 +1,17 @@
<!-- Please read these guidelines before opening your PR: https://docs.spacestation14.io/en/getting-started/pr-guideline -->
<!-- The text between the arrows are comments - they will not be visible on your PR. -->
## About the PR
<!-- What did you change in this PR? -->
<!-- Что вы изменили в своем пулл реквесте? -->
## Why / Balance
<!-- Why was it changed? Link any discussions or issues here. Please discuss how this would affect game balance. -->
## Technical details
<!-- If this is a code change, summarize at high level how your new code works. This makes it easier to review. -->
<!-- Зачем нужно это изменение? Прикрепите любые обсуждения или проблемы здесь. Опишите, как это повлияет на текущий баланс игры. -->
## Media
<!--
PRs which make ingame changes (adding clothing, items, new features, etc) are required to have media attached that showcase the changes.
Small fixes/refactors are exempt.
Any media may be used in SS14 progress reports, with clear credit given.
If you're unsure whether your PR will require media, ask a maintainer.
Check the box below to confirm that you have in fact seen this (put an X in the brackets, like [X]):
-->
- [ ] I have added screenshots/videos to this PR showcasing its changes ingame, **or** this PR does not require an ingame showcase
## Breaking changes
<!--
List any breaking changes, including namespace, public class/method/field changes, prototype renames; and provide instructions for fixing them. This will be pasted in #codebase-changes.
-->
**Changelog**
<!--
Make players aware of new features and changes that could affect how they play the game by adding a Changelog entry. Please read the Changelog guidelines located at: https://docs.spacestation14.io/en/getting-started/pr-guideline#changelog
-->
<!--
Make sure to take this Changelog template out of the comment block in order for it to show up.
:cl:
- add: Added fun!
- remove: Removed fun!
- tweak: Changed fun!
- fix: Fixed fun!
<!--
Пулл реквесты, которые несут за собой игровые изменения (добавления одежды, предметов и так далее) требуют чтобы вы прикрепили скриншоты или видеоролики, демонстрирующие эти изменения.
Небольшие исправления не считаются.
-->

16
.github/labeler.yml vendored
View File

@@ -1,12 +1,18 @@
"Changes: Sprites":
- '**/*.rsi/*.png'
- changed-files:
- any-glob-to-any-file: '**/*.rsi/*.png'
"Changes: Map":
- 'Resources/Maps/*.yml'
- 'Resources/Prototypes/Maps/*.yml'
- changed-files:
- any-glob-to-any-file:
- 'Resources/Maps/*.yml'
- 'Resources/Prototypes/Maps/*.yml'
"Changes: UI":
- '**/*.xaml*'
- changed-files:
- any-glob-to-any-file: '**/*.xaml*'
"No C#":
- all: ["!**/*.cs"]
- changed-files:
# Equiv to any-glob-to-all as long as this has one matcher. If ALL changed files are not C# files, then apply label.
- all-globs-to-all-files: "!**/*.cs"

View File

@@ -75,15 +75,17 @@
"license":{
"$id":"#/properties/license",
"default":"",
"description":"The license for the associated icon states. Restricted to SS14-compatible asset licenses.",
"description":"The license for the associated icon states. Restricted to CP14-compatible asset licenses.",
"enum":[
"CC-BY-SA-3.0",
"CC-BY-SA-4.0",
"CC0-1.0",
"CC-BY-NC-3.0",
"CC-BY-NC-4.0",
"CC-BY-NC-SA-3.0",
"CC-BY-NC-SA-4.0",
"CC0-1.0"
"CC0-1.0",
"All rights reserved for the CrystallPunk14 project only"
],
"examples":[
"CC-BY-SA-3.0"

View File

@@ -1,18 +1,20 @@
name: Check Merge Conflicts
on:
push:
branches:
- master
pull_request_target:
types:
- opened
- synchronize
- reopened
- ready_for_review
jobs:
Label:
if: github.actor != 'PJBot'
if: ( github.event.pull_request.draft == false ) && ( github.actor != 'PJBot' )
runs-on: ubuntu-latest
steps:
- name: Check for Merge Conflicts
uses: ike709/actions-label-merge-conflict@9eefdd17e10566023c46d2dc6dc04fcb8ec76142
uses: eps1lon/actions-label-merge-conflict@v3.0.0
with:
dirtyLabel: "Merge Conflict"
repoToken: "${{ secrets.GITHUB_TOKEN }}"

View File

@@ -6,8 +6,9 @@ on:
jobs:
labeler:
if: github.actor != 'PJBot'
permissions:
contents: read
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions/labeler@v3
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
- uses: actions/labeler@v5

View File

@@ -9,5 +9,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions-ecosystem/action-add-labels@v1
if: join(github.event.issue.labels) == ''
with:
labels: "Status: Untriaged"

View File

@@ -15,9 +15,12 @@ jobs:
- name: Get changed files
id: files
uses: Ana06/get-changed-files@v1.2
uses: Ana06/get-changed-files@v2.3.0
with:
format: 'space-delimited'
filter: |
**.rsi
**.png
- name: Diff changed RSIs
id: diff

View File

@@ -21,5 +21,5 @@ jobs:
with:
schema: RobustToolbox/Schemas/rga.yml
path_pattern: .*attributions.ya?ml$
validators_path: RobustToolbox/Schemas/rga_validators.py
validators_requirements: RobustToolbox/Schemas/rga_requirements.txt
validators_path: Schemas/rga_validators.py
validators_requirements: Schemas/rga_requirements.txt

View File

@@ -23,4 +23,4 @@ jobs:
pip3 install --ignore-installed --user pillow jsonschema
- name: Validate RSIs
run: |
python3 RobustToolbox/Schemas/validate_rsis.py Resources/
python3 Schemas/validate_rsis.py Resources/

1
.gitignore vendored
View File

@@ -306,3 +306,4 @@ Resources/MapImages
# Direnv stuff
.direnv/
/Tools/_CP14/LocalizationHelper/last_launch

View File

@@ -0,0 +1,273 @@
#nullable enable
using System;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Configs;
using Content.IntegrationTests;
using Content.IntegrationTests.Pair;
using Content.Shared.Clothing.Components;
using Content.Shared.Doors.Components;
using Content.Shared.Item;
using Robust.Server.GameObjects;
using Robust.Shared;
using Robust.Shared.Analyzers;
using Robust.Shared.GameObjects;
using Robust.Shared.Map;
using Robust.Shared.Map.Components;
using Robust.Shared.Random;
namespace Content.Benchmarks;
/// <summary>
/// Benchmarks for comparing the speed of various component fetching/lookup related methods, including directed event
/// subscriptions
/// </summary>
[Virtual]
[GroupBenchmarksBy(BenchmarkLogicalGroupRule.ByCategory)]
[CategoriesColumn]
public class ComponentQueryBenchmark
{
public const string Map = "Maps/atlas.yml";
private TestPair _pair = default!;
private IEntityManager _entMan = default!;
private MapId _mapId = new(10);
private EntityQuery<ItemComponent> _itemQuery;
private EntityQuery<ClothingComponent> _clothingQuery;
private EntityQuery<MapComponent> _mapQuery;
private EntityUid[] _items = default!;
[GlobalSetup]
public void Setup()
{
ProgramShared.PathOffset = "../../../../";
PoolManager.Startup(typeof(QueryBenchSystem).Assembly);
_pair = PoolManager.GetServerClient().GetAwaiter().GetResult();
_entMan = _pair.Server.ResolveDependency<IEntityManager>();
_itemQuery = _entMan.GetEntityQuery<ItemComponent>();
_clothingQuery = _entMan.GetEntityQuery<ClothingComponent>();
_mapQuery = _entMan.GetEntityQuery<MapComponent>();
_pair.Server.ResolveDependency<IRobustRandom>().SetSeed(42);
_pair.Server.WaitPost(() =>
{
var success = _entMan.System<MapLoaderSystem>().TryLoad(_mapId, Map, out _);
if (!success)
throw new Exception("Map load failed");
_pair.Server.MapMan.DoMapInitialize(_mapId);
}).GetAwaiter().GetResult();
_items = new EntityUid[_entMan.Count<ItemComponent>()];
var i = 0;
var enumerator = _entMan.AllEntityQueryEnumerator<ItemComponent>();
while (enumerator.MoveNext(out var uid, out _))
{
_items[i++] = uid;
}
}
[GlobalCleanup]
public async Task Cleanup()
{
await _pair.DisposeAsync();
PoolManager.Shutdown();
}
#region TryComp
/// <summary>
/// Baseline TryComp benchmark. When the benchmark was created, around 40% of the items were clothing.
/// </summary>
[Benchmark(Baseline = true)]
[BenchmarkCategory("TryComp")]
public int TryComp()
{
var hashCode = 0;
foreach (var uid in _items)
{
if (_clothingQuery.TryGetComponent(uid, out var clothing))
hashCode = HashCode.Combine(hashCode, clothing.GetHashCode());
}
return hashCode;
}
/// <summary>
/// Variant of <see cref="TryComp"/> that is meant to always fail to get a component.
/// </summary>
[Benchmark]
[BenchmarkCategory("TryComp")]
public int TryCompFail()
{
var hashCode = 0;
foreach (var uid in _items)
{
if (_mapQuery.TryGetComponent(uid, out var map))
hashCode = HashCode.Combine(hashCode, map.GetHashCode());
}
return hashCode;
}
/// <summary>
/// Variant of <see cref="TryComp"/> that is meant to always succeed getting a component.
/// </summary>
[Benchmark]
[BenchmarkCategory("TryComp")]
public int TryCompSucceed()
{
var hashCode = 0;
foreach (var uid in _items)
{
if (_itemQuery.TryGetComponent(uid, out var item))
hashCode = HashCode.Combine(hashCode, item.GetHashCode());
}
return hashCode;
}
/// <summary>
/// Variant of <see cref="TryComp"/> that uses `Resolve()` to try get the component.
/// </summary>
[Benchmark]
[BenchmarkCategory("TryComp")]
public int Resolve()
{
var hashCode = 0;
foreach (var uid in _items)
{
DoResolve(uid, ref hashCode);
}
return hashCode;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void DoResolve(EntityUid uid, ref int hash, ClothingComponent? clothing = null)
{
if (_clothingQuery.Resolve(uid, ref clothing, false))
hash = HashCode.Combine(hash, clothing.GetHashCode());
}
#endregion
#region Enumeration
[Benchmark]
[BenchmarkCategory("Item Enumerator")]
public int SingleItemEnumerator()
{
var hashCode = 0;
var enumerator = _entMan.AllEntityQueryEnumerator<ItemComponent>();
while (enumerator.MoveNext(out var item))
{
hashCode = HashCode.Combine(hashCode, item.GetHashCode());
}
return hashCode;
}
[Benchmark]
[BenchmarkCategory("Item Enumerator")]
public int DoubleItemEnumerator()
{
var hashCode = 0;
var enumerator = _entMan.AllEntityQueryEnumerator<ClothingComponent, ItemComponent>();
while (enumerator.MoveNext(out _, out var item))
{
hashCode = HashCode.Combine(hashCode, item.GetHashCode());
}
return hashCode;
}
[Benchmark]
[BenchmarkCategory("Item Enumerator")]
public int TripleItemEnumerator()
{
var hashCode = 0;
var enumerator = _entMan.AllEntityQueryEnumerator<ClothingComponent, ItemComponent, TransformComponent>();
while (enumerator.MoveNext(out _, out _, out var xform))
{
hashCode = HashCode.Combine(hashCode, xform.GetHashCode());
}
return hashCode;
}
[Benchmark]
[BenchmarkCategory("Airlock Enumerator")]
public int SingleAirlockEnumerator()
{
var hashCode = 0;
var enumerator = _entMan.AllEntityQueryEnumerator<AirlockComponent>();
while (enumerator.MoveNext(out var airlock))
{
hashCode = HashCode.Combine(hashCode, airlock.GetHashCode());
}
return hashCode;
}
[Benchmark]
[BenchmarkCategory("Airlock Enumerator")]
public int DoubleAirlockEnumerator()
{
var hashCode = 0;
var enumerator = _entMan.AllEntityQueryEnumerator<AirlockComponent, DoorComponent>();
while (enumerator.MoveNext(out _, out var door))
{
hashCode = HashCode.Combine(hashCode, door.GetHashCode());
}
return hashCode;
}
[Benchmark]
[BenchmarkCategory("Airlock Enumerator")]
public int TripleAirlockEnumerator()
{
var hashCode = 0;
var enumerator = _entMan.AllEntityQueryEnumerator<AirlockComponent, DoorComponent, TransformComponent>();
while (enumerator.MoveNext(out _, out _, out var xform))
{
hashCode = HashCode.Combine(hashCode, xform.GetHashCode());
}
return hashCode;
}
#endregion
[Benchmark(Baseline = true)]
[BenchmarkCategory("Events")]
public int StructEvents()
{
var ev = new QueryBenchEvent();
foreach (var uid in _items)
{
_entMan.EventBus.RaiseLocalEvent(uid, ref ev);
}
return ev.HashCode;
}
}
[ByRefEvent]
public struct QueryBenchEvent
{
public int HashCode;
}
public sealed class QueryBenchSystem : EntitySystem
{
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<ClothingComponent, QueryBenchEvent>(OnEvent);
}
private void OnEvent(EntityUid uid, ClothingComponent component, ref QueryBenchEvent args)
{
args.HashCode = HashCode.Combine(args.HashCode, component.GetHashCode());
}
}

View File

@@ -47,6 +47,7 @@ namespace Content.Benchmarks
var componentFactory = new Mock<IComponentFactory>();
componentFactory.Setup(p => p.GetComponent<DummyComponent>()).Returns(new DummyComponent());
componentFactory.Setup(m => m.GetIndex(typeof(DummyComponent))).Returns(CompIdx.Index<DummyComponent>());
componentFactory.Setup(p => p.GetRegistration(It.IsAny<DummyComponent>())).Returns(dummyReg);
componentFactory.Setup(p => p.GetAllRegistrations()).Returns(new[] { dummyReg });
componentFactory.Setup(p => p.GetAllRefTypes()).Returns(new[] { CompIdx.Index<DummyComponent>() });

View File

@@ -1,137 +0,0 @@
#nullable enable
using System;
using System.Threading.Tasks;
using BenchmarkDotNet.Attributes;
using Content.IntegrationTests;
using Content.IntegrationTests.Pair;
using Content.Shared.Clothing.Components;
using Content.Shared.Item;
using Robust.Server.GameObjects;
using Robust.Shared;
using Robust.Shared.Analyzers;
using Robust.Shared.GameObjects;
using Robust.Shared.Map;
using Robust.Shared.Random;
namespace Content.Benchmarks;
[Virtual]
public class EntityQueryBenchmark
{
public const string Map = "Maps/atlas.yml";
private TestPair _pair = default!;
private IEntityManager _entMan = default!;
private MapId _mapId = new MapId(10);
private EntityQuery<ClothingComponent> _clothingQuery;
[GlobalSetup]
public void Setup()
{
ProgramShared.PathOffset = "../../../../";
PoolManager.Startup(null);
_pair = PoolManager.GetServerClient().GetAwaiter().GetResult();
_entMan = _pair.Server.ResolveDependency<IEntityManager>();
_pair.Server.ResolveDependency<IRobustRandom>().SetSeed(42);
_pair.Server.WaitPost(() =>
{
var success = _entMan.System<MapLoaderSystem>().TryLoad(_mapId, Map, out _);
if (!success)
throw new Exception("Map load failed");
_pair.Server.MapMan.DoMapInitialize(_mapId);
}).GetAwaiter().GetResult();
_clothingQuery = _entMan.GetEntityQuery<ClothingComponent>();
// Apparently ~40% of entities are items, and 1 in 6 of those are clothing.
/*
var entCount = _entMan.EntityCount;
var itemCount = _entMan.Count<ItemComponent>();
var clothingCount = _entMan.Count<ClothingComponent>();
var itemRatio = (float) itemCount / entCount;
var clothingRatio = (float) clothingCount / entCount;
Console.WriteLine($"Entities: {entCount}. Items: {itemRatio:P2}. Clothing: {clothingRatio:P2}.");
*/
}
[GlobalCleanup]
public async Task Cleanup()
{
await _pair.DisposeAsync();
PoolManager.Shutdown();
}
[Benchmark]
public int HasComponent()
{
var hashCode = 0;
var enumerator = _entMan.AllEntityQueryEnumerator<ItemComponent>();
while (enumerator.MoveNext(out var uid, out var _))
{
if (_entMan.HasComponent<ClothingComponent>(uid))
hashCode = HashCode.Combine(hashCode, uid.Id);
}
return hashCode;
}
[Benchmark]
public int HasComponentQuery()
{
var hashCode = 0;
var enumerator = _entMan.AllEntityQueryEnumerator<ItemComponent>();
while (enumerator.MoveNext(out var uid, out var _))
{
if (_clothingQuery.HasComponent(uid))
hashCode = HashCode.Combine(hashCode, uid.Id);
}
return hashCode;
}
[Benchmark]
public int TryGetComponent()
{
var hashCode = 0;
var enumerator = _entMan.AllEntityQueryEnumerator<ItemComponent>();
while (enumerator.MoveNext(out var uid, out var _))
{
if (_entMan.TryGetComponent(uid, out ClothingComponent? clothing))
hashCode = HashCode.Combine(hashCode, clothing.GetHashCode());
}
return hashCode;
}
[Benchmark]
public int TryGetComponentQuery()
{
var hashCode = 0;
var enumerator = _entMan.AllEntityQueryEnumerator<ItemComponent>();
while (enumerator.MoveNext(out var uid, out var _))
{
if (_clothingQuery.TryGetComponent(uid, out var clothing))
hashCode = HashCode.Combine(hashCode, clothing.GetHashCode());
}
return hashCode;
}
/// <summary>
/// Enumerate all entities with both an item and clothing component.
/// </summary>
[Benchmark]
public int Enumerator()
{
var hashCode = 0;
var enumerator = _entMan.AllEntityQueryEnumerator<ItemComponent, ClothingComponent>();
while (enumerator.MoveNext(out var _, out var clothing))
{
hashCode = HashCode.Combine(hashCode, clothing.GetHashCode());
}
return hashCode;
}
}

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
@@ -26,7 +26,7 @@ public class MapLoadBenchmark
public void Setup()
{
ProgramShared.PathOffset = "../../../../";
PoolManager.Startup(null);
PoolManager.Startup();
_pair = PoolManager.GetServerClient().GetAwaiter().GetResult();
var server = _pair.Server;
@@ -46,7 +46,7 @@ public class MapLoadBenchmark
PoolManager.Shutdown();
}
public static readonly string[] MapsSource = { "Empty", "Box", "Bagel", "Dev", "CentComm", "Atlas", "Core", "TestTeg", "Saltern", "Packed", "Omega", "Cluster", "Reach", "Origin", "Meta", "Marathon", "Europa", "MeteorArena", "Fland", "Barratry" };
public static readonly string[] MapsSource = { "Empty", "Box", "Bagel", "Dev", "CentComm", "Atlas", "Core", "TestTeg", "Saltern", "Packed", "Omega", "Cluster", "Reach", "Origin", "Meta", "Marathon", "Europa", "MeteorArena", "Fland", "Barratry", "Oasis" };
[ParamsSource(nameof(MapsSource))]
public string Map;

View File

@@ -1,19 +1,17 @@
#nullable enable
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using BenchmarkDotNet.Attributes;
using Content.IntegrationTests;
using Content.IntegrationTests.Pair;
using Content.Server.Mind;
using Content.Server.Warps;
using Robust.Server.GameObjects;
using Robust.Shared;
using Robust.Shared.Analyzers;
using Robust.Shared.Enums;
using Robust.Shared.GameObjects;
using Robust.Shared.GameStates;
using Robust.Shared.Map;
using Robust.Shared.Network;
using Robust.Shared.Player;
using Robust.Shared.Random;
@@ -49,7 +47,7 @@ public class PvsBenchmark
#if !DEBUG
ProgramShared.PathOffset = "../../../../";
#endif
PoolManager.Startup(null);
PoolManager.Startup();
_pair = PoolManager.GetServerClient().GetAwaiter().GetResult();
_entMan = _pair.Server.ResolveDependency<IEntityManager>();
@@ -58,15 +56,20 @@ public class PvsBenchmark
_pair.Server.CfgMan.SetCVar(CVars.NetPvsAsync, false);
_sys = _entMan.System<SharedTransformSystem>();
SetupAsync().Wait();
}
private async Task SetupAsync()
{
// Spawn the map
_pair.Server.ResolveDependency<IRobustRandom>().SetSeed(42);
_pair.Server.WaitPost(() =>
await _pair.Server.WaitPost(() =>
{
var success = _entMan.System<MapLoaderSystem>().TryLoad(_mapId, Map, out _);
if (!success)
throw new Exception("Map load failed");
_pair.Server.MapMan.DoMapInitialize(_mapId);
}).Wait();
});
// Get list of ghost warp positions
_spawns = _entMan.AllComponentsList<WarpPointComponent>()
@@ -76,17 +79,19 @@ public class PvsBenchmark
Array.Resize(ref _players, PlayerCount);
// Spawn "Players".
_pair.Server.WaitPost(() =>
// Spawn "Players"
_players = await _pair.Server.AddDummySessions(PlayerCount);
await _pair.Server.WaitPost(() =>
{
var mind = _pair.Server.System<MindSystem>();
for (var i = 0; i < PlayerCount; i++)
{
var pos = _spawns[i % _spawns.Length];
var uid =_entMan.SpawnEntity("MobHuman", pos);
_pair.Server.ConsoleHost.ExecuteCommand($"setoutfit {_entMan.GetNetEntity(uid)} CaptainGear");
_players[i] = new DummySession{AttachedEntity = uid};
mind.ControlMob(_players[i].UserId, uid);
}
}).Wait();
});
// Repeatedly move players around so that they "explore" the map and see lots of entities.
// This will populate their PVS data with out-of-view entities.
@@ -168,20 +173,4 @@ public class PvsBenchmark
}).Wait();
_pair.Server.PvsTick(_players);
}
private sealed class DummySession : ICommonSession
{
public SessionStatus Status => SessionStatus.InGame;
public EntityUid? AttachedEntity {get; set; }
public NetUserId UserId => default;
public string Name => string.Empty;
public short Ping => default;
public INetChannel Channel { get; set; } = default!;
public LoginType AuthType => default;
public HashSet<EntityUid> ViewSubscriptions { get; } = new();
public DateTime ConnectedTime { get; set; }
public SessionState State => default!;
public SessionData Data => default!;
public bool ClientSide { get; set; }
}
}

View File

@@ -32,7 +32,7 @@ public class SpawnEquipDeleteBenchmark
public async Task SetupAsync()
{
ProgramShared.PathOffset = "../../../../";
PoolManager.Startup(null);
PoolManager.Startup();
_pair = await PoolManager.GetServerClient();
var server = _pair.Server;

View File

@@ -2,6 +2,4 @@
namespace Content.Client.Access;
public sealed class IdCardSystem : SharedIdCardSystem
{
}
public sealed class IdCardSystem : SharedIdCardSystem;

View File

@@ -1,5 +1,7 @@
using Content.Shared.Access.Systems;
using Content.Shared.StatusIcon;
using Robust.Client.GameObjects;
using Robust.Shared.Prototypes;
namespace Content.Client.Access.UI
{
@@ -40,9 +42,9 @@ namespace Content.Client.Access.UI
SendMessage(new AgentIDCardJobChangedMessage(newJob));
}
public void OnJobIconChanged(string newJobIcon)
public void OnJobIconChanged(ProtoId<StatusIconPrototype> newJobIconId)
{
SendMessage(new AgentIDCardJobIconChangedMessage(newJobIcon));
SendMessage(new AgentIDCardJobIconChangedMessage(newJobIconId));
}
/// <summary>
@@ -57,7 +59,7 @@ namespace Content.Client.Access.UI
_window.SetCurrentName(cast.CurrentName);
_window.SetCurrentJob(cast.CurrentJob);
_window.SetAllowedIcons(cast.Icons);
_window.SetAllowedIcons(cast.Icons, cast.CurrentJobIconId);
}
protected override void Dispose(bool disposing)

View File

@@ -38,7 +38,7 @@ namespace Content.Client.Access.UI
JobLineEdit.OnFocusExit += e => OnJobChanged?.Invoke(e.Text);
}
public void SetAllowedIcons(HashSet<string> icons)
public void SetAllowedIcons(HashSet<ProtoId<StatusIconPrototype>> icons, string currentJobIconId)
{
IconGrid.DisposeAllChildren();
@@ -46,10 +46,8 @@ namespace Content.Client.Access.UI
var i = 0;
foreach (var jobIconId in icons)
{
if (!_prototypeManager.TryIndex<StatusIconPrototype>(jobIconId, out var jobIcon))
{
if (!_prototypeManager.TryIndex(jobIconId, out var jobIcon))
continue;
}
String styleBase = StyleBase.ButtonOpenBoth;
var modulo = i % JobIconColumnCount;
@@ -77,8 +75,12 @@ namespace Content.Client.Access.UI
};
jobIconButton.AddChild(jobIconTexture);
jobIconButton.OnPressed += _ => _bui.OnJobIconChanged(jobIcon.ID);
jobIconButton.OnPressed += _ => _bui.OnJobIconChanged(jobIconId);
IconGrid.AddChild(jobIconButton);
if (jobIconId.Equals(currentJobIconId))
jobIconButton.Pressed = true;
i++;
}
}

View File

@@ -1,6 +1,5 @@
using Content.Shared.Access;
using Content.Shared.Access.Components;
using Content.Shared.Access;
using Content.Shared.Access.Systems;
using Content.Shared.Containers.ItemSlots;
using Content.Shared.CrewManifest;

View File

@@ -27,6 +27,9 @@ namespace Content.Client.Access.UI
private string? _lastJobTitle;
private string? _lastJobProto;
// The job that will be picked if the ID doesn't have a job on the station.
private static ProtoId<JobPrototype> _defaultJob = "Passenger";
public IdCardConsoleWindow(IdCardConsoleBoundUserInterface owner, IPrototypeManager prototypeManager,
List<ProtoId<AccessLevelPrototype>> accessLevels)
{
@@ -65,7 +68,6 @@ namespace Content.Client.Access.UI
}
JobPresetOptionButton.OnItemSelected += SelectJobPreset;
_accessButtons.Populate(accessLevels, prototypeManager);
AccessLevelControlContainer.AddChild(_accessButtons);
@@ -172,11 +174,15 @@ namespace Content.Client.Access.UI
new List<ProtoId<AccessLevelPrototype>>());
var jobIndex = _jobPrototypeIds.IndexOf(state.TargetIdJobPrototype);
if (jobIndex >= 0)
// If the job index is < 0 that means they don't have a job registered in the station records.
// For example, a new ID from a box would have no job index.
if (jobIndex < 0)
{
JobPresetOptionButton.SelectId(jobIndex);
jobIndex = _jobPrototypeIds.IndexOf(_defaultJob);
}
JobPresetOptionButton.SelectId(jobIndex);
_lastFullName = state.TargetIdFullName;
_lastJobTitle = state.TargetIdJobTitle;
_lastJobProto = state.TargetIdJobPrototype;

View File

@@ -247,7 +247,10 @@ namespace Content.Client.Actions
if (action.ClientExclusive)
{
if (instantAction.Event != null)
{
instantAction.Event.Performer = user;
instantAction.Event.Action = actionId;
}
PerformAction(user, actions, actionId, instantAction, instantAction.Event, GameTiming.CurTime);
}

View File

@@ -3,7 +3,7 @@ using Robust.Shared.GameStates;
namespace Content.Client.Administration.Components;
[RegisterComponent, NetworkedComponent]
[RegisterComponent]
public sealed partial class HeadstandComponent : SharedHeadstandComponent
{

View File

@@ -3,6 +3,5 @@ using Robust.Shared.GameStates;
namespace Content.Client.Administration.Components;
[NetworkedComponent, RegisterComponent]
public sealed partial class KillSignComponent : SharedKillSignComponent
{ }
[RegisterComponent]
public sealed partial class KillSignComponent : SharedKillSignComponent;

View File

@@ -126,12 +126,15 @@ namespace Content.Client.Administration.Managers
public AdminData? GetAdminData(EntityUid uid, bool includeDeAdmin = false)
{
return uid == _player.LocalEntity ? _adminData : null;
if (uid == _player.LocalEntity && (_adminData?.Active ?? includeDeAdmin))
return _adminData;
return null;
}
public AdminData? GetAdminData(ICommonSession session, bool includeDeAdmin = false)
{
if (_player.LocalUser == session.UserId)
if (_player.LocalUser == session.UserId && (_adminData?.Active ?? includeDeAdmin))
return _adminData;
return null;

View File

@@ -0,0 +1,7 @@
using Content.Shared.Administration;
namespace Content.Client.Administration.Systems;
public sealed class AdminFrozenSystem : SharedAdminFrozenSystem
{
}

View File

@@ -1,3 +1,6 @@
using Content.Shared.Administration;
using Content.Shared.Administration.Managers;
using Content.Shared.Mind.Components;
using Content.Shared.Verbs;
using Robust.Client.Console;
using Robust.Shared.Utility;
@@ -11,10 +14,12 @@ namespace Content.Client.Administration.Systems
{
[Dependency] private readonly IClientConGroupController _clientConGroupController = default!;
[Dependency] private readonly IClientConsoleHost _clientConsoleHost = default!;
[Dependency] private readonly ISharedAdminManager _admin = default!;
public override void Initialize()
{
SubscribeLocalEvent<GetVerbsEvent<Verb>>(AddAdminVerbs);
}
private void AddAdminVerbs(GetVerbsEvent<Verb> args)
@@ -33,6 +38,24 @@ namespace Content.Client.Administration.Systems
};
args.Verbs.Add(verb);
}
if (!_admin.IsAdmin(args.User))
return;
if (_admin.HasAdminFlag(args.User, AdminFlags.Admin))
args.ExtraCategories.Add(VerbCategory.Admin);
if (_admin.HasAdminFlag(args.User, AdminFlags.Fun) && HasComp<MindContainerComponent>(args.Target))
args.ExtraCategories.Add(VerbCategory.Antag);
if (_admin.HasAdminFlag(args.User, AdminFlags.Debug))
args.ExtraCategories.Add(VerbCategory.Debug);
if (_admin.HasAdminFlag(args.User, AdminFlags.Fun))
args.ExtraCategories.Add(VerbCategory.Smite);
if (_admin.HasAdminFlag(args.User, AdminFlags.Admin))
args.ExtraCategories.Add(VerbCategory.Tricks);
}
}
}

View File

@@ -6,7 +6,8 @@
xmlns:tabs="clr-namespace:Content.Client.Administration.UI.Tabs"
xmlns:playerTab="clr-namespace:Content.Client.Administration.UI.Tabs.PlayerTab"
xmlns:objectsTab="clr-namespace:Content.Client.Administration.UI.Tabs.ObjectsTab"
xmlns:panic="clr-namespace:Content.Client.Administration.UI.Tabs.PanicBunkerTab">
xmlns:panic="clr-namespace:Content.Client.Administration.UI.Tabs.PanicBunkerTab"
xmlns:baby="clr-namespace:Content.Client.Administration.UI.Tabs.BabyJailTab">
<TabContainer Name="MasterTabContainer">
<adminTab:AdminTab />
<adminbusTab:AdminbusTab />
@@ -14,6 +15,7 @@
<tabs:RoundTab />
<tabs:ServerTab />
<panic:PanicBunkerTab Name="PanicBunkerControl" Access="Public" />
<baby:BabyJailTab Name="BabyJailControl" Access="Public" />
<playerTab:PlayerTab Name="PlayerTabControl" Access="Public" />
<objectsTab:ObjectsTab Name="ObjectsTabControl" Access="Public" />
</TabContainer>

View File

@@ -3,34 +3,57 @@ using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.CustomControls;
using Robust.Client.UserInterface.XAML;
namespace Content.Client.Administration.UI
namespace Content.Client.Administration.UI;
[GenerateTypedNameReferences]
public sealed partial class AdminMenuWindow : DefaultWindow
{
[GenerateTypedNameReferences]
public sealed partial class AdminMenuWindow : DefaultWindow
public event Action? OnDisposed;
public AdminMenuWindow()
{
public event Action? OnDisposed;
MinSize = new Vector2(650, 250);
Title = Loc.GetString("admin-menu-title");
RobustXamlLoader.Load(this);
MasterTabContainer.SetTabTitle((int) TabIndex.Admin, Loc.GetString("admin-menu-admin-tab"));
MasterTabContainer.SetTabTitle((int) TabIndex.Adminbus, Loc.GetString("admin-menu-adminbus-tab"));
MasterTabContainer.SetTabTitle((int) TabIndex.Atmos, Loc.GetString("admin-menu-atmos-tab"));
MasterTabContainer.SetTabTitle((int) TabIndex.Round, Loc.GetString("admin-menu-round-tab"));
MasterTabContainer.SetTabTitle((int) TabIndex.Server, Loc.GetString("admin-menu-server-tab"));
MasterTabContainer.SetTabTitle((int) TabIndex.PanicBunker, Loc.GetString("admin-menu-panic-bunker-tab"));
/*
* TODO: Remove baby jail code once a more mature gateway process is established. This code is only being issued as a stopgap to help with potential tiding in the immediate future.
*/
MasterTabContainer.SetTabTitle((int) TabIndex.BabyJail, Loc.GetString("admin-menu-baby-jail-tab"));
MasterTabContainer.SetTabTitle((int) TabIndex.Players, Loc.GetString("admin-menu-players-tab"));
MasterTabContainer.SetTabTitle((int) TabIndex.Objects, Loc.GetString("admin-menu-objects-tab"));
MasterTabContainer.OnTabChanged += OnTabChanged;
}
public AdminMenuWindow()
{
MinSize = new Vector2(650, 250);
Title = Loc.GetString("admin-menu-title");
RobustXamlLoader.Load(this);
MasterTabContainer.SetTabTitle(0, Loc.GetString("admin-menu-admin-tab"));
MasterTabContainer.SetTabTitle(1, Loc.GetString("admin-menu-adminbus-tab"));
MasterTabContainer.SetTabTitle(2, Loc.GetString("admin-menu-atmos-tab"));
MasterTabContainer.SetTabTitle(3, Loc.GetString("admin-menu-round-tab"));
MasterTabContainer.SetTabTitle(4, Loc.GetString("admin-menu-server-tab"));
MasterTabContainer.SetTabTitle(5, Loc.GetString("admin-menu-panic-bunker-tab"));
MasterTabContainer.SetTabTitle(6, Loc.GetString("admin-menu-players-tab"));
MasterTabContainer.SetTabTitle(7, Loc.GetString("admin-menu-objects-tab"));
}
private void OnTabChanged(int tabIndex)
{
var tabEnum = (TabIndex)tabIndex;
if (tabEnum == TabIndex.Objects)
ObjectsTabControl.RefreshObjectList();
}
protected override void Dispose(bool disposing)
{
OnDisposed?.Invoke();
base.Dispose(disposing);
OnDisposed = null;
}
protected override void Dispose(bool disposing)
{
OnDisposed?.Invoke();
base.Dispose(disposing);
OnDisposed = null;
}
private enum TabIndex
{
Admin = 0,
Adminbus,
Atmos,
Round,
Server,
PanicBunker,
BabyJail,
Players,
Objects,
}
}

View File

@@ -3,6 +3,7 @@ using System.Net;
using System.Net.Sockets;
using Content.Client.Administration.UI.CustomControls;
using Content.Shared.Administration;
using Content.Shared.CCVar;
using Content.Shared.Database;
using Content.Shared.Roles;
using Robust.Client.AutoGenerated;
@@ -11,6 +12,7 @@ using Robust.Client.UserInterface;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.CustomControls;
using Robust.Client.UserInterface.XAML;
using Robust.Shared.Configuration;
using Robust.Shared.Prototypes;
using Robust.Shared.Timing;
using Robust.Shared.Utility;
@@ -32,8 +34,11 @@ public sealed partial class BanPanel : DefaultWindow
// This is less efficient than just holding a reference to the root control and enumerating children, but you
// have to know how the controls are nested, which makes the code more complicated.
private readonly List<CheckBox> _roleCheckboxes = new();
private readonly ISawmill _banpanelSawmill;
[Dependency] private readonly IGameTiming _gameTiming = default!;
[Dependency] private readonly IConfigurationManager _cfg = default!;
[Dependency] private readonly ILogManager _logManager = default!;
private enum TabNumbers
{
@@ -65,6 +70,7 @@ public sealed partial class BanPanel : DefaultWindow
{
RobustXamlLoader.Load(this);
IoCManager.InjectDependencies(this);
_banpanelSawmill = _logManager.GetSawmill("admin.banpanel");
PlayerList.OnSelectionChanged += OnPlayerSelectionChanged;
PlayerNameLine.OnFocusExit += _ => OnPlayerNameChanged();
PlayerCheckbox.OnPressed += _ =>
@@ -104,6 +110,11 @@ public sealed partial class BanPanel : DefaultWindow
};
SubmitButton.OnPressed += SubmitButtonOnOnPressed;
IpCheckbox.Pressed = _cfg.GetCVar(CCVars.ServerBanIpBanDefault);
HwidCheckbox.Pressed = _cfg.GetCVar(CCVars.ServerBanHwidBanDefault);
LastConnCheckbox.Pressed = _cfg.GetCVar(CCVars.ServerBanUseLastDetails);
EraseCheckbox.Pressed = _cfg.GetCVar(CCVars.ServerBanErasePlayer);
SeverityOption.AddItem(Loc.GetString("admin-note-editor-severity-none"), (int) NoteSeverity.None);
SeverityOption.AddItem(Loc.GetString("admin-note-editor-severity-low"), (int) NoteSeverity.Minor);
SeverityOption.AddItem(Loc.GetString("admin-note-editor-severity-medium"), (int) NoteSeverity.Medium);
@@ -136,7 +147,7 @@ public sealed partial class BanPanel : DefaultWindow
var prototypeManager = IoCManager.Resolve<IPrototypeManager>();
foreach (var proto in prototypeManager.EnumeratePrototypes<DepartmentPrototype>())
{
CreateRoleGroup(proto.ID, proto.Roles, proto.Color);
CreateRoleGroup(proto.ID, proto.Roles.Select(p => p.Id), proto.Color);
}
CreateRoleGroup("Antagonist", prototypeManager.EnumeratePrototypes<AntagPrototype>().Select(p => p.ID), Color.Red);
@@ -175,6 +186,39 @@ public sealed partial class BanPanel : DefaultWindow
c.Pressed = args.Pressed;
}
}
if (args.Pressed)
{
if (!Enum.TryParse(_cfg.GetCVar(CCVars.DepartmentBanDefaultSeverity), true, out NoteSeverity newSeverity))
{
_banpanelSawmill
.Warning("Departmental role ban severity could not be parsed from config!");
return;
}
SeverityOption.SelectId((int) newSeverity);
}
else
{
foreach (var childContainer in RolesContainer.Children)
{
if (childContainer is Container)
{
foreach (var child in childContainer.Children)
{
if (child is CheckBox { Pressed: true })
return;
}
}
}
if (!Enum.TryParse(_cfg.GetCVar(CCVars.RoleBanDefaultSeverity), true, out NoteSeverity newSeverity))
{
_banpanelSawmill
.Warning("Role ban severity could not be parsed from config!");
return;
}
SeverityOption.SelectId((int) newSeverity);
}
};
outerContainer.AddChild(innerContainer);
foreach (var role in roleList)
@@ -353,6 +397,35 @@ public sealed partial class BanPanel : DefaultWindow
{
TypeOption.ModulateSelfOverride = null;
Tabs.SetTabVisible((int) TabNumbers.Roles, TypeOption.SelectedId == (int) Types.Role);
NoteSeverity? newSeverity = null;
switch (TypeOption.SelectedId)
{
case (int)Types.Server:
if (Enum.TryParse(_cfg.GetCVar(CCVars.ServerBanDefaultSeverity), true, out NoteSeverity serverSeverity))
newSeverity = serverSeverity;
else
{
_banpanelSawmill
.Warning("Server ban severity could not be parsed from config!");
}
break;
case (int) Types.Role:
if (Enum.TryParse(_cfg.GetCVar(CCVars.RoleBanDefaultSeverity), true, out NoteSeverity roleSeverity))
{
newSeverity = roleSeverity;
}
else
{
_banpanelSawmill
.Warning("Role ban severity could not be parsed from config!");
}
break;
}
if (newSeverity != null)
SeverityOption.SelectId((int) newSeverity.Value);
}
private void UpdateSubmitEnabled()

View File

@@ -75,7 +75,7 @@ namespace Content.Client.Administration.UI.Bwoink
if (info.Antag && info.ActiveThisRound)
sb.Append(new Rune(0x1F5E1)); // 🗡
if (info.OverallPlaytime <= TimeSpan.FromSeconds(_cfg.GetCVar(CCVars.NewPlayerThreshold)))
if (info.OverallPlaytime <= TimeSpan.FromMinutes(_cfg.GetCVar(CCVars.NewPlayerThreshold)))
sb.Append(new Rune(0x23F2)); // ⏲
sb.AppendFormat("\"{0}\"", text);
@@ -226,7 +226,7 @@ namespace Content.Client.Administration.UI.Bwoink
if (pl.Antag)
sb.Append(new Rune(0x1F5E1)); // 🗡
if (pl.OverallPlaytime <= TimeSpan.FromSeconds(_cfg.GetCVar(CCVars.NewPlayerThreshold)))
if (pl.OverallPlaytime <= TimeSpan.FromMinutes(_cfg.GetCVar(CCVars.NewPlayerThreshold)))
sb.Append(new Rune(0x23F2)); // ⏲
sb.AppendFormat("\"{0}\"", pl.CharacterName);
@@ -243,9 +243,9 @@ namespace Content.Client.Administration.UI.Bwoink
{
UpdateButtons();
AHelpHelper.HideAllPanels();
if (ch != null)
{
AHelpHelper.HideAllPanels();
var panel = AHelpHelper.EnsurePanel(ch.Value);
panel.Visible = true;
}

View File

@@ -16,14 +16,17 @@ namespace Content.Client.Administration.UI.Bwoink
Bwoink.ChannelSelector.OnSelectionChanged += sel =>
{
if (sel is not null)
if (sel is null)
{
Title = $"{sel.CharacterName} / {sel.Username}";
Title = Loc.GetString("bwoink-title-none-selected");
return;
}
if (sel.OverallPlaytime != null)
{
Title += $" | {Loc.GetString("generic-playtime-title")}: {sel.PlaytimeString}";
}
Title = $"{sel.CharacterName} / {sel.Username}";
if (sel.OverallPlaytime != null)
{
Title += $" | {Loc.GetString("generic-playtime-title")}: {sel.PlaytimeString}";
}
};

View File

@@ -5,7 +5,7 @@
<LineEdit Name="FilterLineEdit"
MinSize="100 0"
HorizontalExpand="True"
PlaceHolder="{Loc Filter}"/>
PlaceHolder="{Loc player-list-filter}"/>
<PanelContainer Name="BackgroundPanel"
VerticalExpand="True"
HorizontalExpand="True">

View File

@@ -20,7 +20,7 @@ namespace Content.Client.Administration.UI.CustomControls
private List<PlayerInfo> _playerList = new();
private readonly List<PlayerInfo> _sortedPlayerList = new();
public event Action<PlayerInfo>? OnSelectionChanged;
public event Action<PlayerInfo?>? OnSelectionChanged;
public IReadOnlyList<PlayerInfo> PlayerInfo => _playerList;
public Func<PlayerInfo, string, string>? OverrideText;
@@ -41,12 +41,19 @@ namespace Content.Client.Administration.UI.CustomControls
PlayerListContainer.ItemPressed += PlayerListItemPressed;
PlayerListContainer.ItemKeyBindDown += PlayerListItemKeyBindDown;
PlayerListContainer.GenerateItem += GenerateButton;
PlayerListContainer.NoItemSelected += PlayerListNoItemSelected;
PopulateList(_adminSystem.PlayerList);
FilterLineEdit.OnTextChanged += _ => FilterList();
_adminSystem.PlayerListChanged += PopulateList;
BackgroundPanel.PanelOverride = new StyleBoxFlat {BackgroundColor = new Color(32, 32, 40)};
}
private void PlayerListNoItemSelected()
{
_selectedPlayer = null;
OnSelectionChanged?.Invoke(null);
}
private void PlayerListItemPressed(BaseButton.ButtonEventArgs? args, ListData? data)
{
if (args == null || data is not PlayerListData {Info: var selectedPlayer})

View File

@@ -25,7 +25,7 @@ public sealed class ExplosionDebugOverlay : Overlay
public override OverlaySpace Space => OverlaySpace.WorldSpace | OverlaySpace.ScreenSpace;
public Matrix3 SpaceMatrix;
public Matrix3x2 SpaceMatrix;
public MapId Map;
private readonly Font _font;
@@ -78,7 +78,8 @@ public sealed class ExplosionDebugOverlay : Overlay
if (SpaceTiles == null)
return;
gridBounds = Matrix3.Invert(SpaceMatrix).TransformBox(args.WorldBounds);
Matrix3x2.Invert(SpaceMatrix, out var invSpace);
gridBounds = invSpace.TransformBox(args.WorldBounds);
DrawText(handle, gridBounds, SpaceMatrix, SpaceTiles, SpaceTileSize);
}
@@ -86,7 +87,7 @@ public sealed class ExplosionDebugOverlay : Overlay
private void DrawText(
DrawingHandleScreen handle,
Box2 gridBounds,
Matrix3 transform,
Matrix3x2 transform,
Dictionary<int, List<Vector2i>> tileSets,
ushort tileSize)
{
@@ -103,7 +104,7 @@ public sealed class ExplosionDebugOverlay : Overlay
if (!gridBounds.Contains(centre))
continue;
var worldCenter = transform.Transform(centre);
var worldCenter = Vector2.Transform(centre, transform);
var screenCenter = _eyeManager.WorldToScreen(worldCenter);
@@ -119,7 +120,7 @@ public sealed class ExplosionDebugOverlay : Overlay
if (tileSets.TryGetValue(0, out var set))
{
var epicenter = set.First();
var worldCenter = transform.Transform((epicenter + Vector2Helpers.Half) * tileSize);
var worldCenter = Vector2.Transform((epicenter + Vector2Helpers.Half) * tileSize, transform);
var screenCenter = _eyeManager.WorldToScreen(worldCenter) + new Vector2(-24, -24);
var text = $"{Intensity[0]:F2}\nΣ={TotalIntensity:F1}\nΔ={Slope:F1}";
handle.DrawString(_font, screenCenter, text);
@@ -148,11 +149,12 @@ public sealed class ExplosionDebugOverlay : Overlay
if (SpaceTiles == null)
return;
gridBounds = Matrix3.Invert(SpaceMatrix).TransformBox(args.WorldBounds).Enlarged(2);
Matrix3x2.Invert(SpaceMatrix, out var invSpace);
gridBounds = invSpace.TransformBox(args.WorldBounds).Enlarged(2);
handle.SetTransform(SpaceMatrix);
DrawTiles(handle, gridBounds, SpaceTiles, SpaceTileSize);
handle.SetTransform(Matrix3.Identity);
handle.SetTransform(Matrix3x2.Identity);
}
private void DrawTiles(

View File

@@ -3,6 +3,7 @@ using Content.Shared.Explosion;
using JetBrains.Annotations;
using Robust.Client.AutoGenerated;
using Robust.Client.Console;
using Robust.Client.GameObjects;
using Robust.Client.Player;
using Robust.Client.UserInterface.CustomControls;
using Robust.Client.UserInterface.XAML;
@@ -22,7 +23,7 @@ public sealed partial class SpawnExplosionWindow : DefaultWindow
[Dependency] private readonly IPlayerManager _playerManager = default!;
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
[Dependency] private readonly IEntityManager _entMan = default!;
private readonly SharedTransformSystem _transform = default!;
private readonly SpawnExplosionEui _eui;
private List<MapId> _mapData = new();
@@ -37,6 +38,7 @@ public sealed partial class SpawnExplosionWindow : DefaultWindow
{
RobustXamlLoader.Load(this);
IoCManager.InjectDependencies(this);
_transform = _entMan.System<TransformSystem>();
_eui = eui;
ExplosionOption.OnItemSelected += ExplosionSelected;
@@ -104,7 +106,7 @@ public sealed partial class SpawnExplosionWindow : DefaultWindow
_pausePreview = true;
MapOptions.Select(_mapData.IndexOf(transform.MapID));
(MapX.Value, MapY.Value) = transform.MapPosition.Position;
(MapX.Value, MapY.Value) = _transform.GetMapCoordinates(_playerManager.LocalEntity!.Value, xform: transform).Position;
_pausePreview = false;
UpdatePreview();

View File

@@ -4,7 +4,7 @@
Title="{Loc admin-player-actions-window-title}" MinSize="425 272">
<BoxContainer Orientation="Vertical">
<BoxContainer Orientation="Horizontal">
<Label Text="{Loc Reason}" MinWidth="100" />
<Label Text="{Loc admin-player-actions-reason}" MinWidth="100" />
<Control MinWidth="50" />
<LineEdit Name="ReasonLine" MinWidth="100" HorizontalExpand="True" />
</BoxContainer>

View File

@@ -1,9 +1,9 @@
<DefaultWindow
xmlns="https://spacestation14.io"
xmlns:cc="clr-namespace:Content.Client.Administration.UI.CustomControls"
Title="{Loc Teleport}" MinSize="425 230">
Title="{Loc admin-ui-teleport}" MinSize="425 230">
<BoxContainer Orientation="Vertical">
<cc:PlayerListControl Name="PlayerList" />
<Button Name="SubmitButton" Text="{Loc Teleport}" />
<Button Name="SubmitButton" Text="{Loc admin-ui-teleport}" />
</BoxContainer>
</DefaultWindow>

View File

@@ -1,33 +1,33 @@
<DefaultWindow
xmlns="https://spacestation14.io" Title="{Loc Load Blueprint}">
xmlns="https://spacestation14.io" Title="{Loc admin-ui-blueprint-load}">
<BoxContainer Orientation="Vertical">
<BoxContainer Orientation="Horizontal">
<Label Text="{Loc Map}" MinSize="100 0" />
<Label Text="{Loc admin-ui-blueprint-map}" MinSize="100 0" />
<Control MinSize="50 0" />
<OptionButton Name="MapOptions" MinSize="100 0" HorizontalExpand="True" />
</BoxContainer>
<BoxContainer Orientation="Horizontal">
<Label Text="{Loc Path}" MinSize="100 0" />
<Label Text="{Loc admin-ui-blueprint-path}" MinSize="100 0" />
<Control MinSize="50 0" />
<LineEdit Name="MapPath" MinSize="200 0" HorizontalExpand="True" Text="/Maps/" />
</BoxContainer>
<BoxContainer Orientation="Horizontal">
<Label Text="{Loc X}" MinSize="100 0" />
<Label Text="{Loc admin-ui-blueprint-x}" MinSize="100 0" />
<Control MinSize="50 0" />
<SpinBox Name="XCoordinate" MinSize="100 0" HorizontalExpand="True" />
</BoxContainer>
<BoxContainer Orientation="Horizontal">
<Label Text="{Loc Y}" MinSize="100 0" />
<Label Text="{Loc admin-ui-blueprint-y}" MinSize="100 0" />
<Control MinSize="50 0" />
<SpinBox Name="YCoordinate" MinSize="100 0" HorizontalExpand="True" />
</BoxContainer>
<BoxContainer Orientation="Horizontal">
<Label Text="{Loc Rotation}" MinSize="100 0" />
<Label Text="{Loc admin-ui-blueprint-rotation}" MinSize="100 0" />
<Control MinSize="50 0" />
<SpinBox Name="RotationSpin" MinSize="100 0" HorizontalExpand="True" />
</BoxContainer>
<Button Name="SubmitButton" Text="{Loc Load Blueprint}" />
<Button Name="TeleportButton" Text="{Loc Teleport to}" />
<Button Name="ResetButton" Text="{Loc Reset to default}"></Button>
<Button Name="SubmitButton" Text="{Loc admin-ui-blueprint-load}" />
<Button Name="TeleportButton" Text="{Loc admin-ui-blueprint-teleport}" />
<Button Name="ResetButton" Text="{Loc admin-ui-blueprint-reset}"></Button>
</BoxContainer>
</DefaultWindow>

View File

@@ -1,11 +1,11 @@
<DefaultWindow
xmlns="https://spacestation14.io" Title="{Loc Add Atmos}">
xmlns="https://spacestation14.io" Title="{Loc admin-ui-atmos-add}">
<BoxContainer Orientation="Vertical">
<BoxContainer Orientation="Horizontal">
<Label Text="{Loc Grid}" MinSize="100 0" />
<Label Text="{Loc admin-ui-atmos-grid}" MinSize="100 0" />
<Control MinSize="50 0" />
<OptionButton Name="GridOptions" MinSize="100 0" HorizontalExpand="True" />
</BoxContainer>
<Button Name="SubmitButton" Text="{Loc Add Atmos}" />
<Button Name="SubmitButton" Text="{Loc admin-ui-atmos-add}" />
</BoxContainer>
</DefaultWindow>

View File

@@ -35,7 +35,7 @@ namespace Content.Client.Administration.UI.Tabs.AtmosTab
while (query.MoveNext(out var uid, out var grid))
{
_data.Add((uid, grid));
GridOptions.AddItem($"{uid} {(playerGrid == uid ? " (Current)" : "")}");
GridOptions.AddItem($"{uid} {(playerGrid == uid ? Loc.GetString($"admin-ui-atmos-grid-current") : "")}");
}
GridOptions.OnItemSelected += eventArgs => GridOptions.SelectId(eventArgs.Id);

View File

@@ -1,31 +1,31 @@
<DefaultWindow
xmlns="https://spacestation14.io" Title="{Loc Add Gas}">
xmlns="https://spacestation14.io" Title="{Loc admin-ui-atmos-add-gas}">
<BoxContainer Orientation="Vertical">
<BoxContainer Orientation="Horizontal">
<Label Text="{Loc Grid}" MinSize="100 0" />
<Label Text="{Loc admin-ui-atmos-grid}" MinSize="100 0" />
<Control MinSize="50 0" />
<OptionButton Name="GridOptions" MinSize="100 0" HorizontalExpand="True" />
</BoxContainer>
<BoxContainer Orientation="Horizontal">
<Label Text="{Loc TileX}" MinSize="100 0" />
<Label Text="{Loc admin-ui-atmos-tile-x}" MinSize="100 0" />
<Control MinSize="50 0" />
<SpinBox Name="TileXSpin" MinSize="100 0" HorizontalExpand="True" />
</BoxContainer>
<BoxContainer Orientation="Horizontal">
<Label Text="{Loc TileY}" MinSize="100 0" />
<Label Text="{Loc admin-ui-atmos-tile-y}" MinSize="100 0" />
<Control MinSize="50 0" />
<SpinBox Name="TileYSpin" MinSize="100 0" HorizontalExpand="True" />
</BoxContainer>
<BoxContainer Orientation="Horizontal">
<Label Text="{Loc Gas}" MinSize="100 0" />
<Label Text="{Loc admin-ui-atmos-gas}" MinSize="100 0" />
<Control MinSize="50 0" />
<OptionButton Name="GasOptions" MinSize="100 0" HorizontalExpand="True" />
</BoxContainer>
<BoxContainer Orientation="Horizontal">
<Label Text="{Loc Amount}" MinSize="100 0" />
<Label Text="{Loc admin-ui-atmos-gas-amount}" MinSize="100 0" />
<Control MinSize="50 0" />
<SpinBox Name="AmountSpin" MinSize="100 0" HorizontalExpand="True" />
</BoxContainer>
<Button Name="SubmitButton" Text="{Loc Add Gas}" />
<Button Name="SubmitButton" Text="{Loc admin-ui-atmos-add-gas}" />
</BoxContainer>
</DefaultWindow>

View File

@@ -33,7 +33,7 @@ namespace Content.Client.Administration.UI.Tabs.AtmosTab
_gridData.Add(entManager.GetNetEntity(uid));
var player = playerManager.LocalEntity;
var playerGrid = entManager.GetComponentOrNull<TransformComponent>(player)?.GridUid;
GridOptions.AddItem($"{uid} {(playerGrid == uid ? " (Current)" : "")}");
GridOptions.AddItem($"{uid} {(playerGrid == uid ? Loc.GetString("admin-ui-atmos-grid-current") : "")}");
}
GridOptions.OnItemSelected += eventArgs => GridOptions.SelectId(eventArgs.Id);

View File

@@ -6,10 +6,10 @@
Margin="4"
MinSize="50 50">
<GridContainer Columns="4">
<cc:UICommandButton Text="{Loc Add Atmos}" Command="addatmos" WindowType="{x:Type at:AddAtmosWindow}" />
<cc:UICommandButton Text="{Loc Add Gas}" Command="addgas" WindowType="{x:Type at:AddGasWindow}" />
<cc:UICommandButton Text="{Loc Fill Gas}" Command="fillgas" WindowType="{x:Type at:FillGasWindow}" />
<cc:UICommandButton Text="{Loc Set Temperature}" Command="settemp"
<cc:UICommandButton Text="{Loc admin-ui-atmos-add}" Command="addatmos" WindowType="{x:Type at:AddAtmosWindow}" />
<cc:UICommandButton Text="{Loc admin-ui-atmos-add-gas}" Command="addgas" WindowType="{x:Type at:AddGasWindow}" />
<cc:UICommandButton Text="{Loc admin-ui-atmos-fill-gas}" Command="fillgas" WindowType="{x:Type at:FillGasWindow}" />
<cc:UICommandButton Text="{Loc admin-ui-atmos-set-temperature}" Command="settemp"
WindowType="{x:Type at:SetTemperatureWindow}" />
</GridContainer>
</Control>

View File

@@ -1,21 +1,21 @@
<DefaultWindow
xmlns="https://spacestation14.io" Title="{Loc Fill Gas}">
xmlns="https://spacestation14.io" Title="{Loc admin-ui-atmos-fill-gas}">
<BoxContainer Orientation="Vertical">
<BoxContainer Orientation="Horizontal">
<Label Text="{Loc Grid}" MinSize="100 0" />
<Label Text="{Loc admin-ui-atmos-grid}" MinSize="100 0" />
<Control MinSize="50 0" />
<OptionButton Name="GridOptions" MinSize="100 0" HorizontalExpand="True" />
</BoxContainer>
<BoxContainer Orientation="Horizontal">
<Label Text="{Loc Gas}" MinSize="100 0" />
<Label Text="{Loc admin-ui-atmos-gas}" MinSize="100 0" />
<Control MinSize="50 0" />
<OptionButton Name="GasOptions" MinSize="100 0" HorizontalExpand="True" />
</BoxContainer>
<BoxContainer Orientation="Horizontal">
<Label Text="{Loc Amount}" MinSize="100 0" />
<Label Text="{Loc admin-ui-atmos-gas-amount}" MinSize="100 0" />
<Control MinSize="50 0" />
<SpinBox Name="AmountSpin" MinSize="100 0" HorizontalExpand="True" />
</BoxContainer>
<Button Name="SubmitButton" Text="{Loc Fill Gas}" />
<Button Name="SubmitButton" Text="{Loc admin-ui-atmos-fill-gas}" />
</BoxContainer>
</DefaultWindow>

View File

@@ -36,7 +36,7 @@ namespace Content.Client.Administration.UI.Tabs.AtmosTab
{
var player = playerManager.LocalEntity;
var playerGrid = entManager.GetComponentOrNull<TransformComponent>(player)?.GridUid;
GridOptions.AddItem($"{uid} {(playerGrid == uid ? " (Current)" : "")}");
GridOptions.AddItem($"{uid} {(playerGrid == uid ? Loc.GetString($"admin-ui-atmos-grid-current") : "")}");
_gridData.Add(entManager.GetNetEntity(uid));
}

View File

@@ -1,26 +1,26 @@
<DefaultWindow
xmlns="https://spacestation14.io" Title="{Loc Set Temperature}">
xmlns="https://spacestation14.io" Title="{Loc admin-ui-atmos-set-temperature}">
<BoxContainer Orientation="Vertical">
<BoxContainer Orientation="Horizontal">
<Label Text="{Loc Grid}" MinSize="100 0" />
<Label Text="{Loc admin-ui-atmos-grid}" MinSize="100 0" />
<Control MinSize="50 0" />
<OptionButton Name="GridOptions" MinSize="100 0" HorizontalExpand="True" />
</BoxContainer>
<BoxContainer Orientation="Horizontal">
<Label Text="{Loc TileX}" MinSize="100 0" />
<Label Text="{Loc admin-ui-atmos-tile-x}" MinSize="100 0" />
<Control MinSize="50 0" />
<SpinBox Name="TileXSpin" MinSize="100 0" HorizontalExpand="True" />
</BoxContainer>
<BoxContainer Orientation="Horizontal">
<Label Text="{Loc TileY}" MinSize="100 0" />
<Label Text="{Loc admin-ui-atmos-tile-y}" MinSize="100 0" />
<Control MinSize="50 0" />
<SpinBox Name="TileYSpin" MinSize="100 0" HorizontalExpand="True" />
</BoxContainer>
<BoxContainer Orientation="Horizontal">
<Label Text="{Loc Temperature}" MinSize="100 0" />
<Label Text="{Loc admin-ui-atmos-temperature}" MinSize="100 0" />
<Control MinSize="50 0" />
<SpinBox Name="TemperatureSpin" MinSize="100 0" HorizontalExpand="True" />
</BoxContainer>
<Button Name="SubmitButton" Text="{Loc Set Temperature}" />
<Button Name="SubmitButton" Text="{Loc admin-ui-atmos-set-temperature}" />
</BoxContainer>
</DefaultWindow>

View File

@@ -32,7 +32,7 @@ namespace Content.Client.Administration.UI.Tabs.AtmosTab
{
var player = playerManager.LocalEntity;
var playerGrid = entManager.GetComponentOrNull<TransformComponent>(player)?.GridUid;
GridOptions.AddItem($"{uid} {(playerGrid == uid ? " (Current)" : "")}");
GridOptions.AddItem($"{uid} {(playerGrid == uid ? Loc.GetString($"admin-ui-atmos-grid-current") : "")}");
_data.Add(entManager.GetNetEntity(uid));
}

View File

@@ -0,0 +1,6 @@
<controls:BabyJailStatusWindow
xmlns="https://spacestation14.io"
xmlns:controls="clr-namespace:Content.Client.Administration.UI.Tabs.BabyJailTab"
Title="{Loc admin-ui-baby-jail-window-title}">
<RichTextLabel Name="MessageLabel" Access="Public" />
</controls:BabyJailStatusWindow>

View File

@@ -0,0 +1,21 @@
using Content.Client.Message;
using Content.Client.UserInterface.Controls;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.CustomControls;
using Robust.Client.UserInterface.XAML;
namespace Content.Client.Administration.UI.Tabs.BabyJailTab;
/*
* TODO: Remove me once a more mature gateway process is established. This code is only being issued as a stopgap to help with potential tiding in the immediate future.
*/
[GenerateTypedNameReferences]
public sealed partial class BabyJailStatusWindow : FancyWindow
{
public BabyJailStatusWindow()
{
RobustXamlLoader.Load(this);
MessageLabel.SetMarkup(Loc.GetString("admin-ui-baby-jail-is-enabled"));
}
}

View File

@@ -0,0 +1,26 @@
<controls:BabyJailTab
xmlns="https://spacestation14.io"
xmlns:controls="clr-namespace:Content.Client.Administration.UI.Tabs.BabyJailTab"
xmlns:cc="clr-namespace:Content.Client.Administration.UI.CustomControls"
Margin="4">
<BoxContainer Orientation="Vertical">
<cc:CommandButton Name="EnabledButton" Command="babyjail" ToggleMode="True"
Text="{Loc admin-ui-baby-jail-disabled}"
ToolTip="{Loc admin-ui-baby-jail-tooltip}" />
<cc:CommandButton Name="ShowReasonButton" Command="babyjail_show_reason"
ToggleMode="True" Text="{Loc admin-ui-baby-jail-show-reason}"
ToolTip="{Loc admin-ui-baby-jail-show-reason-tooltip}" />
<BoxContainer Orientation="Vertical" Margin="0 10 0 0">
<BoxContainer Orientation="Horizontal" Margin="2">
<Label Text="{Loc admin-ui-baby-jail-max-account-age}" MinWidth="175" />
<LineEdit Name="MaxAccountAge" MinWidth="50" Margin="0 0 5 0" />
<Label Text="{Loc generic-minutes}" />
</BoxContainer>
<BoxContainer Orientation="Horizontal" Margin="2">
<Label Text="{Loc admin-ui-baby-jail-max-overall-minutes}" MinWidth="175" />
<LineEdit Name="MaxOverallMinutes" MinWidth="50" Margin="0 0 5 0" />
<Label Text="{Loc generic-minutes}" />
</BoxContainer>
</BoxContainer>
</BoxContainer>
</controls:BabyJailTab>

View File

@@ -0,0 +1,75 @@
using Content.Shared.Administration.Events;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface;
using Robust.Client.UserInterface.XAML;
using Robust.Shared.Console;
/*
* TODO: Remove me once a more mature gateway process is established. This code is only being issued as a stopgap to help with potential tiding in the immediate future.
*/
namespace Content.Client.Administration.UI.Tabs.BabyJailTab;
[GenerateTypedNameReferences]
public sealed partial class BabyJailTab : Control
{
[Dependency] private readonly IConsoleHost _console = default!;
private string _maxAccountAge;
private string _maxOverallMinutes;
public BabyJailTab()
{
RobustXamlLoader.Load(this);
IoCManager.InjectDependencies(this);
MaxAccountAge.OnTextEntered += args => SendMaxAccountAge(args.Text);
MaxAccountAge.OnFocusExit += args => SendMaxAccountAge(args.Text);
_maxAccountAge = MaxAccountAge.Text;
MaxOverallMinutes.OnTextEntered += args => SendMaxOverallMinutes(args.Text);
MaxOverallMinutes.OnFocusExit += args => SendMaxOverallMinutes(args.Text);
_maxOverallMinutes = MaxOverallMinutes.Text;
}
private void SendMaxAccountAge(string text)
{
if (string.IsNullOrWhiteSpace(text) ||
text == _maxAccountAge ||
!int.TryParse(text, out var minutes))
{
return;
}
_console.ExecuteCommand($"babyjail_max_account_age {minutes}");
}
private void SendMaxOverallMinutes(string text)
{
if (string.IsNullOrWhiteSpace(text) ||
text == _maxOverallMinutes ||
!int.TryParse(text, out var minutes))
{
return;
}
_console.ExecuteCommand($"babyjail_max_overall_minutes {minutes}");
}
public void UpdateStatus(BabyJailStatus status)
{
EnabledButton.Pressed = status.Enabled;
EnabledButton.Text = Loc.GetString(status.Enabled
? "admin-ui-baby-jail-enabled"
: "admin-ui-baby-jail-disabled"
);
EnabledButton.ModulateSelfOverride = status.Enabled ? Color.Red : null;
ShowReasonButton.Pressed = status.ShowReason;
MaxAccountAge.Text = status.MaxAccountAgeMinutes.ToString();
_maxAccountAge = MaxAccountAge.Text;
MaxOverallMinutes.Text = status.MaxOverallMinutes.ToString();
_maxOverallMinutes = MaxOverallMinutes.Text;
}
}

View File

@@ -1,15 +1,20 @@
<Control xmlns="https://spacestation14.io"
xmlns:cc="clr-namespace:Content.Client.Administration.UI.CustomControls">
xmlns:cc="clr-namespace:Content.Client.Administration.UI.CustomControls"
xmlns:ot="clr-namespace:Content.Client.Administration.UI.Tabs.ObjectsTab"
xmlns:co="clr-namespace:Content.Client.UserInterface.Controls">
<BoxContainer Orientation="Vertical">
<BoxContainer Orientation="Horizontal">
<Label HorizontalExpand="True" SizeFlagsStretchRatio="0.50"
Text="{Loc Object type:}" />
<OptionButton Name="ObjectTypeOptions" HorizontalExpand="True" SizeFlagsStretchRatio="0.25"/>
<Label Text="{Loc object-tab-object-type}" />
<OptionButton Name="ObjectTypeOptions" HorizontalAlignment="Left" />
<LineEdit Name="SearchLineEdit" PlaceHolder="{Loc object-tab-object-search}" HorizontalExpand="True"
SizeFlagsStretchRatio="1" />
<Button Name="RefreshListButton" Text="{Loc object-tab-refresh-button}" ToggleMode="False" />
</BoxContainer>
<cc:HSeparator />
<BoxContainer Orientation="Vertical" HorizontalExpand="True" VerticalExpand="True">
<ot:ObjectsTabHeader Name="ListHeader" />
<cc:HSeparator />
<co:SearchListContainer Name="SearchList" Access="Public" VerticalExpand="True" />
</BoxContainer>
<cc:HSeparator/>
<ScrollContainer HorizontalExpand="True" VerticalExpand="True">
<BoxContainer Orientation="Vertical" Name="ObjectList">
</BoxContainer>
</ScrollContainer>
</BoxContainer>
</Control>

View File

@@ -1,6 +1,9 @@
using Content.Client.Station;
using Content.Client.UserInterface.Controls;
using Robust.Client.AutoGenerated;
using Robust.Client.Graphics;
using Robust.Client.UserInterface;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
using Robust.Shared.Map.Components;
using Robust.Shared.Timing;
@@ -10,20 +13,17 @@ namespace Content.Client.Administration.UI.Tabs.ObjectsTab;
[GenerateTypedNameReferences]
public sealed partial class ObjectsTab : Control
{
[Dependency] private readonly EntityManager _entityManager = default!;
[Dependency] private readonly IEntityManager _entityManager = default!;
[Dependency] private readonly IGameTiming _timing = default!;
private readonly List<ObjectsTabEntry> _objects = new();
private List<ObjectsTabSelection> _selections = new();
private readonly Color _altColor = Color.FromHex("#292B38");
private readonly Color _defaultColor = Color.FromHex("#2F2F3B");
public event Action<ObjectsTabEntry, GUIBoundKeyEventArgs>? OnEntryKeyBindDown;
private bool _ascending;
private ObjectsTabHeader.Header _headerClicked = ObjectsTabHeader.Header.ObjectName;
// Listen I could either have like 4 different event subscribers (for map / grid / station changes) and manage their lifetimes in AdminUIController
// OR
// I can do this.
private TimeSpan _updateFrequency = TimeSpan.FromSeconds(2);
private TimeSpan _nextUpdate = TimeSpan.FromSeconds(2);
private readonly List<ObjectsTabSelection> _selections = [];
public event Action<GUIBoundKeyEventArgs, ListData>? OnEntryKeyBindDown;
public ObjectsTab()
{
@@ -36,16 +36,25 @@ public sealed partial class ObjectsTab : Control
RefreshObjectList(_selections[ev.Id]);
};
foreach (var type in Enum.GetValues(typeof(ObjectsTabSelection)))
foreach (var type in Enum.GetValues<ObjectsTabSelection>())
{
_selections.Add((ObjectsTabSelection)type!);
ObjectTypeOptions.AddItem(Enum.GetName((ObjectsTabSelection)type)!);
_selections.Add(type);
ObjectTypeOptions.AddItem(GetLocalizedEnumValue(type));
}
RefreshObjectList();
ListHeader.OnHeaderClicked += HeaderClicked;
SearchList.SearchBar = SearchLineEdit;
SearchList.GenerateItem += GenerateButton;
SearchList.DataFilterCondition += DataFilterCondition;
SearchList.ItemKeyBindDown += (args, data) => OnEntryKeyBindDown?.Invoke(args, data);
RefreshListButton.OnPressed += _ => RefreshObjectList();
var defaultSelection = ObjectsTabSelection.Grids;
ObjectTypeOptions.SelectId((int) defaultSelection);
RefreshObjectList(defaultSelection);
}
private void RefreshObjectList()
public void RefreshObjectList()
{
RefreshObjectList(_selections[ObjectTypeOptions.SelectedId]);
}
@@ -75,41 +84,96 @@ public sealed partial class ObjectsTab : Control
{
entities.Add((metadata.EntityName, _entityManager.GetNetEntity(uid)));
}
break;
}
default:
throw new ArgumentOutOfRangeException(nameof(selection), selection, null);
}
foreach (var control in _objects)
entities.Sort((a, b) =>
{
ObjectList.RemoveChild(control);
var valueA = GetComparableValue(a, _headerClicked);
var valueB = GetComparableValue(b, _headerClicked);
return _ascending
? Comparer<object>.Default.Compare(valueA, valueB)
: Comparer<object>.Default.Compare(valueB, valueA);
});
var listData = new List<ObjectsListData>();
for (var index = 0; index < entities.Count; index++)
{
var info = entities[index];
listData.Add(new ObjectsListData(info,
$"{info.Name} {info.Entity}",
index % 2 == 0 ? _altColor : _defaultColor));
}
_objects.Clear();
foreach (var (name, nent) in entities)
{
var ctrl = new ObjectsTabEntry(name, nent);
_objects.Add(ctrl);
ObjectList.AddChild(ctrl);
ctrl.OnKeyBindDown += args => OnEntryKeyBindDown?.Invoke(ctrl, args);
}
SearchList.PopulateList(listData);
}
protected override void FrameUpdate(FrameEventArgs args)
private void GenerateButton(ListData data, ListContainerButton button)
{
base.FrameUpdate(args);
if (_timing.CurTime < _nextUpdate)
if (data is not ObjectsListData { Info: var info, BackgroundColor: var backgroundColor })
return;
// I do not care for precision.
_nextUpdate = _timing.CurTime + _updateFrequency;
var entry = new ObjectsTabEntry(info.Name,
info.Entity,
new StyleBoxFlat { BackgroundColor = backgroundColor });
button.ToolTip = $"{info.Name}, {info.Entity}";
button.AddChild(entry);
}
private bool DataFilterCondition(string filter, ListData listData)
{
if (listData is not ObjectsListData { FilteringString: var filteringString })
return false;
// If the filter is empty, do not filter out any entries
if (string.IsNullOrEmpty(filter))
return true;
return filteringString.Contains(filter, StringComparison.CurrentCultureIgnoreCase);
}
private object GetComparableValue((string Name, NetEntity Entity) entity, ObjectsTabHeader.Header header)
{
return header switch
{
ObjectsTabHeader.Header.ObjectName => entity.Name,
ObjectsTabHeader.Header.EntityID => entity.Entity.ToString(),
_ => entity.Name,
};
}
private void HeaderClicked(ObjectsTabHeader.Header header)
{
if (_headerClicked == header)
{
_ascending = !_ascending;
}
else
{
_headerClicked = header;
_ascending = true;
}
ListHeader.UpdateHeaderSymbols(_headerClicked, _ascending);
RefreshObjectList();
}
private string GetLocalizedEnumValue(ObjectsTabSelection selection)
{
return selection switch
{
ObjectsTabSelection.Grids => Loc.GetString("object-tab-object-type-grids"),
ObjectsTabSelection.Maps => Loc.GetString("object-tab-object-type-maps"),
ObjectsTabSelection.Stations => Loc.GetString("object-tab-object-type-stations"),
_ => throw new ArgumentOutOfRangeException(nameof(selection), selection, null),
};
}
private enum ObjectsTabSelection
{
Grids,
@@ -118,3 +182,5 @@ public sealed partial class ObjectsTab : Control
}
}
public record ObjectsListData((string Name, NetEntity Entity) Info, string FilteringString, Color BackgroundColor)
: ListData;

View File

@@ -1,6 +1,6 @@
<ContainerButton xmlns="https://spacestation14.io"
xmlns:customControls="clr-namespace:Content.Client.Administration.UI.CustomControls">
<PanelContainer Name="BackgroundColorPanel"/>
<PanelContainer xmlns="https://spacestation14.io"
xmlns:customControls="clr-namespace:Content.Client.Administration.UI.CustomControls"
Name="BackgroundColorPanel">
<BoxContainer Orientation="Horizontal"
HorizontalExpand="True"
SeparationOverride="4">
@@ -14,4 +14,4 @@
HorizontalExpand="True"
ClipText="True"/>
</BoxContainer>
</ContainerButton>
</PanelContainer>

View File

@@ -1,19 +1,21 @@
using Robust.Client.AutoGenerated;
using Robust.Client.Graphics;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
namespace Content.Client.Administration.UI.Tabs.ObjectsTab;
[GenerateTypedNameReferences]
public sealed partial class ObjectsTabEntry : ContainerButton
public sealed partial class ObjectsTabEntry : PanelContainer
{
public NetEntity AssocEntity;
public ObjectsTabEntry(string name, NetEntity nent)
public ObjectsTabEntry(string name, NetEntity nent, StyleBox styleBox)
{
RobustXamlLoader.Load(this);
AssocEntity = nent;
EIDLabel.Text = nent.ToString();
NameLabel.Text = name;
BackgroundColorPanel.PanelOverride = styleBox;
}
}

View File

@@ -0,0 +1,21 @@
<Control xmlns="https://spacestation14.io"
xmlns:cc="clr-namespace:Content.Client.Administration.UI.CustomControls">
<PanelContainer Name="BackgroundColorPanel" Access="Public"/>
<BoxContainer Orientation="Horizontal"
HorizontalExpand="True"
SeparationOverride="4">
<Label Name="ObjectNameLabel"
SizeFlagsStretchRatio="3"
HorizontalExpand="True"
ClipText="True"
Text="{Loc object-tab-object-name}"
MouseFilter="Pass"/>
<cc:VSeparator/>
<Label Name="EntityIDLabel"
SizeFlagsStretchRatio="3"
HorizontalExpand="True"
ClipText="True"
Text="{Loc object-tab-entity-id}"
MouseFilter="Pass"/>
</BoxContainer>
</Control>

View File

@@ -0,0 +1,86 @@
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
using Robust.Shared.Input;
namespace Content.Client.Administration.UI.Tabs.ObjectsTab
{
[GenerateTypedNameReferences]
public sealed partial class ObjectsTabHeader : Control
{
public event Action<Header>? OnHeaderClicked;
private const string ArrowUp = "↑";
private const string ArrowDown = "↓";
public ObjectsTabHeader()
{
RobustXamlLoader.Load(this);
ObjectNameLabel.OnKeyBindDown += ObjectNameClicked;
EntityIDLabel.OnKeyBindDown += EntityIDClicked;
}
public Label GetHeader(Header header)
{
return header switch
{
Header.ObjectName => ObjectNameLabel,
Header.EntityID => EntityIDLabel,
_ => throw new ArgumentOutOfRangeException(nameof(header), header, null)
};
}
public void ResetHeaderText()
{
ObjectNameLabel.Text = Loc.GetString("object-tab-object-name");
EntityIDLabel.Text = Loc.GetString("object-tab-entity-id");
}
public void UpdateHeaderSymbols(Header headerClicked, bool ascending)
{
ResetHeaderText();
var arrow = ascending ? ArrowUp : ArrowDown;
GetHeader(headerClicked).Text += $" {arrow}";
}
private void HeaderClicked(GUIBoundKeyEventArgs args, Header header)
{
if (args.Function != EngineKeyFunctions.UIClick)
{
return;
}
OnHeaderClicked?.Invoke(header);
args.Handle();
}
private void ObjectNameClicked(GUIBoundKeyEventArgs args)
{
HeaderClicked(args, Header.ObjectName);
}
private void EntityIDClicked(GUIBoundKeyEventArgs args)
{
HeaderClicked(args, Header.EntityID);
}
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
if (disposing)
{
ObjectNameLabel.OnKeyBindDown -= ObjectNameClicked;
EntityIDLabel.OnKeyBindDown -= EntityIDClicked;
}
}
public enum Header
{
ObjectName,
EntityID
}
}
}

View File

@@ -31,12 +31,12 @@
<BoxContainer Orientation="Horizontal" Margin="2">
<Label Text="{Loc admin-ui-panic-bunker-min-account-age}" MinWidth="175" />
<LineEdit Name="MinAccountAge" MinWidth="50" Margin="0 0 5 0" />
<Label Text="{Loc generic-hours}" />
<Label Text="{Loc generic-minutes}" />
</BoxContainer>
<BoxContainer Orientation="Horizontal" Margin="2">
<Label Text="{Loc admin-ui-panic-bunker-min-overall-hours}" MinWidth="175" />
<LineEdit Name="MinOverallHours" MinWidth="50" Margin="0 0 5 0" />
<Label Text="{Loc generic-hours}" />
<Label Text="{Loc admin-ui-panic-bunker-min-overall-minutes}" MinWidth="175" />
<LineEdit Name="MinOverallMinutes" MinWidth="50" Margin="0 0 5 0" />
<Label Text="{Loc generic-minutes}" />
</BoxContainer>
</BoxContainer>
</BoxContainer>

View File

@@ -12,7 +12,7 @@ public sealed partial class PanicBunkerTab : Control
[Dependency] private readonly IConsoleHost _console = default!;
private string _minAccountAge;
private string _minOverallHours;
private string _minOverallMinutes;
public PanicBunkerTab()
{
@@ -25,9 +25,9 @@ public sealed partial class PanicBunkerTab : Control
MinAccountAge.OnFocusExit += args => SendMinAccountAge(args.Text);
_minAccountAge = MinAccountAge.Text;
MinOverallHours.OnTextEntered += args => SendMinOverallHours(args.Text);
MinOverallHours.OnFocusExit += args => SendMinOverallHours(args.Text);
_minOverallHours = MinOverallHours.Text;
MinOverallMinutes.OnTextEntered += args => SendMinOverallMinutes(args.Text);
MinOverallMinutes.OnFocusExit += args => SendMinOverallMinutes(args.Text);
_minOverallMinutes = MinOverallMinutes.Text;
}
private void SendMinAccountAge(string text)
@@ -42,16 +42,16 @@ public sealed partial class PanicBunkerTab : Control
_console.ExecuteCommand($"panicbunker_min_account_age {minutes}");
}
private void SendMinOverallHours(string text)
private void SendMinOverallMinutes(string text)
{
if (string.IsNullOrWhiteSpace(text) ||
text == _minOverallHours ||
!int.TryParse(text, out var hours))
text == _minOverallMinutes ||
!int.TryParse(text, out var minutes))
{
return;
}
_console.ExecuteCommand($"panicbunker_min_overall_hours {hours}");
_console.ExecuteCommand($"panicbunker_min_overall_minutes {minutes}");
}
public void UpdateStatus(PanicBunkerStatus status)
@@ -68,10 +68,10 @@ public sealed partial class PanicBunkerTab : Control
CountDeadminnedButton.Pressed = status.CountDeadminnedAdmins;
ShowReasonButton.Pressed = status.ShowReason;
MinAccountAge.Text = status.MinAccountAgeHours.ToString();
MinAccountAge.Text = status.MinAccountAgeMinutes.ToString();
_minAccountAge = MinAccountAge.Text;
MinOverallHours.Text = status.MinOverallHours.ToString();
_minOverallHours = MinOverallHours.Text;
MinOverallMinutes.Text = status.MinOverallMinutes.ToString();
_minOverallMinutes = MinOverallMinutes.Text;
}
}

View File

@@ -1,21 +1,19 @@
<Control xmlns="https://spacestation14.io"
xmlns:pt="clr-namespace:Content.Client.Administration.UI.Tabs.PlayerTab"
xmlns:cc="clr-namespace:Content.Client.Administration.UI.CustomControls">
xmlns:cc="clr-namespace:Content.Client.Administration.UI.CustomControls"
xmlns:co="clr-namespace:Content.Client.UserInterface.Controls">
<BoxContainer Orientation="Vertical">
<BoxContainer Orientation="Horizontal">
<Label Name="PlayerCount" HorizontalExpand="True" SizeFlagsStretchRatio="0.50"
Text="{Loc Player Count}" />
<Button Name="ShowDisconnectedButton" HorizontalExpand="True" SizeFlagsStretchRatio="0.25"
Text="{Loc player-tab-show-disconnected}" ToggleMode="True"/>
<Button Name="OverlayButton" HorizontalExpand="True" SizeFlagsStretchRatio="0.25"
Text="{Loc player-tab-overlay}" ToggleMode="True"/>
<Label Name="PlayerCount" HorizontalExpand="True" Text="{Loc player-tab-player-count}" />
<LineEdit Name="SearchLineEdit" HorizontalExpand="True"
PlaceHolder="{Loc player-tab-filter-line-edit-placeholder}" />
<Button Name="ShowDisconnectedButton" HorizontalExpand="True"
Text="{Loc player-tab-show-disconnected}" ToggleMode="True" />
<Button Name="OverlayButton" HorizontalExpand="True" Text="{Loc player-tab-overlay}" ToggleMode="True" />
</BoxContainer>
<Control MinSize="0 5" />
<ScrollContainer HorizontalExpand="True" VerticalExpand="True">
<BoxContainer Orientation="Vertical" Name="PlayerList">
<pt:PlayerTabHeader Name="ListHeader" />
<cc:HSeparator />
</BoxContainer>
</ScrollContainer>
<Control MinSize="0 5"/>
<pt:PlayerTabHeader Name="ListHeader"/>
<cc:HSeparator/>
<co:SearchListContainer Name="SearchList" Access="Public" VerticalExpand="True"/>
</BoxContainer>
</Control>

View File

@@ -1,5 +1,6 @@
using System.Linq;
using Content.Client.Administration.Systems;
using Content.Client.UserInterface.Controls;
using Content.Shared.Administration;
using Robust.Client.AutoGenerated;
using Robust.Client.Graphics;
@@ -28,15 +29,14 @@ namespace Content.Client.Administration.UI.Tabs.PlayerTab
private bool _ascending = true;
private bool _showDisconnected;
public event Action<PlayerTabEntry, GUIBoundKeyEventArgs>? OnEntryKeyBindDown;
public event Action<GUIBoundKeyEventArgs, ListData>? OnEntryKeyBindDown;
public PlayerTab()
{
IoCManager.InjectDependencies(this);
_adminSystem = _entManager.System<AdminSystem>();
RobustXamlLoader.Load(this);
RefreshPlayerList(_adminSystem.PlayerList);
_adminSystem = _entManager.System<AdminSystem>();
_adminSystem.PlayerListChanged += RefreshPlayerList;
_adminSystem.OverlayEnabled += OverlayEnabled;
_adminSystem.OverlayDisabled += OverlayDisabled;
@@ -46,8 +46,18 @@ namespace Content.Client.Administration.UI.Tabs.PlayerTab
ListHeader.BackgroundColorPanel.PanelOverride = new StyleBoxFlat(_altColor);
ListHeader.OnHeaderClicked += HeaderClicked;
SearchList.SearchBar = SearchLineEdit;
SearchList.GenerateItem += GenerateButton;
SearchList.DataFilterCondition += DataFilterCondition;
SearchList.ItemKeyBindDown += (args, data) => OnEntryKeyBindDown?.Invoke(args, data);
RefreshPlayerList(_adminSystem.PlayerList);
}
#region Antag Overlay
private void OverlayEnabled()
{
OverlayButton.Pressed = true;
@@ -70,6 +80,8 @@ namespace Content.Client.Administration.UI.Tabs.PlayerTab
}
}
#endregion
private void ShowDisconnectedPressed(ButtonEventArgs args)
{
_showDisconnected = args.Button.Pressed;
@@ -92,45 +104,80 @@ namespace Content.Client.Administration.UI.Tabs.PlayerTab
}
}
#region ListContainer
private void RefreshPlayerList(IReadOnlyList<PlayerInfo> players)
{
foreach (var child in PlayerList.Children.ToArray())
{
if (child is PlayerTabEntry)
child.Dispose();
}
_players = players;
PlayerCount.Text = $"Players: {_playerMan.PlayerCount}";
PlayerCount.Text = Loc.GetString("player-tab-player-count", ("count", _playerMan.PlayerCount));
var sortedPlayers = new List<PlayerInfo>(players);
var filteredPlayers = players.Where(info => _showDisconnected || info.Connected).ToList();
var sortedPlayers = new List<PlayerInfo>(filteredPlayers);
sortedPlayers.Sort(Compare);
UpdateHeaderSymbols();
var useAltColor = false;
foreach (var player in sortedPlayers)
{
if (!_showDisconnected && !player.Connected)
continue;
var entry = new PlayerTabEntry(player.Username,
player.CharacterName,
player.IdentityName,
player.StartingJob,
player.Antag ? "YES" : "NO",
new StyleBoxFlat(useAltColor ? _altColor : _defaultColor),
player.Connected,
player.PlaytimeString);
entry.PlayerEntity = player.NetEntity;
entry.OnKeyBindDown += args => OnEntryKeyBindDown?.Invoke(entry, args);
entry.ToolTip = Loc.GetString("player-tab-entry-tooltip");
PlayerList.AddChild(entry);
useAltColor ^= true;
}
SearchList.PopulateList(sortedPlayers.Select(info => new PlayerListData(info,
$"{info.Username} {info.CharacterName} {info.IdentityName} {info.StartingJob}"))
.ToList());
}
private void GenerateButton(ListData data, ListContainerButton button)
{
if (data is not PlayerListData { Info: var player})
return;
var entry = new PlayerTabEntry(player, new StyleBoxFlat(button.Index % 2 == 0 ? _altColor : _defaultColor));
button.AddChild(entry);
button.ToolTip = $"{player.Username}, {player.CharacterName}, {player.IdentityName}, {player.StartingJob}";
}
/// <summary>
/// Determines whether <paramref name="filter"/> is contained in <paramref name="listData"/>.FilteringString.
/// If all characters are lowercase, the comparison ignores case.
/// If there is an uppercase character, the comparison is case sensitive.
/// </summary>
/// <param name="filter"></param>
/// <param name="listData"></param>
/// <returns>Whether <paramref name="filter"/> is contained in <paramref name="listData"/>.FilteringString.</returns>
private bool DataFilterCondition(string filter, ListData listData)
{
if (listData is not PlayerListData {Info: var info, FilteringString: var playerString})
return false;
if (!_showDisconnected && !info.Connected)
return false;
if (IsAllLower(filter))
{
if (!playerString.Contains(filter, StringComparison.CurrentCultureIgnoreCase))
return false;
}
else
{
if (!playerString.Contains(filter))
return false;
}
return true;
}
private bool IsAllLower(string input)
{
foreach (var c in input)
{
if (char.IsLetter(c) && !char.IsLower(c))
return false;
}
return true;
}
#endregion
#region Header
private void UpdateHeaderSymbols()
{
ListHeader.ResetHeaderText();
@@ -174,5 +221,9 @@ namespace Content.Client.Administration.UI.Tabs.PlayerTab
RefreshPlayerList(_adminSystem.PlayerList);
}
#endregion
}
public record PlayerListData(PlayerInfo Info, string FilteringString) : ListData;
}

View File

@@ -1,6 +1,6 @@
<ContainerButton xmlns="https://spacestation14.io"
xmlns:customControls="clr-namespace:Content.Client.Administration.UI.CustomControls">
<PanelContainer Name="BackgroundColorPanel"/>
<PanelContainer xmlns="https://spacestation14.io"
xmlns:customControls="clr-namespace:Content.Client.Administration.UI.CustomControls"
Name="BackgroundColorPanel">
<BoxContainer Orientation="Horizontal"
HorizontalExpand="True"
SeparationOverride="4">
@@ -15,17 +15,18 @@
ClipText="True"/>
<customControls:VSeparator/>
<Label Name="JobLabel"
SizeFlagsStretchRatio="3"
SizeFlagsStretchRatio="2"
HorizontalExpand="True"
ClipText="True"/>
<customControls:VSeparator/>
<Label Name="AntagonistLabel"
SizeFlagsStretchRatio="2"
SizeFlagsStretchRatio="1"
HorizontalExpand="True"
ClipText="True"/>
<customControls:VSeparator/>
<Label Name="OverallPlaytimeLabel"
SizeFlagsStretchRatio="2"
SizeFlagsStretchRatio="1"
HorizontalExpand="True"
ClipText="True"/>
</BoxContainer>
</ContainerButton>
</PanelContainer>

View File

@@ -1,4 +1,5 @@
using Robust.Client.AutoGenerated;
using Content.Shared.Administration;
using Robust.Client.AutoGenerated;
using Robust.Client.Graphics;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
@@ -6,23 +7,24 @@ using Robust.Client.UserInterface.XAML;
namespace Content.Client.Administration.UI.Tabs.PlayerTab;
[GenerateTypedNameReferences]
public sealed partial class PlayerTabEntry : ContainerButton
public sealed partial class PlayerTabEntry : PanelContainer
{
public NetEntity? PlayerEntity;
public PlayerTabEntry(string username, string character, string identity, string job, string antagonist, StyleBox styleBox, bool connected, string overallPlaytime)
public PlayerTabEntry(PlayerInfo player, StyleBoxFlat styleBoxFlat)
{
RobustXamlLoader.Load(this);
UsernameLabel.Text = username;
if (!connected)
UsernameLabel.Text = player.Username;
if (!player.Connected)
UsernameLabel.StyleClasses.Add("Disabled");
JobLabel.Text = job;
CharacterLabel.Text = character;
if (identity != character)
CharacterLabel.Text += $" [{identity}]";
AntagonistLabel.Text = antagonist;
BackgroundColorPanel.PanelOverride = styleBox;
OverallPlaytimeLabel.Text = overallPlaytime;
JobLabel.Text = player.StartingJob;
CharacterLabel.Text = player.CharacterName;
if (player.IdentityName != player.CharacterName)
CharacterLabel.Text += $" [{player.IdentityName}]";
AntagonistLabel.Text = Loc.GetString(player.Antag ? "player-tab-is-antag-yes" : "player-tab-is-antag-no");
BackgroundColorPanel.PanelOverride = styleBoxFlat;
OverallPlaytimeLabel.Text = player.PlaytimeString;
PlayerEntity = player.NetEntity;
}
}

View File

@@ -19,23 +19,25 @@
MouseFilter="Pass"/>
<cc:VSeparator/>
<Label Name="JobLabel"
SizeFlagsStretchRatio="3"
SizeFlagsStretchRatio="2"
HorizontalExpand="True"
ClipText="True"
Text="{Loc player-tab-job}"
MouseFilter="Pass"/>
<cc:VSeparator/>
<Label Name="AntagonistLabel"
SizeFlagsStretchRatio="2"
SizeFlagsStretchRatio="1"
HorizontalExpand="True"
ClipText="True"
Text="{Loc player-tab-antagonist}"
MouseFilter="Pass"/>
<cc:VSeparator/>
<Label Name="PlaytimeLabel"
SizeFlagsStretchRatio="2"
SizeFlagsStretchRatio="1"
HorizontalExpand="True"
ClipText="True"
Text="{Loc player-tab-playtime}"
MouseFilter="Pass"/>
MouseFilter="Pass"
ToolTip="{Loc player-tab-entry-tooltip}"/>
</BoxContainer>
</Control>

View File

@@ -5,9 +5,9 @@
MinSize="50 50">
<GridContainer
Columns="3">
<cc:CommandButton Command="startround" Text="{Loc Start Round}" />
<cc:CommandButton Command="endround" Text="{Loc End Round}" />
<cc:CommandButton Command="restartround" Text="{Loc Restart Round}" />
<cc:CommandButton Command="startround" Text="{Loc administration-ui-round-tab-start-round}" />
<cc:CommandButton Command="endround" Text="{Loc administration-ui-round-tab-end-round}" />
<cc:CommandButton Command="restartround" Text="{Loc administration-ui-round-tab-restart-round}" />
<cc:CommandButton Command="restartroundnow" Text="{Loc administration-ui-round-tab-restart-round-now}" />
</GridContainer>
</Control>

View File

@@ -91,7 +91,7 @@ public sealed class ClientAlertsSystem : AlertsSystem
ClearAlerts?.Invoke(this, EventArgs.Empty);
}
public void AlertClicked(AlertType alertType)
public void AlertClicked(ProtoId<AlertPrototype> alertType)
{
RaiseNetworkEvent(new ClickAlertEvent(alertType));
}

View File

@@ -0,0 +1,17 @@
using System.Numerics;
namespace Content.Client.Animations;
/// <summary>
/// Entities with this component tracks the user's world position every frame.
/// </summary>
[RegisterComponent]
public sealed partial class TrackUserComponent : Component
{
public EntityUid? User;
/// <summary>
/// Offset in the direction of the entity's rotation.
/// </summary>
public Vector2 Offset = Vector2.Zero;
}

View File

@@ -1,55 +0,0 @@
using Content.Shared.Antag;
using Content.Shared.Revolutionary.Components;
using Content.Shared.StatusIcon;
using Content.Shared.StatusIcon.Components;
using Content.Shared.Zombies;
using Robust.Client.Player;
using Robust.Shared.Prototypes;
namespace Content.Client.Antag;
/// <summary>
/// Used for assigning specified icons for antags.
/// </summary>
public sealed class AntagStatusIconSystem : SharedStatusIconSystem
{
[Dependency] private readonly IPrototypeManager _prototype = default!;
[Dependency] private readonly IPlayerManager _player = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<RevolutionaryComponent, GetStatusIconsEvent>(GetRevIcon);
SubscribeLocalEvent<ZombieComponent, GetStatusIconsEvent>(GetIcon);
SubscribeLocalEvent<HeadRevolutionaryComponent, GetStatusIconsEvent>(GetIcon);
SubscribeLocalEvent<InitialInfectedComponent, GetStatusIconsEvent>(GetIcon);
}
/// <summary>
/// Adds a Status Icon on an entity if the player is supposed to see it.
/// </summary>
private void GetIcon<T>(EntityUid uid, T comp, ref GetStatusIconsEvent ev) where T: IAntagStatusIconComponent
{
var ent = _player.LocalSession?.AttachedEntity;
var canEv = new CanDisplayStatusIconsEvent(ent);
RaiseLocalEvent(uid, ref canEv);
if (!canEv.Cancelled)
ev.StatusIcons.Add(_prototype.Index(comp.StatusIcon));
}
/// <summary>
/// Adds the Rev Icon on an entity if the player is supposed to see it. This additional function is needed to deal
/// with a special case where if someone is a head rev we only want to display the headrev icon.
/// </summary>
private void GetRevIcon(EntityUid uid, RevolutionaryComponent comp, ref GetStatusIconsEvent ev)
{
if (HasComp<HeadRevolutionaryComponent>(uid))
return;
GetIcon(uid, comp, ref ev);
}
}

View File

@@ -32,7 +32,7 @@ public sealed partial class FireVisualsComponent : Component
public float MaxLightRadius = 4f;
[DataField("lightColor")]
public Color LightColor = Color.Orange;
public Color LightColor = Color.FromSrgb( new Color(239, 181, 20)); //CP14 fire color in art style pallette
/// <summary>
/// Client side point-light entity. We use this instead of directly adding a light to

View File

@@ -1,4 +1,5 @@
using Content.Client.Atmos.Overlays;
using Content.Shared.Atmos;
using Content.Shared.Atmos.Components;
using Content.Shared.Atmos.EntitySystems;
using JetBrains.Annotations;
@@ -36,28 +37,38 @@ namespace Content.Client.Atmos.EntitySystems
private void OnHandleState(EntityUid gridUid, GasTileOverlayComponent comp, ref ComponentHandleState args)
{
if (args.Current is not GasTileOverlayState state)
return;
Dictionary<Vector2i, GasOverlayChunk> modifiedChunks;
// is this a delta or full state?
if (!state.FullState)
switch (args.Current)
{
foreach (var index in comp.Chunks.Keys)
// is this a delta or full state?
case GasTileOverlayDeltaState delta:
{
if (!state.AllChunks!.Contains(index))
comp.Chunks.Remove(index);
modifiedChunks = delta.ModifiedChunks;
foreach (var index in comp.Chunks.Keys)
{
if (!delta.AllChunks.Contains(index))
comp.Chunks.Remove(index);
}
break;
}
}
else
{
foreach (var index in comp.Chunks.Keys)
case GasTileOverlayState state:
{
if (!state.Chunks.ContainsKey(index))
comp.Chunks.Remove(index);
modifiedChunks = state.Chunks;
foreach (var index in comp.Chunks.Keys)
{
if (!state.Chunks.ContainsKey(index))
comp.Chunks.Remove(index);
}
break;
}
default:
return;
}
foreach (var (index, data) in state.Chunks)
foreach (var (index, data) in modifiedChunks)
{
comp.Chunks[index] = data;
}

View File

@@ -66,7 +66,7 @@ public sealed class AtmosDebugOverlay : Overlay
DrawData(msg, handle);
}
handle.SetTransform(Matrix3.Identity);
handle.SetTransform(Matrix3x2.Identity);
}
private void DrawData(DebugMessage msg,

View File

@@ -190,7 +190,7 @@ namespace Content.Client.Atmos.Overlays
var (_, _, worldMatrix, invMatrix) = gridXform.GetWorldPositionRotationMatrixWithInv();
state.drawHandle.SetTransform(worldMatrix);
var floatBounds = invMatrix.TransformBox(in state.WorldBounds).Enlarged(grid.TileSize);
var floatBounds = invMatrix.TransformBox(state.WorldBounds).Enlarged(grid.TileSize);
var localBounds = new Box2i(
(int) MathF.Floor(floatBounds.Left),
(int) MathF.Floor(floatBounds.Bottom),
@@ -249,7 +249,7 @@ namespace Content.Client.Atmos.Overlays
});
drawHandle.UseShader(null);
drawHandle.SetTransform(Matrix3.Identity);
drawHandle.SetTransform(Matrix3x2.Identity);
}
private void DrawMapOverlay(

View File

@@ -163,6 +163,26 @@ namespace Content.Client.Atmos.UI
parent.AddChild(panel);
panel.AddChild(dataContainer);
// Volume label
var volBox = new BoxContainer { Orientation = BoxContainer.LayoutOrientation.Horizontal };
volBox.AddChild(new Label
{
Text = Loc.GetString("gas-analyzer-window-volume-text")
});
volBox.AddChild(new Control
{
MinSize = new Vector2(10, 0),
HorizontalExpand = true
});
volBox.AddChild(new Label
{
Text = Loc.GetString("gas-analyzer-window-volume-val-text", ("volume", $"{gasMix.Volume:0.##}")),
Align = Label.AlignMode.Right,
HorizontalExpand = true
});
dataContainer.AddChild(volBox);
// Pressure label
var presBox = new BoxContainer { Orientation = BoxContainer.LayoutOrientation.Horizontal };

View File

@@ -0,0 +1,118 @@
using Content.Shared.Audio.Jukebox;
using Robust.Client.Audio;
using Robust.Client.Player;
using Robust.Shared.Audio.Components;
using Robust.Shared.Player;
using Robust.Shared.Prototypes;
namespace Content.Client.Audio.Jukebox;
public sealed class JukeboxBoundUserInterface : BoundUserInterface
{
[Dependency] private readonly IPrototypeManager _protoManager = default!;
[ViewVariables]
private JukeboxMenu? _menu;
public JukeboxBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey)
{
IoCManager.InjectDependencies(this);
}
protected override void Open()
{
base.Open();
_menu = new JukeboxMenu();
_menu.OnClose += Close;
_menu.OpenCentered();
_menu.OnPlayPressed += args =>
{
if (args)
{
SendMessage(new JukeboxPlayingMessage());
}
else
{
SendMessage(new JukeboxPauseMessage());
}
};
_menu.OnStopPressed += () =>
{
SendMessage(new JukeboxStopMessage());
};
_menu.OnSongSelected += SelectSong;
_menu.SetTime += SetTime;
PopulateMusic();
Reload();
}
/// <summary>
/// Reloads the attached menu if it exists.
/// </summary>
public void Reload()
{
if (_menu == null || !EntMan.TryGetComponent(Owner, out JukeboxComponent? jukebox))
return;
_menu.SetAudioStream(jukebox.AudioStream);
if (_protoManager.TryIndex(jukebox.SelectedSongId, out var songProto))
{
var length = EntMan.System<AudioSystem>().GetAudioLength(songProto.Path.Path.ToString());
_menu.SetSelectedSong(songProto.Name, (float) length.TotalSeconds);
}
else
{
_menu.SetSelectedSong(string.Empty, 0f);
}
}
public void PopulateMusic()
{
_menu?.Populate(_protoManager.EnumeratePrototypes<JukeboxPrototype>());
}
public void SelectSong(ProtoId<JukeboxPrototype> songid)
{
SendMessage(new JukeboxSelectedMessage(songid));
}
public void SetTime(float time)
{
var sentTime = time;
// You may be wondering, what the fuck is this
// Well we want to be able to predict the playback slider change, of which there are many ways to do it
// We can't just use SendPredictedMessage because it will reset every tick and audio updates every frame
// so it will go BRRRRT
// Using ping gets us close enough that it SHOULD, MOST OF THE TIME, fall within the 0.1 second tolerance
// that's still on engine so our playback position never gets corrected.
if (EntMan.TryGetComponent(Owner, out JukeboxComponent? jukebox) &&
EntMan.TryGetComponent(jukebox.AudioStream, out AudioComponent? audioComp))
{
audioComp.PlaybackPosition = time;
}
SendMessage(new JukeboxSetTimeMessage(sentTime));
}
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
if (!disposing)
return;
if (_menu == null)
return;
_menu.OnClose -= Close;
_menu.Dispose();
_menu = null;
}
}

View File

@@ -0,0 +1,18 @@
<ui:FancyWindow xmlns="https://spacestation14.io" xmlns:ui="clr-namespace:Content.Client.UserInterface.Controls"
SetSize="400 500" Title="{Loc 'jukebox-menu-title'}">
<BoxContainer Margin="4 0" Orientation="Vertical">
<ItemList Name="MusicList" SelectMode="Button" Margin="3 3 3 3"
HorizontalExpand="True" VerticalExpand="True" SizeFlagsStretchRatio="8"/>
<BoxContainer Orientation="Vertical">
<Label Name="SongSelected" Text="{Loc 'jukebox-menu-selectedsong'}" />
<Label Name="SongName" Text="---" />
<Slider Name="PlaybackSlider" HorizontalExpand="True" />
</BoxContainer>
<BoxContainer Orientation="Horizontal" HorizontalExpand="True"
VerticalExpand="False" SizeFlagsStretchRatio="1">
<Button Name="PlayButton" Text="{Loc 'jukebox-menu-buttonplay'}" />
<Button Name="StopButton" Text="{Loc 'jukebox-menu-buttonstop'}" />
<Label Name="DurationLabel" Text="00:00 / 00:00" HorizontalAlignment="Right" HorizontalExpand="True"/>
</BoxContainer>
</BoxContainer>
</ui:FancyWindow>

View File

@@ -0,0 +1,166 @@
using Content.Shared.Audio.Jukebox;
using Robust.Client.Audio;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
using Robust.Shared.Audio.Components;
using Robust.Shared.Input;
using Robust.Shared.Prototypes;
using Robust.Shared.Timing;
using FancyWindow = Content.Client.UserInterface.Controls.FancyWindow;
namespace Content.Client.Audio.Jukebox;
[GenerateTypedNameReferences]
public sealed partial class JukeboxMenu : FancyWindow
{
[Dependency] private readonly IEntityManager _entManager = default!;
private AudioSystem _audioSystem;
/// <summary>
/// Are we currently 'playing' or paused for the play / pause button.
/// </summary>
private bool _playState;
/// <summary>
/// True if playing, false if paused.
/// </summary>
public event Action<bool>? OnPlayPressed;
public event Action? OnStopPressed;
public event Action<ProtoId<JukeboxPrototype>>? OnSongSelected;
public event Action<float>? SetTime;
private EntityUid? _audio;
private float _lockTimer;
public JukeboxMenu()
{
RobustXamlLoader.Load(this);
IoCManager.InjectDependencies(this);
_audioSystem = _entManager.System<AudioSystem>();
MusicList.OnItemSelected += args =>
{
var entry = MusicList[args.ItemIndex];
if (entry.Metadata is not string juke)
return;
OnSongSelected?.Invoke(juke);
};
PlayButton.OnPressed += args =>
{
OnPlayPressed?.Invoke(!_playState);
};
StopButton.OnPressed += args =>
{
OnStopPressed?.Invoke();
};
PlaybackSlider.OnReleased += PlaybackSliderKeyUp;
SetPlayPauseButton(_audioSystem.IsPlaying(_audio), force: true);
}
public JukeboxMenu(AudioSystem audioSystem)
{
_audioSystem = audioSystem;
}
public void SetAudioStream(EntityUid? audio)
{
_audio = audio;
}
private void PlaybackSliderKeyUp(Slider args)
{
SetTime?.Invoke(PlaybackSlider.Value);
_lockTimer = 0.5f;
}
/// <summary>
/// Re-populates the list of jukebox prototypes available.
/// </summary>
public void Populate(IEnumerable<JukeboxPrototype> jukeboxProtos)
{
MusicList.Clear();
foreach (var entry in jukeboxProtos)
{
MusicList.AddItem(entry.Name, metadata: entry.ID);
}
}
public void SetPlayPauseButton(bool playing, bool force = false)
{
if (_playState == playing && !force)
return;
_playState = playing;
if (playing)
{
PlayButton.Text = Loc.GetString("jukebox-menu-buttonpause");
return;
}
PlayButton.Text = Loc.GetString("jukebox-menu-buttonplay");
}
public void SetSelectedSong(string name, float length)
{
SetSelectedSongText(name);
PlaybackSlider.MaxValue = length;
PlaybackSlider.SetValueWithoutEvent(0);
}
protected override void FrameUpdate(FrameEventArgs args)
{
base.FrameUpdate(args);
if (_lockTimer > 0f)
{
_lockTimer -= args.DeltaSeconds;
}
PlaybackSlider.Disabled = _lockTimer > 0f;
if (_entManager.TryGetComponent(_audio, out AudioComponent? audio))
{
DurationLabel.Text = $@"{TimeSpan.FromSeconds(audio.PlaybackPosition):mm\:ss} / {_audioSystem.GetAudioLength(audio.FileName):mm\:ss}";
}
else
{
DurationLabel.Text = $"00:00 / 00:00";
}
if (PlaybackSlider.Grabbed)
return;
if (audio != null || _entManager.TryGetComponent(_audio, out audio))
{
PlaybackSlider.SetValueWithoutEvent(audio.PlaybackPosition);
}
else
{
PlaybackSlider.SetValueWithoutEvent(0f);
}
SetPlayPauseButton(_audioSystem.IsPlaying(_audio, audio));
}
public void SetSelectedSongText(string? text)
{
if (!string.IsNullOrEmpty(text))
{
SongName.Text = text;
}
else
{
SongName.Text = "---";
}
}
}

View File

@@ -0,0 +1,145 @@
using Content.Shared.Audio.Jukebox;
using Robust.Client.Animations;
using Robust.Client.GameObjects;
using Robust.Shared.Prototypes;
namespace Content.Client.Audio.Jukebox;
public sealed class JukeboxSystem : SharedJukeboxSystem
{
[Dependency] private readonly IPrototypeManager _protoManager = default!;
[Dependency] private readonly AnimationPlayerSystem _animationPlayer = default!;
[Dependency] private readonly SharedAppearanceSystem _appearanceSystem = default!;
[Dependency] private readonly SharedUserInterfaceSystem _uiSystem = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<JukeboxComponent, AppearanceChangeEvent>(OnAppearanceChange);
SubscribeLocalEvent<JukeboxComponent, AnimationCompletedEvent>(OnAnimationCompleted);
SubscribeLocalEvent<JukeboxComponent, AfterAutoHandleStateEvent>(OnJukeboxAfterState);
_protoManager.PrototypesReloaded += OnProtoReload;
}
public override void Shutdown()
{
base.Shutdown();
_protoManager.PrototypesReloaded -= OnProtoReload;
}
private void OnProtoReload(PrototypesReloadedEventArgs obj)
{
if (!obj.WasModified<JukeboxPrototype>())
return;
var query = AllEntityQuery<JukeboxComponent, UserInterfaceComponent>();
while (query.MoveNext(out var uid, out _, out var ui))
{
if (!_uiSystem.TryGetOpenUi<JukeboxBoundUserInterface>((uid, ui), JukeboxUiKey.Key, out var bui))
continue;
bui.PopulateMusic();
}
}
private void OnJukeboxAfterState(Entity<JukeboxComponent> ent, ref AfterAutoHandleStateEvent args)
{
if (!_uiSystem.TryGetOpenUi<JukeboxBoundUserInterface>(ent.Owner, JukeboxUiKey.Key, out var bui))
return;
bui.Reload();
}
private void OnAnimationCompleted(EntityUid uid, JukeboxComponent component, AnimationCompletedEvent args)
{
if (!TryComp<SpriteComponent>(uid, out var sprite))
return;
if (!TryComp<AppearanceComponent>(uid, out var appearance) ||
!_appearanceSystem.TryGetData<JukeboxVisualState>(uid, JukeboxVisuals.VisualState, out var visualState, appearance))
{
visualState = JukeboxVisualState.On;
}
UpdateAppearance(uid, visualState, component, sprite);
}
private void OnAppearanceChange(EntityUid uid, JukeboxComponent component, ref AppearanceChangeEvent args)
{
if (args.Sprite == null)
return;
if (!args.AppearanceData.TryGetValue(JukeboxVisuals.VisualState, out var visualStateObject) ||
visualStateObject is not JukeboxVisualState visualState)
{
visualState = JukeboxVisualState.On;
}
UpdateAppearance(uid, visualState, component, args.Sprite);
}
private void UpdateAppearance(EntityUid uid, JukeboxVisualState visualState, JukeboxComponent component, SpriteComponent sprite)
{
SetLayerState(JukeboxVisualLayers.Base, component.OffState, sprite);
switch (visualState)
{
case JukeboxVisualState.On:
SetLayerState(JukeboxVisualLayers.Base, component.OnState, sprite);
break;
case JukeboxVisualState.Off:
SetLayerState(JukeboxVisualLayers.Base, component.OffState, sprite);
break;
case JukeboxVisualState.Select:
PlayAnimation(uid, JukeboxVisualLayers.Base, component.SelectState, 1.0f, sprite);
break;
}
}
private void PlayAnimation(EntityUid uid, JukeboxVisualLayers layer, string? state, float animationTime, SpriteComponent sprite)
{
if (string.IsNullOrEmpty(state))
return;
if (!_animationPlayer.HasRunningAnimation(uid, state))
{
var animation = GetAnimation(layer, state, animationTime);
sprite.LayerSetVisible(layer, true);
_animationPlayer.Play(uid, animation, state);
}
}
private static Animation GetAnimation(JukeboxVisualLayers layer, string state, float animationTime)
{
return new Animation
{
Length = TimeSpan.FromSeconds(animationTime),
AnimationTracks =
{
new AnimationTrackSpriteFlick
{
LayerKey = layer,
KeyFrames =
{
new AnimationTrackSpriteFlick.KeyFrame(state, 0f)
}
}
}
};
}
private void SetLayerState(JukeboxVisualLayers layer, string? state, SpriteComponent sprite)
{
if (string.IsNullOrEmpty(state))
return;
sprite.LayerSetVisible(layer, true);
sprite.LayerSetAutoAnimated(layer, true);
sprite.LayerSetState(layer, state);
}
}

View File

@@ -1,8 +0,0 @@
using Content.Server.Bed.Sleep;
namespace Content.Client.Bed;
public sealed class SleepingSystem : SharedSleepingSystem
{
}

View File

@@ -3,6 +3,7 @@ using Content.Shared.Buckle;
using Content.Shared.Buckle.Components;
using Content.Shared.Rotation;
using Robust.Client.GameObjects;
using Robust.Shared.GameStates;
namespace Content.Client.Buckle;
@@ -14,40 +15,63 @@ internal sealed class BuckleSystem : SharedBuckleSystem
{
base.Initialize();
SubscribeLocalEvent<BuckleComponent, AfterAutoHandleStateEvent>(OnBuckleAfterAutoHandleState);
SubscribeLocalEvent<BuckleComponent, ComponentHandleState>(OnHandleState);
SubscribeLocalEvent<BuckleComponent, AppearanceChangeEvent>(OnAppearanceChange);
SubscribeLocalEvent<StrapComponent, MoveEvent>(OnStrapMoveEvent);
}
private void OnBuckleAfterAutoHandleState(EntityUid uid, BuckleComponent component, ref AfterAutoHandleStateEvent args)
private void OnStrapMoveEvent(EntityUid uid, StrapComponent component, ref MoveEvent args)
{
ActionBlocker.UpdateCanMove(uid);
// I'm moving this to the client-side system, but for the sake of posterity let's keep this comment:
// > This is mega cursed. Please somebody save me from Mr Buckle's wild ride
if (!TryComp<SpriteComponent>(uid, out var ownerSprite))
// The nice thing is its still true, this is quite cursed, though maybe not omega cursed anymore.
// This code is garbage, it doesn't work with rotated viewports. I need to finally get around to reworking
// sprite rendering for entity layers & direction dependent sorting.
if (args.NewRotation == args.OldRotation)
return;
// Adjust draw depth when the chair faces north so that the seat back is drawn over the player.
// Reset the draw depth when rotated in any other direction.
// TODO when ECSing, make this a visualizer
// This code was written before rotatable viewports were introduced, so hard-coding Direction.North
// and comparing it against LocalRotation now breaks this in other rotations. This is a FIXME, but
// better to get it working for most people before we look at a more permanent solution.
if (component is { Buckled: true, LastEntityBuckledTo: { } } &&
Transform(component.LastEntityBuckledTo.Value).LocalRotation.GetCardinalDir() == Direction.North &&
TryComp<SpriteComponent>(component.LastEntityBuckledTo, out var buckledSprite))
{
component.OriginalDrawDepth ??= ownerSprite.DrawDepth;
ownerSprite.DrawDepth = buckledSprite.DrawDepth - 1;
if (!TryComp<SpriteComponent>(uid, out var strapSprite))
return;
}
// If here, we're not turning north and should restore the saved draw depth.
if (component.OriginalDrawDepth.HasValue)
var isNorth = Transform(uid).LocalRotation.GetCardinalDir() == Direction.North;
foreach (var buckledEntity in component.BuckledEntities)
{
ownerSprite.DrawDepth = component.OriginalDrawDepth.Value;
component.OriginalDrawDepth = null;
if (!TryComp<BuckleComponent>(buckledEntity, out var buckle))
continue;
if (!TryComp<SpriteComponent>(buckledEntity, out var buckledSprite))
continue;
if (isNorth)
{
buckle.OriginalDrawDepth ??= buckledSprite.DrawDepth;
buckledSprite.DrawDepth = strapSprite.DrawDepth - 1;
}
else if (buckle.OriginalDrawDepth.HasValue)
{
buckledSprite.DrawDepth = buckle.OriginalDrawDepth.Value;
buckle.OriginalDrawDepth = null;
}
}
}
private void OnHandleState(Entity<BuckleComponent> ent, ref ComponentHandleState args)
{
if (args.Current is not BuckleState state)
return;
ent.Comp.DontCollide = state.DontCollide;
ent.Comp.BuckleTime = state.BuckleTime;
var strapUid = EnsureEntity<BuckleComponent>(state.BuckledTo, ent);
SetBuckledTo(ent, strapUid == null ? null : new (strapUid.Value, null));
var (uid, component) = ent;
}
private void OnAppearanceChange(EntityUid uid, BuckleComponent component, ref AppearanceChangeEvent args)
{
if (!TryComp<RotationVisualsComponent>(uid, out var rotVisuals))

View File

@@ -1,27 +0,0 @@
using Content.Shared.Cabinet;
using Robust.Client.GameObjects;
namespace Content.Client.Cabinet;
public sealed class ItemCabinetSystem : SharedItemCabinetSystem
{
protected override void UpdateAppearance(EntityUid uid, ItemCabinetComponent? cabinet = null)
{
if (!Resolve(uid, ref cabinet))
return;
if (!TryComp<SpriteComponent>(uid, out var sprite))
return;
var state = cabinet.Opened ? cabinet.OpenState : cabinet.ClosedState;
if (state != null)
sprite.LayerSetState(ItemCabinetVisualLayers.Door, state);
sprite.LayerSetVisible(ItemCabinetVisualLayers.ContainsItem, cabinet.CabinetSlot.HasItem);
}
}
public enum ItemCabinetVisualLayers
{
Door,
ContainsItem
}

View File

@@ -1,4 +1,5 @@
using System.Numerics;
using Content.Shared.Body.Components;
using Content.Shared.CardboardBox;
using Content.Shared.CardboardBox.Components;
using Content.Shared.Examine;
@@ -13,9 +14,14 @@ public sealed class CardboardBoxSystem : SharedCardboardBoxSystem
[Dependency] private readonly TransformSystem _transform = default!;
[Dependency] private readonly ExamineSystemShared _examine = default!;
private EntityQuery<BodyComponent> _bodyQuery;
public override void Initialize()
{
base.Initialize();
_bodyQuery = GetEntityQuery<BodyComponent>();
SubscribeNetworkEvent<PlayBoxEffectMessage>(OnBoxEffect);
}
@@ -59,6 +65,10 @@ public sealed class CardboardBoxSystem : SharedCardboardBoxSystem
if (!_examine.InRangeUnOccluded(sourcePos, mapPos, box.Distance, null))
continue;
// no effect for anything too exotic
if (!_bodyQuery.HasComp(mob))
continue;
var ent = Spawn(box.Effect, mapPos);
if (!xformQuery.TryGetComponent(ent, out var entTransform) || !TryComp<SpriteComponent>(ent, out var sprite))

View File

@@ -87,14 +87,12 @@ namespace Content.Client.Changelog
if (!tab.AdminOnly || isAdmin)
{
Tabs.SetTabVisible(i, true);
tab.Visible = true;
visibleTabs++;
firstVisible ??= i;
}
else
{
Tabs.SetTabVisible(i, false);
tab.Visible = false;
}
}

View File

@@ -24,8 +24,11 @@ public sealed class ChasmFallingVisualsSystem : EntitySystem
private void OnComponentInit(EntityUid uid, ChasmFallingComponent component, ComponentInit args)
{
if (!TryComp<SpriteComponent>(uid, out var sprite))
if (!TryComp<SpriteComponent>(uid, out var sprite) ||
TerminatingOrDeleted(uid))
{
return;
}
component.OriginalScale = sprite.Scale;

View File

@@ -65,14 +65,13 @@ public sealed class TypingIndicatorSystem : SharedTypingIndicatorSystem
{
if (_isClientTyping == isClientTyping)
return;
_isClientTyping = isClientTyping;
// check if player controls any pawn
// check if player controls any entity.
if (_playerManager.LocalEntity == null)
return;
// send a networked event to server
RaiseNetworkEvent(new TypingChangedEvent(isClientTyping));
_isClientTyping = isClientTyping;
RaisePredictiveEvent(new TypingChangedEvent(isClientTyping));
}
private void OnShowTypingChanged(bool showTyping)

View File

@@ -0,0 +1,31 @@
<ui:RadialMenu xmlns="https://spacestation14.io"
xmlns:ui="clr-namespace:Content.Client.UserInterface.Controls"
BackButtonStyleClass="RadialMenuBackButton"
CloseButtonStyleClass="RadialMenuCloseButton"
VerticalExpand="True"
HorizontalExpand="True"
MinSize="450 450">
<!-- Main -->
<ui:RadialContainer Name="Main" VerticalExpand="True" HorizontalExpand="True" Radius="64" ReserveSpaceForHiddenChildren="False">
<ui:RadialMenuTextureButton StyleClasses="RadialMenuButton" SetSize="64 64" ToolTip="{Loc 'emote-menu-category-general'}" TargetLayer="General" Visible="False">
<TextureRect VerticalAlignment="Center" HorizontalAlignment="Center" TextureScale="2 2" TexturePath="/Textures/Clothing/Head/Soft/mimesoft.rsi/icon.png"/>
</ui:RadialMenuTextureButton>
<ui:RadialMenuTextureButton StyleClasses="RadialMenuButton" SetSize="64 64" ToolTip="{Loc 'emote-menu-category-vocal'}" TargetLayer="Vocal" Visible="False">
<TextureRect VerticalAlignment="Center" HorizontalAlignment="Center" TextureScale="2 2" TexturePath="/Textures/Interface/Emotes/vocal.png"/>
</ui:RadialMenuTextureButton>
<ui:RadialMenuTextureButton StyleClasses="RadialMenuButton" SetSize="64 64" ToolTip="{Loc 'emote-menu-category-hands'}" TargetLayer="Hands" Visible="False">
<TextureRect VerticalAlignment="Center" HorizontalAlignment="Center" TextureScale="2 2" TexturePath="/Textures/Clothing/Hands/Gloves/latex.rsi/icon.png"/>
</ui:RadialMenuTextureButton>
</ui:RadialContainer>
<!-- General -->
<ui:RadialContainer Name="General" VerticalExpand="True" HorizontalExpand="True" Radius="64"/>
<!-- Vocal -->
<ui:RadialContainer Name="Vocal" VerticalExpand="True" HorizontalExpand="True" Radius="64"/>
<!-- Hands -->
<ui:RadialContainer Name="Hands" VerticalExpand="True" HorizontalExpand="True" Radius="64"/>
</ui:RadialMenu>

View File

@@ -0,0 +1,115 @@
using System.Numerics;
using Content.Client.UserInterface.Controls;
using Content.Shared.Chat.Prototypes;
using Content.Shared.Speech;
using Content.Shared.Whitelist;
using Robust.Client.AutoGenerated;
using Robust.Client.GameObjects;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
using Robust.Shared.Player;
using Robust.Shared.Prototypes;
namespace Content.Client.Chat.UI;
[GenerateTypedNameReferences]
public sealed partial class EmotesMenu : RadialMenu
{
[Dependency] private readonly EntityManager _entManager = default!;
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
[Dependency] private readonly ISharedPlayerManager _playerManager = default!;
private readonly SpriteSystem _spriteSystem;
private readonly EntityWhitelistSystem _whitelistSystem;
public event Action<ProtoId<EmotePrototype>>? OnPlayEmote;
public EmotesMenu()
{
IoCManager.InjectDependencies(this);
RobustXamlLoader.Load(this);
_spriteSystem = _entManager.System<SpriteSystem>();
_whitelistSystem = _entManager.System<EntityWhitelistSystem>();
var main = FindControl<RadialContainer>("Main");
var emotes = _prototypeManager.EnumeratePrototypes<EmotePrototype>();
foreach (var emote in emotes)
{
var player = _playerManager.LocalSession?.AttachedEntity;
if (emote.Category == EmoteCategory.Invalid ||
emote.ChatTriggers.Count == 0 ||
!(player.HasValue && _whitelistSystem.IsWhitelistPassOrNull(emote.Whitelist, player.Value)) ||
_whitelistSystem.IsBlacklistPass(emote.Blacklist, player.Value))
continue;
if (!emote.Available &&
_entManager.TryGetComponent<SpeechComponent>(player.Value, out var speech) &&
!speech.AllowedEmotes.Contains(emote.ID))
continue;
var parent = FindControl<RadialContainer>(emote.Category.ToString());
var button = new EmoteMenuButton
{
StyleClasses = { "RadialMenuButton" },
SetSize = new Vector2(64f, 64f),
ToolTip = Loc.GetString(emote.Name),
ProtoId = emote.ID,
};
var tex = new TextureRect
{
VerticalAlignment = VAlignment.Center,
HorizontalAlignment = HAlignment.Center,
Texture = _spriteSystem.Frame0(emote.Icon),
TextureScale = new Vector2(2f, 2f),
};
button.AddChild(tex);
parent.AddChild(button);
foreach (var child in main.Children)
{
if (child is not RadialMenuTextureButton castChild)
continue;
if (castChild.TargetLayer == emote.Category.ToString())
{
castChild.Visible = true;
break;
}
}
}
// Set up menu actions
foreach (var child in Children)
{
if (child is not RadialContainer container)
continue;
AddEmoteClickAction(container);
}
}
private void AddEmoteClickAction(RadialContainer container)
{
foreach (var child in container.Children)
{
if (child is not EmoteMenuButton castChild)
continue;
castChild.OnButtonUp += _ =>
{
OnPlayEmote?.Invoke(castChild.ProtoId);
Close();
};
}
}
}
public sealed class EmoteMenuButton : RadialMenuTextureButton
{
public ProtoId<EmotePrototype> ProtoId { get; set; }
}

View File

@@ -0,0 +1,22 @@
using Content.Client.Chemistry.EntitySystems;
using Content.Client.Chemistry.UI;
namespace Content.Client.Chemistry.Components;
/// <summary>
/// Exposes a solution container's contents via a basic item status control.
/// </summary>
/// <remarks>
/// Shows the solution volume, max volume, and transfer amount.
/// </remarks>
/// <seealso cref="SolutionItemStatusSystem"/>
/// <seealso cref="SolutionStatusControl"/>
[RegisterComponent]
public sealed partial class SolutionItemStatusComponent : Component
{
/// <summary>
/// The ID of the solution that will be shown on the item status control.
/// </summary>
[DataField, ViewVariables(VVAccess.ReadWrite)]
public string Solution = "default";
}

View File

@@ -0,0 +1,22 @@
using Content.Client.Chemistry.Components;
using Content.Client.Chemistry.UI;
using Content.Client.Items;
using Content.Shared.Chemistry.EntitySystems;
namespace Content.Client.Chemistry.EntitySystems;
/// <summary>
/// Wires up item status logic for <see cref="SolutionItemStatusComponent"/>.
/// </summary>
/// <seealso cref="SolutionStatusControl"/>
public sealed class SolutionItemStatusSystem : EntitySystem
{
[Dependency] private readonly SharedSolutionContainerSystem _solutionContainerSystem = default!;
public override void Initialize()
{
base.Initialize();
Subs.ItemStatus<SolutionItemStatusComponent>(
entity => new SolutionStatusControl(entity, EntityManager, _solutionContainerSystem));
}
}

View File

@@ -0,0 +1,119 @@
using System;
using Robust.Client.Graphics;
using Robust.Client.UserInterface.Controls;
namespace Content.Client.Chemistry.UI;
/// <summary>
/// Creates a grid of buttons given a comma-seperated list of Text
/// </summary>
public sealed class ButtonGrid : GridContainer
{
private string _buttonList = "";
/// <summary>
/// A comma-seperated list of text to use for each button. These will be inserted sequentially.
/// </summary>
public string ButtonList
{
get => _buttonList;
set
{
_buttonList = value;
Update();
}
}
public bool RadioGroup { get; set; } = false;
private string? _selected;
/// <summary>
/// Which button is currently selected. Only matters when <see cref="RadioGroup"/> is true.
/// </summary>
public string? Selected
{
get => _selected;
set
{
_selected = value;
Update();
}
}
public Action<string>? OnButtonPressed;
/// <summary>
/// <see cref="GridContainer.Columns"/>
/// </summary>
public new int Columns
{
get => base.Columns;
set
{
base.Columns = value;
Update();
}
}
/// <summary>
/// <see cref="GridContainer.Rows"/>
/// </summary>
public new int Rows
{
get => base.Rows;
set
{
base.Rows = value;
Update();
}
}
private void Update()
{
if (ButtonList == "")
return;
this.Children.Clear();
var i = 0;
var list = ButtonList.Split(",");
var group = new ButtonGroup();
foreach (var button in list)
{
var btn = new Button();
btn.Text = button;
btn.OnPressed += _ =>
{
if (RadioGroup)
btn.Pressed = true;
Selected = button;
OnButtonPressed?.Invoke(button);
};
if (button == Selected)
btn.Pressed = true;
var sep = HSeparationOverride ?? 0;
// ReSharper disable once PossibleLossOfFraction
// btn.SetWidth = (this.PixelWidth - sep * (Columns - 1)) / 3;
btn.Group = group;
var row = i / Columns;
var col = i % Columns;
var last = i == list.Length - 1;
var lastCol = i == Columns - 1;
var lastRow = row == list.Length / Columns - 1;
if (row == 0 && (lastCol || last))
btn.AddStyleClass("OpenLeft");
else if (col == 0 && lastRow)
btn.AddStyleClass("OpenRight");
else
btn.AddStyleClass("OpenBoth");
this.Children.Add(btn);
i++;
}
}
}

View File

@@ -32,7 +32,7 @@ public sealed class InjectorStatusControl : Control
{
base.FrameUpdate(args);
if (!_solutionContainers.TryGetSolution(_parent.Owner, InjectorComponent.SolutionName, out _, out var solution))
if (!_solutionContainers.TryGetSolution(_parent.Owner, _parent.Comp.SolutionName, out _, out var solution))
return;
// only updates the UI if any of the details are different than they previously were

View File

@@ -0,0 +1,36 @@
<Control xmlns="https://spacestation14.io" HorizontalExpand="True">
<BoxContainer Name="MainContainer"
Orientation="Horizontal"
HorizontalExpand="True">
<PanelContainer Name="ColorPanel"
VerticalExpand="True"
SetWidth="7"
Margin="0 1 0 0" />
<Button Name="MainButton"
HorizontalExpand="True"
VerticalExpand="True"
StyleClasses="ButtonSquare"
Margin="-1 0 0 0">
<BoxContainer Orientation="Horizontal" HorizontalExpand="True">
<BoxContainer Orientation="Vertical"
VerticalExpand="True"
HorizontalExpand="True"
Margin="-5 0 0 0">
<Label Name="ReagentNameLabel" />
<Label Name="FillLabel"
StyleClasses="LabelSubText"
Margin="0 -5 0 0" />
</BoxContainer>
</BoxContainer>
</Button>
<Button Name="EjectButton"
StyleClasses="OpenLeft"
VerticalExpand="True"
SetWidth="20">
<Label Name="EjectButtonIcon"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Margin="-7 -4 0 0" />
</Button>
</BoxContainer>
</Control>

View File

@@ -0,0 +1,32 @@
using Content.Shared.Chemistry;
using Robust.Client.AutoGenerated;
using Robust.Client.Graphics;
using Robust.Client.UserInterface;
using Robust.Client.UserInterface.XAML;
namespace Content.Client.Chemistry.UI;
[GenerateTypedNameReferences]
public sealed partial class ReagentCardControl : Control
{
public string StorageSlotId { get; }
public Action<string>? OnPressed;
public Action<string>? OnEjectButtonPressed;
public ReagentCardControl(ReagentInventoryItem item)
{
RobustXamlLoader.Load(this);
StorageSlotId = item.StorageSlotId;
ColorPanel.PanelOverride = new StyleBoxFlat { BackgroundColor = item.ReagentColor };
ReagentNameLabel.Text = item.ReagentLabel;
FillLabel.Text = Loc.GetString("reagent-dispenser-window-quantity-label-text", ("quantity", item.Quantity));;
EjectButtonIcon.Text = Loc.GetString("reagent-dispenser-window-eject-container-button");
if (item.Quantity == 0.0)
MainButton.Disabled = true;
MainButton.OnPressed += args => OnPressed?.Invoke(StorageSlotId);
EjectButton.OnPressed += args => OnEjectButtonPressed?.Invoke(StorageSlotId);
}
}

View File

@@ -1,3 +1,4 @@
using Content.Client.Guidebook.Components;
using Content.Shared.Chemistry;
using Content.Shared.Containers.ItemSlots;
using JetBrains.Annotations;
@@ -34,6 +35,7 @@ namespace Content.Client.Chemistry.UI
_window = new()
{
Title = EntMan.GetComponent<MetaDataComponent>(Owner).EntityName,
HelpGuidebookIds = EntMan.GetComponent<GuideHelpComponent>(Owner).Guides
};
_window.OpenCentered();
@@ -42,38 +44,11 @@ namespace Content.Client.Chemistry.UI
// Setup static button actions.
_window.EjectButton.OnPressed += _ => SendMessage(new ItemSlotButtonPressedEvent(SharedReagentDispenser.OutputSlotName));
_window.ClearButton.OnPressed += _ => SendMessage(new ReagentDispenserClearContainerSolutionMessage());
_window.DispenseButton1.OnPressed += _ => SendMessage(new ReagentDispenserSetDispenseAmountMessage(ReagentDispenserDispenseAmount.U1));
_window.DispenseButton5.OnPressed += _ => SendMessage(new ReagentDispenserSetDispenseAmountMessage(ReagentDispenserDispenseAmount.U5));
_window.DispenseButton10.OnPressed += _ => SendMessage(new ReagentDispenserSetDispenseAmountMessage(ReagentDispenserDispenseAmount.U10));
_window.DispenseButton15.OnPressed += _ => SendMessage(new ReagentDispenserSetDispenseAmountMessage(ReagentDispenserDispenseAmount.U15));
_window.DispenseButton20.OnPressed += _ => SendMessage(new ReagentDispenserSetDispenseAmountMessage(ReagentDispenserDispenseAmount.U20));
_window.DispenseButton25.OnPressed += _ => SendMessage(new ReagentDispenserSetDispenseAmountMessage(ReagentDispenserDispenseAmount.U25));
_window.DispenseButton30.OnPressed += _ => SendMessage(new ReagentDispenserSetDispenseAmountMessage(ReagentDispenserDispenseAmount.U30));
_window.DispenseButton50.OnPressed += _ => SendMessage(new ReagentDispenserSetDispenseAmountMessage(ReagentDispenserDispenseAmount.U50));
_window.DispenseButton100.OnPressed += _ => SendMessage(new ReagentDispenserSetDispenseAmountMessage(ReagentDispenserDispenseAmount.U100));
// Setup reagent button actions.
_window.OnDispenseReagentButtonPressed += (args, button) => SendMessage(new ReagentDispenserDispenseReagentMessage(button.ReagentId));
_window.OnDispenseReagentButtonMouseEntered += (args, button) =>
{
if (_lastState is not null)
_window.UpdateContainerInfo(_lastState);
};
_window.OnDispenseReagentButtonMouseExited += (args, button) =>
{
if (_lastState is not null)
_window.UpdateContainerInfo(_lastState);
};
_window.AmountGrid.OnButtonPressed += s => SendMessage(new ReagentDispenserSetDispenseAmountMessage(s));
_window.OnEjectJugButtonPressed += (args, button) => SendMessage(new ItemSlotButtonPressedEvent(button.ReagentId));
_window.OnEjectJugButtonMouseEntered += (args, button) => {
if (_lastState is not null)
_window.UpdateContainerInfo(_lastState);
};
_window.OnEjectJugButtonMouseExited += (args, button) => {
if (_lastState is not null)
_window.UpdateContainerInfo(_lastState);
};
_window.OnDispenseReagentButtonPressed += (id) => SendMessage(new ReagentDispenserDispenseReagentMessage(id));
_window.OnEjectJugButtonPressed += (id) => SendMessage(new ItemSlotButtonPressedEvent(id));
}
/// <summary>

View File

@@ -1,53 +1,78 @@
<DefaultWindow xmlns="https://spacestation14.io"
xmlns:gfx="clr-namespace:Robust.Client.Graphics;assembly=Robust.Client"
Title="{Loc 'reagent-dispenser-bound-user-interface-title'}"
MinSize="680 450">
<BoxContainer Orientation="Vertical">
<BoxContainer Orientation="Horizontal">
<Label Text="{Loc 'reagent-dispenser-window-amount-to-dispense-label'}"/>
<Control MinSize="20 0"></Control>
<Button Name="DispenseButton1" Access="Public" Text="1" StyleClasses="OpenRight"/>
<Button Name="DispenseButton5" Access="Public" Text="5" StyleClasses="OpenBoth"/>
<Button Name="DispenseButton10" Access="Public" Text="10" StyleClasses="OpenBoth"/>
<Button Name="DispenseButton15" Access="Public" Text="15" StyleClasses="OpenBoth"/>
<Button Name="DispenseButton20" Access="Public" Text="20" StyleClasses="OpenBoth"/>
<Button Name="DispenseButton25" Access="Public" Text="25" StyleClasses="OpenBoth"/>
<Button Name="DispenseButton30" Access="Public" Text="30" StyleClasses="OpenBoth"/>
<Button Name="DispenseButton50" Access="Public" Text="50" StyleClasses="OpenBoth"/>
<Button Name="DispenseButton100" Access="Public" Text="100" StyleClasses="OpenLeft"/>
<controls:FancyWindow xmlns="https://spacestation14.io"
xmlns:gfx="clr-namespace:Robust.Client.Graphics;assembly=Robust.Client"
xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls"
xmlns:customControls="clr-namespace:Content.Client.Administration.UI.CustomControls"
xmlns:ui="clr-namespace:Content.Client.Chemistry.UI"
Title="{Loc 'reagent-dispenser-bound-user-interface-title'}"
MinSize="600 300"
SetSize="800 500">
<BoxContainer Orientation="Horizontal">
<BoxContainer Orientation="Vertical" MinWidth="170">
<Label Text="{Loc 'reagent-dispenser-window-amount-to-dispense-label'}" HorizontalAlignment="Center" />
<ui:ButtonGrid
Name="AmountGrid"
Access="Public"
Columns="3"
HorizontalAlignment="Center"
Margin="5"
ButtonList="1,5,10,15,20,25,30,50,100"
RadioGroup="True">
</ui:ButtonGrid>
<Control VerticalExpand="True" />
<Label Name="ContainerInfoName"
Access="Public"
Text=""
HorizontalAlignment="Center" />
<Label Name="ContainerInfoFill"
Access="Public"
Text=""
HorizontalAlignment="Center"
StyleClasses="LabelSubText" />
<SpriteView Name="View"
Scale="4 4"
HorizontalAlignment="Center" />
<BoxContainer Orientation="Horizontal" HorizontalAlignment="Center">
<Button Name="ClearButton"
Access="Public"
Text="{Loc 'reagent-dispenser-window-clear-button'}"
StyleClasses="OpenRight" />
<Button Name="EjectButton"
Access="Public"
Text="{Loc 'reagent-dispenser-window-eject-button'}"
StyleClasses="OpenLeft" />
</BoxContainer>
</BoxContainer>
<Control MinSize="0 10"/>
<GridContainer Name="ChemicalList" HorizontalExpand="True" VerticalExpand="True" Access="Public" Columns="6">
</GridContainer>
<Control MinSize="0 10"/>
<BoxContainer Orientation="Horizontal">
<Label Text="{Loc 'reagent-dispenser-window-container-label'}"/>
<Button Name="ClearButton"
Access="Public"
Text="{Loc 'reagent-dispenser-window-clear-button'}"
StyleClasses="OpenRight"/>
<Button Name="EjectButton"
Access="Public"
Text="{Loc 'reagent-dispenser-window-eject-button'}"
StyleClasses="OpenLeft"/>
</BoxContainer>
<Control MinSize="0 10"/>
<BoxContainer Orientation="Horizontal">
<SpriteView Name="View" Scale="4 4" MinSize="150 150"/>
<ScrollContainer HScrollEnabled="False" HorizontalExpand="True" VerticalExpand="True" MinSize="0 160">
<PanelContainer VerticalExpand="True"
SizeFlagsStretchRatio="6"
MinSize="0 150">
<SplitContainer Orientation="Vertical"
HorizontalExpand="True"
VerticalExpand="True">
<ScrollContainer HScrollEnabled="False"
HorizontalExpand="True"
VerticalExpand="True"
MinHeight="50"
SizeFlagsStretchRatio="2.5">
<GridContainer Name="ReagentList"
HorizontalExpand="True"
VerticalExpand="True"
Access="Public"
Columns="3" />
</ScrollContainer>
<ScrollContainer HScrollEnabled="False"
HorizontalExpand="True"
VerticalExpand="True"
MinHeight="50">
<PanelContainer VerticalExpand="True">
<PanelContainer.PanelOverride>
<gfx:StyleBoxFlat BackgroundColor="#1b1b1e" />
</PanelContainer.PanelOverride>
<BoxContainer Name="ContainerInfo"
Orientation="Vertical"
HorizontalExpand="True">
<Label Text="{Loc 'reagent-dispenser-window-no-container-loaded-text'}"/>
Orientation="Vertical"
HorizontalExpand="True"
VerticalExpand="True"
Margin="5">
<Label Text="{Loc 'reagent-dispenser-window-no-container-loaded-text'}" />
</BoxContainer>
</PanelContainer>
</ScrollContainer>
</BoxContainer>
</SplitContainer>
</BoxContainer>
</DefaultWindow>
</controls:FancyWindow>

View File

@@ -1,10 +1,9 @@
using Content.Client.Stylesheets;
using Content.Client.UserInterface.Controls;
using Content.Shared.Chemistry;
using Content.Shared.Chemistry.Reagent;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.CustomControls;
using Robust.Client.UserInterface.XAML;
using Robust.Shared.Prototypes;
using static Robust.Client.UserInterface.Controls.BoxContainer;
@@ -15,17 +14,12 @@ namespace Content.Client.Chemistry.UI
/// Client-side UI used to control a <see cref="ReagentDispenserComponent"/>.
/// </summary>
[GenerateTypedNameReferences]
public sealed partial class ReagentDispenserWindow : DefaultWindow
public sealed partial class ReagentDispenserWindow : FancyWindow
{
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
[Dependency] private readonly IEntityManager _entityManager = default!;
public event Action<BaseButton.ButtonEventArgs, DispenseReagentButton>? OnDispenseReagentButtonPressed;
public event Action<GUIMouseHoverEventArgs, DispenseReagentButton>? OnDispenseReagentButtonMouseEntered;
public event Action<GUIMouseHoverEventArgs, DispenseReagentButton>? OnDispenseReagentButtonMouseExited;
public event Action<BaseButton.ButtonEventArgs, EjectJugButton>? OnEjectJugButtonPressed;
public event Action<GUIMouseHoverEventArgs, EjectJugButton>? OnEjectJugButtonMouseEntered;
public event Action<GUIMouseHoverEventArgs, EjectJugButton>? OnEjectJugButtonMouseExited;
public event Action<string>? OnDispenseReagentButtonPressed;
public event Action<string>? OnEjectJugButtonPressed;
/// <summary>
/// Create and initialize the dispenser UI client-side. Creates the basic layout,
@@ -35,44 +29,27 @@ namespace Content.Client.Chemistry.UI
{
RobustXamlLoader.Load(this);
IoCManager.InjectDependencies(this);
var dispenseAmountGroup = new ButtonGroup();
DispenseButton1.Group = dispenseAmountGroup;
DispenseButton5.Group = dispenseAmountGroup;
DispenseButton10.Group = dispenseAmountGroup;
DispenseButton15.Group = dispenseAmountGroup;
DispenseButton20.Group = dispenseAmountGroup;
DispenseButton25.Group = dispenseAmountGroup;
DispenseButton30.Group = dispenseAmountGroup;
DispenseButton50.Group = dispenseAmountGroup;
DispenseButton100.Group = dispenseAmountGroup;
}
/// <summary>
/// Update the button grid of reagents which can be dispensed.
/// </summary>
/// <param name="inventory">Reagents which can be dispensed by this dispenser</param>
public void UpdateReagentsList(List<KeyValuePair<string, KeyValuePair<string, string>>> inventory)
public void UpdateReagentsList(List<ReagentInventoryItem> inventory)
{
if (ChemicalList == null)
if (ReagentList == null)
return;
ChemicalList.Children.Clear();
ReagentList.Children.Clear();
//Sort inventory by reagentLabel
inventory.Sort((x, y) => x.Value.Key.CompareTo(y.Value.Key));
inventory.Sort((x, y) => x.ReagentLabel.CompareTo(y.ReagentLabel));
foreach (KeyValuePair<string, KeyValuePair<string, string>> entry in inventory)
foreach (var item in inventory)
{
var button = new DispenseReagentButton(entry.Key, entry.Value.Key, entry.Value.Value);
button.OnPressed += args => OnDispenseReagentButtonPressed?.Invoke(args, button);
button.OnMouseEntered += args => OnDispenseReagentButtonMouseEntered?.Invoke(args, button);
button.OnMouseExited += args => OnDispenseReagentButtonMouseExited?.Invoke(args, button);
ChemicalList.AddChild(button);
var ejectButton = new EjectJugButton(entry.Key);
ejectButton.OnPressed += args => OnEjectJugButtonPressed?.Invoke(args, ejectButton);
ejectButton.OnMouseEntered += args => OnEjectJugButtonMouseEntered?.Invoke(args, ejectButton);
ejectButton.OnMouseExited += args => OnEjectJugButtonMouseExited?.Invoke(args, ejectButton);
ChemicalList.AddChild(ejectButton);
var card = new ReagentCardControl(item);
card.OnPressed += OnDispenseReagentButtonPressed;
card.OnEjectButtonPressed += OnEjectJugButtonPressed;
ReagentList.Children.Add(card);
}
}
@@ -93,36 +70,7 @@ namespace Content.Client.Chemistry.UI
ClearButton.Disabled = castState.OutputContainer is null;
EjectButton.Disabled = castState.OutputContainer is null;
switch (castState.SelectedDispenseAmount)
{
case ReagentDispenserDispenseAmount.U1:
DispenseButton1.Pressed = true;
break;
case ReagentDispenserDispenseAmount.U5:
DispenseButton5.Pressed = true;
break;
case ReagentDispenserDispenseAmount.U10:
DispenseButton10.Pressed = true;
break;
case ReagentDispenserDispenseAmount.U15:
DispenseButton15.Pressed = true;
break;
case ReagentDispenserDispenseAmount.U20:
DispenseButton20.Pressed = true;
break;
case ReagentDispenserDispenseAmount.U25:
DispenseButton25.Pressed = true;
break;
case ReagentDispenserDispenseAmount.U30:
DispenseButton30.Pressed = true;
break;
case ReagentDispenserDispenseAmount.U50:
DispenseButton50.Pressed = true;
break;
case ReagentDispenserDispenseAmount.U100:
DispenseButton100.Pressed = true;
break;
}
AmountGrid.Selected = ((int)castState.SelectedDispenseAmount).ToString();
}
/// <summary>
@@ -137,23 +85,15 @@ namespace Content.Client.Chemistry.UI
if (state.OutputContainer is null)
{
ContainerInfoName.Text = "";
ContainerInfoFill.Text = "";
ContainerInfo.Children.Add(new Label { Text = Loc.GetString("reagent-dispenser-window-no-container-loaded-text") });
return;
}
ContainerInfo.Children.Add(new BoxContainer // Name of the container and its fill status (Ex: 44/100u)
{
Orientation = LayoutOrientation.Horizontal,
Children =
{
new Label {Text = $"{state.OutputContainer.DisplayName}: "},
new Label
{
Text = $"{state.OutputContainer.CurrentVolume}/{state.OutputContainer.MaxVolume}",
StyleClasses = {StyleNano.StyleClassLabelSecondaryColor}
}
}
});
// Set Name of the container and its fill status (Ex: 44/100u)
ContainerInfoName.Text = state.OutputContainer.DisplayName;
ContainerInfoFill.Text = state.OutputContainer.CurrentVolume + "/" + state.OutputContainer.MaxVolume;
foreach (var (reagent, quantity) in state.OutputContainer.Reagents!)
{
@@ -181,28 +121,4 @@ namespace Content.Client.Chemistry.UI
}
}
}
public sealed class DispenseReagentButton : Button
{
public string ReagentId { get; }
public DispenseReagentButton(string reagentId, string text, string amount)
{
AddStyleClass("OpenRight");
ReagentId = reagentId;
Text = text + " " + amount;
}
}
public sealed class EjectJugButton : Button
{
public string ReagentId { get; }
public EjectJugButton(string reagentId)
{
AddStyleClass("OpenLeft");
ReagentId = reagentId;
Text = "⏏";
}
}
}

View File

@@ -0,0 +1,59 @@
using Content.Client.Chemistry.Components;
using Content.Client.Chemistry.EntitySystems;
using Content.Client.Items.UI;
using Content.Client.Message;
using Content.Client.Stylesheets;
using Content.Shared.Chemistry.Components;
using Content.Shared.Chemistry.EntitySystems;
using Content.Shared.FixedPoint;
using Robust.Client.UserInterface.Controls;
namespace Content.Client.Chemistry.UI;
/// <summary>
/// Displays basic solution information for <see cref="SolutionItemStatusComponent"/>.
/// </summary>
/// <seealso cref="SolutionItemStatusSystem"/>
public sealed class SolutionStatusControl : PollingItemStatusControl<SolutionStatusControl.Data>
{
private readonly Entity<SolutionItemStatusComponent> _parent;
private readonly IEntityManager _entityManager;
private readonly SharedSolutionContainerSystem _solutionContainers;
private readonly RichTextLabel _label;
public SolutionStatusControl(
Entity<SolutionItemStatusComponent> parent,
IEntityManager entityManager,
SharedSolutionContainerSystem solutionContainers)
{
_parent = parent;
_entityManager = entityManager;
_solutionContainers = solutionContainers;
_label = new RichTextLabel { StyleClasses = { StyleNano.StyleClassItemStatus } };
AddChild(_label);
}
protected override Data PollData()
{
if (!_solutionContainers.TryGetSolution(_parent.Owner, _parent.Comp.Solution, out _, out var solution))
return default;
FixedPoint2? transferAmount = null;
if (_entityManager.TryGetComponent(_parent.Owner, out SolutionTransferComponent? transfer))
transferAmount = transfer.TransferAmount;
return new Data(solution.Volume, solution.MaxVolume, transferAmount);
}
protected override void Update(in Data data)
{
var markup = Loc.GetString("solution-status-volume",
("currentVolume", data.Volume),
("maxVolume", data.MaxVolume));
if (data.TransferVolume is { } transferVolume)
markup += "\n" + Loc.GetString("solution-status-transfer", ("volume", transferVolume));
_label.SetMarkup(markup);
}
public readonly record struct Data(FixedPoint2 Volume, FixedPoint2 MaxVolume, FixedPoint2? TransferVolume);
}

View File

@@ -3,6 +3,7 @@ using Content.Shared.Chemistry;
using Content.Shared.Chemistry.Components;
using Content.Shared.Chemistry.Reagent;
using Content.Shared.Hands;
using Content.Shared.Item;
using Content.Shared.Rounding;
using Robust.Client.GameObjects;
using Robust.Shared.Prototypes;
@@ -150,6 +151,9 @@ public sealed class SolutionContainerVisualsSystem : VisualizerSystem<SolutionCo
if (!TryComp(uid, out AppearanceComponent? appearance))
return;
if (!TryComp<ItemComponent>(uid, out var item))
return;
if (!AppearanceSystem.TryGetData<float>(uid, SolutionContainerVisuals.FillFraction, out var fraction, appearance))
return;
@@ -159,7 +163,8 @@ public sealed class SolutionContainerVisualsSystem : VisualizerSystem<SolutionCo
{
var layer = new PrototypeLayerData();
var key = "inhand-" + args.Location.ToString().ToLowerInvariant() + component.InHandsFillBaseName + closestFillSprite;
var heldPrefix = item.HeldPrefix == null ? "inhand-" : $"{item.HeldPrefix}-inhand-";
var key = heldPrefix + args.Location.ToString().ToLowerInvariant() + component.InHandsFillBaseName + closestFillSprite;
layer.State = key;

Some files were not shown because too many files have changed in this diff Show More