Commit Graph

510 Commits

Author SHA1 Message Date
Pieter-Jan Briers 837272c745
Fix admin notes and database time nonsense. (#25280)
God bloody christ. There's like three layers of shit here.

So firstly, apparently we were still using Npgsql.EnableLegacyTimestampBehavior. This means that time values (which are stored UTC in the database) were converted to local time when read out. This meant they were passed around as kind Local to clients (instead of UTC in the case of SQLite). That's easy enough to fix just turn off the flag and fix the couple spots we're passing a local DateTime ez.

Oh but it turns out there's a DIFFERENT problem with SQLite: See SQLite we definitely store the DateTimes as UTC, but when Microsoft.Data.Sqlite reads them it reads them as Kind Unspecified instead of Utc.

Why are these so bad? Because the admin notes system passes DateTime instances from EF Core straight to the rest of the game code. And that means it's a PAIN IN THE ASS to run the necessary conversions to fix the DateTime instances. GOD DAMNIT now I have to make a whole new set of "Record" entities so we avoid leaking the EF Core model entities. WAAAAAAA.

Fixes #19897

(cherry picked from commit 2e6eaa45c5)
2024-02-21 04:03:44 +01:00
Pieter-Jan Briers ccea85136b
Random spontaneous cleanup PR (#25131)
* Use new Subs.CVar helper

Removes manual config OnValueChanged calls, removes need to remember to manually unsubscribe.

This both reduces boilerplate and fixes many issues where subscriptions weren't removed on entity system shutdown.

* Fix a bunch of warnings

* More warning fixes

* Use new DateTime serializer to get rid of ISerializationHooks in changelog code.

* Get rid of some more ISerializationHooks for enums

* And a little more

* Apply suggestions from code review

Co-authored-by: 0x6273 <0x40@keemail.me>

---------

Co-authored-by: 0x6273 <0x40@keemail.me>
(cherry picked from commit 68ce53ae17)
2024-02-18 23:02:29 +01:00
crazybrain23 9a5206051b
fix follow comannd help locale (#25032)
(cherry picked from commit f77550dc83)
2024-02-18 22:35:13 +01:00
deltanedas 965e1cae57
criminal records revival (#22510)
(cherry picked from commit 683591ab04)
2024-02-08 12:37:29 +01:00
Repo f016a076c2
Fix aHelp relay to detect AFK Admins (#24482)
* Add AFK detection for aHelp relay and admin specific afk time.

* Correct query to new refactor

* Change AFK timeout to 10min or else Pancake closes my PR 😭

* It wasnt a bug it was a feature, way less aHelps that way.

* aHelp Colors arn't real!

* Update Content.Shared/CCVar/CCVars.cs

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
(cherry picked from commit 0084121706)
2024-02-08 12:22:51 +01:00
AJCM-git 8081242009
Cleanups PolymorphSystem/Components/Prototypes (#23721)
* Cleanups PolymorphSystem

* forgot this

* Nah

* Fix test

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
(cherry picked from commit b8f0ed3975)
2024-02-08 12:20:24 +01:00
DrSmugleaf 5329280378
Add events for GunComponent values, muzzle flashes and cartridge spread (#24077)
* Add a modifier event for GunComponent values

* Add docs

* Add VV readwrite to modified values

* Add more docs

* More docs

* Add Gun parameter to GunRefreshModifiersEvent

* Add another event for handling cartridge spread

* Fix pneumatic speed

(cherry picked from commit 4e8b1fb0d3)
2024-02-08 11:52:29 +01:00
crazybrain23 5476d09276
Fix Admin Antag ctrl headrev icon to use RSI instead of texture (#24474)
Fix the warning about direct texture for headrev

(cherry picked from commit 80e0e2d101)
2024-01-27 23:51:46 +01:00
LordCarve ad35a2fda3
Obsolete refactor - ConnectedClient to Channel (#24409)
(cherry picked from commit 05a2e6b3a2)
2024-01-27 23:44:02 +01:00
Errant a91ce6459a
Fix battery trick debug assert (#24408)
* Why

* Missed a spot

(cherry picked from commit 044e6d6f3f)
2024-01-27 23:43:02 +01:00
LankLTE ab5cc6b25e
Follow command and ahelp menu follow (#24142)
* Command & ahelp rename

* Reviews

* remove tpto

(cherry picked from commit 44abe3e54d)
2024-01-26 22:58:09 +01:00
metalgearsloth a36f876422
Teleport fixes (#24064)
- Teleport to physics center not transform center.
- Fix NetEntity not being passed in.

(cherry picked from commit db175fd9ba)
2024-01-26 22:37:57 +01:00
Pieter-Jan Briers ea0318b2e0
Fix solution editor UI (#24004)
Fixes #23645

The problem is that the solution editor UI is an EUI, so the UI updates before the game states are applied.

A correct fix would be to move it to a BUI in some way, but that's a little involved as we don't really have pre-existing code that uses BUIs in a manner good for this. I decided against this because I realized we'd want to have more tools similar to this and tbh I kinda figured integrating it with VV would be a better fix instead, so...

This is a bad workaround to manually synchronize the UI updates against game timing. It's not pretty but it works.

(cherry picked from commit 3a2cd95d7f)
2024-01-26 22:34:27 +01:00
DrSmugleaf 9f4fa43635
Revert "Game server api (#23129)" (#23672)
This reverts commit dfc8ea6aee.

(cherry picked from commit c05a458de2)
2024-01-26 22:07:25 +01:00
Simon 3259264602
Game server api (#23129)
* Stuff

* Fix RoundStatus Action

* Rename stuff

* Also needs to run on the main thread

* minor stuff

* Move to not be an EntitySystem

* Part 1 of making this less shit

* Make some more stuff run on main thread

* Actor check, logging and remove token from log.

* Better log

* Change ActionKick to use Guid instead of username

* Fix build

* Bandaid fix for test fails

(cherry picked from commit dfc8ea6aee)
2024-01-26 22:04:36 +01:00
Pieter-Jan Briers 7fa89a2d17
Fix bad sawmill IPostInjectInit (#23626)
Same issue as 359811f71e

(cherry picked from commit d8cbddf1f4)
2024-01-26 22:03:20 +01:00
Leon Friedrich 5b60be0b4d
Replace EntityUid parsing with NetEntity (#23474)
* Replace EntityUid parsing with NetEntity

* fix

* Other changes required for arch

* And anothher

(cherry picked from commit 9bff44d141)
2024-01-26 21:29:52 +01:00
TemporalOroboros ce27944275
Revert 'Revert 'Solution Entities'' (#23168)
(cherry picked from commit d23c8d5c19)
2024-01-23 23:00:42 +01:00
LankLTE dcb1aea6b8
message notes no longer show seen notes in chat (#23271)
Fix chat messages

(cherry picked from commit 3737266285)
2024-01-22 21:09:09 +01:00
Leon Friedrich f3e61795f4
Add some tests and fix some miscellaneous bugs (#22836)
* Add some tests and fix some bugs

* Add more helper methods

* remove submodule

* fix merge

* also fix DirtyAll()

* poke

(cherry picked from commit 35ba42af9c)
2024-01-22 18:44:30 +01:00
Ed a86f9ba75f
Thief hotfix (#22976)
* fixes!

* reduced collection amount

* omeeeeega

* pipup

* popup

(cherry picked from commit 166296b2c5)
2024-01-22 18:38:38 +01:00
LankLTE dfe06b2725
fix ahelp relay times (#23001)
RoundDuration instead of CurTime

(cherry picked from commit d75d7d7187)
2024-01-22 18:37:41 +01:00
LankLTE d336e43278
add round time to the ahelp relay (#22937)
* Basic roundtime implementation

* Forgot to clamp the length checker

(cherry picked from commit e10a314ec2)
2024-01-22 18:36:54 +01:00
Ed 9a8b0a2d61
Thief pacifist (#22932)
* pac

* to settings

* ensuuure me princess

* Update Content.Server/GameTicking/Rules/Components/ThiefRuleComponent.cs

Co-authored-by: faint <46868845+ficcialfaint@users.noreply.github.com>

* Update Content.Server/GameTicking/Rules/ThiefRuleSystem.cs

Co-authored-by: faint <46868845+ficcialfaint@users.noreply.github.com>

---------

Co-authored-by: faint <46868845+ficcialfaint@users.noreply.github.com>
(cherry picked from commit 78354052ea)
2024-01-22 18:36:49 +01:00
deltanedas b7ce6cdbd1
exterminator midround minor antag (#19946)
* terminator locale

* terminate objective

* terminator components and shared system

* terminator roles rules and system

* terminator events

* skeleton recolour

* terminator and endoskeleton

* ghost role spawn

* damage modifier sets

* :trollface:

* :trollface:

* add antag prototype

* ghost role locale

* skynet

* :trollface:

* :trollface:

* :trollface:

* add endoskeleton body prototype

* :trollface:

* :trollface:

* smite locale

* implement terminate smite

* :trollface:

* :trollface:

* implement PopupBehavior

* endoskeleton transform popup

* move stuff from shared to server since nothing actually used it

* recolour everything

* update parts

* :trollface:

* :trollface:

* ok fire was using the damage set, back to 1.0

* tweak

* :trollface:

* :trollface:

* simplemob ops

* 1 rule per pro

* :trollface:

* :trollface:

* update some sprites

* structural damage

* :trollface:

* :trollface:

* Revert "update some sprites"

This reverts commit 459196c6a8942c5412885d5fe2f1a83a48408ddc.

* offbrand, add die objective to maybe remove fear of murderbone

* add shut down objective to the list

* fix ghost role

* fix control mob

* :trollface:

* :trollface:

* please

* naming

* code changes for GenericAntag terminator

* yml changes for GenericAntag terminator

* :trollface:

* moved kill objective override to an objective component

* use kill objective override

* fix

* oh

* locale changes

* change burn to heat for skin melting gib

* change some endoskeleton stuff

* pro

* i already did this dementia ops

* objective

* fix

* pro

* swap out full sprite

* update parts

* forgor

* fix mind transfer

* type

* endoskeleton has 500 mass

* evil

* fishops

* warops

---------

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

(cherry picked from commit 52532e4075)
2024-01-22 18:36:12 +01:00
Ed 8bca049ca7
New Thief minor antagonist (#21520)
* start working

* add right-click thief antagins
some architecture restruct

* add meh thief greeting audio

* add thief subgamemode to Traitors gamemode

* add late join thief (not tested yet)
add briefing

* add pacifism

* add Steal tasks to thief

* fix crash thief+traitor on person

* add new condition: collection steal

* add tracking of succes collection objective

* add stamp collection target
remove some boring steal target
add check pulling entity to collection target

* finalize first 2 group objective

* start merging stealing objective systems

* merging

* finish merging. Now traitor steal objective work better

* we don't check the items of pullable sentient entity

* clear naming, enable thief signle item objective start

* objective pack add

* finish with steal item objectives

* convert string to ProtoId<>

* some clean up

* add thieves to revolution game mode

* Update Resources/Locale/en-US/game-ticking/game-presets/preset-thief.ftl

Co-authored-by: Flareguy <78941145+Flareguy@users.noreply.github.com>

* Update Resources/Locale/en-US/game-ticking/game-presets/preset-thief.ftl

Co-authored-by: Flareguy <78941145+Flareguy@users.noreply.github.com>

* update pacifism: fix crashing, monkey-thief without pacified

* adaptive animal briefing, cleaning locales

* add structure steal objectives

* remove RCD target

* add thiefs to manifest, but bug with traitor duplications

* add escape objective

* add chat briefing

* setup animal objective group system

* add animal steal objectives

* add animal objectives notroleconditions

* add morty

* now thief mode has a chance of not launching Now there are a random number of thieves per round from 1 to 3

* 6 hours of trying to fix duplicate tasks. Failure

* added thief pinpointer (buggy)

* start thief backpack UI work

* revert pinpointer for scope reason

* UI continue work

* add thief starter kits content

* remove ERP kit :trollface:

* finally! giving starting items to thief. Now it playable, but still need more work

* clean up

* fix

* fox

* add merged items into thief
new Starting Kit (buggy)

* fix YES antag menu

* objection tweaks

* remove hearts objective, working on spawning things from toolbox

* smug

* fixes

* add race specifier objective condition LAMPS

* meh

* fix fix fix

* the alive

* Adding stamps

* Update backpack.ftl

* Revert1

* Revert ftl

* add voice mask to communicator kit

* Update Resources/Locale/en-US/administration/antag.ftl

Co-authored-by: Colin-Tel <113523727+Colin-Tel@users.noreply.github.com>

* Update Resources/Locale/en-US/game-ticking/game-presets/preset-thief.ftl

Co-authored-by: Colin-Tel <113523727+Colin-Tel@users.noreply.github.com>

* Update Resources/Locale/en-US/thief/backpack.ftl

Co-authored-by: Colin-Tel <113523727+Colin-Tel@users.noreply.github.com>

* Update Resources/Locale/en-US/objectives/conditions/steal.ftl

Co-authored-by: Colin-Tel <113523727+Colin-Tel@users.noreply.github.com>

* Update Resources/Locale/en-US/thief/backpack.ftl

Co-authored-by: Colin-Tel <113523727+Colin-Tel@users.noreply.github.com>

* Update Resources/Locale/en-US/thief/backpack.ftl

Co-authored-by: Colin-Tel <113523727+Colin-Tel@users.noreply.github.com>

* Update Resources/Locale/en-US/thief/backpack.ftl

Co-authored-by: Colin-Tel <113523727+Colin-Tel@users.noreply.github.com>

* Update Resources/Locale/en-US/thief/backpack.ftl

Co-authored-by: Colin-Tel <113523727+Colin-Tel@users.noreply.github.com>

* Update Resources/Locale/en-US/prototypes/roles/antags.ftl

Co-authored-by: Colin-Tel <113523727+Colin-Tel@users.noreply.github.com>

* Update Resources/Locale/en-US/thief/backpack.ftl

Co-authored-by: Colin-Tel <113523727+Colin-Tel@users.noreply.github.com>

* update

* fix

* more reusable function, add documentation

* fix doc

* faint fixes

---------

Co-authored-by: Flareguy <78941145+Flareguy@users.noreply.github.com>
Co-authored-by: Colin-Tel <113523727+Colin-Tel@users.noreply.github.com>

(cherry picked from commit 144af233c4)
2024-01-22 18:30:44 +01:00
Debug 18f0af1f68
Implement gridinv, proper (#703)
* Implement gridinv, 1500 squashed commits :elp:

* Me when

* Linter errors

* Fix katana belts
2024-01-21 19:58:28 +01:00
Simon 251ef693de CVar for custom name in client-side ahelp menu. (#22069)
* the grinch will ruin christmas

* comments here, comments there, comments should not be a thing :godo:

* Unsubscribe from CVar

* rename cvar to be clearer.

* Change switch to if statement.
2023-12-22 23:00:30 +01:00
nikthechampiongr 18c227f806 Super Bonk Smite (#22413)
* Added the Super Bonk smite. It teleports the player from table to table
in the game and bonk their head into them. Also smashes them into glass
tables.

* Stopped using a timer and now instead use Comp + System. Also added proper logging impact.

* Fixed name inconsistency

* Admin CL which I forgot

* Made it funnier

* Moved basically all logic to the system and added a light version that stops when you die

* Hopefully made YAML Linter stop bullying me

* Removed fun(Glass tables no longer get smashed when the target is bonked over them)

General opinion seems that it would cause too much collateral damage. I kinda agree.

* Adressed reviews
2023-12-22 22:56:12 +01:00
Leon Friedrich b87fcdb622 Remove uses of `TransformComponent.ChildEntities` (#22442)
* Make output of ChildEnumerator non-nullable

* Remove uses of ChildEntities

* poke tests

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2023-12-16 20:38:06 +01:00
Vigers Ray 781c737558 Fix entity logs verb (#22231) 2023-12-16 19:36:16 +01:00
Leon Friedrich 485d658bd1 Inventory slot enumerator rejig (#21788) 2023-12-16 19:30:03 +01:00
avery 453c736151 use /64 for ipv6 bans (#22121) 2023-12-16 19:13:50 +01:00
metalgearsloth 5df59eb857 Remove the awful audio command (#22071) 2023-12-02 20:35:38 +01:00
metalgearsloth 2635f4aa0c Add even more logging to audio debug comm (#22057) 2023-12-02 20:35:37 +01:00
metalgearsloth b14355886c Add more global audio debugging yipee (#22050) 2023-12-02 20:33:27 +01:00
metalgearsloth 4f1ae316d9 Add more playaudio debugging (#22047)
* Add more playaudio debugging

* Even more hacks

* a
2023-12-02 20:33:27 +01:00
metalgearsloth 30457a2282 Add verb to spawn players on the spot (#22000)
* Add verb to spawn players on the spot

Apparently ss13 had it. Respawn for us will most of the time kick them to lobby to setup again but this just puts them in place so an admin can then SetOutfit or whatever.

* Add player cloning
2023-12-02 20:33:26 +01:00
metalgearsloth 8bb4900358 Add a debug command for global audio (#22018) 2023-12-02 20:30:53 +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
nikthechampiongr 00413fd187 Admin Respawn Verb now works as intended (#21840)
* Respawn verb actually works now

For some reason the respawn verb was using the name of the person who used it instead of the person that was targetted.

* added changelog

* typo moment

* Removed unnecessary check
2023-12-02 19:05:12 +01:00
metalgearsloth 52104a45c1 Revert Arch testmerge 2 (#21901) 2023-12-02 19:05:12 +01:00
metalgearsloth 39ad6db5c3 Update submodule to 182.1.0 (#21900) 2023-12-02 19:05:11 +01:00
metalgearsloth 9741d9916c Revert the other arch changes (#21871) 2023-12-02 19:05:11 +01:00
metalgearsloth 333096b19e Content arch (#20107)
Co-authored-by: DrSmugleaf <drsmugleaf@gmail.com>
2023-12-02 19:04:08 +01:00
DrSmugleaf 4c2b20b277 Replace usages of MobObserver and AdminObserver with GameTicker consts (#21814) 2023-12-02 19:00:03 +01:00
Leon Friedrich 1465c02a77 Move ActorComponent to shared (#21293) 2023-10-31 19:12:44 +01:00
Leon Friedrich e66c0b5035 Un-revert IPlayerManager refactor (#21244) 2023-10-31 19:00:44 +01:00
Leon Friedrich 3e5c1c73ad Mind tweaks & fixes (#21203) 2023-10-24 18:04:06 +02:00
metalgearsloth 4cf7f4f1c9 Predict tile-prying (#21167) 2023-10-23 23:54:01 +02:00