Skip to content

Commit 4710610

Browse files
authored
Merge pull request #15 from nuzcraft/part_12
Part 12
2 parents 8e5e891 + 896768d commit 4710610

File tree

9 files changed

+147
-81
lines changed

9 files changed

+147
-81
lines changed

README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,16 @@ I want to use this as an opportunity to:
1212
4. make a roguelike
1313
5. practice with git
1414

15+
## Part 12 Dev Notes
16+
17+
### Increasing Difficulty
18+
19+
https://rogueliketutorials.com/tutorials/tcod/v2/part-12/
20+
21+
This section looks pretty short. As it stands, the game is pretty easy. We breeze past the each level due to the high number of items relative to monsters. I think this will be an interesting way to modulate the difficulty.
22+
23+
This was the shortest part so far (I think) and it was a bit refreshing. Overall, I think this method of progressing the difficulty is interesting. My personal gripe with it is just that its somewhat hard to test out the balance; I think when I end up looking at tuning the balance, I'll want to set up some sort of method to set the map at a certain state as well as figure out how to unit test the functions that rely on random generation.
24+
1525
## Part 11 Dev Notes
1626

1727
### Delving into the Dungeon

Tests/test_actions.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,6 @@ def test_perform_with_stairs(self):
8282
max_rooms=5,
8383
room_min_size=3,
8484
room_max_size=4,
85-
max_monsters_per_room=2,
86-
max_items_per_room=1,
8785
)
8886
eng.game_world.generate_floor()
8987
actor.x, actor.y = eng.game_map.downstairs_location
@@ -110,8 +108,6 @@ def test_perform_no_stairs(self):
110108
max_rooms=5,
111109
room_min_size=3,
112110
room_max_size=4,
113-
max_monsters_per_room=2,
114-
max_items_per_room=1,
115111
)
116112
eng.game_world.generate_floor()
117113
# actor.x, actor.y = eng.game_map.downstairs_location

Tests/test_engine.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,8 +127,6 @@ def test_render(self, patch_render, patch_MessageLog_render, patch_render_bar, p
127127
max_rooms=5,
128128
room_min_size=3,
129129
room_max_size=4,
130-
max_monsters_per_room=2,
131-
max_items_per_room=2
132130
)
133131
eng.game_map = GameMap(engine=eng, width=10, height=10)
134132

Tests/test_game_map.py

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,6 @@ def test_init(self):
213213
mw, mh = 10, 11
214214
mr = 6
215215
rmin, rmax = 3, 4
216-
mm, mi = 1, 2
217216
cf = 5
218217
gw = GameWorld(
219218
engine=eng,
@@ -222,8 +221,6 @@ def test_init(self):
222221
max_rooms=mr,
223222
room_min_size=rmin,
224223
room_max_size=rmax,
225-
max_monsters_per_room=mm,
226-
max_items_per_room=mi,
227224
current_floor=cf
228225
)
229226
self.assertEqual(gw.engine, eng)
@@ -232,8 +229,6 @@ def test_init(self):
232229
self.assertEqual(gw.max_rooms, mr)
233230
self.assertEqual(gw.room_min_size, rmin)
234231
self.assertEqual(gw.room_max_size, rmax)
235-
self.assertEqual(gw.max_monsters_per_room, mm)
236-
self.assertEqual(gw.max_items_per_room, mi)
237232
self.assertEqual(gw.current_floor, cf)
238233

239234
def test_generate_floor(self):
@@ -248,8 +243,6 @@ def test_generate_floor(self):
248243
max_rooms=10,
249244
room_min_size=3,
250245
room_max_size=6,
251-
max_monsters_per_room=2,
252-
max_items_per_room=2
253246
)
254247
with patch('procgen.generate_dungeon') as patch_gen_dun:
255248
gw.generate_floor()

Tests/test_input_handlers.py

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1200,8 +1200,6 @@ def test_on_render_player_on_left(self):
12001200
max_rooms=20,
12011201
room_min_size=2,
12021202
room_max_size=14,
1203-
max_monsters_per_room=2,
1204-
max_items_per_room=2
12051203
)
12061204
gm = GameMap(engine=eng, width=50, height=50)
12071205
eng.game_map = gm
@@ -1240,8 +1238,6 @@ def test_on_render_player_on_right(self):
12401238
max_rooms=20,
12411239
room_min_size=2,
12421240
room_max_size=14,
1243-
max_monsters_per_room=2,
1244-
max_items_per_room=2
12451241
)
12461242
gm = GameMap(engine=eng, width=50, height=50)
12471243
eng.game_map = gm
@@ -1281,8 +1277,6 @@ def test_on_render_player_on_left(self):
12811277
max_rooms=20,
12821278
room_min_size=2,
12831279
room_max_size=14,
1284-
max_monsters_per_room=2,
1285-
max_items_per_room=2
12861280
)
12871281
gm = GameMap(engine=eng, width=50, height=50)
12881282
eng.game_map = gm
@@ -1321,8 +1315,6 @@ def test_on_render_player_on_right(self):
13211315
max_rooms=20,
13221316
room_min_size=2,
13231317
room_max_size=14,
1324-
max_monsters_per_room=2,
1325-
max_items_per_room=2
13261318
)
13271319
gm = GameMap(engine=eng, width=50, height=50)
13281320
eng.game_map = gm
@@ -1470,8 +1462,6 @@ def test_on_render_player_on_left(self):
14701462
max_rooms=20,
14711463
room_min_size=2,
14721464
room_max_size=14,
1473-
max_monsters_per_room=2,
1474-
max_items_per_room=2
14751465
)
14761466
gm = GameMap(engine=eng, width=50, height=50)
14771467
eng.game_map = gm
@@ -1511,8 +1501,6 @@ def test_on_render_player_on_right(self):
15111501
max_rooms=20,
15121502
room_min_size=2,
15131503
room_max_size=14,
1514-
max_monsters_per_room=2,
1515-
max_items_per_room=2
15161504
)
15171505
gm = GameMap(engine=eng, width=50, height=50)
15181506
eng.game_map = gm
@@ -1556,8 +1544,6 @@ def test_on_render_height_calulated(self):
15561544
max_rooms=20,
15571545
room_min_size=2,
15581546
room_max_size=14,
1559-
max_monsters_per_room=2,
1560-
max_items_per_room=2
15611547
)
15621548
gm = GameMap(engine=eng, width=50, height=50)
15631549
eng.game_map = gm
@@ -1601,8 +1587,6 @@ def test_on_render_items_printed(self):
16011587
max_rooms=20,
16021588
room_min_size=2,
16031589
room_max_size=14,
1604-
max_monsters_per_room=2,
1605-
max_items_per_room=2
16061590
)
16071591
gm = GameMap(engine=eng, width=50, height=50)
16081592
eng.game_map = gm
@@ -1633,8 +1617,6 @@ def test_on_render_no_items(self):
16331617
max_rooms=20,
16341618
room_min_size=2,
16351619
room_max_size=14,
1636-
max_monsters_per_room=2,
1637-
max_items_per_room=2
16381620
)
16391621
gm = GameMap(engine=eng, width=50, height=50)
16401622
eng.game_map = gm
@@ -1830,8 +1812,6 @@ def test_on_render(self):
18301812
max_rooms=20,
18311813
room_min_size=2,
18321814
room_max_size=14,
1833-
max_monsters_per_room=2,
1834-
max_items_per_room=2
18351815
)
18361816
gm = GameMap(engine=eng, width=10, height=10)
18371817
eng.game_map = gm
@@ -2307,8 +2287,6 @@ def test_on_render(self):
23072287
max_rooms=20,
23082288
room_min_size=2,
23092289
room_max_size=14,
2310-
max_monsters_per_room=2,
2311-
max_items_per_room=2
23122290
)
23132291
gm = GameMap(engine=eng, width=10, height=10)
23142292
eng.game_map = gm

Tests/test_procgen.py

Lines changed: 51 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,48 @@
11
import unittest
2-
from procgen import RectangularRoom, generate_dungeon, tunnel_between, place_entities
2+
from procgen import (
3+
RectangularRoom,
4+
generate_dungeon,
5+
tunnel_between,
6+
place_entities,
7+
get_max_value_for_floor,
8+
)
39
from entity import Entity
410
from engine import Engine
11+
from game_map import GameWorld
12+
13+
14+
class TestMaxValue(unittest.TestCase):
15+
def test_get_max_value_for_floor_on_floor(self):
16+
'''
17+
test that passing in a matching floor will return
18+
the exact match for the value associated with that floor
19+
'''
20+
weighted_chances = [
21+
(1, 2),
22+
(4, 3),
23+
(6, 5),
24+
]
25+
ret = get_max_value_for_floor(
26+
weighted_chances_by_floor=weighted_chances,
27+
floor=4
28+
)
29+
self.assertEqual(ret, 3)
30+
31+
def test_get_max_value_for_floor_between_floors(self):
32+
'''
33+
test that passing in a not matching floor will return
34+
the match for the value associated with the lower floor
35+
'''
36+
weighted_chances = [
37+
(1, 2),
38+
(4, 3),
39+
(6, 5),
40+
]
41+
ret = get_max_value_for_floor(
42+
weighted_chances_by_floor=weighted_chances,
43+
floor=3
44+
)
45+
self.assertEqual(ret, 2)
546

647

748
class Test_RectangularRoom(unittest.TestCase):
@@ -81,14 +122,21 @@ def test_generate_dungeon(self):
81122
'''
82123
ent = Entity()
83124
eng = Engine(player=ent)
125+
eng.game_world = GameWorld(
126+
engine=eng,
127+
map_width=50,
128+
map_height=50,
129+
max_rooms=10,
130+
room_min_size=3,
131+
room_max_size=5,
132+
current_floor=1
133+
)
84134
d = generate_dungeon(
85135
max_rooms=10,
86136
room_min_size=3,
87137
room_max_size=5,
88138
map_width=50,
89139
map_height=50,
90-
max_monsters_per_room=3,
91-
max_items_per_room=2,
92140
engine=eng
93141
)
94142
self.assertEqual(d.height, 50)

game_map.py

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,6 @@ def __init__(
115115
max_rooms: int,
116116
room_min_size: int,
117117
room_max_size: int,
118-
max_monsters_per_room: int,
119-
max_items_per_room: int,
120118
current_floor: int = 0
121119
):
122120
self.engine = engine
@@ -129,9 +127,6 @@ def __init__(
129127
self.room_min_size = room_min_size
130128
self.room_max_size = room_max_size
131129

132-
self.max_monsters_per_room = max_monsters_per_room
133-
self.max_items_per_room = max_items_per_room
134-
135130
self.current_floor = current_floor
136131

137132
def generate_floor(self) -> None:
@@ -144,7 +139,5 @@ def generate_floor(self) -> None:
144139
room_max_size=self.room_max_size,
145140
map_width=self.map_width,
146141
map_height=self.map_height,
147-
max_monsters_per_room=self.max_monsters_per_room,
148-
max_items_per_room=self.max_items_per_room,
149142
engine=self.engine,
150143
)

0 commit comments

Comments
 (0)