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: |
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): |