var threats = _proto.Index<WeightedRandomPrototype>(comp.Threats);
var threat = threats.Pick(_random);
- CallInThreat(_proto.Index<ThreatPrototype>(threat));
+ CallInThreat(_proto.Index<NinjaHackingThreatPrototype>(threat));
// prevent calling in multiple threats
RemComp<CommsHackerComponent>(uid);
/// <summary>
/// Makes announcement and adds game rule of the threat.
/// </summary>
- public void CallInThreat(ThreatPrototype threat)
+ public void CallInThreat(NinjaHackingThreatPrototype ninjaHackingThreat)
{
- _gameTicker.StartGameRule(threat.Rule, out _);
- _chat.DispatchGlobalAnnouncement(Loc.GetString(threat.Announcement), playSound: true, colorOverride: Color.Red);
+ _gameTicker.StartGameRule(ninjaHackingThreat.Rule, out _);
+ _chat.DispatchGlobalAnnouncement(Loc.GetString(ninjaHackingThreat.Announcement), playSound: true, colorOverride: Color.Red);
}
}
/// Generally some kind of mid-round minor antag, though you could make it call in scrubber backflow if you wanted to.
/// You wouldn't do that, right?
/// </summary>
-[Prototype("threat")]
-public sealed class ThreatPrototype : IPrototype
+[Prototype("ninjaHackingThreat")]
+public sealed class NinjaHackingThreatPrototype : IPrototype
{
[IdDataField]
public string ID { get; private set; } = default!;
/// <summary>
/// Locale id for the announcement to be made from CentCom.
/// </summary>
- [DataField]
- public string Announcement = default!;
+ [DataField(required: true)]
+ public LocId Announcement;
/// <summary>
/// The game rule for the threat to be added, it should be able to work when added mid-round otherwise this will do nothing.
/// </summary>
- [DataField]
- public EntProtoId Rule = default!;
+ [DataField(required: true)]
+ public EntProtoId Rule;
}
Dragon: 1
Revenant: 1
-- type: threat
+- type: ninjaHackingThreat
id: Dragon
announcement: terror-dragon
rule: Dragon
-- type: threat
+- type: ninjaHackingThreat
id: Revenant
announcement: terror-revenant
rule: RevenantSpawn