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); }); }