コード例 #1
0
ファイル: TieredLockTests.cs プロジェクト: Huxellberger/Cell
        public void Lock_IsLocked_True()
        {
            var tieredLock = new TieredLock <ETestTieredLockEnum>();

            tieredLock.Lock(ETestTieredLockEnum.TestReason);

            Assert.IsTrue(tieredLock.IsLocked());
        }
コード例 #2
0
ファイル: HealthComponent.cs プロジェクト: Huxellberger/Cell
        private bool CanAdjustHealth()
        {
            if (_healthChangeEnabled != null)
            {
                return(!_healthChangeEnabled.IsLocked());
            }

            return(false);
        }
コード例 #3
0
ファイル: TieredLockTests.cs プロジェクト: Huxellberger/Cell
        public void Lock_MultipleLocks_True()
        {
            var tieredLock = new TieredLock <ETestTieredLockEnum>();

            tieredLock.Lock(ETestTieredLockEnum.TestReason);
            tieredLock.Lock(ETestTieredLockEnum.OtherTestReason);

            Assert.IsTrue(tieredLock.IsLocked());
        }
コード例 #4
0
ファイル: TieredLockTests.cs プロジェクト: Huxellberger/Cell
        public void Lock_UnlockAfterLocked_False()
        {
            var tieredLock = new TieredLock <ETestTieredLockEnum>();

            tieredLock.Lock(ETestTieredLockEnum.TestReason);
            tieredLock.Unlock(ETestTieredLockEnum.TestReason);

            Assert.IsFalse(tieredLock.IsLocked());
        }
コード例 #5
0
ファイル: TieredLockTests.cs プロジェクト: Huxellberger/Cell
        public void Lock_MultipleLockedAndAllUnlocked_False()
        {
            var tieredLock = new TieredLock <ETestTieredLockEnum>();

            tieredLock.Lock(ETestTieredLockEnum.TestReason);
            tieredLock.Lock(ETestTieredLockEnum.OtherTestReason);
            tieredLock.Unlock(ETestTieredLockEnum.OtherTestReason);
            tieredLock.Unlock(ETestTieredLockEnum.TestReason);

            Assert.IsFalse(tieredLock.IsLocked());
        }
コード例 #6
0
ファイル: VisionComponent.cs プロジェクト: Huxellberger/Cell
        private void AlterLock(bool locking, EVisionDisableReasons inReason)
        {
            if (locking)
            {
                _visionLock.Lock(inReason);

                if (_visionLock.IsLocked())
                {
                    gameObject.SetActive(false);
                }
            }
            else
            {
                _visionLock.Unlock(inReason);

                if (!_visionLock.IsLocked())
                {
                    gameObject.SetActive(true);
                }
            }
        }
コード例 #7
0
ファイル: TieredLockTests.cs プロジェクト: Huxellberger/Cell
        public void Unlock_AlreadyUnlocked_ErrorAndStillUnlocked()
        {
            const ETestTieredLockEnum expectedReason = ETestTieredLockEnum.TestReason;

            LogAssert.Expect(LogType.Error, "Failed to unlock! Not locked with reason " + expectedReason);

            var tieredLock = new TieredLock <ETestTieredLockEnum>();

            tieredLock.Unlock(ETestTieredLockEnum.TestReason);

            Assert.IsFalse(tieredLock.IsLocked());
        }
コード例 #8
0
ファイル: TieredLockTests.cs プロジェクト: Huxellberger/Cell
        public void Lock_AlreadyLocked_ErrorAndStillLocked()
        {
            const ETestTieredLockEnum expectedReason = ETestTieredLockEnum.TestReason;

            LogAssert.Expect(LogType.Error, "Failed to lock! Already locked for reason " + expectedReason);

            var tieredLock = new TieredLock <ETestTieredLockEnum>();

            tieredLock.Lock(ETestTieredLockEnum.TestReason);
            tieredLock.Lock(ETestTieredLockEnum.TestReason);

            Assert.IsTrue(tieredLock.IsLocked());
        }
コード例 #9
0
        protected void Update()
        {
            if (_thoughtLock.IsLocked())
            {
                return;
            }

            if (ActiveGoal == null)
            {
                ActiveGoal = GetMostDesirableGoal();
                return;
            }

            var deltaTime = GetDeltaTime();

            var updateResult = ActiveGoal.Update(deltaTime);

            switch (updateResult)
            {
            case EGoalStatus.Completed:
            case EGoalStatus.Failed:
                ActiveGoal.Terminate();
                ActiveGoal = GetMostDesirableGoal();
                ActiveGoal.Initialise();
                break;

            case EGoalStatus.InProgress:
                var mostDesirableGoal = GetMostDesirableGoal();
                if (mostDesirableGoal != null && mostDesirableGoal != ActiveGoal)
                {
                    ActiveGoal = mostDesirableGoal;
                }
                break;

            default:
                break;
            }
        }
コード例 #10
0
ファイル: TieredLockTests.cs プロジェクト: Huxellberger/Cell
        public void Creation_IsLocked_False()
        {
            var tieredLock = new TieredLock <ETestTieredLockEnum>();

            Assert.IsFalse(tieredLock.IsLocked());
        }
コード例 #11
0
        // ~IStaminaInterface

        private bool CanAdjustStamina()
        {
            return(!_staminaLock.IsLocked());
        }