// TODO: This would cause imprecision at different tick rates.
sensor.NextUpdate = curTime + sensor.UpdateRate;
+ var canEv = new SuitSensorsSendAttemptEvent();
+ RaiseLocalEvent(uid, ref canEv);
+ if (canEv.Cancelled)
+ continue;
+
// get sensor status
var status = GetSensorState(uid, sensor);
if (status == null)
+using Content.Server.Medical.SuitSensors;
using Content.Server.Popups;
using Content.Server.Power.EntitySystems;
using Content.Server.PowerCell;
SubscribeLocalEvent<ActiveRadioJammerComponent, PowerCellChangedEvent>(OnPowerCellChanged);
SubscribeLocalEvent<RadioJammerComponent, ExaminedEvent>(OnExamine);
SubscribeLocalEvent<RadioSendAttemptEvent>(OnRadioSendAttempt);
+ SubscribeLocalEvent<SuitSensorComponent, SuitSensorsSendAttemptEvent>(OnSensorSendAttempt);
}
public override void Update(float frameTime)
private void OnRadioSendAttempt(ref RadioSendAttemptEvent args)
{
- var source = Transform(args.RadioSource).Coordinates;
+ if (ShouldCancelSend(args.RadioSource))
+ {
+ args.Cancelled = true;
+ }
+ }
+
+ private void OnSensorSendAttempt(EntityUid uid, SuitSensorComponent comp, ref SuitSensorsSendAttemptEvent args)
+ {
+ if (ShouldCancelSend(uid))
+ {
+ args.Cancelled = true;
+ }
+ }
+
+ private bool ShouldCancelSend(EntityUid sourceUid)
+ {
+ var source = Transform(sourceUid).Coordinates;
var query = EntityQueryEnumerator<ActiveRadioJammerComponent, RadioJammerComponent, TransformComponent>();
+
while (query.MoveNext(out _, out _, out var jam, out var transform))
{
if (source.InRange(EntityManager, _transform, transform.Coordinates, jam.Range))
{
- args.Cancelled = true;
- return;
+ return true;
}
}
+
+ return false;
}
}
uplink-clothing-eyes-hud-syndicate-desc = The syndicate's professional head-up display, designed for better detection of humanoids and their subsequent elimination.
uplink-radio-jammer-name = Radio Jammer
-uplink-radio-jammer-desc = This device will disrupt any nearby outgoing radio communication when activated.
+uplink-radio-jammer-desc = This device will disrupt any nearby outgoing radio communication as well as suit sensors when activated.
uplink-syndicate-weapon-module-name = Weapon Cyborg Module
uplink-syndicate-weapon-module-desc = This module will give a cyborg advanced laser and machete