Commit graph

73 commits

Author SHA1 Message Date
Dmitry
b1861ffb69 merge remote wizden/master 2026-09-30 12:42:28 +07:00
Princess Cheeseballs
f8a29e834b
Fix Infinite Sleeper Agents + Tests (#46065)
* would you rather have infinite traitors but no game or infinite game but no game

* whitespace of doom

* also don't need that anymore!

* I'm fucking stupid actually :P

* fix that bug before someone else has to dive it in 2030

* pish

* merge my fixes!!!
2026-09-22 18:30:24 +00:00
Dmitry
73ffef2ac0 merge remote wizden/master 2026-09-17 23:33:06 +07:00
Whatstone
a023e5784c
Cleanup: Remove byte order markers from most files (#45796) 2026-09-17 23:23:54 +10:00
Princess Cheeseballs
2c6ffecf62
Move GameTicker to Shared (#45834)
* Scope creep my ass

* why was this shit not pushed????

* gone...

* fix that

* review plus buildd

* asfsafsafsafsafas

* grug

* burber

* I'll fix this later

* shrimply die

* also this

* it's snerf or snuthin

* assaads

* round snend

* aaaa

* fix this shit for real

* actually, don't start GameRules until MapInit now that I think aboot it.

* forgot u

* don't actually need this part nullable

* Deffer comp removal

* one liner

* do that too

* chungus

* Honestly makes more sense here, plus WHY are we doing all that shit on "GameRuleAdded" rather than GameRuleStarted(?)

* deferred removal :V

* aaaaaaaaaaaaaaa

* whhop

* Whoop

* better

* landmine that I placed for myself then forgot about lmao

* cleanup

* FUCKING `!`

* gotovo

* amogus

* please don't check by metadata I beg

* waawsasfdfsasfa

* sfafsasfafsas

* fdsaasffsasfa

* code

* fix

* fasasffasfasfsad

* chungaas

* I may be stupid

* gra

* graaaaaaaaaaaaaaaaa

* comment

* gra

* clearing is not predicted and would require major refactors, so don't cache on client.

* lame shit :P

* last holes

* nukeopsfsafsasafsfafsa

* why  was that shit public bruh

* bubrbgwahrghfaka

* dynamic

* revert change that did nothing lmao
2026-09-16 19:34:19 +00:00
Dmitry
aab252a2f5 merge remote wizden/master 2026-08-20 15:22:12 +07:00
DrSmugleaf
65f5f67cd5
Make every EntitySystem partial (#45220)
* Make every EntitySystem partial

* Oobs thats for a diff PR

* Also oops on that one

* Test systems

* git are we fr

* Update file templates

* cleanup empty classes while we are here

* forgor

---------

Co-authored-by: AJCM-git <ajcm_mail@disroot.org>
2026-08-14 18:24:47 +00:00
Dmitry
f8bc2e5786 merge remote wizden/master 2026-07-02 09:39:38 +07:00
Whatstone
f42f8df6d1
Cleanup: ProtoMan Part 2 - remove Client and Server EntitySystem IPrototypeManager instances (#44416)
* Remove all IPrototypeManager instances

* Remove redundant IComponentFactory instances too

* Found some stragglers

* DestructibleSystem.PrototypeManager: no dependency

* not based
2026-06-29 21:33:56 +00:00
Dmitry
4a2a66b7ec ipc omg pls work 2026-05-26 00:37:58 +07:00
Dmitry
636dd43ca1 ipc test fix 2026-05-25 23:41:03 +07:00
Princess Cheeseballs
6ca1394556
[STAGING] Ensure Antag Ghost Roles make a new mind, add a test for it. (#43962)
* GRAH

* I lied about sleep this should fix it?

* achkstchually

* we should not be nuking components like this.

* push

* a bit nicer maybe?

* don't double add mindrole

* mothership too!

* two

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2026-05-24 11:07:38 -07:00
Tayrtahn
e3312de2a6
Forbid literal GameRule ProtoIds on GameTicker methods (#43890)
* Add [ForbidLiteral] to GameTicker GameRule methods

* Cleanup violations in tests

* Fix for NukeopsRuleSystem with TODO

* This one wasn't a violation, but should still be fixed.
2026-05-14 21:29:02 +00:00
Princess Cheeseballs
236be38521
Ghost Roles Test (#43774)
* dasfd

* ghost role test finished

* erm? heisentest?

* shorter test name actually

* actually even better

* cleanup

* better assertions

* typo

* linqless

* burger

* should work

* oop

* quadruple check for nullspace

* bruh

* grrr

* try this???

* reduce tolerance so long as it's close enough

* better descriptionpush

* A

* hammed burger

* uuh does that fix it?

* try that?

* review

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2026-05-12 20:23:54 +00:00
KeTuFaisPiKiNut
552943ee3c
oh no all hell broke loose ghost roles are broken (#43735)
* :3

* mild improvement

* let ghosts become antags

* MORE!!!

---------

Co-authored-by: nomdéraisonnablementlong <you@example.com>
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2026-04-27 02:21:38 +00:00
Princess Cheeseballs
d611cf3219
Fix DummyNonAntag not being ignored during AllPresetStartTest (#43757)
* GRAAAAAAAAAAAAAAAH

* cleanup

* two more instances

* safsaffsa

* fix foolboxes?

* cleanup game preset

* API

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2026-04-27 00:40:45 +00:00
Princess Cheeseballs
086479313f
Completely Rewrite Antag Selection Code to fix 1 bug but this time without breaking the game. Add Test For All Game Presets. (#43191)
* "fixes" it but the logic just needs to be rewritten.

* init commit

* almost there

* commit

* Scrounger

* actually spawn the ghost roles, and better assertion behavior!

* update the warning because I know someone is gonna touch it

* hhng

* fix Traitor assignment

* Prune the list and ignore dummy antags

* game test

* skip dummy antag

* crisaskjfshj

* It's time, it's fucking time

* fixing the secret gamemode bug once and for all.

* docs

* burger

* dssdgdsgds

* so hungry for test fails

* job whitelist

* review

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2026-04-25 09:20:56 +00:00
Moony
d42adbf05d
Gametest Part 2: Preliminary refactor every test to use GameTest as the framework. (#43207)
* Pass 1.

* i'm FREE

* Prevent hangups.

* okay fine here's an attribute for settings, will polish later and prolly remove the overridable thing.

* sigh.

* fix singular trigger bug so LatheTest doesn't flake.

* Remove SystemAttribute usage.

* Poke

* I used the shotgun. You know why? Cause the shot gun doesn’t miss, and unlike the shitty hybrid taser it stops a criminal in their tracks in two hits. Bang, bang, and they’re fucking done. I use four shots just to make damn sure. Because, once again, I’m not there to coddle a buncha criminal scum sucking f------, I’m there to 1) Survive the fucking round. 2) Guard the armory. So you can absolutely get fucked. If I get unbanned, which I won’t, you can guarantee I will continue to use the shotgun to apprehend criminals. Because it’s quick, clean and effective as fuck. Why in the seven hells would I fuck around with the disabler shots, which take half a clip just to bring someone down, or with the tazer bolts which are slow as balls, impossible to aim and do about next to jack shit, fuck all. The shotgun is the superior law enforcement weapon. Because it stops crime. And it stops crime by reducing the number of criminals roaming the fucking halls.

* Change the faulty store test into two tests, one of which is ignored for failing.
2026-04-01 16:06:26 +00:00
pathetic meowmeow
b2b547b806
Initial decoupling pass on Damageable (#43103)
* Initial decoupling pass on Damageable

* ope

* e

* mroaw

* ok sure on the medibot thing

* no medibot bounds

* okidooks

* arcryox era

* cryox moment
2026-03-07 04:13:50 +00:00
Errant
8315eaab7e
Revert "Cleanup Antag Selection Logic a Lot" (#43041)
Revert "Cleanup Antag Selection Logic a Lot (#42673)"

This reverts commit c2f986ea8b.
2026-02-26 18:36:48 +00:00
Princess Cheeseballs
c2f986ea8b
Cleanup Antag Selection Logic a Lot (#42673)
* commit god

* don't log an error every time we try to turn a nonghost into an antag cause that shit is optional...

* asdsasdsasd

* Saltern is load bearing

* doesn't even break anything

* don't all caps the comment, add more detail

* review

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

* make them return the antag entity

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
2026-02-05 05:35:41 +00:00
Dmitry
eb763886cd
fixing the handling of the RespiratorComponent without checking (#42665)
* the correction itself

* it will be more adequate

* doc

* not log - not debug

* ohhh
2026-01-26 22:17:52 +00:00
Hannah Giovanna Dawson
cdbe92d37d
Update DamageableSystem to modern standards (#39417)
* Update DamageableSystem to modern standards

* DamageContainerId -> DamageContainerID with lint flag

* Replace strings with protoids

* Make CVar subscription declarations all consistently whitespaced

* ChangeDamage -> TryChangeDamage, cope with C# jank

* Revert event signature changes

* Restore a comment

* Re-add two queries

* Init the queries

* Use appearanceQuery in DamageChanged

* Use damageableQuery in TryChangeDamage

* Use damageableQuery in SetDamageModifierSetId

* Final cleanup, fix sandboxing

* Rectify ExplosionSystem:::ProcessEntity's call to TryChangeDamage

* Re-organize DamageableSystem

* first big fuck you breaking change.

* THATS A LOT OF DAMAGE!!!

* Fix test fails

* test fixes 2

* push it

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-10-27 19:53:04 +00:00
slarticodefast
2743dcf67f
Move mind role components to shared (#39606) 2025-08-13 12:51:46 +02:00
Tayrtahn
e909ffa933
Forbid string literals for NpcFactionSystem methods (#38140)
* Add ForbidLiteral attribute to NpcFactionSystem methods

* Cleanup resulting warnings
2025-06-08 00:39:18 +02:00
Kyle Tyo
88eda89faa
MapManager warning cleanup on tests (#36940)
lets see if this works.
2025-04-28 12:52:25 +02:00
Leon Friedrich
49da5c540b
Try fix RestartTest (#36725) 2025-04-19 22:17:03 +10:00
Tayrtahn
ae07c5d841
Allow NukeOps test to function with multiple RuleGrids (#36049) 2025-03-24 19:59:13 +01:00
Tayrtahn
af36b3983c
Make NukeOpsTest list RuleGrids on failure (#35873) 2025-03-16 12:20:13 -04: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
IProduceWidgets
07ec00ed05
refactor event schedulers to use explicit game rules (#29320)
* works, still has testing values, im sure I did stupid shit.

* shitvent crapfactor

* snap extra word out of existence

* shit I died of old

* remove useless inaccurate design comments

* Oopsie, handle requirement params in RandomRuleSystem too

* I'm a slash slinging hasher

* Address reviews, add admin alerts I forgor

* EntityMan saves the day

* address reviews 1

* eh, I actually don't care about the cargo gifts thing.

* started

* Do reviews

* you actually meant 1.2 lmao

* dependency inheritance is a fickle bitch

* I have no idea.

* Threads are for sheets not computers.

* fix traitor rule test

* fix round type tattling

* break things

* It worky

* Toolshed makes we want to drink depresso.

* Finished?

* remove debug values

* timings

* use defaults

* alphabetize

* bobby drop tables

* Float required fr fr

* continue

* more continence

* uno mas

* obsolution

* cleanup and documentations

* Yell at self

* use the right value defaults

* housekeeping
2024-08-14 15:21:01 +10:00
slarticodefast
da0b8d4731
remove UntrackedMapBoundUserInterface (#30752) 2024-08-09 15:24:49 +10:00
Plykiya
7388b91ef5
Replace noSpawn: true with categories: [ HideSpawnMenu ] (#30100)
* NOW THAT'S A LOT OF FILES

* categorization

---------

Co-authored-by: plykiya <plykiya@protonmail.com>
2024-07-25 05:24:00 -07:00
Errant
bf1450fdc8
Fix replayghost spawning location (#30252)
Fix replayghost spawn
2024-07-22 20:32:30 +01:00
IProduceWidgets
c7ff647cb3
Nukie Outpost is no longer a station map (#30090)
* I dunno, break shit I guess.

* Actually fix some shit for once.

* test flakey or me flakey?

* Test were not flakey, they just didnt make any sense anymore.

* more stationy tests

* undo abuncha shit I can set in yml instead

* forgor an assert

* unneeded usings

* 1984

* I made github angy

* yoink

* the end is never the end is never the end is never the end is never the end is never the end is never the

* Im going to commit sudoku
2024-07-21 01:26:30 -06:00
Tayrtahn
3388c0dcaa
Fix antag objectives always overshooting MaxDifficulty (and kill tries20) (#29830)
* The death of try20

* Add integration test for traitor gamerule

* Fix max difficulty being overshot

* Check at least one objective is assigned

* EntProtoId
2024-07-13 14:14:30 +10:00
Tayrtahn
cfc0247e5c
Code Cleanup: Integration Tests (#29584)
* Cleanup PuddleTest

* Cleanup GravityGridTest

* Cleanup PowerTest

* Cleanup SaveLoadMapTest

* Cleanup Body tests

* Cleanup ContainerOcclusionTest

* Cleanup AirlockTest

* Cleanup DamageableTest

* Cleanup EntityTest

* Cleanup FluidSpillTest

* Cleanup FollowerSystemTest

* Cleanup HandCuffTest

* Cleanup InteractionSystemTests

* Cleanup InRangeUnobstructed

* Cleanup SimplePredictReconcileTest

* Cleanup PostMapInitTest

* Cleanup SalvageTest

* Cleanup SaveLoadSaveTest

* Cleanup ShuttleTest

* Cleanup MaterialArbitrageTest

* Cleanup PrototypeSaveTest

* Fix ShuttleTest

* Bunch of small ones

* Move JobTests to Station directory

* More small fixes

* Cleanup InteractionTest.Helpers
Had to change a method signature, so some callers were modified too.

* Missed one
2024-07-03 10:01:37 +10:00
Tayrtahn
340332cf5b
Fix nukeops ending early if an operative dies at base (#29642)
Fix nukeops ending early if an operative died at base
2024-07-01 18:23:36 -04: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
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
7bd1b45f2b
Use dummy sessions in NukeOpsTest (#28549)
* Add dummy sessions

* Update NukeOpsTest

* Fix PvsBenchmark
2024-06-05 18:37:22 +10: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
deltanedas
16b3fb1204
LoadMapRule grid storage rework (#28210)
*
2024-06-03 20:04:19 -04: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
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
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
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
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
Kara
cc24ba6a31
Roundstart variation game rules (#24397)
* Raise `StationPostInitEvent` broadcast

* Basic variation pass handling

* standardize names + rule entities

* why does it work like that?

* add to defaults

* light break variation pass

* ent spawn entry

* move some stationevent utility functions to gamerule + add one for finding random tile on specified station

* forgot how statistics works

* powered light variation pass is good now

* station tile count function

* public method to ensure all solutions (for procedural use before mapinit)

* move gamerulesystem utility funcs to partial

* ensure all solutions before spilling in puddlesystem. for use when spilling before mapinit

* trash & puddle variation passes!

* oh yeah

* ehh lets live a little

* std

* utility for game rule check based on comp

* entprotoid the trash spawner oops

* generalize trash variation

* use added instead of started for secret rule

* random cleanup

* generic replacement variation system

* Wall rusting variation rule

* account for modifying while enumerating

* use localaabb

* fix test

* minor tweaks

* reinforced wall replacer + puddletweaker
2024-01-30 21:52:35 -08:00
Visne
9bd30d57ad
Remove obsolete PoolManager methods (#19499) 2023-08-25 12:13:11 +10:00