Пример #1
0
        /// <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);
        }
Пример #2
0
        private void BroadcastPoll(Events.EventID id)
        {
            var chosenEvent = new messages.Event
            {
                id = (int)id,
            };
            var eventManager = FindObjectOfType <EventManager>();

            eventManager?.BroadcastPollResults(chosenEvent);
        }
Пример #3
0
 /// <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);
 }
Пример #4
0
        private IEnumerator SimulateEvent(Events.EventID id)
        {
            yield return(new WaitForSeconds(2));

            BroadcastPoll(id);
        }