Commit Graph

160 Commits

Author SHA1 Message Date
Veritius
237cb3d0b4 Communications Console: The ECSining (#8374)
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2022-06-03 21:37:35 +10:00
Pieter-Jan Briers
5f9f319d5a Fix server update restarts when server paused. (#8509) 2022-05-30 01:09:50 -07:00
wrexbe
1e0babbd50 Make AdminLogsSystem an IoC manager (#8492)
* Make log not entity system

* Fixes
2022-05-28 23:41:17 -07:00
wrexbe
bc68ac96dd Cleanup the namespaces (#8132) 2022-05-13 17:59:03 +10:00
wrexbe
61d147aea9 Fixing warnings (#8131) 2022-05-13 15:35:13 +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
Vera Aguilera Puerto
2c289810ad Add commands to add/end GameRules. (#7718) 2022-04-25 19:07:14 +02:00
Pieter-Jan Briers
b3e7c7af1f Remove usage of CreateNetMessage. (#7563) 2022-04-15 11:55:49 -07:00
Jesse Rougeau
8418098dd8 Lobby Refactor (#7077) 2022-03-13 19:33:19 -07:00
Vera Aguilera Puerto
e4029bc968 Exception tolerance for GameTicker.ResettingCleanup. 2022-03-05 11:01:51 +01:00
Pieter-Jan Briers
2c721226d6 Revert "Revert "Load Maps on Round Start, not Round Restart v3 (#6989)" (#6990)"
This reverts commit 4aa65b6708.

Fixed the deadlock bug on postgres.
2022-03-04 23:53:44 +01:00
Moony
4aa65b6708 Revert "Load Maps on Round Start, not Round Restart v3 (#6989)" (#6990)
This reverts commit 9ab3bb5811.
2022-03-04 11:42:55 -06:00
Vera Aguilera Puerto
9ab3bb5811 Load Maps on Round Start, not Round Restart v3 (#6989)
* Load Maps on Round Start, not Round Restart

* Fix admin log test.
It assumed maps/grids existed during pre-round, wihch is not a valid assumption anymore after this PR.

* Shutdown server if round fails to start 5 times.

* Fix bugs with round starting flag.

* Make StartRound not async, synchronously get new round ID from DB.

* Handle StationId.Invalid in PickBestAvailableJob
Instead of crashing, return null.
SpawnPlayer will handle this by making the player an observer or returning them to the lobby.
2022-03-04 11:32:33 -06:00
Moony
255865b7b7 Revert "Load Maps on Round Start, not Round Restart. Shut down server if Round fails to Start 5 times. (#6977)" (#6980)
This reverts commit 4098f7fd9b.
2022-03-03 13:34:16 -06:00
Vera Aguilera Puerto
4098f7fd9b Load Maps on Round Start, not Round Restart. Shut down server if Round fails to Start 5 times. (#6977) 2022-03-03 12:15:15 -07:00
ShadowCommander
4825142210 Role bans (#6703) 2022-02-21 23:11:39 +01:00
metalgearsloth
b87806f7ed Fix some build warnings (#6832)
Co-authored-by: metalgearsloth <metalgearsloth@gmail.com>
2022-02-21 14:41:50 +11:00
mirrorcult
ec4d4688c7 Seal/abstract/virtual everything (#6739) 2022-02-16 18:23:23 +11:00
Vera Aguilera Puerto
f4d8ec1b35 Refactor Game Modes (#5857) 2021-12-21 21:23:29 +01:00
Paul Ritter
75721c214c Revert "Refactor Game Modes" oh god oh fuck go back it was too good to be true (#5855) 2021-12-21 19:25:52 +01:00
Vera Aguilera Puerto
8831d08229 Refactor Game Modes (#5819) 2021-12-21 18:56:47 +01:00
Vera Aguilera Puerto
424c83e39c Fix a lot more errors. 2021-12-04 12:35:33 +01:00
Moony
ec68226e99 Refactor how jobs are handed out (#5422)
* Completely refactor how job spawning works

* Remove remains of old system.

* Squash the final bug, cleanup.

* Attempt to fix tests

* Adjusts packed's round-start crew roster, re-enables a bunch of old roles.
Also adds the Central Command Official as a proper role.

* pretty up ui

* refactor StationSystem into the correct folder & namespace.

* remove a log, make sure the lobby gets updated if a new map is spontaneously added.

* re-add accidentally removed log

* We do a little logging

* we do a little resolving

* we do a little documenting

* Renamed OverflowJob to FallbackOverflowJob
Allows stations to configure their own roundstart overflow job list.

* narrator: it did not compile

* oops

* support having no overflow jobs

* filescope for consistency

* small fixes

* Bumps a few role counts for Packed, namely engis

* log moment

* E

* Update Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml

Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>

* Update Content.Server/Maps/GameMapPrototype.cs

Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>

* factored job logic, cleanup.

* e

* Address reviews

* Remove the concept of a "default" grid.
It has no future in our new multi-station world

* why was clickable using that in the first place

* fix bad evil bug that almost slipped through
also adds chemist

* rms obsolete things from chemist

* Adds a sanity fallback

* address reviews

* adds ability to set name

* fuck

* cleanup joingame
2021-11-26 20:02:46 +11:00
Moony
eb6d24abd0 Makes map vote and roundstart smart about player count. (#5418)
* Makes map vote and roundstart smart about player count.
No more Saltern with 30 players, or Knight Ship with 50.

* a typo

* Address reviews.

* Localized.
2021-11-20 11:32:07 -07:00
Vera Aguilera Puerto
cda67df317 Fix some warnings relating to fields being unused. 2021-09-20 11:22:59 +02:00
Vera Aguilera Puerto
b7d049a52c Add CVar for random grid offset, disable it by default. 2021-08-04 09:27:22 +02:00
Vera Aguilera Puerto
d3a611164b Turns GameTicker into an EntitySystem. (#4197)
* GameTicker turned into an EntitySystem

* Turns ClientGameTicker into an EntitySystem, turn NetMessages into events

* Change event names to be more consistent with the rest.

* YAML linter uses the dummy gameticker CVar override.

* Fix game ticker initialization order

* Dummy ticker won't spawn players.

* Fix character creation test
2021-06-20 10:09:24 +02:00
DrSmugleaf
f878f353e4 Move some files out of Content.Shared root because I forgot (#4182) 2021-06-13 22:52:40 +10:00
DrSmugleaf
ff1a2d97ea Re-organize all projects (#4166) 2021-06-09 22:19:39 +02:00
ShadowCommander
951b0f425a Refactor mind and ghost deletion code (#3680)
* Refactor mind and ghost deletion code

* Refactor to use EventBus and clean up deletes

* Fix mind eject when being deleted

* Refactor entity manager calls to use IEntity.EntityManager
2021-03-31 14:17:22 -07:00
Pieter-Jan Briers
0ac4c0e85c SKREEEEEE (#3706)
* Import bird sprites and define basic mob.

* SKREEEEEEEEE

* Move hair styles to new sprite accessory prototypes.

Basic stuff, no multi-species stuff yet.

* Vox hair styles and clothes

* Make HumanoidCharacterProfile.Default() a static default to fix tests.

Usages that wanted the previous random behavior now call Random().

* Remove names from hair style prototypes.

(They're in localization files)

* Update Content.Shared/Actions/ActionType.cs

(sk)reeee github

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2021-03-28 17:26:32 +11:00
Vera Aguilera Puerto
c455b745ba Adds announce command for admins, latejoin announcer is now "station" 2021-03-17 15:43:31 +01:00
DrSmugleaf
a5ade526b7 Enable nullability in Content.Server (#3685) 2021-03-16 15:50:20 +01:00
ike709
31f1cf9936 Adds lobby music (#3620)
* Adds lobby music

* Add UI toggle for lobby music

* Pick the song serverside so everyone gets the same song

* Add more songs

* Fixes

* Catch-all end lobby music

* Rename it

* Catchall ambience cvar change

* Wait until we receive the lobby song to start playing one

* Fix toggling ready status resetting the song

* Comment

* Expend the last of my sanity fixing latejoin lobby music

* Update Content.Client/GameObjects/EntitySystems/BackgroundAudioSystem.cs

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

* Update Content.Client/GameObjects/EntitySystems/BackgroundAudioSystem.cs

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

* Update Content.Client/GameObjects/EntitySystems/BackgroundAudioSystem.cs

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

* Move the var

Co-authored-by: ike709 <sparebytes@protonmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2021-03-12 23:40:28 +01:00
ShadowCommander
481fee135b Delete ghost when respawning (#3519)
* Delete ghost when respawning

Fix session.AttachedEntity not being set to null when mind is wiped
Fix MindComponent not getting disconnected when Mind is wiped
Rename OwnedMob to OwnedComponent

* Update Content.Server/GameTicking/GameTicker.cs

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

Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2021-03-11 10:37:16 +01:00
ike709
ac1d06e312 Adds a latejoin radio announcement (#3569)
Co-authored-by: ike709 <sparebytes@protonmail.com>
2021-03-08 01:15:51 +01:00
ike709
8204d33a85 Makes join/leave messages admin-only (#3565)
Co-authored-by: ike709 <sparebytes@protonmail.com>
2021-03-08 01:15:31 +01:00
Acruid
d1b5a31397 PauseManager moved to Shared (#3288)
* Namespace changes for moving IPauseManager to shared.

* Namespace changes for moving ITimerManager from Timers to Timing.

* Rebase Fixes.

* Update engine submodule to v0.3.8
2021-02-18 20:45:45 -08:00
DrSmugleaf
a8e9bf0488 Add game preset attribute, unhardcode game presets (#3166)
* Add game preset attribute, unhardcode game presets

* Add game preset attribute doc

* Add preset attribute to extended

* Remove try methods from playerdata
2021-02-14 15:39:24 +01:00
Vera Aguilera Puerto
9ee0ec4106 Holiday System (#3122) 2021-02-12 10:45:22 +01:00
Vera Aguilera Puerto
eaad5cb16d Adds extended gamemode preset 2021-02-12 03:02:20 +01:00
Acruid
ca4fd649fe Massive Namespace Cleanup (#3120)
* Engine namespace changes.

* Automated remove redundant using statements.

* Simplified Graphics namespace.

* Apparently the container system stores full type names in the map file.😞 This updates those names.

* API Changes to LocalizationManager.LoadCulture.

* Update submodule to v0.3.2
2021-02-11 01:13:03 -08:00
Pieter-Jan Briers
374b100a5e Use IGameTiming for lobby timing instead of DateTime.
Fixes #1681
2021-01-11 09:04:09 +01:00
Pieter-Jan Briers
b36d22128a Fix ghosts throwing exception on round restart.
Done by re-organizing the cleanup sequence so that players are moved back to lobby and have their mind wiped *before* entities are deleted.

The mind system always tries to ensure players have a ghost even in the most wacky circumstances like entity deletion. This goes contrary to the fact that we need to delete all entities to clean the game state. So cleaning all the minds should be done first.
2021-01-11 09:04:09 +01:00
Vera Aguilera Puerto
2a5fda5198 Fix being gibbed when commiting suicide or ghosting while crit'd 2021-01-10 20:52:11 +01:00
Pieter-Jan Briers
914a214a19 Fix setgamepreset command not updating status correctly. 2021-01-03 15:34:46 +01:00
20kdc
6b5cded8c2 Clothing and pronoun fields (#2689)
* Clothing & Gender fields: Add to database [MODIFIED TO NOT DEPEND ON SAPHIRE-DB-REFACTOR]

Sorry about this, Saphire.

* Clothing & Gender fields: Add UI [FALLBACK II]

* Clothing & Gender fields: Actually apply gender

* Clothing & Gender fields: Import innerclothingskirt field from my previous attempt

Couldn't import actual prototypes because of a change to IDs

* Clothing & Gender fields: Add innerclothingskirt field to everything

* Clothing & Gender fields: Jumpskirts now work

* Clothing & Gender fields: Gender field will follow sex field if it's not different (UX improvement) [FALLBACK II]

* Clothing & Gender fields: Gender -> Pronouns to reduce confusion. Also, fix profile summary. Properly. [FALLBACK II]

* Clothing & Pronoun fields: Refactor so that profile equipment adjustments are performed in StartingGearPrototype.
2020-12-24 14:42:40 +01:00
Vera Aguilera Puerto
d684198b00 Fixes observing from lobby nullspacing people on round restart
Fixes #2791
2020-12-21 12:25:35 +01:00
DrSmugleaf
49e6db2b87 Fix nullability for ReadyProfiles in GamePreset 2020-12-16 10:00:10 +01:00
20kdc
fd0df9a00a Traitor Deathmatch (#2719)
* Traitor Deathmatch: Add the preset [Rebase onto factors line]

* Traitor Deathmatch: Being a human head or other not-quite-fully-animate object counts as dead. [ROFL]

* Traitor Deathmatch: Add redemption machine (but it doesn't work) [ROFL]

* Traitor Deathmatch: Map in redemption machines [ROFL]

* Traitor Deathmatch: Make the rounds end properly [ROFL]

* Traitor Deathmatch: PDA redemption works [ROFL]

* Traitor Deathmatch: New redemption machine sprite ( @Tomeno )

* Traitor Deathmatch: Get rid of redundant using

* Traitor Deathmatch: Change scoring, prevent redeeming your own PDA, fix bug where PDAs are not tagged with their owner names

* Traitor Deathmatch: Better messages, change cvar name, don't count ghosts for spawnpoint selection
2020-12-13 16:00:49 +01:00