moved a bit of IonStorm code elsewhere
This commit is contained in:
@@ -9,7 +9,6 @@ using Content.Shared.Random;
|
|||||||
using Content.Shared.Random.Helpers;
|
using Content.Shared.Random.Helpers;
|
||||||
using Content.Shared.Silicons.Laws;
|
using Content.Shared.Silicons.Laws;
|
||||||
using Content.Shared.Silicons.Laws.Components;
|
using Content.Shared.Silicons.Laws.Components;
|
||||||
using Content.Shared.Station.Components;
|
|
||||||
using Robust.Shared.Prototypes;
|
using Robust.Shared.Prototypes;
|
||||||
using Robust.Shared.Random;
|
using Robust.Shared.Random;
|
||||||
|
|
||||||
@@ -60,12 +59,8 @@ public sealed class IonStormSystem : EntitySystem
|
|||||||
[ValidatePrototypeId<DatasetPrototype>]
|
[ValidatePrototypeId<DatasetPrototype>]
|
||||||
private const string Foods = "IonStormFoods";
|
private const string Foods = "IonStormFoods";
|
||||||
|
|
||||||
public void IonStormTarget(EntityUid ent, SiliconLawBoundComponent lawBound, TransformComponent xform, IonStormTargetComponent target, EntityUid? chosenStation, bool ignoreStation = false, bool adminlog = true)
|
public void IonStormTarget(EntityUid ent, SiliconLawBoundComponent lawBound, TransformComponent xform, IonStormTargetComponent target, EntityUid? chosenStation, bool adminlog = true)
|
||||||
{
|
{
|
||||||
// only affect law holders on the station unless ignoreStation is true.
|
|
||||||
if (CompOrNull<StationMemberComponent>(xform.GridUid)?.Station != chosenStation && !ignoreStation)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (!_robustRandom.Prob(target.Chance))
|
if (!_robustRandom.Prob(target.Chance))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ public sealed class StartIonStormedSystem : EntitySystem
|
|||||||
|
|
||||||
for (int currentIonStorm = 0; currentIonStorm < component.IonStormAmount; currentIonStorm++)
|
for (int currentIonStorm = 0; currentIonStorm < component.IonStormAmount; currentIonStorm++)
|
||||||
{
|
{
|
||||||
_ionStorm.IonStormTarget(uid, lawBound, xform, target, null, true, false);
|
_ionStorm.IonStormTarget(uid, lawBound, xform, target, null, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
var laws = _siliconLaw.GetLaws(uid, lawBound);
|
var laws = _siliconLaw.GetLaws(uid, lawBound);
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ using Content.Server.StationEvents.Components;
|
|||||||
using Content.Shared.GameTicking.Components;
|
using Content.Shared.GameTicking.Components;
|
||||||
using Content.Shared.Silicons.Laws;
|
using Content.Shared.Silicons.Laws;
|
||||||
using Content.Shared.Silicons.Laws.Components;
|
using Content.Shared.Silicons.Laws.Components;
|
||||||
|
using Content.Shared.Station.Components;
|
||||||
|
|
||||||
namespace Content.Server.StationEvents.Events;
|
namespace Content.Server.StationEvents.Events;
|
||||||
|
|
||||||
@@ -21,6 +22,10 @@ public sealed class IonStormRule : StationEventSystem<IonStormRuleComponent>
|
|||||||
var query = EntityQueryEnumerator<SiliconLawBoundComponent, TransformComponent, IonStormTargetComponent>();
|
var query = EntityQueryEnumerator<SiliconLawBoundComponent, TransformComponent, IonStormTargetComponent>();
|
||||||
while (query.MoveNext(out var ent, out var lawBound, out var xform, out var target))
|
while (query.MoveNext(out var ent, out var lawBound, out var xform, out var target))
|
||||||
{
|
{
|
||||||
|
// only affect law holders on the station
|
||||||
|
if (CompOrNull<StationMemberComponent>(xform.GridUid)?.Station != chosenStation)
|
||||||
|
continue;
|
||||||
|
|
||||||
_ionStorm.IonStormTarget(ent, lawBound, xform, target, chosenStation);
|
_ionStorm.IonStormTarget(ent, lawBound, xform, target, chosenStation);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user