git.fiddlerwoaroof.com
Raw Blame History
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()