Esempio n. 1
0
 private void Awake()
 {
     completed   = new List <Agent>();
     agents      = new List <Agent>();
     experiences = new List <Experience>();
     if (OnComplete == null)
     {
         OnComplete = new AgentManagerComplete();
     }
     OnComplete.AddListener(InternalComplete);
 }
        /// <summary>
        /// Set the Owner of this AchievementProperty
        /// </summary>
        /// <param name="owner"></param>
        internal void SetOwner(Achievement owner)
        {
            if (Owner == null)
            {
                Owner = owner;
            }
            else
            {
                throw new Exception("Attempted to change owner of a achievementProperty");
            }

            OnComplete.AddListener(owner.OnPropertyCompleted);
        }
        /// <summary>
        /// Register this property to Its AchievementHandler
        /// </summary>
        /// <param name="achievementEventHandler"></param>
        internal virtual void Register(AchievementEventHandlers achievementEventHandler)
        {
            //Register to the Event Handler value change
            achievementEventHandler.AddListener(EventName, EventListener);
            OnComplete.AddListener((a, b) =>
            {
                achievementEventHandler.RemoveListener(EventName, EventListener);
            });

            propertyAlreadyCompleted.AddListener(() =>
            {
                achievementEventHandler.RemoveListener(EventName, EventListener);
            });
        }