git.fiddlerwoaroof.com
main.py
b8f124a1
 if __name__ == '__main__':
     execfile('/home/edwlan/python_envs/roguelike/bin/activate_this.py',  dict(__file__='/home/edwlan/python_envs/roguelike/bin/activate_this.py'))
 
3d5a515d
 import libs.patch_random
 import random
86f3fea2
 #random.seed(2)
3d5a515d
 
6728b112
 import libtcodpy as tc
 import numpy as np
 
b8f124a1
 from gui import text_display
dff12016
 from libs import overlay
 from libs import combat
54cb1995
 from src import events
 from src import player
 from src import console
 from src import map
6728b112
 
def7cb88
 import random
86f3fea2
 import bisect
6728b112
 
b8f124a1
 from twisted.internet import reactor
 import twisted.internet
6728b112
 
b8f124a1
 
 WIDTH = 118
 HEIGHT = 62
6728b112
 class Application(object):
 	def __init__(self):
b8f124a1
 		self.screen = console.Screen(WIDTH, HEIGHT+5)
 		self.console = console.Console(WIDTH, HEIGHT, self.screen)
 		self.message_console = console.Console(WIDTH, 5, self.screen, (0,HEIGHT))
 		self.messages = text_display.MessageBox(self.message_console, 5, (10,0), 'msg')
 		self.fps_display = text_display.Label(self.message_console, (0,0), None)
 
d7409888
 		self.terrain_registry = map.TerrainRegistry()
 		self.terrain_registry.load_from_file('data/terrain.yml')
b8f124a1
 		self.map = map.Map(200,200, self.terrain_registry)
 		self.tc_events = events.TCODEventHandler()
54cb1995
 		self.events = events.EventHandler()
6728b112
 
b8f124a1
 		self.player = player.Player(4,5, self.map, combat.Adventurer.randomize())
 		self.player_stat = text_display.TextBox(self.message_console, 4, (0,1))
 		self.player.claim_display(self.player_stat)
 		player.ArrowHandler(self.player, self.tc_events)
 
 		self.actors = [self.player]
3d5a515d
 		for x in range(40):
df36dce5
 			self.actors.append(overlay.AIActor(random.randrange(WIDTH), random.randrange(HEIGHT), self.map))
 		self.player.register_event('update', self.tick_actors)
5f75058b
 
 		self.objects = []
 		for x in range(50):
b3d5fa82
 			self.objects.append(overlay.Potion(random.randrange(WIDTH), random.randrange(HEIGHT), self.map))
def7cb88
 
b8f124a1
 		tc.sys_set_fps(30)
6728b112
 
df36dce5
 	def tick_actor(self, actor):
 		keep = actor.tick()
 		if not keep:
 			self.actors.remove(actor)
 			self.objects.append(actor)
 
86f3fea2
 	def update_actors(self):
df36dce5
 		self.player.tick()
 
 	def tick_actors(self, player):
 		print 'actor_tick'
86f3fea2
 		to_pop = []
df36dce5
 		for idx,actor in enumerate(self.actors[1:],1):
86f3fea2
 			if not actor.tick():
 				bisect.insort(to_pop, idx)
 		for pop in reversed(to_pop):
b8f124a1
 			actor = self.actors.pop(pop)
 			self.objects.append(actor)
86f3fea2
 
6728b112
 	def init(self):
 		self.screen.init("test")
b8f124a1
 		self.message_console.fill(0,0,128)
 		#self.player.draw()
86f3fea2
 		for overlay in self.actors + self.objects:
 			overlay.draw()
6728b112
 
b8f124a1
 	def tick(self):
 		self.tc_events.tick()
 		self.fps_display.set_text('%d', tc.sys_get_fps())
 		self.update_actors()
 		self.map.draw(self.console)
 		self.console.blit()
 		self.message_console.blit()
 		tc.console_flush()
 		if tc.console_is_window_closed():
 			reactor.stop()
 		else:
 			reactor.callLater(0, self.tick)
6728b112
 
 
 if __name__ == '__main__':
 	app = Application()
 	app.init()
b8f124a1
 	reactor.callWhenRunning(app.tick)
 	reactor.run()