diff clients/rio_de_hola/scripts/agents/hero.py @ 98:214e3eb81eb2

better structure for techdemo scripts + svn:ignore fixes
author jasoka@33b003aa-7bff-0310-803a-e67f0ece8222
date Mon, 21 Jul 2008 13:46:15 +0000
parents clients/rio_de_hola/scripts/hero.py@4a0efb7baf70
children ae3b8139c7c7
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/clients/rio_de_hola/scripts/agents/hero.py	Mon Jul 21 13:46:15 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)