Ejemplo n.º 1
0
	def test_is_complete_returns_true_if_unit_is_obstructed(self):
		dummy_unit = MagicMock()
		dummy_unit.pt = Point(3 + EPS/2, 4)
		movement = MoveToward(Point(0, 0))
		self.assertFalse(movement.is_complete(dummy_unit, 1.0))
		movement.is_obstructed = True
		self.assertTrue(movement.is_complete(dummy_unit, 1.0))
Ejemplo n.º 2
0
	def test_is_complete_returns_true_if_unit_is_at_or_very_near_the_target_point(self):  # noqa
		dummy_unit = MagicMock()
		dummy_unit.pt = Point(3 + EPS/2, 4)
		movement = MoveToward(Point(0, 0))
		self.assertFalse(movement.is_complete(dummy_unit, 1.0))
		movement = MoveToward(Point(3, 4))
		self.assertTrue(movement.is_complete(dummy_unit, 1.0))
Ejemplo n.º 3
0
	def test_finish_constructs_the_building_and_places_it_on_the_tile_map(self):  # noqa
		dummy_building = MagicMock()
		dummy_unit = MagicMock()
		dummy_unit.pt = 'dummy_point'
		dummy_unit.construct_building.return_value = dummy_building
		construct = Construct(dummy_building)
		construct.finish(dummy_unit, 1.0)
		dummy_unit.construct_building.assert_called_once_with(dummy_building)
		dummy_unit.tile_map.place_building.assert_called_once_with(
			dummy_building,
			'dummy_point',
			)
Ejemplo n.º 4
0
	def test__execute_moves_the_unit_toward_the_target_point_facoring_in_terrain_and_movement_speed(self):  # noqa
		dummy_tile = MagicMock()
		dummy_tile.terrain.movement_factor = 0.5
		dummy_tile.terrain_improvement.movement_factor = 0.25
		dummy_unit = MagicMock()
		dummy_unit.pt = Point(1, 2)
		dummy_unit.tile = dummy_tile
		dummy_unit.movement_speed = 3
		dummy_unit.tile_map.tile_sz.diag = 7
		movement = MoveToward(Point(3, 4))
		movement._execute(dummy_unit, 2.0)
		dummy_unit.move.assert_called_once_with(
			Vector(2, 2).u*min(3*0.5*0.25*7*2.0, Vector(2, 2).M)
			)
Ejemplo n.º 5
0
	def test__execute_does_not_moves_the_unit_toward_the_target_point_if_the_tile_containing_that_point_is_non_traversable_and_sets_is_obstructed_to_true(self):  # noqa
		dummy_tile = MagicMock()
		dummy_tile.terrain.movement_factor = 0.5
		dummy_tile.terrain_improvement.movement_factor = 0.25
		dummy_tile.terrain.terrain_type = TerrainType.water
		dummy_unit = MagicMock()
		dummy_unit.pt = Point(1, 2)
		dummy_unit.tile = dummy_tile
		dummy_unit.movement_speed = 3
		dummy_unit.traversable_terrain_types = set([TerrainType.land])
		dummy_unit.tile_map.tile_sz.diag = 7
		dummy_unit.move.side_effect = UnitException('dummy exception')
		movement = MoveToward(Point(3, 4))
		movement._execute(dummy_unit, 2.0)
		dummy_unit.move.assert_not_called(
			Vector(2, 2).u*min(3*0.5*0.25*7*2.0, Vector(2, 2).M)
			)
		self.assertTrue(movement.is_obstructed)
Ejemplo n.º 6
0
	def test_is_possible_returns_true_if_the_unit_can_move_toward_the_point(self):  # noqa
		dummy_unit = MagicMock()
		dummy_unit.pt = Point(0, 0)
		movement = MoveToward(Point(3, 4))
		self.assertTrue(movement.is_possible(dummy_unit, 1.0))