public void CycleActiveGadget_ActiveSlotDoesNotChange_DoesNotSendMessage() { _set.InitialCapacities.Add(new GadgetSlotCapcity { Capacity = 2, Slot = EGadgetSlot.Mine }); _set.InitialCapacities.Add(new GadgetSlotCapcity { Capacity = 2, Slot = EGadgetSlot.NoiseMaker }); _gadget.GetGadgetSlotResult = EGadgetSlot.Mine; _otherGadget.GetGadgetSlotResult = EGadgetSlot.NoiseMaker; _set.TestAwake(); _set.AddGadget(_gadget); _set.AddGadget(_otherGadget); var messageSpy = new UnityTestMessageHandleResponseObject <GadgetUpdatedMessage>(); var handle = UnityMessageEventFunctions.RegisterActionWithDispatcher <GadgetUpdatedMessage>(_set.gameObject, messageSpy.OnResponse); _set.CycleActiveGadget(200); Assert.IsFalse(messageSpy.ActionCalled); UnityMessageEventFunctions.UnregisterActionWithDispatcher(_set.gameObject, handle); }
public void LeaveLocomotionMessage_UnregistersAnimalInputHandler() { UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(_animal.gameObject, new EnterLocomotionStateMessage()); UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(_animal.gameObject, new LeaveLocomotionStateMessage()); Assert.IsTrue(_inputBinder.IsHandlerOfTypeUnregistered <AnimalInputHandler>()); }
public void UseActiveGadget_GadgetsLeftInSameSlot_SendsMessageWithRemainingGadget() { _set.InitialCapacities.Add(new GadgetSlotCapcity { Capacity = 2, Slot = EGadgetSlot.Mine }); _gadget.GetGadgetSlotResult = EGadgetSlot.Mine; _otherGadget.GetGadgetSlotResult = EGadgetSlot.Mine; _set.TestAwake(); _set.AddGadget(_gadget); _set.AddGadget(_otherGadget); var messageSpy = new UnityTestMessageHandleResponseObject <GadgetUpdatedMessage>(); var handle = UnityMessageEventFunctions.RegisterActionWithDispatcher <GadgetUpdatedMessage>(_set.gameObject, messageSpy.OnResponse); _set.UseActiveGadget(); Assert.IsTrue(messageSpy.ActionCalled); Assert.AreSame(_gadget, messageSpy.MessagePayload.NewGadget); Assert.AreEqual(1, messageSpy.MessagePayload.SlotCount); UnityMessageEventFunctions.UnregisterActionWithDispatcher(_set.gameObject, handle); }
public void ReadData_SetsExpectedCompanions() { var messageSpy = new UnityTestMessageHandleResponseObject <CompanionSlotsUpdatedMessage>(); var initialUseCount = _companion.GetCompanionDataResult.PowerUseCount; var handle = UnityMessageEventFunctions.RegisterActionWithDispatcher <CompanionSlotsUpdatedMessage>(_set.gameObject, messageSpy.OnResponse); _set.SetCompanion(_companion, ECompanionSlot.Primary); var stream = new MemoryStream(); _set.WriteData(stream); _set.ClearCompanion(ECompanionSlot.Primary); var readStream = new MemoryStream(stream.ToArray()); _companion.GetCompanionDataResult.PowerUseCount++; _set.ReadData(readStream); _set.TestUpdate(); Assert.IsTrue(messageSpy.ActionCalled); Assert.IsNotNull(messageSpy.MessagePayload.Updates[ECompanionSlot.Primary].PriorCompanion); Assert.AreEqual(initialUseCount, messageSpy.MessagePayload.Updates[ECompanionSlot.Primary].PriorCompanion.GetCompanionData().PowerUseCount); UnityMessageEventFunctions.UnregisterActionWithDispatcher(_set.gameObject, handle); }
public void Initialised_RotatesToFaceGoal() { UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(_pathfinding.gameObject, new SuspiciousObjectDetectedMessage(_targetObject)); _goal.Initialise(); ExtendedAssertions.AssertVectorsNearlyEqual(_pathfinding.gameObject.transform.up, (_targetObject.transform.position - _pathfinding.gameObject.transform.position).normalized); }
public void Initialised_SetsFollowTargetToTargetObject() { UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(_pathfinding.gameObject, new SuspiciousObjectDetectedMessage(_targetObject)); _goal.Initialise(); Assert.AreSame(_pathfinding.SetFollowTargetResult, _targetObject); }
public void OnNoiseHeard(NoiseData inNoiseData) { if (NoisesOfInterest.Contains(inNoiseData.NoiseType)) { UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(gameObject, new NoiseHeardMessage(inNoiseData)); } }
private void UnregisterForMessages() { if (_enterDeadActionStateHandle != null) { UnityMessageEventFunctions.UnregisterActionWithDispatcher(gameObject, _enterDeadActionStateHandle); } }
public void LeftDeadActionStateMessageReceived_StartsCameraFade() { UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(_effects.gameObject, new LeftDeadActionStateMessage()); Assert.AreEqual(0.0f, _postProcess.RequestCameraFadeAlpha); Assert.AreEqual(_effects.FadeOutTime, _postProcess.RequestCameraFadeFadeTime); }
public void ReceivesCancelTrigger_EventOfInterestCancelNameNotSet_DoesNotRecordWithService() { _interest.EventOfInterestNameForCancelTrigger = ""; UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(_interest.TriggerObject, new CancelTriggerMessage(null)); Assert.IsFalse(_service.EventRecorded); }
public void Initialised_IdleTimeDoesNotPass_DoesNotSetTargetToSightingLocation() { UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(_pathfinding.gameObject, new SuspiciousObjectSightedMessage(_targetObject)); _goal.Initialise(); Assert.IsNull(_pathfinding.TargetLocation); }
public void PauseStatusChangedMessageReceived_Unpaused_InstantFadeToZero() { UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(_effects.gameObject, new PauseStatusChangedMessage(EPauseStatus.Unpaused)); Assert.AreEqual(0.0f, _postProcess.RequestCameraFadeAlpha); Assert.AreEqual(0.0f, _postProcess.RequestCameraFadeFadeTime); }
public void CycleActiveGadget_Negative_WrapsAround() { _set.InitialCapacities.Add(new GadgetSlotCapcity { Capacity = 2, Slot = EGadgetSlot.Mine }); _set.InitialCapacities.Add(new GadgetSlotCapcity { Capacity = 2, Slot = EGadgetSlot.NoiseMaker }); _gadget.GetGadgetSlotResult = EGadgetSlot.Mine; _otherGadget.GetGadgetSlotResult = EGadgetSlot.NoiseMaker; _set.TestAwake(); _set.AddGadget(_gadget); _set.AddGadget(_otherGadget); var messageSpy = new UnityTestMessageHandleResponseObject <GadgetUpdatedMessage>(); var handle = UnityMessageEventFunctions.RegisterActionWithDispatcher <GadgetUpdatedMessage>(_set.gameObject, messageSpy.OnResponse); _set.CycleActiveGadget(-1); Assert.IsTrue(messageSpy.ActionCalled); Assert.AreSame(_otherGadget, messageSpy.MessagePayload.NewGadget); Assert.AreEqual(1, messageSpy.MessagePayload.SlotCount); UnityMessageEventFunctions.UnregisterActionWithDispatcher(_set.gameObject, handle); }
public void LeftDeadMessage_SetActive() { UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(_detector, new EnterDeadActionStateMessage()); UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(_detector, new LeftDeadActionStateMessage()); Assert.IsTrue(_vision.gameObject.activeSelf); }
public void ReadData_Collisions_CannotSave() { _trigger.TestCollide(_character.gameObject); var stream = new MemoryStream(); _trigger.WriteData(stream); var readStream = new MemoryStream(stream.ToArray()); _trigger.ReadData(readStream); var messageSpy = new UnityTestMessageHandleResponseObject <SaveGameTriggerActivatedMessage>(); var handle = UnityMessageEventFunctions.RegisterActionWithDispatcher <SaveGameTriggerActivatedMessage>(_character.gameObject, messageSpy.OnResponse); _trigger.TestCollide(_character.gameObject); Assert.IsFalse(messageSpy.ActionCalled); UnityMessageEventFunctions.UnregisterActionWithDispatcher(_character.gameObject, handle); }
public void OnSuspiciousObjectCollides_Updates_SendsDetectionMessageToDetectorForCorrectObject() { _vision.IsSuspiciousResult = true; var detectedObject = new GameObject(); var laterObject = new GameObject(); var messageSpy = new UnityTestMessageHandleResponseObject <SuspiciousObjectDetectedMessage>(); var handle = UnityMessageEventFunctions.RegisterActionWithDispatcher <SuspiciousObjectDetectedMessage>(_detector, messageSpy.OnResponse); _vision.TestCollide(detectedObject); _vision.TestUpdate(_vision.TimeUntilDetection - 0.1f); _vision.TestCollide(laterObject); _vision.TestUpdate(0.2f); Assert.IsTrue(messageSpy.ActionCalled); Assert.AreSame(detectedObject, messageSpy.MessagePayload.SuspiciousGameObject); _vision.TestUpdate(_vision.TimeUntilDetection + 0.1f); Assert.AreSame(laterObject, messageSpy.MessagePayload.SuspiciousGameObject); UnityMessageEventFunctions.UnregisterActionWithDispatcher(_detector, handle); }
public void OnSuspiciousObjectCollides_UpdateTogglesSuspicions_SendsExpectedMessages() { _vision.IsSuspiciousResult = false; var detectedObject = new GameObject(); _vision.TestCollide(detectedObject); _vision.IsSuspiciousResult = true; _vision.TestUpdate(_vision.TimeUntilDetection + 0.1f); _vision.TestUpdate(_vision.TimeUntilDetection + 0.1f); var messageSpy = new UnityTestMessageHandleResponseObject <SuspiciousObjectDetectedMessage>(); var handle = UnityMessageEventFunctions.RegisterActionWithDispatcher <SuspiciousObjectDetectedMessage>(_detector, messageSpy.OnResponse); _vision.IsSuspiciousResult = false; _vision.TestUpdate(_vision.TimeUntilDetection + 0.1f); Assert.IsFalse(messageSpy.ActionCalled); UnityMessageEventFunctions.UnregisterActionWithDispatcher(_detector, handle); }
public void Initialised_IdleTimeDoesNotPass_DoesNotSetTargetToAuthorLocation() { UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(_pathfinding.gameObject, new HealthChangedMessage(-2, 1, new GameObject())); _goal.Initialise(); Assert.IsNull(_pathfinding.TargetLocation); }
public void Desirability_InProgress_ParamSpecified() { UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(_pathfinding.gameObject, new SuspiciousObjectDetectedMessage(_targetObject)); _goal.CalculateDesirability(); _goal.Initialise(); Assert.AreEqual(_params.TargetDetectedDesirability, _goal.CalculateDesirability()); }
public void ReceivePauseStatusChangedMessage_Unpaused_RequestNullActionState() { UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(_playerUi.gameObject, new PauseStatusChangedMessage(EPauseStatus.Unpaused)); Assert.AreEqual(EActionStateMachineTrack.UI, _actionStateMachineComponent.RequestedTrack); Assert.AreEqual(EActionStateId.Null, _actionStateMachineComponent.RequestedId); Assert.AreEqual(_playerUi.gameObject, _actionStateMachineComponent.RequestedInfo.Owner); }
private void UnregisterForTriggerMessages() { if (TriggerObject != null) { UnityMessageEventFunctions.UnregisterActionWithDispatcher(TriggerObject, _cancelTriggerMessageHandle); UnityMessageEventFunctions.UnregisterActionWithDispatcher(TriggerObject, _triggerMessageHandle); } }
private void RegisterForTriggerMessages() { _triggerMessageHandle = UnityMessageEventFunctions.RegisterActionWithDispatcher <TriggerMessage> (TriggerObject, OnTrigger); _cancelTriggerMessageHandle = UnityMessageEventFunctions.RegisterActionWithDispatcher <CancelTriggerMessage> (TriggerObject, OnCancelTrigger); }
protected override void OnStart() { var character = Info.Owner.GetComponent <CharacterComponent>(); UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(Info.Owner, new EnterLocomotionStateMessage()); RegisterForInput(character); }
public void Start_MultiTriggerFalse_NoCancel() { _triggerResponse.TestStart(); UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(_triggerResponse.TriggerObject, new CancelTriggerMessage(new GameObject())); Assert.IsNull(_triggerResponse.OnCancelTriggerGameObject); }
public void InvokeMessageEvent_NullDispatcher_ExceptionThrown() { TestUnityMessageEventDispatcherInterface dispatcherInterface = null; Assert.Throws <UnityMessageHandleException>(() => UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(dispatcherInterface, new UnityTestMessagePayload())); }
// IEmoteInterface public void SetEmoteState(EEmoteState inState) { if (_emoteState != inState) { _emoteState = inState; UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(gameObject, new EmoteStatusChangedMessage(_emoteState)); } }
public void Initialised_IdleTimePasses_SetsTargetToSightingLocation() { UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(_pathfinding.gameObject, new SuspiciousObjectSightedMessage(_targetObject)); _goal.Initialise(); _goal.Update(_params.IdleDelayOnDetection + 0.1f); Assert.AreEqual(_targetObject.transform.position, _pathfinding.TargetLocation); }
protected void OnGameObjectCollides(GameObject inCollidingObject) { if (inCollidingObject.GetComponent <CharacterComponent>() != null && !_previouslySaved) { _previouslySaved = true; PersistenceFunctions.WriteCurrentSave(GameDataStorageConstants.SaveDataPath, _persistence.Get()); UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(inCollidingObject, new SaveGameTriggerActivatedMessage()); } }
public void Desirability_OutsideFollowRadius_Zeroes() { UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(_pathfinding.gameObject, new SuspiciousObjectDetectedMessage(_targetObject)); _goal.Initialise(); _targetObject.transform.position = new Vector3(_params.AbandonPursuitRadiusSquared, _params.AbandonPursuitRadiusSquared, 0.0f); Assert.AreEqual(0.0f, _goal.CalculateDesirability()); }
public void Terminated_CancelsPathfinding() { UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(_pathfinding.gameObject, new SuspiciousObjectDetectedMessage(_targetObject)); _goal.Initialise(); _goal.Terminate(); Assert.IsTrue(_pathfinding.CancelPathfindingCalled); }