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); }
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); }
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); }
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); }
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)); }
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; }
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); }
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)); }