@@ -13,9 +13,16 @@ public sealed class CargoGiftsRule : StationEventSystem<CargoGiftsRuleComponent>
|
||||
[Dependency] private readonly CargoSystem _cargoSystem = default!;
|
||||
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
||||
[Dependency] private readonly GameTicker _ticker = default!;
|
||||
[Dependency] private readonly RampingStationEventSchedulerSystem _rampingEventSystem = default!; // WD
|
||||
|
||||
protected override void Added(EntityUid uid, CargoGiftsRuleComponent component, GameRuleComponent gameRule, GameRuleAddedEvent args)
|
||||
{
|
||||
if (_rampingEventSystem.CheckRampingEventRule()) // WD START
|
||||
{
|
||||
ForceEndSelf(uid, gameRule);
|
||||
return;
|
||||
} // WD END
|
||||
|
||||
base.Added(uid, component, gameRule, args);
|
||||
|
||||
var str = Loc.GetString(component.Announce,
|
||||
|
||||
@@ -15,11 +15,18 @@ namespace Content.Server.StationEvents.Events;
|
||||
public sealed class VentClogRule : StationEventSystem<VentClogRuleComponent>
|
||||
{
|
||||
[Dependency] private readonly SmokeSystem _smoke = default!;
|
||||
[Dependency] private readonly RampingStationEventSchedulerSystem _rampingEventSystem = default!; // WD
|
||||
|
||||
protected override void Started(EntityUid uid, VentClogRuleComponent component, GameRuleComponent gameRule, GameRuleStartedEvent args)
|
||||
{
|
||||
base.Started(uid, component, gameRule, args);
|
||||
|
||||
if (_rampingEventSystem.CheckRampingEventRule()) // WD START
|
||||
{
|
||||
ForceEndSelf(uid, gameRule);
|
||||
return;
|
||||
} // WD END
|
||||
|
||||
if (!TryGetRandomStation(out var chosenStation))
|
||||
return;
|
||||
|
||||
@@ -56,4 +63,15 @@ public sealed class VentClogRule : StationEventSystem<VentClogRuleComponent>
|
||||
Audio.PlayPvs(component.Sound, transform.Coordinates);
|
||||
}
|
||||
}
|
||||
|
||||
protected override void Added(EntityUid uid, VentClogRuleComponent component, GameRuleComponent gameRule, GameRuleAddedEvent args) // WD
|
||||
{
|
||||
if (_rampingEventSystem.CheckRampingEventRule()) // WD START
|
||||
{
|
||||
ForceEndSelf(uid, gameRule);
|
||||
return;
|
||||
} // WD END
|
||||
|
||||
base.Added(uid, component, gameRule, args);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using Content.Server.GameTicking;
|
||||
using System.Linq;
|
||||
using Content.Server.GameTicking;
|
||||
using Content.Server.GameTicking.Rules;
|
||||
using Content.Server.GameTicking.Rules.Components;
|
||||
using Content.Server.StationEvents.Components;
|
||||
@@ -93,4 +94,9 @@ public sealed class RampingStationEventSchedulerSystem : GameRuleSystem<RampingS
|
||||
// 4-12 minutes baseline. Will get faster over time as the chaos mod increases.
|
||||
component.TimeUntilNextEvent = _random.NextFloat(240f / mod, 720f / mod);
|
||||
}
|
||||
|
||||
public bool CheckRampingEventRule() // WD
|
||||
{
|
||||
return EntityQuery<RampingStationEventSchedulerComponent>().Any();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user