test: hazards, ladders and one-way platforms
This commit is contained in:
1 parent
207691433c
commit
dd74783ff0
3 files changed
+160
No files matched your search
@@ -0,0 +1,43 @@
|
||||
from game import constants
|
||||
from tests.support import makeWorld
|
||||
from game.sim.inputCommand import InputCommand
|
||||
|
||||
|
||||
spikeLevel = [
|
||||
" ",
|
||||
" p ",
|
||||
"^^^^^",
|
||||
"XXXXX",
|
||||
]
|
||||
|
||||
safeLevel = [
|
||||
" ",
|
||||
" p ",
|
||||
" ",
|
||||
"XXXXX",
|
||||
]
|
||||
|
||||
|
||||
def test_spikesDamagePlayer():
|
||||
world = makeWorld(spikeLevel)
|
||||
for _ in range(12):
|
||||
world.step(InputCommand())
|
||||
assert world.player.hp <= world.player.maxHp - 2
|
||||
assert world.player.iframes > 0
|
||||
|
||||
|
||||
def test_noHazardKeepsFullHealth():
|
||||
world = makeWorld(safeLevel)
|
||||
for _ in range(12):
|
||||
world.step(InputCommand())
|
||||
assert world.player.hp == world.player.maxHp
|
||||
|
||||
|
||||
def test_iframesPreventDoubleHit():
|
||||
world = makeWorld(spikeLevel)
|
||||
for _ in range(3):
|
||||
world.step(InputCommand())
|
||||
hpAfterFirst = world.player.hp
|
||||
world.step(InputCommand())
|
||||
assert world.player.hp == hpAfterFirst
|
||||
assert world.player.hp < world.player.maxHp
|
||||
Reference in new issue
Block a user