private void SelectFire(GunComponent component, SelectiveFire fire, EntityUid?user = null) { if (component.SelectedMode == fire) { return; } DebugTools.Assert((component.AvailableModes & fire) != 0x0); component.SelectedMode = fire; var curTime = Timing.CurTime; var cooldown = TimeSpan.FromSeconds(InteractNextFire); if (component.NextFire < curTime) { component.NextFire = curTime + cooldown; } else { component.NextFire += cooldown; } PlaySound(component.Owner, component.SoundModeToggle?.GetSound(Random, ProtoManager), user); Popup(Loc.GetString("gun-selected-mode", ("mode", GetLocSelector(fire))), component.Owner, user); Dirty(component); }
private string GetLocSelector(SelectiveFire mode) { return(Loc.GetString($"gun-{mode.ToString()}")); }
public CycleModeEvent(SelectiveFire mode) { Mode = mode; }