mirror of
https://github.com/space-syndicate/space-station-14.git
synced 2026-10-09 10:21:18 +03:00
Cleanup: Resolve ForceMakeAntag warnings (#46151)
Resolve ForceMakeAntag warnings
This commit is contained in:
parent
081e2582dc
commit
0569e2361a
1 changed files with 55 additions and 40 deletions
|
|
@ -18,26 +18,38 @@ namespace Content.Server.Administration.Systems;
|
|||
|
||||
public sealed partial class AdminVerbSystem
|
||||
{
|
||||
[Dependency] private AntagSelectionSystem _antag = default!;
|
||||
[Dependency] private ZombieSystem _zombie = default!;
|
||||
[Dependency] private ServerGameTicker _gameTicker = default!;
|
||||
[Dependency] private AntagSelectionSystem _antag = default!;
|
||||
[Dependency] private OutfitSystem _outfit = default!;
|
||||
[Dependency] private ZombieSystem _zombie = default!;
|
||||
|
||||
private static readonly EntProtoId DefaultTraitorRule = "Traitor";
|
||||
private static readonly EntProtoId DefaultInitialInfectedRule = "Zombie";
|
||||
private static readonly EntProtoId DefaultNukeOpRule = "LoneOpsSpawn";
|
||||
private static readonly EntProtoId DefaultRevsRule = "Revolutionary";
|
||||
private static readonly EntProtoId DefaultThiefRule = "Thief";
|
||||
private static readonly EntProtoId DefaultChangelingRule = "Changeling";
|
||||
private static readonly EntProtoId ParadoxCloneRuleId = "ParadoxCloneSpawn";
|
||||
private static readonly EntProtoId DefaultWizardRule = "Wizard";
|
||||
private static readonly EntProtoId DefaultNinjaRule = "NinjaSpawn";
|
||||
[Dependency] private EntityQuery<ActorComponent> _actorQuery;
|
||||
[Dependency] private EntityQuery<HumanoidProfileComponent> _humanoidQuery;
|
||||
[Dependency] private EntityQuery<MindContainerComponent> _mindContainerQuery;
|
||||
|
||||
private static readonly EntProtoId TraitorRule = "Traitor";
|
||||
private static readonly ProtoId<AntagSpecifierPrototype> TraitorSpec = "Traitor";
|
||||
private static readonly EntProtoId InitialInfectedRule = "Zombie";
|
||||
private static readonly ProtoId<AntagSpecifierPrototype> InitialInfectedSpec = "InitialInfected";
|
||||
private static readonly EntProtoId LoneOpRule = "LoneOpsSpawn";
|
||||
private static readonly ProtoId<AntagSpecifierPrototype> LoneOpSpec = "LoneOp";
|
||||
private static readonly EntProtoId RevsRule = "Revolutionary";
|
||||
private static readonly ProtoId<AntagSpecifierPrototype> RevsSpec = "HeadRev";
|
||||
private static readonly EntProtoId ThiefRule = "Thief";
|
||||
private static readonly ProtoId<AntagSpecifierPrototype> ThiefSpec = "Thief";
|
||||
private static readonly EntProtoId ChangelingRule = "Changeling";
|
||||
private static readonly ProtoId<AntagSpecifierPrototype> ChangelingSpec = "Changeling";
|
||||
private static readonly EntProtoId ParadoxCloneRule = "ParadoxCloneSpawn";
|
||||
private static readonly EntProtoId WizardRule = "Wizard";
|
||||
private static readonly ProtoId<AntagSpecifierPrototype> WizardSpec = "Wizard";
|
||||
private static readonly EntProtoId NinjaRule = "NinjaSpawn";
|
||||
private static readonly ProtoId<AntagSpecifierPrototype> NinjaSpec = "SpaceNinja";
|
||||
private static readonly ProtoId<StartingGearPrototype> PirateGearId = "PirateGear";
|
||||
|
||||
// All antag verbs have names so invokeverb works.
|
||||
private void AddAntagVerbs(GetVerbsEvent<Verb> args)
|
||||
{
|
||||
if (!TryComp<ActorComponent>(args.User, out var actor))
|
||||
if (!_actorQuery.TryComp(args.User, out var actor))
|
||||
return;
|
||||
|
||||
var player = actor.PlayerSession;
|
||||
|
|
@ -45,7 +57,7 @@ public sealed partial class AdminVerbSystem
|
|||
if (!_adminManager.HasAdminFlag(player, AdminFlags.Fun))
|
||||
return;
|
||||
|
||||
if (!HasComp<MindContainerComponent>(args.Target) || !TryComp<ActorComponent>(args.Target, out var targetActor))
|
||||
if (!_mindContainerQuery.HasComp(args.Target) || !_actorQuery.TryComp(args.Target, out var targetActor))
|
||||
return;
|
||||
|
||||
var targetPlayer = targetActor.PlayerSession;
|
||||
|
|
@ -58,7 +70,7 @@ public sealed partial class AdminVerbSystem
|
|||
Icon = new SpriteSpecifier.Rsi(new ResPath("/Textures/Interface/Misc/job_icons.rsi"), "Syndicate"),
|
||||
Act = () =>
|
||||
{
|
||||
_antag.ForceMakeAntag<TraitorRuleComponent>(targetPlayer, DefaultTraitorRule);
|
||||
_antag.ForceMakeAntag<TraitorRuleComponent>(targetPlayer, TraitorRule, TraitorSpec);
|
||||
},
|
||||
Impact = LogImpact.High,
|
||||
Message = string.Join(": ", traitorName, Loc.GetString("admin-verb-make-traitor")),
|
||||
|
|
@ -73,7 +85,7 @@ public sealed partial class AdminVerbSystem
|
|||
Icon = new SpriteSpecifier.Rsi(new("/Textures/Interface/Misc/job_icons.rsi"), "InitialInfected"),
|
||||
Act = () =>
|
||||
{
|
||||
_antag.ForceMakeAntag<ZombieRuleComponent>(targetPlayer, DefaultInitialInfectedRule);
|
||||
_antag.ForceMakeAntag<ZombieRuleComponent>(targetPlayer, InitialInfectedRule, InitialInfectedSpec);
|
||||
},
|
||||
Impact = LogImpact.High,
|
||||
Message = string.Join(": ", initialInfectedName, Loc.GetString("admin-verb-make-initial-infected")),
|
||||
|
|
@ -103,7 +115,7 @@ public sealed partial class AdminVerbSystem
|
|||
Icon = new SpriteSpecifier.Rsi(new("/Textures/Clothing/Head/Hardsuits/syndicate.rsi"), "icon"),
|
||||
Act = () =>
|
||||
{
|
||||
_antag.ForceMakeAntag<NukeopsRuleComponent>(targetPlayer, DefaultNukeOpRule);
|
||||
_antag.ForceMakeAntag<NukeopsRuleComponent>(targetPlayer, LoneOpRule, LoneOpSpec);
|
||||
},
|
||||
Impact = LogImpact.High,
|
||||
Message = string.Join(": ", nukeOpName, Loc.GetString("admin-verb-make-nuclear-operative")),
|
||||
|
|
@ -134,7 +146,7 @@ public sealed partial class AdminVerbSystem
|
|||
Icon = new SpriteSpecifier.Rsi(new("/Textures/Interface/Misc/job_icons.rsi"), "HeadRevolutionary"),
|
||||
Act = () =>
|
||||
{
|
||||
_antag.ForceMakeAntag<RevolutionaryRuleComponent>(targetPlayer, DefaultRevsRule);
|
||||
_antag.ForceMakeAntag<RevolutionaryRuleComponent>(targetPlayer, RevsRule, RevsSpec);
|
||||
},
|
||||
Impact = LogImpact.High,
|
||||
Message = string.Join(": ", headRevName, Loc.GetString("admin-verb-make-head-rev")),
|
||||
|
|
@ -149,7 +161,7 @@ public sealed partial class AdminVerbSystem
|
|||
Icon = new SpriteSpecifier.Rsi(new ResPath("/Textures/Clothing/Hands/Gloves/Color/black.rsi"), "icon"),
|
||||
Act = () =>
|
||||
{
|
||||
_antag.ForceMakeAntag<ThiefRuleComponent>(targetPlayer, DefaultThiefRule);
|
||||
_antag.ForceMakeAntag<ThiefRuleComponent>(targetPlayer, ThiefRule, ThiefSpec);
|
||||
},
|
||||
Impact = LogImpact.High,
|
||||
Message = string.Join(": ", thiefName, Loc.GetString("admin-verb-make-thief")),
|
||||
|
|
@ -164,34 +176,40 @@ public sealed partial class AdminVerbSystem
|
|||
Icon = new SpriteSpecifier.Rsi(new ResPath("/Textures/Objects/Weapons/Melee/armblade.rsi"), "icon"),
|
||||
Act = () =>
|
||||
{
|
||||
_antag.ForceMakeAntag<ChangelingRuleComponent>(targetPlayer, DefaultChangelingRule);
|
||||
_antag.ForceMakeAntag<ChangelingRuleComponent>(targetPlayer, ChangelingRule, ChangelingSpec);
|
||||
},
|
||||
Impact = LogImpact.High,
|
||||
Message = string.Join(": ", changelingName, Loc.GetString("admin-verb-make-changeling")),
|
||||
};
|
||||
args.Verbs.Add(changeling);
|
||||
|
||||
var paradoxCloneName = Loc.GetString("admin-verb-text-make-paradox-clone");
|
||||
Verb paradox = new()
|
||||
// only humanoids can be cloned
|
||||
if (_humanoidQuery.HasComp(args.Target))
|
||||
{
|
||||
Text = paradoxCloneName,
|
||||
Category = VerbCategory.Antag,
|
||||
Icon = new SpriteSpecifier.Rsi(new("/Textures/Interface/Misc/job_icons.rsi"), "ParadoxClone"),
|
||||
Act = () =>
|
||||
var paradoxCloneName = Loc.GetString("admin-verb-text-make-paradox-clone");
|
||||
Verb paradox = new()
|
||||
{
|
||||
if (_gameTicker.AddGameRule(ParadoxCloneRuleId) is not { } ruleEnt)
|
||||
return;
|
||||
Text = paradoxCloneName,
|
||||
Category = VerbCategory.Antag,
|
||||
Icon = new SpriteSpecifier.Rsi(new("/Textures/Interface/Misc/job_icons.rsi"), "ParadoxClone"),
|
||||
Act = () =>
|
||||
{
|
||||
if (_gameTicker.AddGameRule(ParadoxCloneRule) is not { } ruleEnt)
|
||||
return;
|
||||
|
||||
if (!TryComp<ParadoxCloneRuleComponent>(ruleEnt, out var paradoxCloneRuleComp))
|
||||
return;
|
||||
if (!TryComp<ParadoxCloneRuleComponent>(ruleEnt, out var paradoxCloneRuleComp))
|
||||
return;
|
||||
|
||||
paradoxCloneRuleComp.OriginalBody = args.Target; // override the target player
|
||||
paradoxCloneRuleComp.OriginalBody = args.Target; // override the target player
|
||||
|
||||
_gameTicker.StartGameRule(ruleEnt.AsNullable());
|
||||
},
|
||||
Impact = LogImpact.High,
|
||||
Message = string.Join(": ", paradoxCloneName, Loc.GetString("admin-verb-make-paradox-clone")),
|
||||
};
|
||||
_gameTicker.StartGameRule(ruleEnt.AsNullable());
|
||||
},
|
||||
Impact = LogImpact.High,
|
||||
Message = string.Join(": ", paradoxCloneName, Loc.GetString("admin-verb-make-paradox-clone")),
|
||||
};
|
||||
|
||||
args.Verbs.Add(paradox);
|
||||
}
|
||||
|
||||
var wizardName = Loc.GetString("admin-verb-text-make-wizard");
|
||||
Verb wizard = new()
|
||||
|
|
@ -202,7 +220,7 @@ public sealed partial class AdminVerbSystem
|
|||
Act = () =>
|
||||
{
|
||||
// Wizard has no rule components as of writing, but I gotta put something here to satisfy the machine so just make it wizard mind rule :)
|
||||
_antag.ForceMakeAntag<WizardRoleComponent>(targetPlayer, DefaultWizardRule);
|
||||
_antag.ForceMakeAntag<WizardRoleComponent>(targetPlayer, WizardRule, WizardSpec);
|
||||
},
|
||||
Impact = LogImpact.High,
|
||||
Message = string.Join(": ", wizardName, Loc.GetString("admin-verb-make-wizard")),
|
||||
|
|
@ -217,14 +235,11 @@ public sealed partial class AdminVerbSystem
|
|||
Icon = new SpriteSpecifier.Rsi(new("/Textures/Objects/Weapons/Melee/energykatana.rsi"), "icon"),
|
||||
Act = () =>
|
||||
{
|
||||
_antag.ForceMakeAntag<NinjaRoleComponent>(targetPlayer, DefaultNinjaRule);
|
||||
_antag.ForceMakeAntag<NinjaRoleComponent>(targetPlayer, NinjaRule, NinjaSpec);
|
||||
},
|
||||
Impact = LogImpact.High,
|
||||
Message = string.Join(": ", ninjaName, Loc.GetString("admin-verb-make-space-ninja")),
|
||||
};
|
||||
args.Verbs.Add(ninja);
|
||||
|
||||
if (HasComp<HumanoidProfileComponent>(args.Target)) // only humanoids can be cloned
|
||||
args.Verbs.Add(paradox);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue