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); }
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); }
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); }
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); }