Move hardcoded pirates gamerule prototype ids to validated consts (#21914)

* Move hardcoded pirates gamerule prototype ids to validated consts

* Rename
This commit is contained in:
DrSmugleaf
2023-11-27 13:27:17 -08:00
committed by GitHub
parent 29aed88422
commit be53e16746

View File

@@ -4,13 +4,15 @@ using Content.Server.Administration.Commands;
using Content.Server.Cargo.Systems;
using Content.Server.Chat.Managers;
using Content.Server.GameTicking.Rules.Components;
using Content.Server.NPC.Components;
using Content.Server.NPC.Systems;
using Content.Server.Preferences.Managers;
using Content.Server.Spawners.Components;
using Content.Server.Station.Components;
using Content.Server.Station.Systems;
using Content.Server.NPC.Systems;
using Content.Shared.CCVar;
using Content.Shared.Humanoid;
using Content.Shared.Humanoid.Prototypes;
using Content.Shared.Mind;
using Content.Shared.Preferences;
using Content.Shared.Roles;
@@ -49,6 +51,27 @@ public sealed class PiratesRuleSystem : GameRuleSystem<PiratesRuleComponent>
[Dependency] private readonly SharedAudioSystem _audioSystem = default!;
[Dependency] private readonly MetaDataSystem _metaData = default!;
[ValidatePrototypeId<EntityPrototype>]
private const string GameRuleId = "Pirates";
[ValidatePrototypeId<EntityPrototype>]
private const string MobId = "MobHuman";
[ValidatePrototypeId<SpeciesPrototype>]
private const string SpeciesId = "Human";
[ValidatePrototypeId<NpcFactionPrototype>]
private const string PirateFactionId = "Syndicate";
[ValidatePrototypeId<NpcFactionPrototype>]
private const string EnemyFactionId = "NanoTrasen";
[ValidatePrototypeId<StartingGearPrototype>]
private const string GearId = "PirateGear";
[ValidatePrototypeId<EntityPrototype>]
private const string SpawnPointId = "SpawnPointPirates";
/// <inheritdoc/>
public override void Initialize()
{
@@ -189,7 +212,7 @@ public sealed class PiratesRuleSystem : GameRuleSystem<PiratesRuleComponent>
pirates.PirateShip = gridId.Value;
// TODO: Loot table or something
var pirateGear = _prototypeManager.Index<StartingGearPrototype>("PirateGear"); // YARRR
var pirateGear = _prototypeManager.Index<StartingGearPrototype>(GearId); // YARRR
var spawns = new List<EntityCoordinates>();
@@ -197,7 +220,7 @@ public sealed class PiratesRuleSystem : GameRuleSystem<PiratesRuleComponent>
foreach (var (_, meta, xform) in
EntityQuery<SpawnPointComponent, MetaDataComponent, TransformComponent>(true))
{
if (meta.EntityPrototype?.ID != "SpawnPointPirates" || xform.ParentUid != pirates.PirateShip)
if (meta.EntityPrototype?.ID != SpawnPointId || xform.ParentUid != pirates.PirateShip)
continue;
spawns.Add(xform.Coordinates);
@@ -214,21 +237,21 @@ public sealed class PiratesRuleSystem : GameRuleSystem<PiratesRuleComponent>
var sex = _random.Prob(0.5f) ? Sex.Male : Sex.Female;
var gender = sex == Sex.Male ? Gender.Male : Gender.Female;
var name = _namingSystem.GetName("Human", gender);
var name = _namingSystem.GetName(SpeciesId, gender);
var session = ops[i];
var newMind = _mindSystem.CreateMind(session.UserId, name);
_mindSystem.SetUserId(newMind, session.UserId);
var mob = Spawn("MobHuman", _random.Pick(spawns));
var mob = Spawn(MobId, _random.Pick(spawns));
_metaData.SetEntityName(mob, name);
_mindSystem.TransferTo(newMind, mob);
var profile = _prefs.GetPreferences(session.UserId).SelectedCharacter as HumanoidCharacterProfile;
_stationSpawningSystem.EquipStartingGear(mob, pirateGear, profile);
_npcFaction.RemoveFaction(mob, "NanoTrasen", false);
_npcFaction.AddFaction(mob, "Syndicate");
_npcFaction.RemoveFaction(mob, EnemyFactionId, false);
_npcFaction.AddFaction(mob, PirateFactionId);
pirates.Pirates.Add(newMind);
@@ -251,13 +274,13 @@ public sealed class PiratesRuleSystem : GameRuleSystem<PiratesRuleComponent>
{
if (!mind.OwnedEntity.HasValue)
return;
SetOutfitCommand.SetOutfit(mind.OwnedEntity.Value, "PirateGear", EntityManager);
SetOutfitCommand.SetOutfit(mind.OwnedEntity.Value, GearId, EntityManager);
var pirateRule = EntityQuery<PiratesRuleComponent>().FirstOrDefault();
if (pirateRule == null)
{
//todo fuck me this shit is awful
GameTicker.StartGameRule("Pirates", out var ruleEntity);
GameTicker.StartGameRule(GameRuleId, out var ruleEntity);
pirateRule = Comp<PiratesRuleComponent>(ruleEntity);
}