bool CheckCondition(IEnumerable <string> instanceIds, FrameOperationContext fop, WorldObjectProximityCondition condition, out object[] results)
        {
            results = null;

            if (!ARWorld.Instance.IsActive)
            {
                return(false);
            }

            foreach (var instId in instanceIds)
            {
                var objs = ARWorld.Instance.GetWorldObjects(instId);

                if (objs != null)
                {
                    foreach (var obj in objs)
                    {
                        if (obj.GameObject.activeSelf)
                        {
                            var distance = ARWorld.Instance.GetDistance(obj);

                            if (condition.Range.IsInRange(distance))
                            {
                                // Todo: gather and return results
                                return(true);
                            }
                        }
                    }
                }
            }

            return(false);
        }
Ejemplo n.º 2
0
        public override bool CheckState(FrameOperationContext fop, TaskObjectiveCompleteCondition condition, out object[] results)
        {
            results = null;

            if (condition.TaskObjectiveReference != null)
            {
                return(TaskManager.Instance.CheckObjective(condition.TaskObjectiveReference.ObjectId));
            }

            return(false);
        }
Ejemplo n.º 3
0
        public override void CheckState(FrameOperationContext fop, InventoryCondition condition, ConditionCheckStateComplete onComplete)
        {
            // Get the current count of the item in the inventory
            var count = Inventory.Instance.GetCount(condition.CollectibleCount.CollectibleId);

            // Use MathHelper to compare this count with the count in the condition, given the
            // numerical condition operator
            var result = MathHelper.CheckNumericalCondition(condition.Operator, count, condition.CollectibleCount.Count);

            // Report back whether or not this condition is met
            onComplete(result, null);
        }
Ejemplo n.º 4
0
        public override void CheckState(FrameOperationContext fop, PedometerCondition condition, ConditionCheckStateComplete onComplete)
        {
            bool  res = false;
            float spm = PedometerCalculator.Instance.StepsPerMinute;

            if (condition.StepsPerMinuteRange != null)
            {
                res = condition.StepsPerMinuteRange.IsInRange(spm);
            }

            onComplete(res, null);
        }
Ejemplo n.º 5
0
        public override bool CheckState(FrameOperationContext fop, WalletCondition condition, out object[] results)
        {
            results = null;

            if (condition.CurrencyCount == null)
            {
                return(false);
            }

            int count = Wallet.Instance.GetCount(condition.CurrencyCount.Currency);

            return(MathHelper.CheckNumericalCondition(condition.Operator, count, condition.CurrencyCount.Count));
        }
Ejemplo n.º 6
0
        public override bool CheckState(FrameOperationContext fop, CanCompleteTaskCondition condition, out object[] results)
        {
            results = null;

            if (condition.TaskReference != null)
            {
                var instanceId = fop.GetInstanceId(condition.TaskReference.ObjectId);

                var driver = TaskManager.Instance.GetDriver(instanceId);

                return(TaskManager.Instance.CanComplete(driver));
            }

            return(false);
        }
        public override bool CheckState(FrameOperationContext fop, CanCompleteObjectiveTaskCondition condition, out object[] results)
        {
            results = null;

            if (condition.ObjectiveReference != null)
            {
                var task = TaskManager.Instance.GetTaskDriverForObjective(condition.ObjectiveReference.ObjectId);

                if (task != null)
                {
                    return(TaskManager.Instance.CanComplete(task));
                }
            }

            return(false);
        }
        public override bool CheckState(FrameOperationContext fop, AppVersionCondition condition, out object[] results)
        {
            results = null;

            if (condition.Version == null)
            {
                return(false);
            }

            var version = Parse(condition.Version);

            return(Motive.Core.Utilities.MathHelper.CheckNumericalCondition(
                       condition.Operator.GetValueOrDefault(NumericalConditionOperator.GreaterThanOrEqual),
                       m_appVersion, version));

            //return m_appVersion >= version;
        }
Ejemplo n.º 9
0
        public override bool CheckState(FrameOperationContext fop, CollectibleHasRecipeCondition condition, out object[] results)
        {
            if (condition.CollectibleReference != null && condition.CollectibleReference.ObjectId != null)
            {
                var recipes = ActivatedRecipeManager.Instance.GetRecipesForCollectible(condition.CollectibleReference.ObjectId);

                if (recipes != null && recipes.Count() > 0)
                {
                    results = recipes.ToArray();

                    return(true);
                }
            }

            results = null;

            return(false);
        }
        public override bool CheckState(FrameOperationContext fop, CanExecuteRecipeCondition condition, out object[] results)
        {
            results = null;

            if (condition.RecipeReference != null)
            {
                // First, is recipe active
                var recipe = ActivatedRecipeManager.Instance.GetRecipe(condition.RecipeReference.ObjectId);

                if (recipe != null)
                {
                    return(CraftingHelper.GetMaxNumberOfCrafts(recipe) >=
                           condition.Count.GetValueOrDefault(1));
                }
            }

            return(false);
        }
        public override bool CheckState(FrameOperationContext fop, VisualMarkerTrackingCondition condition, out object[] results)
        {
            bool met = true;

            List <IVisualMarker> matching = null;

            if (condition.VisualMarkers != null)
            {
                foreach (var vm in condition.VisualMarkers)
                {
                    var isTracking = false;

                    var vum = vm as IVuforiaMarker;

                    if (vum != null)
                    {
                        isTracking = VuforiaWorld.Instance.IsTracking(vum);

                        if (isTracking)
                        {
                            if (matching == null)
                            {
                                matching = new List <IVisualMarker>();
                            }

                            matching.Add(vum);
                        }
                    }

                    met &= isTracking;
                }
            }

            if (matching != null)
            {
                results = matching.ToArray();
            }
            else
            {
                results = null;
            }

            return(met);
        }
Ejemplo n.º 12
0
        public override bool CheckState(FrameOperationContext fop, VisualMarkerTrackingCondition condition, out object[] results)
        {
            bool met = true;

            List <IVisualMarker> matching = null;

            if (condition.VisualMarkers != null)
            {
                foreach (var vm in condition.VisualMarkers.OfType <IVisualMarker>())
                {
                    var isTracking = false;

                    if (vm != null)
                    {
                        m_logger.Debug("Checking tracking for marker {0}", vm.GetIdentifier());

                        isTracking = ARMarkerManager.Instance.IsTracking(vm);

                        if (isTracking)
                        {
                            if (matching == null)
                            {
                                matching = new List <IVisualMarker>();
                            }

                            matching.Add(vm);
                        }
                    }

                    met &= isTracking;
                }
            }

            if (matching != null)
            {
                results = matching.ToArray();
            }
            else
            {
                results = null;
            }

            return(met);
        }
        public override bool CheckState(FrameOperationContext fop, WorldObjectProximityCondition condition, out object[] results)
        {
            results = null;

            if (condition.WorldObjectReferences == null ||
                condition.Range == null)
            {
                return(false);
            }

            foreach (var objRef in condition.WorldObjectReferences)
            {
                var instIds = condition.WorldObjectReferences.Select(o => fop.GetInstanceId(o.ObjectId));

                return(CheckCondition(instIds, fop, condition, out results));
            }

            return(false);
        }
        public override void WaitForConditionUpdate(FrameOperationContext fop, WorldObjectProximityCondition condition)
        {
            if (condition.WorldObjectReferences == null &&
                condition.Range == null)
            {
                return;
            }

            var state = new ConditionState()
            {
                InstanceIds           = condition.WorldObjectReferences.Select(r => fop.GetInstanceId(r.ObjectId)).ToArray(),
                FrameOperationContext = fop,
                Condition             = condition
            };

            m_waitingConditions[fop.GetInstanceId(condition.Id)] = state;

            base.WaitForConditionUpdate(fop, condition);
        }
        public override bool CheckState(FrameOperationContext fop, CanCraftCollectibleCondition condition, out object[] results)
        {
            if (condition.CollectibleCount != null)
            {
                var recipes = ActivatedRecipeManager.Instance.GetRecipesForCollectible(condition.CollectibleCount.CollectibleId);

                if (recipes != null)
                {
                    var canCraft = recipes.Where(
                        r => CraftingHelper.GetMaxNumberOfCrafts(r) >= condition.CollectibleCount.Count)
                                   .ToArray();

                    if (canCraft.Length >= 1)
                    {
                        results = canCraft;
                        return(true);
                    }
                }
            }

            results = null;

            return(false);
        }
        public override void StopWaiting(FrameOperationContext fop, WorldObjectProximityCondition condition)
        {
            m_waitingConditions.Remove(fop.GetInstanceId(condition.Id));

            base.StopWaiting(fop, condition);
        }
        public override bool CheckState(FrameOperationContext fop, RecipeActivatedCondition condition, out object[] results)
        {
            results = null;

            return(ActivatedRecipeManager.Instance.IsRecipeActivated(condition.RecipeReference.ObjectId));
        }