def __init__(self, driver): State.__init__(self, driver) self._engine = TileEngine('dungeon.map', driver, self) self._font = pygame.font.Font(None, 20) self._name = random.choice(names) self._messages = [(0, "Welcome to %s" % self._name)] self._deequip = None self._visited = None mapinfo = self._engine.getMapInfo() self._mapinfo = mapinfo self.xp = localXP = 3500 playerStats = { 'level': localXP / 100, 'str': 30, 'dex': 30, 'int': 30, } self.gender = 'Male' self.race = 'Human' self.charClass = 'Guardian' armorStats = { 'name': '+10 Robes of the Guardian', 'absorb': 20, 'toDodge': 10 } weaponStats = { 'name': '+10 Flaming Angelic Sword', 'damageMin': 25, 'damageMax': 75, 'toHit': 10, } weapon = entities.Weapon('sword.png', self._engine, 0, 0, weaponStats) armor = entities.Armor('armor.png', self._engine, 0, 0, armorStats) self._player = Character('player.png', self._engine, mapinfo['startx'], mapinfo['starty'], playerStats, 1) self._player.giveItem(weapon) self._player.equip(weapon) self._player.giveItem(armor) self._player.equip(armor) self._engine.addSprite(self._player) self._engine.centerOn(self._player) staffStats = {'name': 'Terrifyingly Powerful Staff of Glok-Yar'} self._staff = entities.Staff('staff.png', self._engine, mapinfo['staffx'], mapinfo['staffy'], staffStats) self._engine.addSprite(self._staff) self._entries = [] counter = 1 while counter: try: entranceX = mapinfo['entranceX%d' % counter] entranceY = mapinfo['entranceY%d' % counter] entrance = entities.Entry('stairs.png', self._engine, entranceX, entranceY) self._entries.append(entrance) self._engine.addSprite(entrance) counter += 1 except KeyError: counter = 0 self._turn = 0 mixer.music.load(localSoundsDir + '23 - Cold_Mountain_Clouds.ogg') mixer.music.set_volume(localVol * 4) mixer.music.play(-1)