Validate prototype ids in c# fields (#18224)

This commit is contained in:
Leon Friedrich
2023-07-30 05:34:51 +12:00
committed by GitHub
parent d4a85afb88
commit 385b587cfc
21 changed files with 116 additions and 74 deletions

View File

@@ -574,6 +574,15 @@ public sealed class NukeopsRuleSystem : GameRuleSystem<NukeopsRuleComponent>
// todo: this is kinda awful for multi-nukies
foreach (var nukeops in EntityQuery<NukeopsRuleComponent>())
{
if (nukeOpSpawner.OperativeName == null
|| nukeOpSpawner.OperativeStartingGear == null
|| nukeOpSpawner.OperativeRolePrototype == null)
{
// I have no idea what is going on with nuke ops code, but I'm pretty sure this shouldn't be possible.
Log.Error($"Invalid nuke op spawner: {ToPrettyString(spawner)}");
continue;
}
SetupOperativeEntity(uid, nukeOpSpawner.OperativeName, nukeOpSpawner.OperativeStartingGear, profile, nukeops);
nukeops.OperativeMindPendingData.Add(uid, nukeOpSpawner.OperativeRolePrototype);