Example #1
0
        public void Evalute(Goal lastCompletedGoal)
        {
            var goalsCompleted = true;

            for (int goal = 0; goal < Goals.Count; goal++)
            {
                if (Goals[goal].Completed)
                {
                    continue;
                }
                goalsCompleted = false;
                break;
            }

            completed = goalsCompleted;

            if (!completed)
            {
                return;
            }
            active = false;
            if (OnStageCompleted == null)
            {
                return;
            }
            OnStageCompleted(this);
            Delegate[] completedDelegates = OnStageCompleted.GetInvocationList();
            for (int i = 0; i < completedDelegates.Length; i++)
            {
                OnStageCompleted -= completedDelegates[i] as Action <StageS>;
            }

            if (OnStageActivated == null)
            {
                return;
            }
            Delegate[] activatedDelegates = OnStageActivated.GetInvocationList();
            for (int i = 0; i < activatedDelegates.Length; i++)
            {
                OnStageActivated -= activatedDelegates[i] as Action <StageS>;
            }
        }
Example #2
0
 public void Activate()
 {
     active = true;
     OnStageActivated?.Invoke(this); // maybe find a way to not use ?
 }