/// <summary> /// Called after creation of Achievement instance. /// DO NOT CALL UNLESS YOU KNOW WHAT YOU ARE DOING. /// </summary> /// <param name="eventHandlers">Reference to Event Handlers</param> public void SetupAchievementProperties(AchievementEventHandlers eventHandlers) { foreach (var achievementProperty in AchievementProperties) { achievementProperty.Value.Register(eventHandlers); achievementProperty.Value.SetOwner(this); } }
/// <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); }); }