/[ambar]/ambar/controlador.py
ViewVC logotype

Diff of /ambar/controlador.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2.3 by amoyav, Thu Aug 29 12:18:21 2002 UTC revision 2.4 by pabloruiz, Tue Nov 5 22:58:22 2002 UTC
# Line 1  Line 1 
1  #!/usr/bin/env python  #!/usr/bin/env python
2  #  #
3  #Minë. Mundo Interactivo-Narrativo en Español [Tierra-Media]  #Minë. Mundo Interactivo-Narrativo en Español [Tierra-Media]
4  #Copyright (C) 2002  Pablo Ruiz Múzquiz  #Copyright (C) 2002  Pablo Ruiz Múzquiz
5  #  #
6  #  #
7  #This program is free software; you can redistribute it and/or modify  #This program is free software; you can redistribute it and/or modify
8  #it under the terms of the GNU General Public License as published by  #it under the terms of the GNU General Public License as published by
9  #the Free Software Foundation; either version 2 of the License, or  #the Free Software Foundation; either version 2 of the License, or
10  #(at your option) any later version.  #(at your option) any later version.
11  #  #
12  #This program is distributed in the hope that it will be useful,  #This program is distributed in the hope that it will be useful,
13  #but WITHOUT ANY WARRANTY; without even the implied warranty of  #but WITHOUT ANY WARRANTY; without even the implied warranty of
14  #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  #GNU General Public License for more details.  #GNU General Public License for more details.
16  #  #
17  #You should have received a copy of the GNU General Public License  #You should have received a copy of the GNU General Public License
18  #along with this program; if not, write to the Free Software  #along with this program; if not, write to the Free Software
19  #Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA  #Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20  #  #
21    
22  #  #
23  #Fichero: controlador.py  #Fichero: controlador.py
24    
25  """Interfaz Controlador."""  """Interfaz Controlador."""
26    
27    
28  class Controlador:  class Controlador:
29      """Interfaz que debe implementar cualquier entidad que controla a un personaje.      """Interfaz que debe implementar cualquier entidad que controla a un personaje.
30            
31      Contiene los mensajes de respuesta a los eventos que producen los personajes.      Contiene los mensajes de respuesta a los eventos que producen los personajes.
32            
33      En la mayoría de los lenguajes orientados a objetos hay que crear una clase o      En la mayoría de los lenguajes orientados a objetos hay que crear una clase o
34      un interfaz para esto. En Python, debido a ser dinámicamente tipado, esta      un interfaz para esto. En Python, debido a ser dinámicamente tipado, esta
35      clase en realidad es totalmente innecesaria. La pongo sólo como documentación.      clase en realidad es totalmente innecesaria. La pongo sólo como documentación.
36            
37      Todos los métodos tienen que estar redefinidos en subclases.      Todos los métodos tienen que estar redefinidos en subclases.
38      """      """
39                                                    
40                                                    
41      def entra_personaje(self, personaje):      def entra_personaje(self, personaje):
42          """Metodo llamado cuando otro personaje entra en la misma sala.          """Metodo llamado cuando otro personaje entra en la misma sala.
43                    
44          personaje -- el personaje que entra.          personaje -- el personaje que entra.
45          """          """
46          pass          pass
47                                                    
48                                                    
49      def sale_personaje(self, personaje, nombre_sala_destino):      def sale_personaje(self, personaje, nombre_sala_destino):
50          """Metodo llamado cuando otro personaje sale de la misma sala.          """Metodo llamado cuando otro personaje sale de la misma sala.
51                    
52          personaje -- el personaje que sale.          personaje -- el personaje que sale.
53          nombre_sala_destino -- el nombre de la sala a donde va          nombre_sala_destino -- el nombre de la sala a donde va
54          """          """
55          pass          pass
56                                                    
57    
58      def habla_personaje(self, personaje, mensaje):      def habla_personaje(self, personaje, mensaje):
59          """Metodo llamado cuando otro personaje dice algo en la sala.          """Metodo llamado cuando otro personaje dice algo en la sala.
60                    
61          personaje -- el personaje que habla.          personaje -- el personaje que habla.
62          mensaje -- lo que dice.          mensaje -- lo que dice.
63          """          """
64          pass          pass
65    
66    
67      def susurra_personaje(self, personaje, mensaje):      def susurra_personaje(self, personaje, mensaje):
68          """Metodo llamado cuando otro personaje dice algo sólo para éste.          """Metodo llamado cuando otro personaje dice algo sólo para éste.
69                    
70          personaje -- el personaje que susurra.          personaje -- el personaje que susurra.
71          mensaje -- lo que dice.          mensaje -- lo que dice.
72          """          """
73          pass              pass    
74            
75                                                    
76      def grita_personaje(self, personaje, mensaje):      def grita_personaje(self, personaje, mensaje):
77          """Metodo llamado cuando otro personaje dice algo que oyen *todos*          """Metodo llamado cuando otro personaje dice algo que oyen *todos*
78          los personajes de Minë (esto habría que cambiarlo porque es OOC).          los personajes de Minë (esto habría que cambiarlo porque es OOC).
79                    
80          personaje -- el personaje que grita.          personaje -- el personaje que grita.
81          mensaje -- lo que dice.          mensaje -- lo que dice.
82          """          """
83          pass          pass
84                                                    
85                                                    
86      def actua_personaje(self, personaje, accion):      def actua_personaje(self, personaje, accion):
87          """Metodo llamado cuando otro personaje en la sala describe lo          """Metodo llamado cuando otro personaje en la sala describe lo
88          que hace de forma novelada.          que hace de forma novelada.
89                    
90          personaje -- el personaje que actua.          personaje -- el personaje que actua.
91          accion -- lo que hace (el texto está expresado para colocarle          accion -- lo que hace (el texto está expresado para colocarle
92                    el nombre del personaje al principio, por ejemplo                    el nombre del personaje al principio, por ejemplo
93                    "coge una lampara" -> "Hirunatan coge una lampara").                    "coge una lampara" -> "Hirunatan coge una lampara").
94          """          """
95          pass          pass
96    
97    
98      def actua_individual_personaje(self, personaje, accion):      def actua_individual_personaje(self, personaje, accion):
99          """Metodo llamado cuando otro personaje describe lo que hace          """Metodo llamado cuando otro personaje describe lo que hace
100          de forma que sólo lo percibe éste.          de forma que sólo lo percibe éste.
101                    
102          personaje -- el personaje que actúa.          personaje -- el personaje que actúa.
103          accion -- lo que hace (el texto está expresado para colocarle          accion -- lo que hace (el texto está expresado para colocarle
104                    el personaje al principio, y está en segunda persona,                    el personaje al principio, y está en segunda persona,
105                    por ejemplo "te da una espada" -> "Aranarth te da una                    por ejemplo "te da una espada" -> "Aranarth te da una
106                    espada").                    espada").
107          """          """
108          pass              pass    
109    
110    
111      def actua_uno_mismo(self, accion):      def actua_uno_mismo(self, accion):
112          """Metodo llamado cuando el personaje se informa a si mismo (a su          """Metodo llamado cuando el personaje se informa a si mismo (a su
113          controlador, en realidad) de algo que hace.          controlador, en realidad) de algo que hace.
114    
115          Normalmente esto sucede de forma asíncrona, es decir, no como          Normalmente esto sucede de forma asíncrona, es decir, no como
116          respuesta directa a una acción del jugador, sino indirectamente.          respuesta directa a una acción del jugador, sino indirectamente.
117    
118          accion -- lo que hace (el texto va en segunda persona, y se          accion -- lo que hace (el texto va en segunda persona, y se
119                    mostrará tal cual en pantalla, por ejemplo "No puedes                    mostrará tal cual en pantalla, por ejemplo "No puedes
120                    seguir a Hirunatan porque la sala está llena").                    seguir a Hirunatan porque la sala está llena").
121          """          """
122          pass          pass
123                                                    
124                                                    
125      def actua_global_personaje(self, personaje, accion):      def actua_global_personaje(self, personaje, accion):
126          """Metodo llamado cuando otro personaje describe de forma novelada          """Metodo llamado cuando otro personaje describe de forma novelada
127          algo que hace y que ven *todos* los personajes de Minë.          algo que hace y que ven *todos* los personajes de Minë.
128                    
129          personaje -- el personaje que actua.          personaje -- el personaje que actua.
130          accion -- lo que hace (el texto está expresado para colocarle          accion -- lo que hace (el texto está expresado para colocarle
131                    el nombre del personaje al principio, por ejemplo                    el nombre del personaje al principio, por ejemplo
132                    "ha entrado en Minë" -> "Hirunatan ha entrado en Minë").                    "ha entrado en Minë" -> "Hirunatan ha entrado en Minë").
133          """          """
134          pass          pass
135    
136    
137      def suceso_entorno(self, suceso):      def suceso_entorno(self, suceso):
138          """Método llamado cuando ocurre un fenómeno ambiental, independiente          """Método llamado cuando ocurre un fenómeno ambiental, independiente
139          de ningún personaje concreto.          de ningún personaje concreto.
140                    
141          personaje -- el personaje que actúa.          personaje -- el personaje que actúa.
142          suceso -- lo que ocurre (el texto está expresado de forma impersonal,          suceso -- lo que ocurre (el texto está expresado de forma impersonal,
143                    y se mostrará tal cual en pantalla, por ejemplo "De pronto                    y se mostrará tal cual en pantalla, por ejemplo "De pronto
144                    se hace un silencio sepulcral en la sala").                    se hace un silencio sepulcral en la sala").
145          """          """
146          pass          pass
147                    
148                    
149      def ataca_personaje(self, personaje, result):      def ataca_personaje(self, personaje, result):
150          """Metodo llamado cuando otro personaje inicia un ataque a este.          """Metodo llamado cuando otro personaje inicia un ataque a este.
151                    
152          personaje -- el personaje que ha atacado.          personaje -- el personaje que ha atacado.
153          result -- el resultado del combate (Personaje.ATAQUE_EXITO, etc.)          result -- el resultado del combate (Personaje.ATAQUE_EXITO, etc.)
154          """          """
155          pass          pass
156    
157    
158      def movimiento_automatico(self):      def movimiento_automatico(self):
159          """Metodo llamado cuando el personaje se ha movido automaticamente          """Metodo llamado cuando el personaje se ha movido automaticamente
160          a otra sala, por estar siguiendo a otro personaje.          a otra sala, por estar siguiendo a otro personaje.
161          """          """
162          pass          pass
163    
164    
165    
166  # Código para pruebas unitarias del módulo.  # Código para pruebas unitarias del módulo.
167    
168  if (__name__ == '__main__'):  if (__name__ == '__main__'):
169      print "No hay código para pruebas unitarias del módulo, ya que es un interfaz"      print "No hay código para pruebas unitarias del módulo, ya que es un interfaz"
170      print "y no tiene código."      print "y no tiene código."

Legend:
Removed from v.2.3  
changed lines
  Added in v.2.4

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26