Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
 public void ResetCriteria(CriteriaCondition condition, uint failAsset, bool evenIfCriteriaComplete = false)
 {
     m_achievementSys.ResetCriteria(condition, failAsset, evenIfCriteriaComplete);
     m_questObjectiveCriteriaMgr.ResetCriteria(condition, failAsset, evenIfCriteriaComplete);
 }