view demos/rio_de_hola/scripts/agents/hero.py @ 665:0a798d5c241a

Win32 build script updates to use the new Win32 November 2010 Devkit: * Caution: Python 2.7 is now the officially supported Python version on Win32; Python 2.6 will work fine right now as well but you'll need to edit the builds scripts in this case; continue to use Py 2.6 at your own risk! * Recommended Python 2.7 distro: http://downloads.activestate.com/ActivePython/releases/2.7.0.2/ActivePython-2.7.0.2-win32-x86.msi * Win32 Devkit Nov2010 (.exe installer): http://sourceforge.net/projects/fife/files/active/sdks/FIFE_Development_Kit_Nov2010.exe/download * Win32 Devkit Nov2010 (.zip version): http://sourceforge.net/projects/fife/files/active/sdks/FIFE_Development_Kit_Nov2010.zip/download * A short announcement of the new devkit will be posted at the FIFE blog later today, with more information about the upgrade process, list of changes, etc.
author mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
date Mon, 08 Nov 2010 16:52:13 +0000
parents 3dff106b945b
children
line wrap: on
line source

# -*- coding: utf-8 -*-

# ####################################################################
#  Copyright (C) 2005-2009 by the FIFE team
#  http://www.fifengine.de
#  This file is part of FIFE.
#
#  FIFE is free software; you can redistribute it and/or
#  modify it under the terms of the GNU Lesser General Public
#  License as published by the Free Software Foundation; either
#  version 2.1 of the License, or (at your option) any later version.
#
#  This library is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
#  Lesser General Public License for more details.
#
#  You should have received a copy of the GNU Lesser General Public
#  License along with this library; if not, write to the
#  Free Software Foundation, Inc.,
#  51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
# ####################################################################

import random
from agent import Agent
from fife.extensions.fife_settings import Setting

#TDS = Setting(app_name="rio_de_hola")

_STATE_NONE, _STATE_IDLE, _STATE_RUN, _STATE_KICK, _STATE_TALK = xrange(5)

class Hero(Agent):
	def __init__(self, settings, model, agentName, layer, uniqInMap=True):
		super(Hero, self).__init__(settings, 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:
			heroTexts = self.settings.get("rio", "heroTexts")
			txtindex = random.randint(0, len(heroTexts) - 1)
			instance.say(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 * self.settings.get("rio", "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)