82 lines
1.1 KiB
Python
Executable file
82 lines
1.1 KiB
Python
Executable file
|
|
class gameobj(object):
|
|
role_factory = {}
|
|
|
|
@staticmethod
|
|
def create_role_factory(role, factory):
|
|
gameobj.role_factory[role] = factory
|
|
|
|
def __init__(self, self.pos):
|
|
self.pos = pos
|
|
self.roles = []
|
|
self.effects = []
|
|
|
|
def add_role(self, role):
|
|
assert not type(role) in [type(x) for x in self.roles]
|
|
for i, r in enumerate(self.roles):
|
|
if role is r:
|
|
break
|
|
if role.order < r.order:
|
|
self.roles.insert(i, role)
|
|
break
|
|
|
|
def remove_role(self, role):
|
|
for
|
|
|
|
def ai(self):
|
|
pass
|
|
|
|
def handle_input(self):
|
|
pass
|
|
|
|
def move(self):
|
|
pass
|
|
|
|
def animate(self):
|
|
pass
|
|
|
|
def collide(self):
|
|
pass
|
|
|
|
def prerender(self):
|
|
pass
|
|
|
|
|
|
gameobj.create_role_factory('ai', ai_role)
|
|
|
|
class role(object):
|
|
order = 1000
|
|
def __init__(self):
|
|
pass
|
|
|
|
class ai_role(role):
|
|
order = 200
|
|
pass
|
|
|
|
class visible_role(role):
|
|
order = 10000
|
|
pass
|
|
|
|
class corporeal_role(role):
|
|
order = 500
|
|
pass
|
|
|
|
class animated_role(role):
|
|
order = 400
|
|
pass
|
|
|
|
class movable_role(role):
|
|
order = 300
|
|
pass
|
|
|
|
class player_role(role):
|
|
order = 100
|
|
pass
|
|
|
|
class light_role(role):
|
|
order = 9000
|
|
pass
|
|
|
|
class _role(role):
|
|
pass
|
|
|