Fix broken game test
This commit is contained in:
parent
d26b66f337
commit
12ee436f4d
|
@ -10,7 +10,7 @@ class Monster(FightingEntity):
|
||||||
And if a player is close to the monster, the monster run on the player.
|
And if a player is close to the monster, the monster run on the player.
|
||||||
"""
|
"""
|
||||||
# TODO If a player is close, move to the player
|
# TODO If a player is close, move to the player
|
||||||
while True:
|
for _ in range(100):
|
||||||
if choice([self.move_up, self.move_down,
|
if choice([self.move_up, self.move_down,
|
||||||
self.move_left, self.move_right])():
|
self.move_left, self.move_right])():
|
||||||
break
|
break
|
||||||
|
|
|
@ -33,6 +33,12 @@ class Map:
|
||||||
self.entities.append(entity)
|
self.entities.append(entity)
|
||||||
entity.map = self
|
entity.map = self
|
||||||
|
|
||||||
|
def remove_entity(self, entity: "Entity") -> None:
|
||||||
|
"""
|
||||||
|
Unregister an entity from the map.
|
||||||
|
"""
|
||||||
|
self.entities.remove(entity)
|
||||||
|
|
||||||
def is_free(self, y: int, x: int) -> bool:
|
def is_free(self, y: int, x: int) -> bool:
|
||||||
"""
|
"""
|
||||||
Indicates that the case at the coordinates (y, x) is empty.
|
Indicates that the case at the coordinates (y, x) is empty.
|
||||||
|
@ -138,9 +144,10 @@ class Entity:
|
||||||
self.move(y, x)
|
self.move(y, x)
|
||||||
return free
|
return free
|
||||||
|
|
||||||
def move(self, y: int, x: int) -> None:
|
def move(self, y: int, x: int) -> bool:
|
||||||
self.y = y
|
self.y = y
|
||||||
self.x = x
|
self.x = x
|
||||||
|
return True
|
||||||
|
|
||||||
def move_up(self, force: bool = False) -> bool:
|
def move_up(self, force: bool = False) -> bool:
|
||||||
return self.move(self.y - 1, self.x) if force else \
|
return self.move(self.y - 1, self.x) if force else \
|
||||||
|
@ -192,3 +199,4 @@ class FightingEntity(Entity):
|
||||||
|
|
||||||
def die(self) -> None:
|
def die(self) -> None:
|
||||||
self.dead = True
|
self.dead = True
|
||||||
|
self.map.remove_entity(self)
|
||||||
|
|
|
@ -28,7 +28,7 @@ class TestEntities(unittest.TestCase):
|
||||||
Test some random stuff with fighting entities.
|
Test some random stuff with fighting entities.
|
||||||
"""
|
"""
|
||||||
entity = Hedgehog()
|
entity = Hedgehog()
|
||||||
self.assertIsNone(entity.act(self.map))
|
self.map.add_entity(entity)
|
||||||
self.assertEqual(entity.maxhealth, 10)
|
self.assertEqual(entity.maxhealth, 10)
|
||||||
self.assertEqual(entity.maxhealth, entity.health)
|
self.assertEqual(entity.maxhealth, entity.health)
|
||||||
self.assertEqual(entity.strength, 3)
|
self.assertEqual(entity.strength, 3)
|
||||||
|
@ -41,6 +41,12 @@ class TestEntities(unittest.TestCase):
|
||||||
self.assertIsNone(entity.hit(entity))
|
self.assertIsNone(entity.hit(entity))
|
||||||
self.assertTrue(entity.dead)
|
self.assertTrue(entity.dead)
|
||||||
|
|
||||||
|
entity = Hedgehog()
|
||||||
|
self.map.add_entity(entity)
|
||||||
|
entity.move(2, 6)
|
||||||
|
self.map.tick()
|
||||||
|
self.assertFalse(entity.y == 2 and entity.x == 6)
|
||||||
|
|
||||||
def test_items(self) -> None:
|
def test_items(self) -> None:
|
||||||
"""
|
"""
|
||||||
Test some random stuff with items.
|
Test some random stuff with items.
|
||||||
|
|
|
@ -4,6 +4,7 @@ import unittest
|
||||||
from dungeonbattle.bootstrap import Bootstrap
|
from dungeonbattle.bootstrap import Bootstrap
|
||||||
from dungeonbattle.display.display import Display
|
from dungeonbattle.display.display import Display
|
||||||
from dungeonbattle.display.display_manager import DisplayManager
|
from dungeonbattle.display.display_manager import DisplayManager
|
||||||
|
from dungeonbattle.entities.player import Player
|
||||||
from dungeonbattle.game import Game, KeyValues, GameMode
|
from dungeonbattle.game import Game, KeyValues, GameMode
|
||||||
from dungeonbattle.menus import MainMenuValues
|
from dungeonbattle.menus import MainMenuValues
|
||||||
|
|
||||||
|
@ -90,6 +91,11 @@ class TestGame(unittest.TestCase):
|
||||||
self.game.handle_key_pressed(KeyValues.ENTER)
|
self.game.handle_key_pressed(KeyValues.ENTER)
|
||||||
self.assertEqual(self.game.state, GameMode.PLAY)
|
self.assertEqual(self.game.state, GameMode.PLAY)
|
||||||
|
|
||||||
|
# Kill entities
|
||||||
|
for entity in self.game.map.entities.copy():
|
||||||
|
if not isinstance(entity, Player):
|
||||||
|
self.game.map.remove_entity(entity)
|
||||||
|
|
||||||
y, x = self.game.player.y, self.game.player.x
|
y, x = self.game.player.y, self.game.player.x
|
||||||
self.game.handle_key_pressed(KeyValues.DOWN)
|
self.game.handle_key_pressed(KeyValues.DOWN)
|
||||||
new_y, new_x = self.game.player.y, self.game.player.x
|
new_y, new_x = self.game.player.y, self.game.player.x
|
||||||
|
|
Loading…
Reference in New Issue