Commit Graph

77 Commits

Author SHA1 Message Date
Errant 6a1b7c8ee7
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-18 13:51:21 +02:00
Nemanja c6d1f12be8
fix antag bugs (#27319)
* fix antag bugs

* Update NukeopsRuleComponent.cs
2024-05-15 19:56:34 +02:00
Nemanja 3055d7bac5
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-05-15 19:48:32 +02:00
null 8db7894d51
Merge remote-tracking branch 'refs/remotes/upstream/master' into 2024/04/21-loadouts 2024-05-07 22:52:49 +02:00
Leon Friedrich 5bb755467e
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-05-03 00:01:36 +02:00
metalgearsloth d49eabc1a5
Partial cherry-pick: Loadouts redux (#25715)
Signed-off-by: NullWanderer <56081759+NullWanderer@users.noreply.github.com>
2024-04-22 03:28:58 +02:00
c4llv07e ecbef2b8eb
Add door electronics access configuration menu (#17778)
* Add door electronics configuration menu

* Use file-scoped namespaces

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Open door electronics configuration menu only with network configurator

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Doors will now try to move their AccessReaderComponent to their door electronics when the map is initialized

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Make the access list in the id card computer a separate control

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Fix merge conflict

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Remove DoorElectronics tag

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Integrate doors with #17927

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Move door electornics ui stuff to the right place

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Some review fixes

Signed-off-by: c4llv07e <kseandi@gmail.com>

* More fixes

Signed-off-by: c4llv07e <kseandi@gmail.com>

* review fix

Signed-off-by: c4llv07e <kseandi@gmail.com>

* move all accesses from airlock prototypes to door electronics

Signed-off-by: c4llv07e <kseandi@gmail.com>

* rework door electronics config access list

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Remove Linq from the door electronics user interface

* [WIP] Add EntityWhitelist to the activatable ui component

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Better interaction system

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Refactor

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Fix some door electronics not working without AccessReaderComponent

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Move AccessReaderComponent update code to the AccessReaderSystem

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Remove unnecesary newlines in the door access prototypes

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Remove unused variables in access level control

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Remove unnecessary method from the door electronics configuration menu

Signed-off-by: c4llv07e <kseandi@gmail.com>

* [WIP] change access type from string to ProtoId<AccessLevelPrototype>

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Remove unused methods

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Newline fix

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Restored to a functional state

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Fix access configurator not working with door electronics AccessReaderComponent

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Replace all string access fields with ProtoId

Signed-off-by: c4llv07e <kseandi@gmail.com>

* move access level control initialization into Populate method

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Review

---------

Signed-off-by: c4llv07e <kseandi@gmail.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>

(cherry picked from commit 64bb8dbdd50e0b1e5744e1eb0cc6f24bda959ade)
2024-04-07 14:26:56 +02:00
Rainfey b9d2f5a409
Refactor antag rule code (#23445)
* Initial Pass, Rev, Thief

* Zombie initial pass

* Rebase, Traitor

* Nukeops, More overloads

* Revert RevolutionaryRuleComponent

* Use TryRoundStartAttempt, Rewrite nukie spawning

* Comments, Add task scheduler to GameRuleSystem

* Zombie initial testing done

* Sort methods, rework GameRuleTask

* Add CCVar, Initial testing continues

* Might as well get rid of the obsolete logging

* Oops, i dont know how to log apparently

* Suggested formatting fixes

* Suggested changes

* Fix merge issues

* Minor optimisation

* Allowed thief to choose other antags

* Review changes

* Spawn items on floor first, then inserting

* minor tweaks

* Shift as much as possible to ProtoId<>

* Remove unneeded

* Add exclusive antag attribute

* Fix merge issues

* Minor formatting fix

* Convert to struct

* Cleanup

* Review cleanup (need to test a lot)

* Some fixes, (mostly) tested

* oop

* Pass tests (for real)

---------

Co-authored-by: Rainfall <rainfey0+git@gmail.com>
Co-authored-by: AJCM <AJCM@tutanota.com>

(cherry picked from commit 4e6c59cfe51211064d79a727cc2d37c2a2f55a2c)
2024-03-07 01:06:59 +01:00
Pieter-Jan Briers 905bb83a2d
Make department / job list sorting consistent. (#25486)
* Make department / job list sorting consistent.

This makes late join, crew manifest and character profile all apply consistent sorting for jobs and departments.

We use the already-defined weights for departments (so command, then sec, then station specific, then just sort by prototype ID). Jobs also use weight (so heads are always at the top) then prototype ID, then character name (for manifest).

Removed the crewmanifest.ordering CVar as doing it via prototype weight is just easier, and that CVar was already a mess anyways.

* Fix jittery job icons in lists.

They were set to KeepCentered in TextureRect. This has issues because the allocated space is actually an odd number of pixels, so it tries to position the draw at a half pixel offset.

Now, yes, fixing this in TextureRect would make much more sense, but get off my back. (Ok seriously we need better helper functions for doing that in the engine. Don't wanna deal with that right now and I already have this patch made.)

Instead I'm just gonna fix the issue by using VerticalAlignment in all these places instead which ends up doing exactly the same thing YIPPEE.

Also gave a margin next to the icon on the crew manifest. Margins people!

(cherry picked from commit 715794dd414c5d4b794cd6f2201983ecbc5d4f17)
2024-03-05 09:49:19 +01:00
Vasilis df79ac49b9
Save round information into replay_final.yml (#23013)
* Save round information into the replay

* Add round end text too

* This is way better

* Get actual job

* oop

* OK THERE

* Fake line endings to make life easier

* I was told this yaml is legal

* I just realised this will make my life easier

* REVIEWS BABY IM A PROGRAMMER MOMMY

* Live pjb reaction

* Live pjb reaction 2

* Reviews 2

* Dont need this

* Please no more have mercy on my soul

* Oh frick

(cherry picked from commit cb999d23f4b15e1c182e1ae4bf2e414306822f89)
2024-02-18 23:36:10 +01:00
VMSolidus 1f3128c6ea
Harpy Visual Rework (#677)
* It begins

* Delete error.txt

* Patch by Debug

* HIDING WINGS NOW WORKS

* Runs smoother from Shared

* Delete HarpyVisualsSystem.cs

* The entire clientside script is no longer needed, and the visuals now work correctly. Helmetbug is gone.

* Update HarpyVisualsSystem.cs

* First completed Harpy Hardsuit

* Captain and Atmos tech birdsuits

* Update hardsuit-helmets.yml

* And more content

* Adding new finch tail <3

* whoops

* guh

* I swear the tail works now, I just need the adhd meds to kick in

* birb juggsuit

* More stuff

* Nukie hardsuits

* fixing clipping issues on birb juggsuit

* Update meta.json

* aaaaaaaaa

* two more

* Ton of extra harpy sprites

* Create equipped-INNERCLOTHING-harpy.png

* Harpy Ultravision trait

TODO: Optional trait that disables it

* Trait that removes Ultravision

* Code optimizations

* Adding hueshift maps to all harpy markings

* No more jumpsuits

* 1984 the harpy jumpsuits, they are no longer needed

* last 2

* final QA pass

* shennanigans related to an earlier merge conflict

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
2024-02-12 22:25:02 +00:00
SlamBamActionman 69b3d47a60
Visitor job (#23972)
* Adds Visitor role and ShowInIdCardConsole property

* Add visitor to Agent ID card

* Fixes yaml test

* Fixes based on feedback

* Fixes based on feedback

(cherry picked from commit 1862f8aa1745f147fa54428179e568c9298a9fda)
2024-02-08 12:17:35 +01:00
Kot f82d17ab3b
Fix issue where round could reset all job priorities to high (#24340)
* Update job priorities when job requirements are getting updated

* Sort jobs by weight and then by the name

* Sort departments too

(cherry picked from commit 4f307a49be5796eaa7b02f5988a83ea04db95535)
2024-01-27 23:35:53 +01:00
deltanedas 149ad77eb5
Add TryGetPrimaryDepartment to jobs system (#23317)
* add primary departments

* make command and station specific secondary

* add a unit test

* fixy

* compile

* webedit ops

---------

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

(cherry picked from commit d1d11d09c7a2698fa723c11a910258f69c3d7b9e)
2024-01-26 22:48:20 +01:00
Leon Friedrich 8494bd0885 Use ECS prototype-reload events (#22613)
* Use ECS prototype-reload events

* better constructors

* Maybe this fixes tests?
2023-12-22 23:25:35 +01:00
Bakke 003f262562
Bring back the prisoner role (#511)
* Revert "Removes Prisoner selection from maps (#262)"

This reverts commit d73f485fa2.

* Fix alwaysUseSpawner, add DesiredSpawnPointType

Prisoners are now forced to spawn in the prison again.

* Updated map prototypes for prisoner

Yaaay, we love confinement!

* Update asterisk.yml

Add a drain to the cell area :trollface:

---------

Co-authored-by: Colin-Tel <113523727+Colin-Tel@users.noreply.github.com>
2023-12-06 16:54:36 +01:00
metalgearsloth b1ee2d48ff Unrevert audio (#21330)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2023-12-02 20:16:36 +01:00
Brandon Hu caf814f3f7 Removes the "You require 0 minutes of playtime" message from the game (#21767)
* zero minutes of playtime (shocked_pikachu)

* Max -> Ceiling
2023-11-19 22:23:28 +01:00
deltanedas 9036cd26d4 Add MindPlaySound to role system (#21460)
Co-authored-by: deltanedas <@deltanedas:kde.org>
2023-11-19 22:07:43 +01:00
DrSmugleaf 007f92cc05 Fix Client RoleSystem not inheriting SharedRoleSystem, network job component (#21436) 2023-11-12 20:48:03 +01:00
DrSmugleaf 4257bd2c7e Make all prototype types partial (#21374) 2023-11-12 20:29:57 +01:00
Debug 37c2a64947 Hopefully fix Delta commands 2023-10-31 19:07:39 +01:00
Leon Friedrich e66c0b5035 Un-revert IPlayerManager refactor (#21244) 2023-10-31 19:00:44 +01:00
DrSmugleaf 6bb3ad25f6 Replace all T : Component constraints with T : IComponent (#21073) 2023-10-20 15:30:20 +02:00
Debug c37a4d53c8
Role whitelists (#191)
* Add job whitelists

* Redo whitelist system with jobrequirements

* Remove unused function

* Fix linter errors

* Remove unused dependency and whitespace
2023-10-19 00:23:17 +02:00
DrSmugleaf 5f47e9260b Make starting gear automatically find hands for inhand items (#20861) 2023-10-14 22:13:13 +02:00
deltanedas 8fd5bc3724 Roundstart antag role restrictions revival (#20108)
Co-authored-by: Ray <vigersray@gmail.com>
Co-authored-by: deltanedas <@deltanedas:kde.org>
2023-09-27 21:59:12 +02:00
metalgearsloth 75a0e43df4 Fix tests (#20017) 2023-09-27 21:59:12 +02:00
metalgearsloth 6b942c4d45 Make role timer tooltips pretty (#19605)
Co-authored-by: ElectroJr <leonsfriedrich@gmail.com>
2023-09-27 21:59:12 +02:00
DrSmugleaf 3f3ba6ac62
Move minds, roles, jobs and objectives to shared (#19679) 2023-08-30 21:46:11 -07:00
DrSmugleaf 15c0211fb2
Refactor minds to be entities with components, make roles components (#19591)
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
2023-08-28 16:53:24 -07:00
DrSmugleaf a88e747a0b
Refactor serialization copying to use source generators (#19412) 2023-08-22 18:14:33 -07:00
Vordenburg 71d4303393
Lint more stuff (#19307) 2023-08-19 11:00:41 -07:00
Leon Friedrich 385b587cfc
Validate prototype ids in c# fields (#18224) 2023-07-30 03:34:51 +10:00
PrPleGoo 7c088ac1de
Job icons are stored on ID cards (#18233) 2023-07-29 18:25:27 +10:00
Visne c6d3e4f3bd
Fix warnings and code cleanup/fixes (#13570) 2023-01-19 13:56:45 +11:00
778b 8c5a9554f2
Clean up the JobRequirements (#13374)
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Closes https://github.com/space-wizards/space-station-14/issues/13348
2023-01-10 23:44:40 +11:00
Kara a1350df01a
Job + department descriptions (#13157)
Co-authored-by: Sissel <axel.roche@pm.me>
2022-12-23 15:36:12 -08:00
Pieter-Jan Briers a323671984
Changes for prototype load parallelization (#13066)
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2022-12-20 14:25:34 -08:00
DrSmugleaf 7fbc2608e8
Remove redundant read-only VV from datafields (#12626) 2022-11-16 20:22:11 +01:00
rolfero 9bbe0fec06
Add description tooltips to traits, jobs and antagonists (#11661)
Co-authored-by: CommieFlowers <rasmus.cedergren@hotmail.com>
2022-10-26 22:52:21 +11:00
Rane 315c564315
starting TC penalties for powerful roles (#11111)
* starting TC based on role

* actually just remove all the job changes

* reviews

* moment
2022-09-15 14:37:54 -05:00
Morb 49397adbc5
Localize antag roles (#10638) 2022-08-31 19:37:54 -07:00
Moony 37c64b69a5
Lock non-newbies out of intern roles. (#10598)
* Lock non-newbies out of intern roles.

* Remove from service worker as it doesn't gate anything.
2022-08-14 16:14:46 -05:00
Pieter-Jan Briers e852ada6c8
Play time tracking: Job timers 3: more titles: when the (#9978)
Co-authored-by: Veritius <veritiusgaming@gmail.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2022-08-07 16:00:42 +10:00
Rane cfe39123a7
Allow non-humanoid roles (#9604) 2022-07-10 20:10:03 -05:00
Morber 7a14c6f331
Localize jobs (#8968)
* Localize job supervisors

* Rename supervisors file

* Localize job names

* Remove localization for fallback job name

* Use LocalizedName for Job

* Fix job names case
2022-06-28 22:55:05 +10:00
Pieter-Jan Briers a4685bab4c
Extended access system (#8469)
* Extended access system

Allows jobs to specify "extended" access levels, which will be granted if the round-start crew count is below a certain threshold.

* Extended accesses for jobs

* Spook
2022-05-26 21:01:07 -07:00
wrexbe bc68ac96dd
Cleanup the namespaces (#8132) 2022-05-13 17:59:03 +10:00
Moony 36181334b5
StationSystem/jobs/partial spawning refactor (#7580)
* Partial work on StationSystem refactor.

* WIP station jobs API.

* forgor to fire off grid events.

* Partial implementation of StationSpawningSystem

* whoops infinite loop.

* Spawners should work now.

* it compiles.

* tfw

* Vestigial code cleanup.

* fix station deletion.

* attempt to make tests go brr

* add latejoin spawnpoints to test maps.

* make sure the station still exists while destructing spawners.

* forgot an exists check.

* destruction order check.

* hopefully fix final test.

* fail-safe radstorm.

* Deep-clean job code further. This is bugged!!!!!

* Fix job bug. (init order moment)

* whooo cleanup

* New job selection algorithm that tries to distribute fairly across stations.

* small nitpicks

* Give the heads their weights to replace the head field.

* make overflow assign take a station list.

* moment

* Fixes and test #1 of many.

* please fix nullspace

* AssignJobs should no longer even consider showing up on a trace.

* add comment.

* Introduce station configs, praying i didn't miss something.

* in one small change stations are now fully serializable.

* Further doc comments.

* whoops.

* Solve bug where assignjobs didn't account for roundstart.

* Fix spawning, improve the API.
Caught an oversight in stationsystem that should've broke everything but didn't, whoops.

* Goodbye JobController.

* minor fix..

* fix test fail, remove debug logs.

* quick serialization fixes.

* fixes..

* sus

* partialing

* Update Content.Server/Station/Systems/StationJobsSystem.Roundstart.cs

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

* Use dirtying to avoid rebuilding the list 2,100 times.

* add a bajillion more lines of docs (mostly in AssignJobs so i don't ever forget how it works)

* Update Content.IntegrationTests/Tests/Station/StationJobsTest.cs

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

* Add the Mysteriously Missing Captain Check.

* Put maprender back the way it belongs.

* I love addressing reviews.

* Update Content.Server/Station/Systems/StationJobsSystem.cs

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

* doc cleanup.

* Fix bureaucratic error, add job slot tests.

* zero cost abstractions when

* cri

* saner error.

* Fix spawning failing certain tests due to gameticker not handling falliability correctly.
Can't fix this until I refactor the rest of spawning code.

* submodule gaming

* Packedenger.

* Documentation consistency.

Co-authored-by: Kara <lunarautomaton6@gmail.com>
2022-05-10 13:43:30 -05:00