[ValidatePrototypeId<EntityPrototype>]
private const string DefaultTraitorRule = "Traitor";
+ [ValidatePrototypeId<EntityPrototype>]
+ private const string DefaultInitialInfectedRule = "Zombie";
+
[ValidatePrototypeId<EntityPrototype>]
private const string DefaultNukeOpRule = "LoneOpsSpawn";
};
args.Verbs.Add(traitor);
+ Verb initialInfected = new()
+ {
+ Text = Loc.GetString("admin-verb-text-make-initial-infected"),
+ Category = VerbCategory.Antag,
+ Icon = new SpriteSpecifier.Rsi(new("/Textures/Interface/Misc/job_icons.rsi"), "InitialInfected"),
+ Act = () =>
+ {
+ _antag.ForceMakeAntag<ZombieRuleComponent>(targetPlayer, DefaultInitialInfectedRule);
+ },
+ Impact = LogImpact.High,
+ Message = Loc.GetString("admin-verb-make-initial-infected"),
+ };
+ args.Verbs.Add(initialInfected);
+
Verb zombie = new()
{
Text = Loc.GetString("admin-verb-text-make-zombie"),
using Content.Server.Chat.Systems;
using Content.Server.GameTicking.Rules.Components;
using Content.Server.Popups;
+using Content.Server.Roles;
using Content.Server.RoundEnd;
using Content.Server.Station.Components;
using Content.Server.Station.Systems;
{
base.Initialize();
+ SubscribeLocalEvent<InitialInfectedRoleComponent, GetBriefingEvent>(OnGetBriefing);
+ SubscribeLocalEvent<ZombieRoleComponent, GetBriefingEvent>(OnGetBriefing);
SubscribeLocalEvent<IncurableZombieComponent, ZombifySelfActionEvent>(OnZombifySelf);
}
+ private void OnGetBriefing(EntityUid uid, InitialInfectedRoleComponent component, ref GetBriefingEvent args)
+ {
+ if (!TryComp<MindComponent>(uid, out var mind) || mind.OwnedEntity == null)
+ return;
+ if (HasComp<ZombieRoleComponent>(uid)) // don't show both briefings
+ return;
+ args.Append(Loc.GetString("zombie-patientzero-role-greeting"));
+ }
+
+ private void OnGetBriefing(EntityUid uid, ZombieRoleComponent component, ref GetBriefingEvent args)
+ {
+ if (!TryComp<MindComponent>(uid, out var mind) || mind.OwnedEntity == null)
+ return;
+ args.Append(Loc.GetString("zombie-infection-greeting"));
+ }
+
protected override void AppendRoundEndText(EntityUid uid, ZombieRuleComponent component, GameRuleComponent gameRule,
ref RoundEndTextAppendEvent args)
{
verb-categories-antag = Antag ctrl
admin-verb-make-traitor = Make the target into a traitor.
+admin-verb-make-initial-infected = Make the target into an Initial Infected.
admin-verb-make-zombie = Zombifies the target immediately.
admin-verb-make-nuclear-operative = Make target into a lone Nuclear Operative.
admin-verb-make-pirate = Make the target into a pirate. Note this doesn't configure the game rule.
admin-verb-make-thief = Make the target into a thief.
admin-verb-text-make-traitor = Make Traitor
+admin-verb-text-make-initial-infected = Make Initial Infected
admin-verb-text-make-zombie = Make Zombie
admin-verb-text-make-nuclear-operative = Make Nuclear Operative
admin-verb-text-make-pirate = Make Pirate
admin-verb-text-make-head-rev = Make Head Rev
-admin-verb-text-make-thief = Make Thief
\ No newline at end of file
+admin-verb-text-make-thief = Make Thief
duration: 60
maxDuration: 120
- type: PowerGridCheckRule
-
+
- type: entity
parent: BaseGameRule
id: SolarFlare
maxInitialInfectedGrace: 450
- type: ZombifyOnDeath
- type: IncurableZombie
+ - type: InitialInfected
mindComponents:
- type: InitialInfectedRole
prototype: InitialInfected
- type: PendingZombie
- type: ZombifyOnDeath
- type: IncurableZombie
+ - type: InitialInfected
mindComponents:
- type: InitialInfectedRole
prototype: InitialInfected