/// <summary> /// Check if quest has multiple same objectives /// </summary> /// <param name="objective"></param> /// <returns></returns> private bool CanAcceptObjective(ObjectiveSO objective) { int count1 = 0, count2 = 0; for (int i = 0; i < _currentQuest.Objective.Count; i++) { if (_currentQuest.Objective[i].ObjectiveName.Equals(objective.ObjectiveName)) { count1++; } } if (count1 == 0) { return(false); } for (int i = 0; i < _submittedObjectives.Count; i++) { if (_submittedObjectives[i].ObjectiveName.Equals(objective.ObjectiveName)) { count2++; } } return(count1 > count2); }
/// <summary> /// Checking if objective can be submitted /// </summary> /// <param name="objective"></param> private void TryToSubmitObjective(ObjectiveSO objective) { if (_currentQuest.Objective.Contains(objective) && CanAcceptObjective(objective)) { SubmitObjective(objective); } else { TooltipActionEvent?.Invoke(tooltipTextSO.WrongObjective); } }
/// <summary> /// Add objective to the _submittedObjectives and check if quest can be finished /// </summary> /// <param name="objective"></param> private void SubmitObjective(ObjectiveSO objective) { _submittedObjectives.Add(objective); ObjectiveSubmittedEvent?.Invoke(); string endValue = string.Format(tooltipTextSO.ObjectiveSubmitted, objective.ObjectiveName); TooltipActionEvent?.Invoke(endValue); if (_submittedObjectives.Count == _currentQuest.Objective.Count) { FinishQuest(); } }