示例#1
0
        public void SetUp()
        {
            _targetingData    = GetTargetingData();
            _callbackTarget   = null;
            _callbackHappened = false;

            _renderer = Substitute.For <IUnifiedRenderer>();
            var rendererSystem = Substitute.For <IRendererSystem>();

            rendererSystem.Renderer.Returns(_renderer);

            var playerSystem = Substitute.For <IPlayerSystem>();

            _activityStack = new ActivityStack();
            _ioConfig      = new IOSystemConfiguration();
            _activityStack.Push(new GameplayActivity(new Rectangle(0, 0, 0, 0), new Padding(0), _ioConfig, playerSystem));
            _activitySystem  = Substitute.For <IActivitySystem>();
            _positionSystem  = Substitute.For <IPositionSystem>();
            _targetingSystem = Substitute.For <ITargetingSystem>();
            _systemContainer = Substitute.For <ISystemContainer>();
            _systemContainer.ActivitySystem.Returns(_activitySystem);
            _systemContainer.PositionSystem.Returns(_positionSystem);
            _systemContainer.RendererSystem.Returns(rendererSystem);
            _systemContainer.TargetingSystem.Returns(_targetingSystem);

            SetTargetableCells(new MapCoordinate("Map", 1, 0));

            _targetingActivity = new TargetingActivity(_activitySystem.DefaultPosition, _activitySystem.DefaultPadding, _targetingData, _callback, _systemContainer, new MapCoordinate("Map", 0, 0), _ioConfig);
            _activityStack.Push(_targetingActivity);
        }
示例#2
0
        private void GetTargetForPlayer(Targeting data, Action <MapCoordinate> callback)
        {
            var playerPosition = _systemContainer.PositionSystem.CoordinateOf(_systemContainer.PlayerSystem.Player);

            var activity = new TargetingActivity(_activitySystem.DefaultPosition, _activitySystem.DefaultPadding, data, callback, _systemContainer, playerPosition, _rendererSystem.IOSystemConfiguration);

            _activitySystem.Push(activity);
        }
示例#3
0
        public void Complete_WithDefaultTarget_ReturnsDefaultTarget()
        {
            var entity     = Substitute.For <IEntity>();
            var entityList = new List <IEntity> {
                entity
            };

            entity.Has <Health>().Returns(true);
            _positionSystem.EntitiesAt(Arg.Any <MapCoordinate>()).ReturnsForAnyArgs(entityList);
            _systemContainer.PositionSystem.Returns(_positionSystem);

            _targetingActivity = new TargetingActivity(_activitySystem.DefaultPosition, _activitySystem.DefaultPadding, _targetingData, _callback, _systemContainer, new MapCoordinate("Map", 0, 0), _ioConfig);
            _targetingActivity.Complete();

            _callbackHappened.Should().BeTrue();
            var distance = Math.Abs(_callbackTarget.X) + Math.Abs(_callbackTarget.Y);

            distance.Should().Be(1);
        }
示例#4
0
 private void SetTargetableCells(params MapCoordinate[] cells)
 {
     _targetingSystem.TargetableCellsFrom(Arg.Any <Targeting>(), Arg.Any <MapCoordinate>()).ReturnsForAnyArgs(new HashSet <MapCoordinate> (cells));
     _targetingActivity = new TargetingActivity(_activitySystem.DefaultPosition, _activitySystem.DefaultPadding, _targetingData, _callback, _systemContainer, new MapCoordinate("Map", 0, 0), _ioConfig);
 }