Splitting the scripted parent system out into the gamesrc directory. There will be more explanation of this later.

This commit is contained in:
Greg Taylor 2008-12-15 05:55:04 +00:00
parent 00297d336a
commit 122bf4e3ff
13 changed files with 79 additions and 33 deletions

View file

@ -0,0 +1,136 @@
"""
This is the base object type/interface that all parents are derived from by
default. Each object type sub-classes this class and over-rides methods as
needed.
NOTE: This file should NOT be directly modified. Sub-class the BasicObject
class in game/gamesrc/parents/base/basicobject.py and change the
SCRIPT_DEFAULT_OBJECT variable in settings.py to point to the new class.
"""
from src import ansi
class EvenniaBasicObject(object):
def __init__(self, source_obj):
"""
Get our ducks in a row.
source_obj: (Object) A reference to the object being scripted (the child).
"""
self.source_obj = source_obj
def a_desc(self, values):
"""
Perform this action when someone uses the LOOK command on the object.
values: (Dict) Script arguments with keys:
* pobject: The object requesting the action.
"""
# Un-comment the line below for an example
#print "SCRIPT TEST: %s looked at %s." % (values["pobject"], self.source_obj)
pass
def return_appearance(self, values):
"""
Returns a string representation of an object's appearance when LOOKed at.
values: (Dict) Script arguments with keys:
* pobject: The object requesting the action.
"""
target_obj = self.source_obj
pobject = values["pobject"]
description = target_obj.get_description()
if description is not None:
retval = "%s\r\n%s" % (
target_obj.get_name(),
target_obj.get_description(),
)
else:
retval = "%s" % (
target_obj.get_name(),
)
con_players = []
con_things = []
con_exits = []
for obj in target_obj.get_contents():
if obj.is_player():
if obj != pobject and obj.is_connected_plr():
con_players.append(obj)
elif obj.is_exit():
con_exits.append(obj)
else:
con_things.append(obj)
if not con_players == []:
retval += "\n\r%sPlayers:%s" % (ansi.ansi["hilite"], ansi.ansi["normal"],)
for player in con_players:
retval +='\n\r%s' %(player.get_name(),)
if not con_things == []:
retval += "\n\r%sContents:%s" % (ansi.ansi["hilite"], ansi.ansi["normal"],)
for thing in con_things:
retval += '\n\r%s' %(thing.get_name(),)
if not con_exits == []:
retval += "\n\r%sExits:%s" % (ansi.ansi["hilite"], ansi.ansi["normal"],)
for exit in con_exits:
retval += '\n\r%s' %(exit.get_name(),)
return retval
def a_get(self, values):
"""
Perform this action when someone uses the GET command on the object.
values: (Dict) Script arguments with keys:
* pobject: The object requesting the action.
"""
# Un-comment the line below for an example
#print "SCRIPT TEST: %s got %s." % (values["pobject"], self.source_obj)
pass
def a_drop(self, values):
"""
Perform this action when someone uses the GET command on the object.
values: (Dict) Script arguments with keys:
* pobject: The object requesting the action.
"""
# Un-comment the line below for an example
#print "SCRIPT TEST: %s dropped %s." % (values["pobject"], self.source_obj)
pass
def default_lock(self, values):
"""
This method returns a True or False boolean value to determine whether
the actor passes the lock. This is generally used for picking up
objects or traversing exits.
values: (Dict) Script arguments with keys:
* pobject: The object requesting the action.
"""
# Assume everyone passes the default lock by default.
return True
def use_lock(self, values):
"""
This method returns a True or False boolean value to determine whether
the actor passes the lock. This is generally used for seeing whether
a player can use an object or any of its commands.
values: (Dict) Script arguments with keys:
* pobject: The object requesting the action.
"""
# Assume everyone passes the use lock by default.
return True
def enter_lock(self, values):
"""
This method returns a True or False boolean value to determine whether
the actor passes the lock. This is generally used for seeing whether
a player can enter another object.
values: (Dict) Script arguments with keys:
* pobject: The object requesting the action.
"""
# Assume everyone passes the enter lock by default.
return True