make thief a subgamemode (#25740)

* add SubGamemodes comp/sys

* remove RuleChance from thief rule

* use SubGamemodes for adding thief rule instead of adding ThiefRule component to random gamemodes

* clean up thief rule prototype

* add better logging + end rule if it fails to start

* march 1st incident

* preset ops

* the dreaded

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
This commit is contained in:
deltanedas
2024-03-02 16:33:24 +00:00
committed by GitHub
parent 709881f912
commit 7f060eb129
7 changed files with 58 additions and 21 deletions

View File

@@ -0,0 +1,17 @@
using Content.Server.GameTicking.Rules.Components;
using Content.Shared.Storage;
namespace Content.Server.GameTicking.Rules;
public sealed class SubGamemodesSystem : GameRuleSystem<SubGamemodesComponent>
{
protected override void Added(EntityUid uid, SubGamemodesComponent comp, GameRuleComponent rule, GameRuleAddedEvent args)
{
var picked = EntitySpawnCollection.GetSpawns(comp.Rules, RobustRandom);
foreach (var id in picked)
{
Log.Info($"Starting gamerule {id} as a subgamemode of {ToPrettyString(uid):rule}");
GameTicker.AddGameRule(id);
}
}
}