Refactored to stop passing game around.
[realism.git] / engine / monsters.py
blobf9fdc38d7880c7aba516b8a2cb9f4286a6bf971b
1 from mod_import import do_mod_import
2 do_mod_import("monsters", globals())
4 from random import choice as randchoice
6 class monster_db(object):
7 def __init__(self):
8 self.level_db = {}
9 self.level_element_db = {}
10 self.all_monsters = monsters
12 def create_random_monster(self, level, element=None):
13 # We could use self.random_monster(...)(...), but this is cleaner.
14 return self.random_monster(level, element).create(level, element)
16 def random_monster(self, level, element=None):
17 return randchoice(self.get_monsters(level, element))
19 def get_monsters(self, level, element=None):
20 if element == None or element == Random:
21 if level not in self.level_db.keys():
22 self.level_db[level] = \
24 monster
25 for monster in self.all_monsters
26 if monster.can_be_level(level)
28 return self.level_db[level]
29 else:
30 if (level, element) not in self.level_element_db.keys():
31 self.level_element_db[level] = \
33 monster
34 for monster in self.all_monsters
35 if monster.can_be_level(level)
36 if monster.can_be_element(element)
38 return self.level_element_db[level]
40 monster_db = monster_db()