git.fiddlerwoaroof.com
Raw Blame History
import libtcodpy as tc
import libs.combat

class Actor(object):
	char = ord('@')
	color = (255,0,0)
	blocks = True

	@property
	def pos(self):
		return self.x, self.y

	def __init__(self, x,y, map):
		self.x = x
		self.y = y
		self.map = map

	def draw(self):
		self.map.add(self)

	def move(self, dx, dy):
		dx, dy = self.map.move(self, dx,dy)
		self.x += dx
		self.y += dy

	def tick(self):
		pass

class Player(Actor):
	char = ord('@')
	color = (255,255,255)
	light_radius = 10
	def __init__(self, x,y, map):
		Actor.__init__(self, x,y, map)
		self.map.set_pov((self.pos, self.light_radius))
	def move(self, dx, dy):
		Actor.move(self, dx,dy)
		self.map.set_pov((self.pos, self.light_radius))

class ArrowHandler(object):
	def __init__(self, player, eh):
		self.player = player
		eh.register(tc.KEY_LEFT,self.left)
		eh.register(tc.KEY_RIGHT,self.right)
		eh.register(tc.KEY_UP,self.up)
		eh.register(tc.KEY_DOWN,self.down)
	def left(self, alt, shift, ctrl):
		val = 10 if shift else 1
		if alt:
			self.player.move(-val, -val)
		else:
			self.player.move(-val, 0)
	def right(self, alt, shift, ctrl):
		val = 10 if shift else 1
		if alt:
			self.player.move(val, val)
		else:
			self.player.move(val, 0)
	def up(self, alt, shift, ctrl):
		val = 10 if shift else 1
		if alt:
			self.player.move(val, -val)
		else:
			self.player.move(0, -val)
	def down(self, alt, shift, ctrl):
		val = 10 if shift else 1
		if alt:
			self.player.move(-val, val)
		else:
			self.player.move(0, val)