3d5a515d |
import libs.patch_random
import random
|
86f3fea2 |
#random.seed(2)
|
3d5a515d |
|
6728b112 |
import libtcodpy as tc
import numpy as np
|
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 |
|
b3d5fa82 |
WIDTH = 79
HEIGHT = 46
|
6728b112 |
class Application(object):
def __init__(self):
|
b3d5fa82 |
self.screen = console.Screen(WIDTH, HEIGHT)
|
d7409888 |
self.terrain_registry = map.TerrainRegistry()
self.terrain_registry.load_from_file('data/terrain.yml')
|
b3d5fa82 |
self.map = map.Map(WIDTH,HEIGHT, self.terrain_registry)
|
dff12016 |
self.player = player.Player(4,5, self.map, combat.Adventurer.randomize())
|
54cb1995 |
self.events = events.EventHandler()
player.ArrowHandler(self.player, self.events)
|
6728b112 |
|
3d5a515d |
self.actors = []
for x in range(40):
|
b3d5fa82 |
self.actors.append(overlay.Actor(random.randrange(WIDTH), random.randrange(HEIGHT), self.map))
|
5f75058b |
self.objects = []
for x in range(50):
|
b3d5fa82 |
self.objects.append(overlay.Potion(random.randrange(WIDTH), random.randrange(HEIGHT), self.map))
|
def7cb88 |
|
6728b112 |
tc.sys_set_fps(60)
|
86f3fea2 |
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)
|
6728b112 |
def init(self):
self.screen.init("test")
|
01357f3e |
self.player.draw()
|
86f3fea2 |
self.update_actors()
for overlay in self.actors + self.objects:
overlay.draw()
|
6728b112 |
def run(self):
while not tc.console_is_window_closed():
self.events.tick()
|
86f3fea2 |
self.update_actors()
|
6728b112 |
self.map.draw(self.screen)
|
01357f3e |
tc.console_print(0, 0,1, '%d' % tc.sys_get_fps())
|
6728b112 |
tc.console_flush()
if __name__ == '__main__':
app = Application()
app.init()
app.run()
|