예제 #1
0
 private void addActiveQuestWidget(Dictionary <CellPhoneActivityDefinition, int> widgetToPriority, Quest quest)
 {
     if (definition.ActiveQuestPriority != ActivityScreenPriorities.Hidden)
     {
         CellPhoneQuestActivityDefinition cellPhoneQuestActivityDefinition = ScriptableObject.CreateInstance <CellPhoneQuestActivityDefinition>();
         cellPhoneQuestActivityDefinition.Quest           = quest.Definition;
         cellPhoneQuestActivityDefinition.WidgetPrefabKey = definition.ActiveQuestWidgetKey;
         widgetToPriority.Add(cellPhoneQuestActivityDefinition, (int)definition.ActiveQuestPriority);
     }
 }
        public void SetWidgetData(CellPhoneActivityDefinition widgetData)
        {
            CellPhoneQuestActivityDefinition cellPhoneQuestActivityDefinition = widgetData as CellPhoneQuestActivityDefinition;

            if (cellPhoneQuestActivityDefinition != null)
            {
                this.widgetData = cellPhoneQuestActivityDefinition;
                skinForQuest(this.widgetData.Quest);
            }
        }
예제 #3
0
 private void addAvailableQuestWidget(Dictionary <CellPhoneActivityDefinition, int> widgetToPriority)
 {
     if (definition.AvailableQuestPriority != ActivityScreenPriorities.Hidden)
     {
         QuestDefinition availableQuest = getAvailableQuest();
         if (availableQuest != null)
         {
             CellPhoneQuestActivityDefinition cellPhoneQuestActivityDefinition = ScriptableObject.CreateInstance <CellPhoneQuestActivityDefinition>();
             cellPhoneQuestActivityDefinition.Quest           = availableQuest;
             cellPhoneQuestActivityDefinition.WidgetPrefabKey = definition.AvailableQuestWidgetKey;
             widgetToPriority.Add(cellPhoneQuestActivityDefinition, (int)definition.AvailableQuestPriority);
         }
     }
 }
        private void triggerNotification(ActivityNotificationScheduleBlock notificationBlock)
        {
            int num  = generateRandomNotificationIndex(notificationBlock.Notifications.Length);
            int num2 = num;
            CellPhoneActivityDefinition cellPhoneActivityDefinition = null;

            do
            {
                cellPhoneActivityDefinition = notificationBlock.Notifications[num];
                if (cellPhoneActivityDefinition.GetType() == typeof(CellPhoneScheduledLocationActivityDefinition) || cellPhoneActivityDefinition.GetType().IsSubclassOf(typeof(CellPhoneScheduledLocationActivityDefinition)))
                {
                    CellPhoneScheduledLocationActivityDefinition cellPhoneScheduledLocationActivityDefinition = (CellPhoneScheduledLocationActivityDefinition)cellPhoneActivityDefinition;
                    DateTime target = Service.Get <ContentSchedulerService>().ScheduledEventDate();
                    if (cellPhoneScheduledLocationActivityDefinition is CellPhoneRecurringLocationActivityDefinition)
                    {
                        cellPhoneScheduledLocationActivityDefinition = CellPhoneActivityScreenRecurringWidgetLoader.GetActiveRecurringActivityDefinition(recurringActivityDefinitions);
                    }
                    if (cellPhoneScheduledLocationActivityDefinition != null && DateTimeUtils.DoesDateFallBetween(target, cellPhoneScheduledLocationActivityDefinition.GetStartingDate().Date, cellPhoneScheduledLocationActivityDefinition.GetEndingDate().Date))
                    {
                        break;
                    }
                    cellPhoneActivityDefinition = null;
                    num++;
                    if (num >= notificationBlock.Notifications.Length)
                    {
                        num = 0;
                    }
                    continue;
                }
                break;
            }while (num != num2);
            if (!(cellPhoneActivityDefinition != null))
            {
                return;
            }
            string message = "";

            if (cellPhoneActivityDefinition is CellPhoneQuestActivityDefinition)
            {
                CellPhoneQuestActivityDefinition cellPhoneQuestActivityDefinition = (CellPhoneQuestActivityDefinition)cellPhoneActivityDefinition;
                cellPhoneQuestActivityDefinition.Quest = getAvailableQuest();
                if (cellPhoneQuestActivityDefinition.Quest != null)
                {
                    message = localizer.GetTokenTranslation(cellPhoneQuestActivityDefinition.Quest.Mascot.GoForItNotificationText);
                }
            }
            else
            {
                message = localizer.GetTokenTranslation(cellPhoneActivityDefinition.NotificationMessageToken);
            }
            if (checkNotificationIsAllowed(cellPhoneActivityDefinition))
            {
                ActivityNotificationData dataPayload = null;
                if (schedule.NotificationReward.ToReward().TryGetValue <CoinReward>(out var rewardable))
                {
                    dataPayload = new ActivityNotificationData(rewardable.Coins, cellPhoneActivityDefinition);
                }
                DNotification dNotification = new DNotification();
                dNotification.PopUpDelayTime       = NotificationShowTime;
                dNotification.DataPayload          = dataPayload;
                dNotification.PrefabLocation       = notificationKey;
                dNotification.Message              = message;
                dNotification.Type                 = DNotification.NotificationType.ActivityTracker;
                dNotification.PersistBetweenScenes = false;
                trayNotificationManager.ShowNotification(dNotification);
            }
        }