import libs.patch_random
import random
#random.seed(2)
import libtcodpy as tc
import numpy as np
from libs import overlay
from libs import combat
from src import events
from src import player
from src import console
from src import map
import random
import bisect
WIDTH = 79
HEIGHT = 46
class Application(object):
def __init__(self):
self.screen = console.Screen(WIDTH, HEIGHT)
self.terrain_registry = map.TerrainRegistry()
self.terrain_registry.load_from_file('data/terrain.yml')
self.map = map.Map(WIDTH,HEIGHT, self.terrain_registry)
self.player = player.Player(4,5, self.map, combat.Adventurer.randomize())
self.events = events.EventHandler()
player.ArrowHandler(self.player, self.events)
self.actors = []
for x in range(40):
self.actors.append(overlay.Actor(random.randrange(WIDTH), random.randrange(HEIGHT), self.map))
self.objects = []
for x in range(50):
self.objects.append(overlay.Potion(random.randrange(WIDTH), random.randrange(HEIGHT), self.map))
tc.sys_set_fps(60)
def update_actors(self):
to_pop = []
for idx,actor in enumerate(self.actors):
if not actor.tick():
bisect.insort(to_pop, idx)
for pop in reversed(to_pop):
self.actors.pop(pop)
def init(self):
self.screen.init("test")
self.player.draw()
self.update_actors()
for overlay in self.actors + self.objects:
overlay.draw()
def run(self):
while not tc.console_is_window_closed():
self.events.tick()
self.update_actors()
self.map.draw(self.screen)
tc.console_print(0, 0,1, '%d' % tc.sys_get_fps())
tc.console_flush()
if __name__ == '__main__':
app = Application()
app.init()
app.run()