public void DoDetonation() { wantDetonation = false; if (!IsPowered) { PlayNeedPowerEffect(); return; } RemoteTechUtility.ReportPowerUse(this, 20f); SoundDefOf.FlickSwitch.PlayOneShot(this); RemoteTechUtility.TriggerReceiversInNetworkRange(this, channels?.Channel ?? RemoteTechUtility.DefaultChannel); }
public void TriggerSensor(Pawn pawn) { lastTriggeredTick = GenTicks.TicksGame; trackedPawns.Add(pawn); if (settings.SendMessage) { NotifyPlayer(pawn); } if (settings.SendWired && wiredComp != null) { wiredComp.SendNewSignal(); } if (settings.SendWireless && wirelessComp != null && wirelessComp.Enabled && channelsComp != null) { RemoteTechUtility.TriggerReceiversInNetworkRange(this, channelsComp.Channel); } }
private void OnGizmoActivation() { if (lastActivationTick + ActivationCooldownTicks >= Find.TickManager.TicksGame) { return; } lastActivationTick = Find.TickManager.TicksGame; SoundDefOf.FlickSwitch.PlayOneShot(Wearer); RemoteTechUtility.TriggerReceiversInNetworkRange(this, channelsComp?.Channel ?? RemoteTechUtility.DefaultChannel); NumUsesLeft--; if (NumUsesLeft <= 0) { Destroy(DestroyMode.KillFinalize); Messages.Message("PortableDetonator_broke_msg".Translate(), new TargetInfo(Wearer), MessageTypeDefOf.NeutralEvent); } }