Mercurial > fife-parpg
diff clients/rio_de_hola/scripts/hero.py @ 0:4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
author | mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222 |
---|---|
date | Sun, 29 Jun 2008 18:44:17 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/clients/rio_de_hola/scripts/hero.py Sun Jun 29 18:44:17 2008 +0000 @@ -0,0 +1,40 @@ +import random +from agent import Agent +import settings as TDS + +_STATE_NONE, _STATE_IDLE, _STATE_RUN, _STATE_KICK, _STATE_TALK = xrange(5) + +class Hero(Agent): + def __init__(self, model, agentName, layer, uniqInMap=True): + super(Hero, self).__init__(model, agentName, layer, uniqInMap) + self.state = _STATE_NONE + self.idlecounter = 1 + + def onInstanceActionFinished(self, instance, action): + self.idle() + if action.getId() != 'stand': + self.idlecounter = 1 + else: + self.idlecounter += 1 + if self.idlecounter % 7 == 0: + txtindex = random.randint(0, len(TDS.heroTexts) - 1) + instance.say(TDS.heroTexts[txtindex], 2500) + + def start(self): + self.idle() + + def idle(self): + self.state = _STATE_IDLE + self.agent.act('stand', self.agent.getFacingLocation()) + + def run(self, location): + self.state = _STATE_RUN + self.agent.move('run', location, 4 * TDS.TestAgentSpeed) + + def kick(self, target): + self.state = _STATE_KICK + self.agent.act('kick', target) + + def talk(self, target): + self.state = _STATE_TALK + self.agent.act('talk', target)