Home | Trees | Index | Help |
---|
|
object
--+ |Entity
--+ | Agent
Avatar
,
Flyer
,
Walker
A 'character' in the world. The Agent
class defines the
basic attributes and properties that all agents share. Subclasses of
Agent
, such as walker.Walker
and flyer.Flyer
, are used to add support for
performing different sets of actions. These are subclassed further to
define specific agent types, such as walker.GreenTurtle
or flyer.RedBird
.
body
-- The agent's body.
health
-- The amount of health the
agent currently has.
mana
-- The amount of mana the agent
currently has.
facing
-- The direction that the agent
is currently facing.
alive
-- True if the agent is still
alive.
In addition, each agent has a number of "fixed" properties
affect the agent and its behavior. Normally, the values for these
properties are taken from class variables defined by Agent
subclasses. However, the class defaults can be temporarilly overridden by
instance variables when the agent is affected by an Effect
, such as a buff or a magical
spell.
By default, an agent will be represented on the display with a single
sprite, whose category is defined by the class variable sprite_category
. Subclasses must define the
method current_animation()
, which is used to
determine which of the sprite's animations to display.
Agent
may choose to handle their
own sprite display; to do so, they should set
sprite_category
to None
, and override the
methods update_animation()
, play_animation()
, and icon()
.
Method Summary | |
---|---|
Create a new agent at the given position. | |
Apply a temporary change to the "fixed" properties of this agent. | |
attack(self,
attack_type,
**attack_args)
| |
Return a tuple (basename, speed) , indicating the animation name
and the animation speed that should be used by this agent's sprite, based
on the agent's current state. | |
icon(cls)
(Class method) | |
Return true if this agent is hostile to the given agent. | |
Change the agent's sprite to display the animation with the given basename, for the duration of the animation (just one time through, if the animation normally loops). | |
register(cls)
(Class method) | |
Cancel one or more temporary changes to the "fixed" properties of this agent. | |
Say something... | |
Update the current state of this agent. | |
Update the animation mode and speed of this agent's sprite(s), based on the agent's state. | |
Actions | |
Increase the health of this agent by the given amount. | |
Cause the given amount of damage to this agent. | |
Cause the agent to die. | |
Inherited from Entity | |
| |
| |
| |
After the given duration has elapsed, call the given callback function. | |
Called when one of the entity's bodies collides with another body. | |
Called when one of the entity's bodies becomes unsupported. | |
Called when one of the entity's bodies moves. | |
| |
| |
Define this method for entities that the avatar can 'use'. | |
Inherited from object | |
x.__delattr__('name') <==> del x.name | |
x.__getattribute__('name') <==> x.name | |
Return hash(x)... | |
Return a new object with type S, a subtype of T... | |
helper for pickle | |
helper for pickle | |
x.__setattr__('name', value) <==> x.name = value | |
Return str(x)... |
Property Summary | |
---|---|
bottom : The y coordinate of the bottom side of the agent's body. | |
center : The (x,y) position of the center of the agent's body. | |
left : The x coordinate of the left side of the agent's body. | |
right : The x coordinate of the right side of the agent's body. | |
top : The y coordinate of the top side of the agent's body. | |
x : The x coordinate of the center of the agent's body. | |
y : The y coordinate of the center of the agent's body. | |
Inherited from Entity | |
bodies | |
sprites |
Instance Variable Summary | |
---|---|
int |
mana_regen : The rate at which this agent regains its mana, in MP/sec. |
State Attributes | |
health : The number of health points this agent currently has. | |
mana : The number of mana points this agent currently has. | |
body : The agent's body. | |
facing : The direction that the agent is currently facing. | |
effects : A list of the Effect s (temporary changes to fixed
properties) that are currently affecting this agent. | |
attack_cooldown_timer : ... | |
Fixed Properties | |
int |
health_max : The maximum number of health points this agent can have. |
int |
health_regen : The rate at which this agent regains its health, in HP/sec. |
int |
mana_max : The maximum number of mana points this agent can have. |
dict |
resists : A dictionary describing the base amount that this agent resists each
damage type. |
bool |
is_mortal : Determines whether this agent dies when its health reaches zero. |
int |
attack_speed : A modifier for the rate at which this agent can attack. |
str |
faction : The name of the faction that this agent belongs to. |
Inherited from Entity | |
bool |
alive : A flag indicating whether the entity is alive or not. |
bodies = pajammin.entity.entity.Entity.bodies | |
NoneType |
level : A pointer to the level that contains this entity (if any). |
sprites = pajammin.entity.entity.Entity.sprites | |
NoneType |
update_delay : The amount of time that has elapsed since the last time update was
called for this entity. |
Class Variable Summary | |
---|---|
dict |
attack_types : A dictionary describing the types of attack that agents in this class
can make. |
NoneType |
bbox_size : The default size of the bounding box for agents in this class. |
list |
classes = [<class 'pajammin.entity.agent.flyer.WhiteBird...
|
int |
solid_sides : The sides of the agent's body which should be solid for agents in this
class. |
NoneType |
sprite_category : The sprite category that should be used to create this agent's
sprite. |
int |
update_interval : The interval at which entities in a given class should have its update
function called. |
Inherited from Entity | |
bool |
autouse = False
|
bool |
is_usable = False
|
Instance Method Details |
---|
heal(self, health)Increase the health of this agent by the given amount. The agent's health will be capped at itshealth_max .
|
hurt(self, damage, damage_type=1)Cause the given amount of damage to this agent. The damage amount will be modified based on the agent's resistances to the given damage type(s). If the agent's health goes below zero, and the agent is mortal, then the agent will die. |
die(self)Cause the agent to die. This can be overridden if an agent class needs to perform any special actions when it dies. |
__init__(self,
x,
y)
Create a new agent at the given position. The new agent's health and
mana will be set to their maximum; and the direction it is facing will
be randomly chosen between |
add_effect(self, effect)Apply a temporary change to the "fixed" properties of this agent. If multiple effects change the same property, then they will be cascaded (in arbitrary order). Any sprite associated with the new effect will be added to this agent's sprite list. When the effect expires or is explicitly removed, its change will be undone, and any sprite associated with it will be removed.
|
attack(self, attack_type, **attack_args) |
current_animation(self)
|
is_hostile(self, agent)Return true if this agent is hostile to the given agent. This is decided based on the two agent's factions: if one agent has the faction 'goodguy' and the other has the faction 'badguy,' then they are hostile to each other. |
play_animation(self, basename, speed=1)Change the agent's sprite to display the animation with the given basename, for the duration of the animation (just one time through, if the animation normally loops). The actual animation name will be formed by combiningbasename with a suffix indicating which
direction the agent is facing, such as '_left' or
'_down' . Once the specified animation is complete, the
agent will resume using current_animation() to decide which
animation to display.
|
remove_effect(self, *effects_to_remove)Cancel one or more temporary changes to the "fixed" properties of this agent. Any sprites associated with the cancelled effects will be removed. Cancelling an effect that does not currently apply to the agent has no effect. (In particular, it does not generate an error.)
|
say(self, text, duration=None)Say something... |
update(self, duration)Update the current state of this agent. This update function applies health & mana regeneration, and checks whether the agent's health or mana is at or below zero (taking appropriate actions if either is).
|
update_animation(self)Update the animation mode and speed of this agent's sprite(s), based on the agent's state. This method should be called any time the agent is modified in such a way that its animation mode or speed might need to change. update_animation() uses current_animation() to decide which of
the sprite's animations to display. The method play_animation() can also be used to
temporarily override which animation is displayed.
|
Class Method Details |
---|
icon(cls)
|
register(cls) |
Property Details |
---|
bottomThe y coordinate of the bottom side of the agent's body. |
centerThe (x,y) position of the center of the agent's body. |
leftThe x coordinate of the left side of the agent's body. |
rightThe x coordinate of the right side of the agent's body. |
topThe y coordinate of the top side of the agent's body. |
xThe x coordinate of the center of the agent's body. |
yThe y coordinate of the center of the agent's body. |
Instance Variable Details |
---|
healthThe number of health points this agent currently has. If this reaches zero, then the agent dies. |
manaThe number of mana points this agent currently has. |
bodyThe agent's body. |
effectsA list of theEffect s (temporary changes to fixed
properties) that are currently affecting this agent.
|
attack_cooldown_timer... |
health_maxThe maximum number of health points this agent can have.
|
health_regenThe rate at which this agent regains its health, in HP/sec. This rate may be negative, to indicate a health drain.
|
mana_maxThe maximum number of mana points this agent can have.
|
is_mortalDetermines whether this agent dies when its health reaches zero. Ifis_mortal is false, then the agent's health will be
increased to 1 whenever it reaches 0.
|
attack_speedA modifier for the rate at which this agent can attack. This modifier is multiplied by the agent's base attack speed values to decide how fast it actually attacks. If this is set to zero, then the agent is prevented from attacking.
|
factionThe name of the faction that this agent belongs to. Can be 'goodguy', 'badguy', or 'neutral'.
|
mana_regenThe rate at which this agent regains its mana, in MP/sec. This rate may be negative, to indicate a mana drain.
|
Class Variable Details |
---|
attack_typesA dictionary describing the types of attack that agents in this class can make. It maps from attack names toAttackType objects. [xx] should this be
considered a fixed property? if so, then a spell or other effect could
grant a new attack type to an agent; but it would have to be pretty
specific... the agent's sprite would have to have the appropriate
animations.
|
bbox_sizeThe default size of the bounding box for agents in this class.
|
classes
|
solid_sidesThe sides of the agent's body which should be solid for agents in this class.
|
sprite_categoryThe sprite category that should be used to create this agent's sprite. This must be defined by each subclass, unless that subclass is handling its own sprite creation & display.
|
update_intervalThe interval at which entities in a given class should have its update function called.
|
Home | Trees | Index | Help |
---|
Generated by Epydoc 2.1 on Thu Sep 22 22:52:47 2005 | http://epydoc.sf.net |