Example #1
0
        public void CreateInteractionTypeSpecialisedTest_NonUserInteractionCanRunMethodsPrint()
        {
            // Arrange
            var interactonType = InteractionFactory.CreateInteractionTypeSpecialised(InteractionTypeEnum.Default);

            // Act
            interactonType.PrintValue(new List <long>());
        }
Example #2
0
            public void CreateInteractionTypeSpecialisedTest_NonUserInteraction()
            {
                // Arrange
                var interactonType = InteractionFactory.CreateInteractionTypeSpecialised(InteractionTypeEnum.Default);

                // Act
                Type rc = interactonType.GetType();

                // Assert
                Assert.IsTrue(rc.Name == "BaseInteraction");
            }
Example #3
0
            public void CreateInteractionTypeSpecialisedTest_UserInteraction()
            {
                // Arrange
                var interactonType = InteractionFactory.CreateInteractionTypeSpecialised(InteractionTypeEnum.ConsoleUser);

                // Act
                Type rc = interactonType.GetType();

                // Assert
                Assert.IsTrue(rc.Name == "UserConsoleInteraction");
            }
Example #4
0
            public void CreateInteractionTypeSpecialisedTest_NonUserInteractionCanRunMethodsGetValue()
            {
                // Arrange

                // Act
                var interactonType = InteractionFactory.CreateInteractionTypeSpecialised(InteractionTypeEnum.Default);

                // Assert
                var rc = interactonType.GetValue();

                Assert.IsTrue(rc > 0);
            }
        public override void Execute(Grid p_grid)
        {
            m_allSatisfied = (m_conditions.Count > 0);
            foreach (ObjectCondition objectCondition in m_conditions)
            {
                InteractiveObject interactiveObject = p_grid.FindInteractiveObject(objectCondition.id);
                if (interactiveObject == null)
                {
                    m_allSatisfied = false;
                    break;
                }
                if (interactiveObject.State != objectCondition.wantedState)
                {
                    m_allSatisfied = false;
                    break;
                }
            }
            EInteractionTiming einteractionTiming = EInteractionTiming.ON_FAIL;

            if (m_allSatisfied)
            {
                einteractionTiming = EInteractionTiming.ON_SUCCESS;
            }
            for (Int32 i = 0; i < Commands.Count; i++)
            {
                SpawnCommand spawnCommand = Commands[i];
                if ((spawnCommand.Timing == einteractionTiming || spawnCommand.Timing == EInteractionTiming.ON_EXECUTE) && (spawnCommand.ActivateCount == -1 || spawnCommand.ActivateCount > 0))
                {
                    BaseInteraction baseInteraction = InteractionFactory.Create(this, spawnCommand, SpawnerID, i);
                    if (baseInteraction.Valid && (spawnCommand.RequiredState == EInteractiveObjectState.NONE || StateIsMatching(spawnCommand, baseInteraction)))
                    {
                        Interactions.Add(baseInteraction);
                    }
                }
                m_stateMachine.ChangeState(EState.IDLE);
            }
            if (einteractionTiming == EInteractionTiming.ON_SUCCESS && QuestObjectives != null && QuestObjectives.Count > 0)
            {
                LegacyLogic.Instance.WorldManager.QuestHandler.ObjectInteraction(this);
            }
        }