Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import functools
- from quests import *
- import quests
- from enemy import *
- class Level:
- def __init__(self, rooms, floor):
- self.rooms = rooms
- self.floor = floor
- def can_move(self, x, y):
- if x in [0, 1] and y in [0, 1, 2]:
- return True
- return False
- def print_map(self, x, y):
- for row in self.rooms:
- print(repr(row[0]) + '\t' + repr(row[1]))
- def is_cleared(self):
- rooms_with_quest = []
- for row in self.rooms:
- for room in row:
- if room.quest is not None:
- rooms_with_quest.append(room)
- # print(rooms_with_quest)
- is_cleared = True
- print(rooms_with_quest)
- for room in rooms_with_quest:
- print(room.quest.completed)
- is_cleared = is_cleared and room.quest.completed
- return is_cleared
- class Room:
- def __init__(self, name, desc, x, y, items, quest, enemy):
- self.name = name
- self.desc = desc
- self.x = x
- self.y = y
- self.items = items
- self.quest = quest
- self.enemy = enemy
- def __str__(self):
- return self.name + ' - ' + self.desc.lower()
- def __repr__(self):
- return self.name
- def enter(self):
- print(self.desc)
- def level_generator(number_of_levels):
- levels = []
- rooms_1 = open("rooms/rooms_1.txt", 'r')
- rooms_2 = None
- rooms_3 = None
- for i in range(number_of_levels):
- rooms = room_generator(rooms_1)
- levels.append(Level(rooms, i + 1))
- rooms_1.close()
- return levels
- def room_generator(rooms_d):
- rooms_out = []
- for i in range(3):
- rooms_in = []
- for j in range(2):
- rooms_desc = (rooms_d.readline().rstrip(), rooms_d.readline().rstrip())
- if i == 2 and j == 0:
- rooms_in.append(Room(rooms_desc[0], rooms_desc[1], j, i, [], Quest(quests.check_number), Enemy(
- "troll", {"health": 200, "strength": 20}
- )))
- else:
- rooms_in.append(Room(rooms_desc[0], rooms_desc[1], j, i, [], None, None))
- rooms_out.append(rooms_in)
- return rooms_out
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement