Ed
3409e0f752
Merge remote-tracking branch 'upstream/stable' into ed-15-09-2025-upstream-sync
...
# Conflicts:
# .github/CODEOWNERS
# Content.Client/Overlays/StencilOverlay.cs
# Content.Server/Chemistry/EntitySystems/InjectorSystem.cs
# Content.Server/GameTicking/Commands/SetGamePresetCommand.cs
# Content.Server/Players/PlayTimeTracking/PlayTimeTrackingSystem.cs
# Content.Shared/Chemistry/EntitySystems/SharedInjectorSystem.cs
# Content.Shared/Clothing/Components/ClothingComponent.cs
# Content.Shared/Humanoid/HumanoidCharacterAppearance.cs
# Content.Shared/Humanoid/SkinColor.cs
# Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/bowl.yml
2025-09-15 13:50:49 +03:00
Pieter-Jan Briers
0c97520276
Fix usages of TryIndex() ( #39124 )
...
* Fix usages of TryIndex()
Most usages of TryIndex() were using it incorrectly. Checking whether prototype IDs specified in prototypes actually existed before using them. This is not appropriate as it's just hiding bugs that should be getting caught by the YAML linter and other tools. (#39115 )
This then resulted in TryIndex() getting modified to log errors (94f98073b0 ), which is incorrect as it causes false-positive errors in proper uses of the API: external data validation. (#39098 )
This commit goes through and checks every call site of TryIndex() to see whether they were correct. Most call sites were replaced with the new Resolve(), which is suitable for these "defensive programming" use cases.
Fixes #39115
Breaking change: while doing this I noticed IdCardComponent and related systems were erroneously using ProtoId<AccessLevelPrototype> for job prototypes. This has been corrected.
* fix tests
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com >
2025-09-09 18:17:56 +02:00
Ed
5f7600b6a2
Merge remote-tracking branch 'upstream/stable' into ed-08-09-2025-upstream-sync
...
# Conflicts:
# .github/CODEOWNERS
# Content.IntegrationTests/Tests/CargoTest.cs
# Content.Server/Chat/Systems/ChatSystem.cs
# Content.Shared/Chat/SharedChatSystem.cs
# Content.Shared/Lock/LockSystem.cs
# Content.Shared/StatusEffectNew/StatusEffectSystem.Relay.cs
# Content.Shared/Storage/Components/EntityStorageComponent.cs
# Resources/Prototypes/Entities/Mobs/Customization/Markings/human_hair.yml
# Resources/Prototypes/game_presets.yml
2025-09-08 13:12:50 +03:00
Ed
b8b17f7b8a
Merge remote-tracking branch 'upstream/stable' into ed-25-08-2025-upstream-sync
...
# Conflicts:
# .github/CODEOWNERS
# Content.Client/UserInterface/Systems/Actions/Controls/ActionButton.cs
# Content.Server/Administration/Systems/AdminVerbSystem.Antags.cs
# Content.Server/Chat/Systems/ChatSystem.cs
# Content.Server/Explosion/EntitySystems/TriggerSystem.cs
# Content.Server/Nutrition/EntitySystems/SliceableFoodSystem.cs
# Content.Shared/Lock/LockSystem.cs
# Content.Shared/Nutrition/Components/FoodComponent.cs
# Content.Shared/Speech/ListenEvent.cs
# Resources/Prototypes/Entities/Effects/admin_triggers.yml
2025-08-25 16:22:32 +03:00
slarticodefast
9c546a0072
Predict Mind Roles ( #39611 )
2025-08-21 03:10:07 +02:00
slarticodefast
2743dcf67f
Move mind role components to shared ( #39606 )
2025-08-13 12:51:46 +02:00
deltanedas
1d21e13360
make objectives use yml defined mind filters ( #36030 )
...
* add MindHasRole whitelist overload
* add mind filters framework
* add different mind filters and pools
* update traitor stuff to use mind filters
* line
* don't duplicate kill objectives
* g
* gs
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com >
Co-authored-by: ScarKy0 <scarky0@onet.eu >
Co-authored-by: SlamBamActionman <slambamactionman@gmail.com >
2025-08-08 17:58:46 +02:00
Ed
7a8326d41e
Merge remote-tracking branch 'upstream/stable' into ed-08-07-2025-upstream
...
# Conflicts:
# Content.Server/Audio/ContentAudioSystem.cs
# Content.Server/Medical/HealthAnalyzerSystem.cs
# Content.Server/Shuttles/Systems/ShuttleSystem.cs
# Resources/Locale/en-US/navmap-beacons/station-beacons.ftl
2025-07-08 00:40:30 +03:00
slarticodefast
a3b82e9afd
Cleanup SharedRoleCodewordSystem ( #38310 )
...
* cleanup
* Update Content.Shared/Roles/RoleCodeword/SharedRoleCodewordSystem.cs
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com >
* Apply suggestions from code review
---------
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com >
2025-06-27 02:27:25 +02:00
Pieter-Jan Briers
73df3b1593
Stop network serializing prototypes ( #38602 )
...
* Stop network serializing prototypes
Send the damn proto ID instead.
* Fix sandbox violation
2025-06-26 19:27:23 -04:00
Ed
42d39a7c67
Merge remote-tracking branch 'upstream/stable' into ed-10-06-2025-upstream-sync
...
# Conflicts:
# .github/CODEOWNERS
# Content.IntegrationTests/Tests/Atmos/ConstantsTest.cs
# Content.Server/Chat/Managers/ChatManager.cs
# Content.Server/Connection/ConnectionManager.cs
# Content.Shared/Actions/SharedActionsSystem.cs
# Content.Shared/Lock/LockSystem.cs
2025-06-10 11:33:34 +03:00
beck-thompson
05fac53de6
Chameleon controller implant (Clothing fast switch) ( #33887 )
...
* Add the chameleon controller implant
* address the issues (Git please dont kill me)
* Address the review and fix some merge conflicts!
* Cleanup
* Add use delay
* Silly mistakes
* Making a PR at 2 am: Gone wrong
* Predict use delay and disable the buttons until you can choose another
* First phase custom clothing
* Better system, now relays to agent id and mindshield. Chameleon loadouts are a lot better to work with as well
* Address the review! No more evil goto
* Slams way is better I should have read more closely xD
* Some of the jobs
* Add to Cargo, CentComm, Service, Passenger, Ninja, Cluwne, Wizard + Minor changes to existing; Add chameleon to bandanas, medals, jugsuits and HUDs
* Add everything else
* Fix test
* Job name
* This looks better
* Add department organization
* Minor cleanup
* Added some mindshields
* Remove redudent comment and change funcion name to be clearer
* Fix cluwne outfit
* fix merge conflicts
---------
Co-authored-by: SlamBamActionman <slambamactionman@gmail.com >
2025-05-30 12:07:25 +02:00
Ed
d5fbdbdec0
Merge remote-tracking branch 'upstream/stable' into ed-27-05-2025-upstream-sync
...
# Conflicts:
# .github/CODEOWNERS
# Content.Client/Guidebook/Controls/GuideReagentReaction.xaml.cs
# Content.IntegrationTests/Tests/Chemistry/TryAllReactionsTest.cs
# Content.Server/Procedural/DungeonJob/DungeonJob.OreDunGen.cs
# Resources/Prototypes/Entities/Effects/chemistry_effects.yml
# Resources/Prototypes/Entities/Mobs/Customization/Markings/human_hair.yml
# Resources/Prototypes/GameRules/meteorswarms.yml
# Resources/Prototypes/Procedural/dungeon_configs.yml
2025-05-27 12:21:14 +03:00
Errant
bf76ba28e2
MindRemoveRole refactor ( #34880 )
...
* MindRemoveRole refactor
* role removal logstring rework
* zombiesystem fix
2025-05-17 16:24:32 +10:00
Ed
ef6d973301
Merge remote-tracking branch 'upstream/stable' into ed-30-04-2025-upstream-sync
...
# Conflicts:
# Content.Client/Parallax/ParallaxControl.cs
# Content.Client/UserInterface/Systems/Storage/Controls/ItemGridPiece.cs
# Content.IntegrationTests/Tests/PostMapInitTest.cs
# Content.Server/Chat/Managers/ChatManager.cs
# Content.Server/Fluids/EntitySystems/PuddleSystem.Evaporation.cs
# Content.Server/Labels/Label/LabelSystem.cs
# Content.Shared/Actions/SharedActionsSystem.cs
# Content.Shared/Fluids/Components/EvaporationComponent.cs
# Content.Shared/Labels/EntitySystems/SharedLabelSystem.cs
# README.md
# Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml
# Resources/Prototypes/Maps/Pools/deathmatch.yml
# Resources/Prototypes/Maps/arenas.yml
2025-04-30 20:31:50 +03:00
Milon
3fc9bcbbbe
remove Session from MindComponent ( #34753 )
...
* yummy
* fix tests
2025-04-19 00:23:01 +02:00
Ed
39ca6175e6
Simple sponsorship system ( #1189 )
...
* simple sponsorship system
* priority Join
* OOC Sponsor Color
* Update CP14SponsorRolePrototype.cs
* loadout sponsorship
* bruh
* refactor to interfaces
* Update CP14ClientSponsorManager.cs
* finish loadout option
* role pass
2025-04-17 19:55:25 +03:00
Errant
fb388d2265
Role subtypes ( #35359 )
2025-04-16 19:04:48 +02:00
Errant
72141abf8a
Admin playerlist antag presentation rework ( #35538 )
...
* refactor(src): Minor refactor of Draw in "AdminNameOverlay. And new info about playtime player
* fix(src): Add configure classic admin owerlay
* fix
* antag status indication rework
* the cvars are free, you can just take them
* update playerlist on cvar change
* more overlay options
* tweak(src): Use _antagLabelClassic and tweak style
* tweak(src): Add config display overlay for startingJob and playTime
* tweak(src): Vector2 is replaced by var
* tweak(src): return to the end of the list
* add new option checkboxes
* passing ConfigurationManager through constructor, some format changes
* made sorting values more futureproof
* comments
* labels
* no point commenting this out when the overlay stack PR will uncomment it again anyway
* sorting prototype
* localize symbols because why not
* symmetry
* Revert "localize symbols because why not"
This reverts commit 922d4030300285a45777d62fcfd9c74b25fe7a60.
* layout and formatting stuff
* fix errant space
---------
Co-authored-by: Schrödinger <132720404+Schrodinger71@users.noreply.github.com >
2025-03-25 17:03:59 +01:00
SlamBamActionman
43d08100b9
"New player" admin logging improvements ( #35961 )
...
* Initial commit
* Adjust a whoooole bunch of logs
* Also spears
* Track going crit
* Review fix
* Review fixes
2025-03-20 20:56:51 +01:00
Tayrtahn
86aa82f2b6
Cleanup: Remove redundant prototype name specifications ( #35793 )
...
* Remove redundant prototype name specifications
* These can stay
2025-03-19 19:30:31 +01:00
Tayrtahn
6f925dd610
Fix prototypes so they pass analyzer checks ( #35435 )
2025-02-24 15:21:59 +11:00
Errant
1d655f6712
[HOTFIX] Altered Silicon removal fails to trigger role update ( #35399 )
...
minor sharedrolesystem refactor
2025-02-23 01:52:48 +01:00
Ed
da75258f9f
Fix RoleTimeRequirement localization ( #34735 )
...
* fix job restriction localization
* Update Content.Shared/Roles/JobRequirement/RoleTimeRequirement.cs
* Update Content.Shared/Roles/JobRequirement/RoleTimeRequirement.cs
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com >
2025-01-29 14:23:34 +01:00
Errant
46d58bf22a
Role Types ( #33420 )
...
* mindcomponent namespace
* wip MindRole stuff
* admin player tab
* mindroletype comment
* mindRolePrototype redesign
* broken param
* wip RoleType implementation
* basic role type switching for antags
* traitor fix
* fix AdminPanel update
* the renameningTM
* cleanup
* feature uncreeping
* roletypes on mind roles
* update MindComponent.RoleType when MindRoles change
* ghostrole configuration
* ghostrole config improvements
* live update of roleType on the character window
* logging stuff and notes
* remove thing no one asked for
* weh
* Mind Role Entities wip
* headrev count fix
* silicon stuff, cleanup
* exclusive antag config, cleanup
* jobroleadd overwerite
* logging stuff
* MindHasRole cleanup, admin log stuff
* last second cleanup
* ocd
* move roletypeprototype to its own file, minor note stuff
* remove Roletype.Created
* log stuff
* roletype setup for ghostroles and autotraitor reinforcements
* ghostrole type configs
* adjustable admin overlay
* cleanup
* fix this in its own PR
* silicon antagonist
* borg stuff
* mmi roletype handling
* spawnable borg roletype handling
* weh
* ghost role cleanup
* weh
* RoleEvent update
* polish
* log stuff
* admin overlay config
* ghostrolecomponent cleanup
* weh
* admin overlay code cleanup
* minor cleanup
* Obsolete MindRoleAddedEvent
* comment
* minor code cleanup
* MindOnDoGreeting fix
* Role update message
* fix duplicate job greeting for cyborgs
* fix emag job message dupe
* nicer-looking role type update
* crew aligned
* syndicate assault borg role fix
* fix test fail
* fix a merge mistake
* fix LoneOp role type
* Update Content.Client/Administration/AdminNameOverlay.cs
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com >
* Update Content.Shared/Roles/SharedRoleSystem.cs
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com >
* comment formatting
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com >
* change logging category
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com >
* fix a space
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com >
* use MindAddRoles
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com >
* get MindComponent from TryGetMind
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com >
* move var declaration outside loop
* remove TryComp
* take RoleEnum behind the barn
* don't use ensurecomp unnecessarily
* cvar comments
* toggleableghostrolecomponent documentation
* skrek
* use EntProtoId
* mindrole config
* merge baserolecomponent into basemindrolecomponent
* ai and borg silicon role tweaks
* formatting
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com >
* I will end you (the color)
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com >
* use LocId type for a locale id
* update RoleEvent documentation
* update RoleEvent documentation
* remove obsolete MindRoleAddedEvent
* refine MindRolesUpdate()
* use dependency
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com >
* inject dependency
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com >
* roleType.Name no longer required
* reformatted draw code logic
* GhostRoleMarkerRoleComponent comment
* minor SharedRoleSystem cleanup
* StartingMindRoleComponent, unhardcode roundstart silicon
* Update Content.Shared/Roles/SharedRoleSystem.cs
* remove a whitespace
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com >
2025-01-11 22:17:26 +01:00
Pieter-Jan Briers
299b13f21b
Give silicons proper lobby/character editor previews ( #33763 )
...
* Give silicons proper lobby/character editor previews
No more naked dummies, properly show a borg/AI sprite now.
This means taking the JobEntity into account when spawning the dummy. For AIs I had to add a "JobPreviewEntity" field because they'd look like a posibrain otherwise. AI therefore uses a custom dummy entity I defined.
Also I had to add some margins to the UI, because otherwise the 32x32 sprite of the AI would look bad.
* Update Content.Shared/Roles/JobPrototype.cs
* Update Content.Client/Lobby/LobbyUIController.cs
* Update Resources/Prototypes/Entities/Mobs/Player/silicon.yml
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com >
2024-12-08 02:46:41 +01:00
Errant
eb9540364e
Hotfix the randomly occurring DeleteAllThenGhost test failures ( #33582 )
...
* clear mindrole on component shutdown
* let it go
2024-11-27 00:56:35 +01:00
Stalen
0468c0f6bb
Fix playtime formatting ( #32974 )
2024-10-28 19:00:37 +01:00
metalgearsloth
71c9894903
Jobreq format ( #32806 )
...
* Format job requirements as hours and minutes
* Use TimeSpan.ToString for playtime instead of custom method
* wehflicts
---------
Co-authored-by: jmcb <joelsgp@protonmail.com >
2024-10-14 14:54:31 +11:00
Leon Friedrich
2d60a4684c
Hide role entities in the spawn menu ( #32798 )
2024-10-14 14:05:49 +11:00
Leon Friedrich
4e0018697f
Add role prototype validation tests ( #32801 )
...
* Add role prototype validation test
* Rejig GetPrototypesWithComponent
* More tests n stuff
2024-10-14 14:05:25 +11:00
Errant
a9ecf805e5
Fix random test fail in DeleteAllThenGhost ( #32753 )
...
It's simple. We kill the heisentest
2024-10-11 21:17:01 +02:00
Errant
93c7bdc134
Mind Role Entities ( #31318 )
...
* Mind Role Entities wip
* headrev count fix
* silicon stuff, cleanup
* exclusive antag config, cleanup
* jobroleadd overwerite
* logging stuff
* MindHasRole cleanup, admin log stuff
* last second cleanup
* ocd
* minor cleanup
* remove createdTime datafield
* now actually using the event replacement I made for role time tracking
* weh
2024-10-10 10:48:56 +02:00
nikthechampiongr
a5840b925b
Fix RA0032 ( #32514 )
2024-09-29 02:25:21 +02:00
lzk
8b2ea59515
don't apply traits for borg and ai ( #31990 )
...
* doesn't apply traits for borg or ai
* add some comment and summaries
* weh
weh
* well ok
Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com >
---------
Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com >
2024-09-12 13:36:41 +03:00
SlamBamActionman
61a1e89339
Add codeword highlighting ( #30092 )
...
* Added codeword highlighting
* Updated to support more codeword roles, color is set serverside
* Review feedback
* Change to a Component-based system using SessionSpecific
* Tidied up CanGetState, set Access restrictions on component
* Clean-up
* Makes the injection ignore brackets, restore some codewords, remove "Taste/Touch" from adjectives
2024-08-23 11:14:38 +02:00
Ed
055dfe6f0b
No pacifist or blind sec ( #30777 )
...
* no pacifist sec
* also block blindness
* Update warden.yml
* Update security_officer.yml
* Update head_of_security.yml
* Update security_cadet.yml
* Update detective.yml
2024-08-19 14:42:55 +03:00
Brandon Hu
46f631fa11
tweak(AgeRequirement): Make the requiredAge more sensible ( #30913 )
2024-08-11 21:47:26 +03:00
slarticodefast
e0d30aff4e
Add tooltips to the agent ID job icons and improve status icon prototypes ( #28575 )
...
* add tooltips to agentid job icons
* forgot to stage this
* make StatusIconPrototype abstract
* minor visual improvements
* cleanup
* use currentculture to sort job names
* review
2024-08-09 16:14:07 +10:00
metalgearsloth
9a8620d9d8
De-duplicate loadout gear ( #30341 )
...
* De-duplicate loadout gear
Needs supporting code, probably with an interface with StartingGearPrototype which would also use it, but I regexed the yaml.
* Code updates
* Remaining yaml
* Fix automatic naming
* raiseEvent
* Don't code when tired kids
2024-08-05 00:42:25 -04:00
Ed
a95d2257c3
JobRequirement refactor ( #30347 )
...
* refactor JobRequirements
* add profile support
* fix
* Update quartermaster.yml
* sloth fixes
* inport 30208
* Update DepartmentPrototype.cs
* species restriction
* left tweak stick
* stringbuilder is cool!
2024-08-05 14:25:49 +10: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
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
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
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
AJCM-git
8c10581010
Cleans up StatusIconSystem and fixing some bugs ( #28270 )
2024-06-03 12:12:21 -04:00
Tornado Tech
07dfefc4a2
Hiding and clearing department prototype code ( #28114 )
2024-06-01 19:49:34 -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
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
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