コード例 #1
0
 protected override void Start()
 {
     base.Start();
     _currentEventData   = currentEventData [0];
     _availableEventData = availableEventData [0];
     SetBannerForEvent();
 }
コード例 #2
0
        public List <EventStateData> GetCurrentEvents()
        {
            List <EventConfigData> availableEvents = GetAvailableEvents();

            if (availableEvents.Count == 0)
            {
                _currentEvents.Clear();
                return(_currentEvents);
            }

            List <EventStateData> unConcludedEvents = eventStateModel.GetUnConcludedEvents();
            EventStateData        currEvent         = unConcludedEvents.FirstOrDefault(ev => ev.id == availableEvents[0].id);

            // Avoid creating a new list for performance reasons, optimized for running on update:

            if (currEvent == null)
            {
                _currentEvents.Clear();
                return(_currentEvents);
            }

            if (_currentEvents.Count == 0)
            {
                _currentEvents.Add(currEvent);
            }
            else
            {
                _currentEvents[0] = currEvent;
            }

            return(_currentEvents);
        }
コード例 #3
0
        public void UpdateEventScore(string eventID, int score)
        {
            EventStateData eventData = eventStateModel.GetEvent(eventID);

            if (eventData.score < score)
            {
                eventData.score = score;
                eventStateModel.SaveEvent(eventData);

                logger.Log(Tag, String.Format("Updated Event:{0} score:{1}", eventID, score));
            }
        }
コード例 #4
0
        public ISharedData Clone()
        {
            var c = new EventStateData();

            c.id               = id;
            c.score            = score;
            c.progressionIndex = progressionIndex;
            c.playerName       = playerName;
            c.bucket           = bucket;
            c.isConcluded      = isConcluded;

            return(c);
        }
コード例 #5
0
        public IPromise <EventStateData> RegisterToEvent(string eventID)
        {
            var promise = new Promise <EventStateData>();

            Action <ConnectionHandler.RequestResult, string> HandleRegisterToEventResponse = (ConnectionHandler.RequestResult result, string response) => {
                logger.Log(Tag, "HandleRegisterToEventResponse (result=" + result + ")\nresponse=" + response);

                if (result != ConnectionHandler.RequestResult.Ok)
                {
                    modelSyncService.HandleErrorResponse(result, response);
                    promise.Reject(new Exception(response));
                    return;
                }

                // Parse the response and save the event to db

                JsonData data = JsonMapper.ToObject(response);
                string   id   = data ["id"].ToString();
                Debug.Log("Saving sharedItem: table=" + TableName + " id=" + id + " data=" + data.ToJson().SSubstring(200));
                gameDB.SaveSharedState(TableName, id, data.ToJson());

                syncSharedStateSignal.Dispatch(new List <string> {
                    TableName
                });

                EventStateData eventStateData = eventStateModel.GetEvent(id);
                if (eventStateData == null)
                {
                    logger.LogError(Tag, "HandleRegisterToEventResponse : Could not load new registered event");
                    promise.Reject(new Exception("Could not load event"));
                    return;
                }


                promise.Resolve(eventStateData);
            };

            _coroutineFactory.StartCoroutine(() => connectionHandler.SendRequest(ConnectionHandler.RequestType.EventSystemRegistration, HandleRegisterToEventResponse, eventID, null));
            return(promise);
        }