Test monocles
This commit is contained in:
parent
a497d08f31
commit
7a4936e6a5
|
@ -345,7 +345,7 @@ class Game:
|
||||||
try:
|
try:
|
||||||
self.map_index = d["map_index"]
|
self.map_index = d["map_index"]
|
||||||
self.maps = [Map().load_state(map_dict) for map_dict in d["maps"]]
|
self.maps = [Map().load_state(map_dict) for map_dict in d["maps"]]
|
||||||
except KeyError as e:
|
except KeyError:
|
||||||
self.message = _("Some keys are missing in your save file.\n"
|
self.message = _("Some keys are missing in your save file.\n"
|
||||||
"Your save seems to be corrupt. It got deleted.")
|
"Your save seems to be corrupt. It got deleted.")
|
||||||
os.unlink(ResourceManager.get_config_path("save.json"))
|
os.unlink(ResourceManager.get_config_path("save.json"))
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
# Copyright (C) 2020 by ÿnérant, eichhornchen, nicomarg, charlse
|
# Copyright (C) 2020 by ÿnérant, eichhornchen, nicomarg, charlse
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
import random
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
from squirrelbattle.entities.items import BodySnatchPotion, Bomb, Heart, Item, \
|
from squirrelbattle.entities.items import BodySnatchPotion, Bomb, Heart, Item, \
|
||||||
Explosion
|
Explosion
|
||||||
from squirrelbattle.entities.monsters import Tiger, Hedgehog, Rabbit, TeddyBear
|
from squirrelbattle.entities.monsters import Tiger, Hedgehog, Rabbit,\
|
||||||
|
TeddyBear, GiantSeaEagle
|
||||||
from squirrelbattle.entities.friendly import Trumpet
|
from squirrelbattle.entities.friendly import Trumpet
|
||||||
from squirrelbattle.entities.player import Player
|
from squirrelbattle.entities.player import Player
|
||||||
from squirrelbattle.interfaces import Entity, Map
|
from squirrelbattle.interfaces import Entity, Map
|
||||||
|
@ -264,3 +265,17 @@ class TestEntities(unittest.TestCase):
|
||||||
|
|
||||||
player_state = player.save_state()
|
player_state = player.save_state()
|
||||||
self.assertEqual(player_state["current_xp"], 10)
|
self.assertEqual(player_state["current_xp"], 10)
|
||||||
|
|
||||||
|
def test_critical_hit(self) -> None:
|
||||||
|
"""
|
||||||
|
Ensure that critical hits are working.
|
||||||
|
"""
|
||||||
|
random.seed(2) # Next random.randint(1, 100) will output 8
|
||||||
|
self.player.critical = 10
|
||||||
|
sea_eagle = GiantSeaEagle()
|
||||||
|
self.map.add_entity(sea_eagle)
|
||||||
|
sea_eagle.move(2, 6)
|
||||||
|
old_health = sea_eagle.health
|
||||||
|
self.player.hit(sea_eagle)
|
||||||
|
self.assertEqual(sea_eagle.health,
|
||||||
|
old_health - self.player.strength * 4)
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
# Copyright (C) 2020 by ÿnérant, eichhornchen, nicomarg, charlse
|
# Copyright (C) 2020 by ÿnérant, eichhornchen, nicomarg, charlse
|
||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
import curses
|
import curses
|
||||||
import os
|
import os
|
||||||
import random
|
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
from ..bootstrap import Bootstrap
|
from ..bootstrap import Bootstrap
|
||||||
|
@ -10,7 +10,7 @@ from ..display.display import Display
|
||||||
from ..display.display_manager import DisplayManager
|
from ..display.display_manager import DisplayManager
|
||||||
from ..entities.friendly import Merchant, Sunflower
|
from ..entities.friendly import Merchant, Sunflower
|
||||||
from ..entities.items import Bomb, Heart, Sword, Explosion, Shield, Helmet, \
|
from ..entities.items import Bomb, Heart, Sword, Explosion, Shield, Helmet, \
|
||||||
Chestplate, RingCritical
|
Chestplate, RingCritical, Monocle
|
||||||
from ..entities.monsters import GiantSeaEagle
|
from ..entities.monsters import GiantSeaEagle
|
||||||
from ..entities.player import Player
|
from ..entities.player import Player
|
||||||
from ..enums import DisplayActions
|
from ..enums import DisplayActions
|
||||||
|
@ -584,6 +584,7 @@ class TestGame(unittest.TestCase):
|
||||||
|
|
||||||
# Buy a heart
|
# Buy a heart
|
||||||
merchant.inventory[1] = Heart()
|
merchant.inventory[1] = Heart()
|
||||||
|
self.game.display_actions(DisplayActions.REFRESH)
|
||||||
item = self.game.store_menu.validate()
|
item = self.game.store_menu.validate()
|
||||||
self.assertIn(item, merchant.inventory)
|
self.assertIn(item, merchant.inventory)
|
||||||
self.assertEqual(item, merchant.inventory[1])
|
self.assertEqual(item, merchant.inventory[1])
|
||||||
|
@ -702,19 +703,21 @@ class TestGame(unittest.TestCase):
|
||||||
self.game.save_state()
|
self.game.save_state()
|
||||||
ring.unequip()
|
ring.unequip()
|
||||||
|
|
||||||
def test_critical_hit(self) -> None:
|
def test_monocle(self) -> None:
|
||||||
"""
|
"""
|
||||||
Ensure that critical hits are working.
|
The player is wearing a monocle, then the stats are displayed.
|
||||||
"""
|
"""
|
||||||
random.seed(2) # Next random.randint(1, 100) will output 8
|
self.game.state = GameMode.PLAY
|
||||||
self.game.player.critical = 10
|
|
||||||
|
monocle = Monocle()
|
||||||
|
monocle.hold(self.game.player)
|
||||||
|
monocle.equip()
|
||||||
|
|
||||||
sea_eagle = GiantSeaEagle()
|
sea_eagle = GiantSeaEagle()
|
||||||
self.game.map.add_entity(sea_eagle)
|
self.game.map.add_entity(sea_eagle)
|
||||||
sea_eagle.move(2, 6)
|
sea_eagle.move(2, 6)
|
||||||
old_health = sea_eagle.health
|
|
||||||
self.game.player.hit(sea_eagle)
|
self.game.display_actions(DisplayActions.REFRESH)
|
||||||
self.assertEqual(sea_eagle.health,
|
|
||||||
old_health - self.game.player.strength * 4)
|
|
||||||
|
|
||||||
def test_ladders(self) -> None:
|
def test_ladders(self) -> None:
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in New Issue