/// <summary> /// Call this method to start an audience poll (events). /// At the end, a callback will take care of instantiating the event in the arena. /// </summary> /// <param name="eventA">First event</param> /// <param name="eventB">Second event</param> /// <param name="pollingTime">Polling time in seconds</param> public void StartPoll(Events.EventID eventA, Events.EventID eventB, int pollingTime) { var pollEventA = new messages.Event { id = (int)eventA, votes = 0 }; var pollEventB = new messages.Event { id = (int)eventB, votes = 0 }; var poll = new PollChoices() { events = new List <Event> { pollEventA, pollEventB }, deadline = "", // not used duration = pollingTime, }; _AudienceInteractionManager?.SendPoll(poll); StartCoroutine("StartEvent", pollingTime); var msg = "Audience, vote for an event!"; _MessageFeedManager.AddMessageToFeed(msg, MessageFeedManager.MessageType.generic); }
private void BroadcastPoll(Events.EventID id) { var chosenEvent = new messages.Event { id = (int)id, }; var eventManager = FindObjectOfType <EventManager>(); eventManager?.BroadcastPollResults(chosenEvent); }
/// <summary> /// Add a subsystem that will listen to some events /// </summary> /// <param name="id"></param> /// <param name="subscriber"></param> public void AddSubscriber(Events.EventID id, IEventSubscriber subscriber) { _EventSubscribers[id].Add(subscriber); }
private IEnumerator SimulateEvent(Events.EventID id) { yield return(new WaitForSeconds(2)); BroadcastPoll(id); }