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

Diff of /ambar/sala.py

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

revision 1.34 by amoyav, Tue Aug 13 08:28:27 2002 UTC revision 1.35 by amoyav, Fri Aug 16 08:41:13 2002 UTC
# Line 280  class Sala: Line 280  class Sala:
280              for nodo_parrafo in nodo_item.childNodes[:]:              for nodo_parrafo in nodo_item.childNodes[:]:
281                  texto_item += nodo_parrafo.data.encode('ISO-8859-1')                  texto_item += nodo_parrafo.data.encode('ISO-8859-1')
282                            
283                texto_item = " ".join(texto_item.split())
284    
285              if len(nodo_item._attrs) == 0:              if len(nodo_item._attrs) == 0:
286                  dif_item = 0                  dif_item = 0
287              else:              else:
# Line 564  class Sala: Line 566  class Sala:
566          return ocupado          return ocupado
567    
568    
569      def coger_objeto(self, personaje, nombre_objeto):      def coger_objeto(self, n_objeto, n_instancia):
570          """          """Sacar una instancia de un objeto de la sala.
571          Método que extrae un objeto de los objetos de la sala y lo añade al equipo del personaje.  
572            n_objeto es el numero de orden dentro de los objetos de la sala, y n_instancia
573          Requiere:          es el numero de la instancia, ambos empezando por cero.
574           personaje != None  
575           nombre_objeto != None          Devuelve una instancia de clase Objeto.
576           tirada_percep_sala != None  
577            Requiere:
578          Asegura:              n_objeto in range(0, len(self.objetos)-1)
579           encontrado 1 or 0.              n_instancia in range(0, len(self.objetos[n_objeto]["instancias"])-1)
580          """  
581          encontrado = 0          Asegura:
582          existe_ya_uno = 0              return != None
583            """
584          for objeto in self.objetos[:]:          objeto = self.objetos[n_objeto]
585              if objeto["id"] == nombre_objeto and len(objeto["instancias"]) > 0:  
586                  encontrado = 1          instancia = objeto["instancias"][n_instancia]
587    
588                  if len(personaje.equipo) == 0:          del objeto["instancias"][n_instancia]
589                      personaje.equipo.append({"id":nombre_objeto,"instancias":[objeto["instancias"][0]]})          if len(objeto["instancias"]) == 0 and objeto["probabilidad"] == 0:
590                  else:              del self.objetos[n_objeto]
591                      for objeto_en_equipo in personaje.equipo:  
592                          if objeto_en_equipo["id"] == nombre_objeto:          return instancia
593                              existe_ya_uno = 1  
594                              objeto_en_equipo["instancias"].append(objeto["instancias"][0])  
595                              if len(objeto["instancias"]) == 0 and objeto["probabilidad"] == 0:  #%%    def coger_objeto(self, personaje, nombre_objeto):
596                                  self.objetos.remove(objeto)  #%%        """
597                              break  #%%        Método que extrae un objeto de los objetos de la sala y lo añade al equipo del personaje.
598                      if existe_ya_uno == 0:  #%%
599                          personaje.equipo.append({"id":nombre_objeto,"instancias":[objeto["instancias"][0]]})  #%%        Requiere:
600                      else:  #%%         personaje != None
601                          pass  #%%         nombre_objeto != None
602    #%%         tirada_percep_sala != None
603                  objeto["instancias"].pop(0)  #%%
604    #%%        Asegura:
605      def dejar_objeto(self, personaje, nombre_objeto, dif=0):  #%%         encontrado 1 or 0.
606          """  #%%        """
607          Método que extrae un objeto del equipo del personaje y lo añade a los objetos de la sala.  #%%        encontrado = 0
608          No hace falta comprobar por el volumen del objeto, porque si el personaje ha podido  #%%        existe_ya_uno = 0
609          entrar en la sala cargándolo, el volumen ocupado no va a cambiar por el hecho de que  #%%
610          lo suelte.  #%%        for objeto in self.objetos[:]:
611    #%%            if objeto["id"] == nombre_objeto and len(objeto["instancias"]) > 0:
612          Requiere:  #%%                encontrado = 1
613           personaje != None  #%%
614           nombre_objeto != None  #%%                if len(personaje.equipo) == 0:
615    #%%                    personaje.equipo.append({"id":nombre_objeto,"instancias":[objeto["instancias"][0]]})
616          Asegura:  #%%                else:
617           encontrado 0 or 1  #%%                    for objeto_en_equipo in personaje.equipo:
618          """  #%%                        if objeto_en_equipo["id"] == nombre_objeto:
619    #%%                            existe_ya_uno = 1
620          encontrado = 0  #%%                            objeto_en_equipo["instancias"].append(objeto["instancias"][0])
621    #%%                            if len(objeto["instancias"]) == 0 and objeto["probabilidad"] == 0:
622          for objeto_en_equipo in personaje.equipo:  #%%                                self.objetos.remove(objeto)
623              if objeto_en_equipo["id"] == nombre_objeto and len(objeto_en_equipo["instancias"]) > 0:  #%%                            break
624                  obj = objeto_en_equipo["instancias"][0]  #%%                    if existe_ya_uno == 0:
625                  existe_uno_igual = 0  #%%                        personaje.equipo.append({"id":nombre_objeto,"instancias":[objeto["instancias"][0]]})
626                  for objeto in self.objetos:  #%%                    else:
627                      if (nombre_objeto == objeto["id"] and objeto["dificultad"] == dif):  #%%                        pass
628                          objeto["instancias"].append(obj)  #%%
629                          existe_uno_igual = 1  #%%                objeto["instancias"].pop(0)
                         break  
                     else:  
                         pass  
                 if existe_uno_igual == 0:  
                     self.objetos.append({"id":nombre_objeto,"probabilidad":0,"dificultad":dif,"instancias":[obj]})  
                 objeto_en_equipo["instancias"].pop(0)  
                 #                    self.cmd_actuacion_personaje("deja "+obj.nombre)  
                 encontrado = 1  
                 break #salimos ya que ya hemos dejado un objeto.  
630    
631          return encontrado, nombre_objeto  
632        def dejar_objeto(self, instancia, dificultad = 0):
633            """Soltar un objeto en la sala.
634    
635            instancia es de clase Objeto. Si ya habia mas instancias con el mismo id en la sala,
636            se añade a la lista, y si no, se crea un item nuevo en self.objetos.
637    
638            Requiere:
639                instancia != None
640                dificultad in range(0, 100)
641            """
642            encontrado = 0
643            for objeto in self.objetos:
644                if objeto["id"] == instancia.id:
645                    encontrado = 1
646                    objeto.instancias.append(instancia)
647                    break
648    
649            if not encontrado:
650                self.objetos.append({"id":instancia.id,
651                                     "probabilidad":0,
652                                     "maximo":0,
653                                     "dificultad":dificultad,
654                                     "instancias":[instancia]})
655    
656    
657    #%%    def dejar_objeto(self, personaje, nombre_objeto, dif=0):
658    #%%        """
659    #%%        Método que extrae un objeto del equipo del personaje y lo añade a los objetos de la sala.
660    #%%     No hace falta comprobar por el volumen del objeto, porque si el personaje ha podido
661    #%%     entrar en la sala cargándolo, el volumen ocupado no va a cambiar por el hecho de que
662    #%%     lo suelte.
663    #%%
664    #%%        Requiere:
665    #%%         personaje != None
666    #%%         nombre_objeto != None
667    #%%
668    #%%        Asegura:
669    #%%         encontrado 0 or 1
670    #%%        """
671    #%%
672    #%%        encontrado = 0
673    #%%
674    #%%        for objeto_en_equipo in personaje.equipo:
675    #%%            if objeto_en_equipo["id"] == nombre_objeto and len(objeto_en_equipo["instancias"]) > 0:
676    #%%                obj = objeto_en_equipo["instancias"][0]
677    #%%                existe_uno_igual = 0
678    #%%                for objeto in self.objetos:
679    #%%                    if (nombre_objeto == objeto["id"] and objeto["dificultad"] == dif):
680    #%%                        objeto["instancias"].append(obj)
681    #%%                        existe_uno_igual = 1
682    #%%                        break
683    #%%                    else:
684    #%%                        pass
685    #%%                if existe_uno_igual == 0:
686    #%%                    self.objetos.append({"id":nombre_objeto,"probabilidad":0,"dificultad":dif,
687    #%%                                     "instancias":[obj]})
688    #%%                objeto_en_equipo["instancias"].pop(0)
689    #%%                #                    self.cmd_actuacion_personaje("deja "+obj.nombre)
690    #%%                encontrado = 1
691    #%%                break #salimos ya que ya hemos dejado un objeto.
692    #%%
693    #%%        return encontrado, nombre_objeto
694            
695    
696      def salvar(self):      def salvar(self):

Legend:
Removed from v.1.34  
changed lines
  Added in v.1.35

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