public void Update_CallsStartOnConditionsOnceTheirTrackIsRunning() { var conditionRunner = new ActionStateConditionRunner(); var firstCondition = new TestActionStateCondition(); var secondCondition = new TestActionStateCondition(); conditionRunner.AddCondition(firstCondition); conditionRunner.PushNewTrack(); conditionRunner.AddCondition(secondCondition); firstCondition.ForceComplete(); conditionRunner.Update(1.0f); conditionRunner.Update(1.0f); Assert.IsTrue(secondCondition.StartCalled); }
public void Update_OnlyEndsConditionOnceOnCompletion() { var conditionRunner = new ActionStateConditionRunner(); var firstCondition = new TestActionStateCondition(); var secondCondition = new TestActionStateCondition(); conditionRunner.AddCondition(firstCondition); conditionRunner.AddCondition(secondCondition); firstCondition.ForceComplete(); conditionRunner.Update(1.0f); conditionRunner.Update(1.0f); Assert.AreEqual(1, firstCondition.EndCalls); }
public void PushNewTrack_UpdateAfterPriorCompletesTrack() { var conditionRunner = new ActionStateConditionRunner(); var firstCondition = new TestActionStateCondition(); var secondCondition = new TestActionStateCondition(); conditionRunner.AddCondition(firstCondition); conditionRunner.PushNewTrack(); conditionRunner.AddCondition(secondCondition); firstCondition.ForceComplete(); secondCondition.ForceComplete(); conditionRunner.Update(1.0f); conditionRunner.Update(1.0f); Assert.IsTrue(conditionRunner.IsComplete()); }
public void Update_ConditionDoesNotComplete_CompleteFalse() { var conditionRunner = new ActionStateConditionRunner(); var condition = new TestActionStateCondition(); conditionRunner.AddCondition(condition); conditionRunner.Update(1.0f); Assert.IsFalse(conditionRunner.IsComplete()); }
protected override void OnUpdate(float deltaTime) { _conditionRunner.Update(deltaTime); if (_conditionRunner.IsComplete()) { if (_params.CanRespawn) { UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(GameModeComponent.RegisteredGameMode.gameObject, new RequestRespawnMessage(Info.Owner)); } } }
public void Update_ConditionDoesComplete_CallsEnd() { var conditionRunner = new ActionStateConditionRunner(); var condition = new TestActionStateCondition(); conditionRunner.AddCondition(condition); condition.ForceComplete(); conditionRunner.Update(1.0f); Assert.AreEqual(1, condition.EndCalls); }
public void Update_CallsUpdateWithFloat() { var conditionRunner = new ActionStateConditionRunner(); var condition = new TestActionStateCondition(); const float deltaTime = 12.0f; conditionRunner.AddCondition(condition); conditionRunner.Update(deltaTime); Assert.IsTrue(condition.UpdateCalled); Assert.AreEqual(deltaTime, condition.UpdateDelta); }
public void Update_NeedsAllConditionsToComplete() { var conditionRunner = new ActionStateConditionRunner(); var firstCondition = new TestActionStateCondition(); var secondCondition = new TestActionStateCondition(); conditionRunner.AddCondition(firstCondition); conditionRunner.AddCondition(secondCondition); firstCondition.ForceComplete(); conditionRunner.Update(1.0f); Assert.IsFalse(conditionRunner.IsComplete()); }
public void PushNewTrack_DoesNotUpdateNewTrackUntilPriorComplete() { var conditionRunner = new ActionStateConditionRunner(); var firstCondition = new TestActionStateCondition(); var secondCondition = new TestActionStateCondition(); conditionRunner.AddCondition(firstCondition); conditionRunner.PushNewTrack(); conditionRunner.AddCondition(secondCondition); firstCondition.ForceComplete(); secondCondition.ForceComplete(); conditionRunner.Update(1.0f); Assert.IsFalse(conditionRunner.IsComplete()); }