public void ResetCriteria(CriteriaCondition condition, uint failAsset, bool evenIfCriteriaComplete) { Log.outDebug(LogFilter.Player, $"QuestObjectiveCriteriaMgr.ResetCriteria({condition}, {failAsset}, {evenIfCriteriaComplete})"); // disable for gamemasters with GM-mode enabled if (_owner.IsGameMaster()) { return; } var playerCriteriaList = Global.CriteriaMgr.GetCriteriaByFailEvent(condition, (int)failAsset); foreach (Criteria playerCriteria in playerCriteriaList) { var trees = Global.CriteriaMgr.GetCriteriaTreesByCriteria(playerCriteria.Id); bool allComplete = true; foreach (CriteriaTree tree in trees) { // don't update already completed criteria if not forced if (!(IsCompletedCriteriaTree(tree) && !evenIfCriteriaComplete)) { allComplete = false; break; } } if (allComplete) { continue; } RemoveCriteriaProgress(playerCriteria); } }
public IDescriptorCondition MapFrom(CriteriaCondition criteriaCondition, string tag) { switch (criteriaCondition) { case CriteriaCondition.Has: return(new MatchTagCondition(tag)); case CriteriaCondition.DoesNotHave: return(new NotMatchTagCondition(tag)); case CriteriaCondition.InContainer: return(new InContainerCondition(tag)); case CriteriaCondition.NotInContainer: return(new NotInContainerCondition(tag)); default: throw new ArgumentOutOfRangeException(nameof(criteriaCondition), criteriaCondition, null); } }
public void ResetCriteria(CriteriaCondition condition, uint failAsset, bool evenIfCriteriaComplete = false) { m_achievementSys.ResetCriteria(condition, failAsset, evenIfCriteriaComplete); m_questObjectiveCriteriaMgr.ResetCriteria(condition, failAsset, evenIfCriteriaComplete); }