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()
|