public void DelayNotice(DecisionId id, NoticeAction act, TimeSpan span) { _delayedNotices.RemoveAll(n => n.Id == id); _delayedNotices.Add(new DelayedNotice { Id = id, Time = Date.Add(span), Action = act }); }
void UpdateEvents() { if (UnityEngine.Random.value > _parameters.RanomEventChance) { return; } var availableEvents = GetAvailableEvents(); if (availableEvents.Count > 0) { var ev = availableEvents[UnityEngine.Random.Range(0, availableEvents.Count)]; _usedEvents.Add(ev); var msg = ev.EventMessage; var act = new NoticeAction(msg, LowPriority, ev.Cancelable, ok => { if (ok) { if (!string.IsNullOrWhiteSpace(ev.OkMessage.Title)) { EnqueNotice(new NoticeAction(ev.OkMessage, LowPriority)); } ApplyDecision(ev.Decision, false); } else { if (!string.IsNullOrWhiteSpace(ev.CancelMessage.Title)) { EnqueNotice(new NoticeAction(ev.CancelMessage, LowPriority)); } } }); EnqueNotice(act); } }
public void Init(NoticeAction action) { Header.text = action.Title; _callback = action.Callback; CancelButton.gameObject.SetActive(action.Cancelable); Show.Invoke(); ContentEffect.SetupText(action.Content); }
public void EnqueNoticeOnce(NoticeAction act) { if (_oneTimeNotices.Contains(act.Title)) { return; } _oneTimeNotices.Add(act.Title); EnqueNotice(act); }
public async Task Run() { var nickName = configuration["NickName"]; var userName = configuration["UserName"]; var realName = configuration["RealName"]; var channels = configuration["Channels"].Split(',').Select(x => x.Trim()).ToList(); ircLayer = new IrcLayer(configuration); var server = configuration["Server"]; if (string.IsNullOrWhiteSpace(server)) { throw new Exception("No server given"); } var hasPort = int.TryParse(configuration["Port"], out var port); bool.TryParse(configuration["UseSsl"], out var useSsl); if (!hasPort) { port = useSsl ? 6697 : 6667; } nexmo = new NexmoClient(configuration); noticeActions.AddRange(NoticeAction.GetAll(ircLayer, nexmo, configuration)); channelActions.AddRange(ChannelAction.GetAll(ircLayer, nexmo, configuration)); channelCommands.AddRange(Command.GetAll(ircLayer, nexmo, configuration)); ircLayer.OnMessageReceived += IrcLayerOnOnMessageReceived; ircLayer.OnNoticeReceived += IrcLayerOnOnNoticeReceived; ircLayer.OnQueryReceived += IrcLayerOnOnQueryReceived; ircLayer.Disconnected += IrcLayerDisconnected; await ircLayer.Connect(server, port, useSsl, nickName, userName, realName, channels); IsConnected = true; }
public GameState(Messages messges, Environment environment, Parameters parameters, Events events, Action onUpdated) { _messages = messges; _environment = environment; _parameters = parameters; _events = events; _onUpdated = onUpdated; _decisionLogic = new DecisionLogic(_messages, environment, _parameters, this); _startDate = DateTime.MinValue.AddDays(_parameters.StartDay); Date = _startDate; Traits[Trait.Money] = _parameters.StartMoney; _lastPayDate = Date; _lastInflateDate = Date; var startAct = new NoticeAction(_messages.Welcome, HighPriority); EnqueNoticeOnce(startAct); Analytics.enabled = !Application.isEditor; AnalyticsEvent.GameStart(); }
public void EnqueNotice(NoticeAction act) { Notices.Add(act); Notices.Sort((a, b) => a.Priority.CompareTo(b.Priority)); }