Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        public void LeaveLocomotionMessage_UnregistersAnimalInputHandler()
        {
            UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(_animal.gameObject, new EnterLocomotionStateMessage());
            UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(_animal.gameObject, new LeaveLocomotionStateMessage());

            Assert.IsTrue(_inputBinder.IsHandlerOfTypeUnregistered <AnimalInputHandler>());
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        public void Initialised_SetsFollowTargetToTargetObject()
        {
            UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(_pathfinding.gameObject, new SuspiciousObjectDetectedMessage(_targetObject));
            _goal.Initialise();

            Assert.AreSame(_pathfinding.SetFollowTargetResult, _targetObject);
        }
Exemplo n.º 7
0
 public void OnNoiseHeard(NoiseData inNoiseData)
 {
     if (NoisesOfInterest.Contains(inNoiseData.NoiseType))
     {
         UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(gameObject, new NoiseHeardMessage(inNoiseData));
     }
 }
Exemplo n.º 8
0
 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);
        }
Exemplo n.º 11
0
        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);
        }
Exemplo n.º 13
0
        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);
        }
Exemplo n.º 14
0
        public void LeftDeadMessage_SetActive()
        {
            UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(_detector, new EnterDeadActionStateMessage());
            UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(_detector, new LeftDeadActionStateMessage());

            Assert.IsTrue(_vision.gameObject.activeSelf);
        }
Exemplo n.º 15
0
        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);
        }
Exemplo n.º 16
0
        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);
        }
Exemplo n.º 17
0
        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);
        }
Exemplo n.º 18
0
        public void Initialised_IdleTimeDoesNotPass_DoesNotSetTargetToAuthorLocation()
        {
            UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(_pathfinding.gameObject, new HealthChangedMessage(-2, 1, new GameObject()));
            _goal.Initialise();

            Assert.IsNull(_pathfinding.TargetLocation);
        }
Exemplo n.º 19
0
        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);
        }
Exemplo n.º 21
0
 private void UnregisterForTriggerMessages()
 {
     if (TriggerObject != null)
     {
         UnityMessageEventFunctions.UnregisterActionWithDispatcher(TriggerObject, _cancelTriggerMessageHandle);
         UnityMessageEventFunctions.UnregisterActionWithDispatcher(TriggerObject, _triggerMessageHandle);
     }
 }
Exemplo n.º 22
0
        private void RegisterForTriggerMessages()
        {
            _triggerMessageHandle = UnityMessageEventFunctions.RegisterActionWithDispatcher <TriggerMessage>
                                        (TriggerObject, OnTrigger);

            _cancelTriggerMessageHandle = UnityMessageEventFunctions.RegisterActionWithDispatcher <CancelTriggerMessage>
                                              (TriggerObject, OnCancelTrigger);
        }
Exemplo n.º 23
0
        protected override void OnStart()
        {
            var character = Info.Owner.GetComponent <CharacterComponent>();

            UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(Info.Owner, new EnterLocomotionStateMessage());

            RegisterForInput(character);
        }
Exemplo n.º 24
0
        public void Start_MultiTriggerFalse_NoCancel()
        {
            _triggerResponse.TestStart();

            UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(_triggerResponse.TriggerObject, new CancelTriggerMessage(new GameObject()));

            Assert.IsNull(_triggerResponse.OnCancelTriggerGameObject);
        }
Exemplo n.º 25
0
        public void InvokeMessageEvent_NullDispatcher_ExceptionThrown()
        {
            TestUnityMessageEventDispatcherInterface dispatcherInterface = null;

            Assert.Throws <UnityMessageHandleException>(() =>
                                                        UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(dispatcherInterface,
                                                                                                                    new UnityTestMessagePayload()));
        }
Exemplo n.º 26
0
 // IEmoteInterface
 public void SetEmoteState(EEmoteState inState)
 {
     if (_emoteState != inState)
     {
         _emoteState = inState;
         UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(gameObject, new EmoteStatusChangedMessage(_emoteState));
     }
 }
Exemplo n.º 27
0
        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);
        }
Exemplo n.º 28
0
 protected void OnGameObjectCollides(GameObject inCollidingObject)
 {
     if (inCollidingObject.GetComponent <CharacterComponent>() != null && !_previouslySaved)
     {
         _previouslySaved = true;
         PersistenceFunctions.WriteCurrentSave(GameDataStorageConstants.SaveDataPath, _persistence.Get());
         UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(inCollidingObject, new SaveGameTriggerActivatedMessage());
     }
 }
Exemplo n.º 29
0
        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());
        }
Exemplo n.º 30
0
        public void Terminated_CancelsPathfinding()
        {
            UnityMessageEventFunctions.InvokeMessageEventWithDispatcher(_pathfinding.gameObject, new SuspiciousObjectDetectedMessage(_targetObject));
            _goal.Initialise();

            _goal.Terminate();

            Assert.IsTrue(_pathfinding.CancelPathfindingCalled);
        }