コード例 #1
0
    def __spawn_NPCs(self, population_size):
        for _ in range(0, population_size):
            NPC_type = randint(1, 4)

            if NPC_type == 1:  # Person
                p = Person()
                self.__NPC_list.append(p)
                p.add_observer(self)
                self.__num_people += 1

            elif NPC_type == 2:  # Zombie
                z = Zombie()
                self.__NPC_list.append(z)
                z.add_observer(self)
                self.__num_monsters += 1

            elif NPC_type == 3:  # Vampire
                v = Vampire()
                self.__NPC_list.append(v)
                v.add_observer(self)
                self.__num_monsters += 1

            elif NPC_type == 4:  # Ghoul
                g = Ghoul()
                self.__NPC_list.append(g)
                g.add_observer(self)
                self.__num_monsters += 1

            else:  # Werewolf
                w = Werewolf()
                self.__NPC_list.append(w)
                w.add_observer(self)
                self.__num_monsters += 1
コード例 #2
0
    def __create_NPCs(self, num_NPCs):

        for x in range(0, num_NPCs):
            NPC_type = randint(0, 4)

            if NPC_type == 0:  # Person
                person = Person()
                self.__NPCs.append(person)
                person.add_observer(self)
                self.__num_persons += 1
            elif NPC_type == 1:  # Zombie
                zombie = Zombie()
                self.__NPCs.append(zombie)
                zombie.add_observer(self)
                self.__num_monsters += 1
            elif NPC_type == 2:  # Vampire
                vampire = Vampire()
                self.__NPCs.append(vampire)
                vampire.add_observer(self)
                self.__num_monsters += 1
            elif NPC_type == 3:  # Ghoul
                ghoul = Ghoul()
                self.__NPCs.append(ghoul)
                ghoul.add_observer(self)
                self.__num_monsters += 1
            elif NPC_type == 4:  # Werewolf
                werewolf = Werewolf()
                self.__NPCs.append(werewolf)
                werewolf.add_observer(self)
                self.__num_monsters += 1
コード例 #3
0
    def update(self, obj_type):
        self.__num_monsters -= 1
        self.__NPC_list.remove(obj_type)
        super().update_observers(obj_type)  # Updating the neighborhood

        self.__num_people += 1
        p = Person()
        self.__NPC_list.append(p)
        p.add_observer(self)
コード例 #4
0
    def update_observer(self, obj):
        # get rid of a monster, update neighborhood of change
        self.__num_monsters -= 1
        self.__NPCs.remove(obj)
        super().update_observable(obj)

        # add a person
        self.__num_persons += 1
        person = Person()
        self.__NPCs.append(person)
        person.add_observer(self)
コード例 #5
0
 def __init__(self, count):
     self.Persons =[]
     self.Zombies = []
     self.Vampires = []
     self.Ghouls = []
     self.Werewolves = []
     numMonsters = random.randint(1,10)
     print ("Home " + str(count) + " has " + str(numMonsters) + " creatures")
     for x in range(numMonsters):
         monsterType = random.randint(1,5)
         #newMonster.add_Observer(newHome)
         if (monsterType == 1):
             newMonster = Werewolf()
             self.Werewolves.append(newMonster)
         elif (monsterType == 2):
             newMonster = Person()
             self.Persons.append(newMonster)
         elif (monsterType == 3):
             newMonster = Zombie()
             self.Zombies.append(newMonster)
         elif (monsterType == 4):
             newMonster = Vampire()
             self.Vampires.append(newMonster)
         elif (monsterType == 5):
             newMonster = Ghoul()
             self.Ghouls.append(newMonster)
コード例 #6
0
ファイル: House.py プロジェクト: jstnkng/Zork-Game
    def __init__(self, count):
        super(House, self).__init__()
        self.Name = "House " + str(count)
        self.Persons = []
        self.Zombies = []
        self.Vampires = []
        self.Ghouls = []
        self.Werewolves = []
        numMonsters = random.randint(1, 10)
        for x in range(numMonsters):
            monsterType = random.randint(1, 5)
            if (monsterType == 1):
                newMonster = Person()
                self.Persons.append(newMonster)
            elif (monsterType == 2):
                newMonster = Zombie()
                self.Zombies.append(newMonster)
            elif (monsterType == 3):
                newMonster = Vampire()
                self.Vampires.append(newMonster)
            elif (monsterType == 4):
                newMonster = Ghoul()
                self.Ghouls.append(newMonster)
            elif (monsterType == 5):
                newMonster = Werewolf()
                self.Werewolves.append(newMonster)

            if (newMonster.Name != "Person"):
                self.add_Observer(newMonster)
            if (len(self.observers) == 0):
                self.Name = self.Name + ": SAFE"

        self.update()
コード例 #7
0
 def updatePop(self):
     for i in range(len(self.npcs)):
         if(self.npcs[i].getHP()<1):
             self.npcs[i] = Person();
コード例 #8
0
ファイル: Objects.py プロジェクト: waltojac/cis343-zork
 def updateObserver(self, object):
     self.occupants.remove(object)
     self.occupants.append(Person())
     self.numMonsters -= 1
     Observable.update(self)
コード例 #9
0
ファイル: House.py プロジェクト: jstnkng/Zork-Game
    def getAttacked(self, damage, weapon):
        for x in range(len(self.Zombies)):
            if (weapon.Name == "SourStraw"):
                self.Zombies[x].HP = self.Zombies[x].HP - (damage * 2)
                print("Zombie " + str(x) + " lost " + str(damage * 2) +
                      " HP (It's very effective!)")
            else:
                self.Zombies[x].HP = self.Zombies[x].HP - damage
                print("Zombie " + str(x) + " lost " + str(damage) + " HP")
            if (self.Zombies[x].HP < 0):
                print("Zombie " + str(x) + " is now a Person!")
            self.Zombies[x].update()
        for x in range(len(self.Vampires)):
            if (weapon.Name != "ChocolateBar"):
                self.Vampires[x].HP = self.Vampires[x].HP - damage
                print("Vampire " + str(x) + " lost " + str(damage) + " HP")
            else:
                print("Vampire " + str(x) + " was unaffected")
            if (self.Vampires[x].HP < 0):
                print("Vampire " + str(x) + " is now a Person!")
            self.Vampires[x].update()
        for x in range(len(self.Ghouls)):
            if (weapon.Name == "ChocolateBar"):
                self.Ghouls[x].HP = self.Ghouls[x].HP - (damage * 5)
                print("Ghoul " + str(x) + " lost " + str(damage * 5) +
                      " HP (It's incredibly effective!)")
            else:
                self.Ghouls[x].HP = self.Ghouls[x].HP - damage
                print("Ghoul " + str(x) + " lost " + str(damage) + " HP")
            if (self.Ghouls[x].HP < 0):
                print("Ghoul " + str(x) + " is now a Person!")
            self.Ghouls[x].update()
        for x in range(len(self.Werewolves)):
            if (weapon.Name == "HersheysKiss") or (weapon.Name == "NerdBomb"):
                self.Werewolves[x].HP = self.Werewolves[x].HP - damage
                print("Werewolf " + str(x) + " lost " + str(damage) + " HP")
            else:
                print("Werewolf " + str(x) + " was unaffected")
            if (self.Werewolves[x].HP < 0):
                print("Werewolf " + str(x) + " is now a Person!")
            self.Werewolves[x].update()

        monstersDefeated = 0

        #Remove each monster that was turned back into a human from the monster and observer lists
        for x in reversed(self.Zombies):
            if (x.HP < 0):
                self.Zombies.remove(x)
                self.remove_Observer(x)
                monstersDefeated = monstersDefeated + 1
        for x in reversed(self.Vampires):
            if (x.HP < 0):
                self.Vampires.remove(x)
                self.remove_Observer(x)
                monstersDefeated = monstersDefeated + 1
        for x in reversed(self.Ghouls):
            if (x.HP < 0):
                self.Ghouls.remove(x)
                self.remove_Observer(x)
                monstersDefeated = monstersDefeated + 1
        for x in reversed(self.Werewolves):
            if (x.HP < 0):
                self.Werewolves.remove(x)
                self.remove_Observer(x)
                monstersDefeated = monstersDefeated + 1

        for x in range(monstersDefeated):
            newPerson = Person()
            self.Persons.append(newPerson)
            self.update()