コード例 #1
0
        public PerInitiativeFeature(GiveControlSystem giveControlSystem, StimuliSystem stimuliSystem,
                                    PreTurnSystem preTurnSystem, PostTurnSystem postTurnSystem,
                                    PresentSurroundingsSystem presentSurroundingsSystem, PositionStablenessSystem positionStablenessSystem,
                                    MoveHeldAlongSystem moveHeldAlongSystem, GameEventSystems gameEventFeature,
                                    AnyStatusChangedSystem statusChangedSystem, ControlledEntityChangedSystem controlledEntityChangedSystem,
                                    StatusCountdownSystem statusCountdownSystem, LoadViewSystem loadViewSystem,
                                    DestroyEntitySystem destroyEntitySystem, IntegrityChangedSystem integrityChangedSystem,
                                    ResolveAbilitiesPerTurnSystem resolveAbilitiesPerTurnSystem,
                                    PlayerInventoryChangedSystem playerInventoryChangedSystem, DeathClockSystem deathClockSystem, HungerSystem hungerSystem)
        {
            Add(loadViewSystem);

            Add(controlledEntityChangedSystem);
            Add(presentSurroundingsSystem);

            Add(resolveAbilitiesPerTurnSystem);
            Add(hungerSystem);
            Add(stimuliSystem);
            Add(preTurnSystem);

            Add(giveControlSystem);

            Add(positionStablenessSystem);
            Add(moveHeldAlongSystem);
            Add(postTurnSystem);
            Add(deathClockSystem);

            Add(integrityChangedSystem);
            Add(statusCountdownSystem);
            Add(statusChangedSystem);
            Add(playerInventoryChangedSystem);

            Add(destroyEntitySystem);
            Add(gameEventFeature);
        }
コード例 #2
0
    public void Rising()
    {
        var context = new Contexts();

        context.game.services.MockService <IGameTimeService, MockGameTimeService>();

        var gameEventSystems = new GameEventSystems(context);
        var taskSystem       = new TaskSystem(context);

        var gameEntity = context.game.CreateEntity();

        var viewControllerObj = new GameObject("TestRisingViewController");

        viewControllerObj.AddComponent <CircleCollider2D>();

        var risingViewController = viewControllerObj.AddComponent <RiseViewController>();

        BindingTool.CheckBindings(risingViewController);

        var viewController = (IViewController)risingViewController;

        viewController.BeginController(context);
        viewController.OpenController(gameEntity);

        var rb = viewControllerObj.GetComponent <Rigidbody2D>();

        Assert.IsNotNull(rb);

        rb.rotation = UnityEngine.Random.Range(-3000, 3000);

        gameEntity.isRise = true;

        gameEventSystems.Execute();

        Assert.IsTrue(gameEntity.hasTask);

        int tryCount = 4000;

        while (gameEntity.hasTask &&
               --tryCount > 0)
        {
            taskSystem.Execute();

            gameEventSystems.Execute();
        }

        Assert.IsTrue(Math.Abs(rb.rotation) <= Mathf.Epsilon);
        Assert.IsFalse(gameEntity.hasTask);
    }
コード例 #3
0
        public void SetUp()
        {
            var settings = Resources.Load("GameSettings") as GameSettings;

            _context = new Contexts();
            _context.game.SetDeltaTime(0f);
            _context.game.SetGameSettings(settings);

            _playerMoveSystem            = new PlayerMoveSystem(10, _context.game, _context.input);
            _gameEventSystems            = new GameEventSystems(_context);
            _addPlayerViewReactiveSystem = new AddPlayerViewReactiveSystem(1, _context.game);

            _systems = new Feature("Game")
                       .Add(_addPlayerViewReactiveSystem)
                       .Add(_playerMoveSystem)
                       .Add(_gameEventSystems);

            _player = EntitiesFactory.CreatePlayer(_context.game, Vector3.zero, Quaternion.identity);
            _systems.Execute();
        }