Esempio n. 1
0
    public List <AchievementInfo> AddStepAchievement(AchievementEvent eventAchievement, int step = 1)
    {
        if (!listeners.ContainsKey(eventAchievement) || listeners[eventAchievement].Count <= 0)
        {
            //Debug.LogWarning("No achievement is listening (anymore ?) to this event : "
            //    + eventAchievement);
            return(null);
        }
        Completion[eventAchievement] += step;
        List <AchievementInfo> unsubscribers = new List <AchievementInfo>();

        foreach (var l in listeners[eventAchievement])
        {
            if (l.EventNotification(eventAchievement))
            {
                unsubscribers.Add(l);
            }
        }

        List <AchievementInfo> returnValue = new List <AchievementInfo>();

        foreach (var achInfo in unsubscribers)
        {
            if (achInfo.IsComplete())
            {
                returnValue.Add(achInfo);
            }
            this.Unsubscribe(eventAchievement, achInfo);
        }
        return((returnValue.Count > 0) ? returnValue : null);
    }
Esempio n. 2
0
 public int[] getCompletion(AchievementEvent ev)
 {
     int[] values = new int[2];
     values[0] = manager.Completion[ev];
     values[1] = this.Aim[ev];
     return(values);
 }
Esempio n. 3
0
 public bool EventNotification(AchievementEvent ev)
 {   // return value indicate if the achievement must unsubscrib from the event
     if (manager.Completion[ev] >= Aim[ev])
     {
         return(true);
     }
     return(false);
 }
Esempio n. 4
0
 public void Subscribe(AchievementEvent listen, AchievementInfo ach)
 {
     if (!listeners.ContainsKey(listen))
     {
         listeners.Add(listen, new List <AchievementInfo>());
         Completion.Add(listen, 0);
     }
     listeners[listen].Add(ach);
 }
Esempio n. 5
0
    public void Unsubscribe(AchievementEvent listen, AchievementInfo ach)
    {
        var list = listeners[listen];

        list.Remove(ach);
        if (list.Count <= 0)
        {
            listeners.Remove(listen);
        }
        else
        {
            listeners[listen] = list;
        }
    }
Esempio n. 6
0
        public void callAchievement(AchievementEvent achEvent, int step = 1)
        {
            List <AchievementInfo> endedAchievements = SProfilePlayer.getInstance().AchievementsManager.AddStepAchievement(achEvent, step);

            // hack fix to prevent bug when quitting the game
            if (achEvent == AchievementEvent.quit)
            {
                return;
            }
            if (endedAchievements != null)
            {
                foreach (var achInfo in endedAchievements)
                {
                    AchievementPopUp.GetComponent <AchievementPopUpScript>().AddAchievement(achInfo);
                }
            }
        }
Esempio n. 7
0
 internal static void AchievementEventCreated(AchievementEventViewModel achievementEventViewModel)
 {
     AchievementEvent?.Invoke(achievementEventViewModel);
 }
Esempio n. 8
0
 public AchievementEventArgs(object sender, AchievementEvent aEvent)
 {
     _sender           = sender;
     _achievementEvent = aEvent;
 }