public void EndEvent() { var player = Players[Players.Keys.ToList()[WhosTurn()]]; EventCooldown.Keys.ToList().ForEach(k => EventCooldown[k]--); EventCooldown.Keys.ToList().ForEach(k => { if (EventCooldown[k] == 0) { EventCooldown.Remove(k); } }); if (player.RepeatEvent <= 1) { if (player.CurrentEvent != null) { if (player.CurrentEvent.NextEvent != null) { player.RepeatEvent = player.CurrentEvent.NextEvent.Repeat; } player.CurrentEvent = player.CurrentEvent.NextEvent; } } else { player.RepeatEvent--; } }
public SoundInformer() { _cooldown = new EventCooldown(TimeSpan.FromMilliseconds(5000), () => { CheckForChanges(); _cooldown.Accumulate(); }); }
public CommandsInformer(IManipulatorsManager manager, Logger logger) { _manager = manager ?? throw new ArgumentNullException(nameof(manager)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _cooldown = new EventCooldown( TimeSpan.FromMilliseconds(250), () => Check(), TimeSpan.FromSeconds(1)); _manager.ItemStateChanged += ManagerOnItemStateChanged; }
public MainWindow() { InitializeComponent(); InitializeSingleTaskExecutor(); _cooldown = new EventCooldown( TimeSpan.FromSeconds(2), Action, TimeSpan.FromSeconds(5)); var i = 32; _runQueue = new RunQueue(() => DoNothing(i)); }
// Check for running event or trigger a new event public bool CheckEvent() { var player = Players[Players.Keys.ToList()[WhosTurn()]]; var currentSpace = player.Space; if (Game.SetEvents.ContainsKey(currentSpace) && !player.VisitedEvents.Contains(Game.SetEvents[currentSpace])) { player.CurrentEvent = Game.SetEvents[currentSpace]; player.RepeatEvent = 0; if (Game.SetEvents[currentSpace].HappensOnce) { player.VisitedEvents.Add(Game.SetEvents[currentSpace]); } Game.SetEvents.Remove(currentSpace); } if (player.CurrentEvent == null && _random.Next(0, 100) < 80) { var evnts = Game.MiniEvents.Except(player.VisitedEvents).Where(e => !EventCooldown.ContainsKey(e.Name)).ToList(); if (evnts.Count == 0) { return(false); } var evnt = evnts[_random.Next(0, evnts.Count)]; player.CurrentEvent = evnt; if (evnt.HappensOnce) { player.VisitedEvents.Add(evnt); } } if (player.CurrentEvent == null) { return(false); } if (!EventCooldown.ContainsKey(player.CurrentEvent.Name)) { EventCooldown.Add(player.CurrentEvent.Name, 5); } return(true); }