def __init__(self, name, description, greetings):
     """
     Initialize Tower of Cirith Ungol.
     
     @param name:            The name of the UniquePlace.
     @param description:     A description of the UniquePlace.
     @param greetings:       The greetings the user gets as he enters.
     """
     #Call parent class init function
     UniquePlace.__init__(self, name, description, greetings)
     
     self._wave = []
     self._wave2 = []
     
     #Create monster wave #1
     monster = Shelob(constants.MONSTER_STATS[Shelob])
     self._wave.append(monster)
     
     #Create monster wave #2
     for monster in range(15):
         monster = Orc_II(constants.MONSTER_STATS[Orc_II])
         self._wave2.append(monster)
     for monster in range(6):
         monster = OrcArcher_II(constants.MONSTER_STATS[OrcArcher_II])
         self._wave2.append(monster)
 def __init__(self, name, description, greetings):
     """
     Initializes Minas Morgul.
     
     @param name:            The name of the UniquePlace.
     @param description:     A description of the UniquePlace.
     @param greetings:       The greetings the user gets as he enters.
     """
     #Call parent class init function
     UniquePlace.__init__(self, name, description, greetings)
     
     self._wave = []
     self._wave2 = []
     self._wave3 = []
     
     #Create monster wave #1
     for monster in range(13):
         monster = Orc_II(constants.MONSTER_STATS[Orc_II])
         self._wave.append(monster)
     for monster in range(8):
         monster = OrcArcher_II(constants.MONSTER_STATS[OrcArcher_II])
         self._wave.append(monster)
     for monster in range(7):
         monster = Troll_II(constants.MONSTER_STATS[Troll_II])
         self._wave.append(monster)
     
     #Create monster wave #2
     for monster in range(8):
         monster = Nazgul_III(constants.MONSTER_STATS[Nazgul_III])
         self._wave2.append(monster)
     monster = WitchKing(constants.MONSTER_STATS[WitchKing])
     self._wave2.append(monster)
     
     #Create monster wave #3
     for monster in range(7):
         monster = Orc_II(constants.MONSTER_STATS[Orc_II])
         self._wave3.append(monster)
     for monster in range(3):
         monster = OrcArcher_II(constants.MONSTER_STATS[OrcArcher_II])
         self._wave3.append(monster)
     for monster in range(4):
         monster = Nazgul_III(constants.MONSTER_STATS[Nazgul_III])
         self._wave3.append(monster)
     
     #Create loot
     description = "Seems to have a mind of its own"
     weapon = Weapon("Morgul Blade", description, 6, 32, 18)
     description = "Rusted over"
     weapon2 = Weapon("Morgul Blade", description, 6, 18 ,16)
     description = "Completely useless"
     armor = Armor("Rotting Shield", description, 4, 6, 12)
     description = "Too small for a human"
     armor2 = Armor("Travel Boots", description, 4, 4, 1)
     description = "Strange ingredients"
     potion = Potion("Orcish Tea", description, 2, 0, -15)
     description = "Questionable health value"
     potion2 = Potion("Orcish Tea", description, 2, 0, -20)
     description = "Potential resale value"
     item = Item("Orcish Banister", description, 5, 42)
     self._loot = [weapon, weapon2, armor, armor2, potion, potion2, item]
Example #3
0
    def __init__(self, name, description, greetings):
        """
        Initializes Tharbad.
        
        @param name:            The name of the UniquePlace.
        @param description:     A description of the UniquePlace.
        @param greetings:       The greetings the user gets as he enters.
        """
        #Call parent class init function
        UniquePlace.__init__(self, name, description, greetings)

        #Generates list of Nazgul that user may fight
        self._monsters = []
        numberNazgul = random.randrange(1, 5)
        for monster in range(numberNazgul):
            nazgul = Nazgul_II(constants.MONSTER_STATS[Nazgul_II])
            self._monsters.append(nazgul)

        #Generate loot
        description = "Ancient runes and symbols"
        scroll = Item("Ancient Scroll", description, 1, 32)
        description = "Looks like it can break at any second"
        weapon = Weapon("Rotting Staff", description, 6, 3, 4)
        description = "Maybe one or two hits and it's through"
        armor = Armor("Rotting Shield", description, 4, 2, 1)
        self._loot = [scroll, weapon, armor]
Example #4
0
 def __init__(self, name, description, greetings):
     """
     Initializes Dol Guldur.
     
     @param name:            The name of the UniquePlace.
     @param description:     A description of the UniquePlace.
     @param greetings:       The greetings the user gets as he enters.
     """
     #Call parent class init function
     UniquePlace.__init__(self, name, description, greetings)
     
     self._wave = []
     self._wave2 = []
     self._wave3 = []
     
     #Create monster wave #1 
     for monster in range(11):
         monster = Orc(constants.MONSTER_STATS[Orc])
         self._wave.append(monster)
     for monster in range(10):
         monster = OrcArcher(constants.MONSTER_STATS[OrcArcher])
         self._wave.append(monster)
     for monster in range(7):
         monster = Troll(constants.MONSTER_STATS[Troll])
         self._wave.append(monster)
     
     #Create monster wave #2
     numberNazgul = random.randrange(0, 8)
     for monster in range(numberNazgul):
         nazgul = Nazgul_II(constants.MONSTER_STATS[Nazgul_II])
         self._wave2.append(nazgul)
     if random.random() < constants.DOL_GULDUR_WITCH_KING_PROB:
         witchKing = WitchKing(constants.MONSTER_STATS[WitchKing])
         self._wave2.append(witchKing)
     for monster in range(8):
         monster = BlackNumernorian(constants.MONSTER_STATS[BlackNumernorian])
         self._wave2.append(monster)
         
     #Create monster wave #3
     numberNazgul = random.randrange(0, 8)
     for monster in range(numberNazgul):
         nazgul = Nazgul_II(constants.MONSTER_STATS[Nazgul_II])
         self._wave3.append(nazgul)
     for monster in range(6):
         monster = BlackNumernorian(constants.MONSTER_STATS[BlackNumernorian])
         self._wave3.append(monster)
     self._wave3.append(monster)
     
     #Create loot
     weapon = Weapon("Cursed Sword", "Fills you with fear", 5, 18, 18)
     weapon2 = Weapon("Cursed Axe", 
         "You lose confidence holding this", 5, 22, 16)
     armor = Armor("Cursed Shield", "Gaping holes", 5, 12, 1)
     potion = Potion("Cursed Elixir", "An unknown substance", 2, 0, -10)
     item = Item("Cursed Mirror", "Odd distortions and shadows", 6, 18)
     item2 = Item("Cursed Books", "Grimoires", 4, 72)
     self._loot = [weapon, weapon2, armor, potion, item, item2]
Example #5
0
 def __init__(self, name, description, greetings):
     """
     Initializes Argonath.
     
     @param name:            The name of the UniquePlace.
     @param description:     A description of the UniquePlace.
     @param greetings:       The greetings the user gets as he enters.
     """
     #Call parent class init function
     UniquePlace.__init__(self, name, description, greetings)
Example #6
0
 def __init__(self, name, description, greetings):
     """
     Initializes Isenmouthe.
     
     @param name:            The name of the UniquePlace.
     @param description:     A description of the UniquePlace.
     @param greetings:       The greetings the user gets as he enters.
     """
     #Call parent class init function
     UniquePlace.__init__(self, name, description, greetings)
     
     self._wave = []
     self._wave2 = []
     
     #Create monster wave #1 
     for monster in range(14):
         monster = Orc_II(constants.MONSTER_STATS[Orc_II])
         self._wave.append(monster)
     for monster in range(7):
         monster = OrcArcher_II(constants.MONSTER_STATS[OrcArcher_II])
         self._wave.append(monster)
     for monster in range(6):
         monster = Troll_II(constants.MONSTER_STATS[Troll_II])
         self._wave.append(monster)
     for monster in range(3):
         monster = BlackNumernorian_II(constants.MONSTER_STATS[BlackNumernorian_II])
         self._wave.append(monster)
     
     #Create monster wave #2
     for monster in range(5):
         monster = Orc_II(constants.MONSTER_STATS[Orc_II])
         self._wave2.append(monster)
     for monster in range(4):
         monster = OrcArcher_II(constants.MONSTER_STATS[OrcArcher_II])
         self._wave2.append(monster)
     for monster in range(2):
         monster = Troll_II(constants.MONSTER_STATS[Troll_II])
         self._wave2.append(monster)
     for monster in range(5):
         monster = BlackNumernorian_II(constants.MONSTER_STATS[BlackNumernorian_II])
         self._wave2.append(monster)
     for monster in range(4):
         monster = Nazgul_III(constants.MONSTER_STATS[Nazgul_III])
         self._wave2.append(monster)
     monster = MouthOfSauron(constants.MONSTER_STATS[MouthOfSauron])
     self._wave2.append(monster)
     
     #Create loot
     weapon = Weapon("Troll Hammer", "Enormous and unwieldy", 18, 42, 20)
     armor = Armor("Troll Shield", "Enormous and unwieldy", 14, 36, 2)
     potion = Potion("Orc Draught", "Disgusting", 2, 0, -15)
     potion2 = Potion("Orc Draught", "Potentially toxic", 2, 0, -20)
     item = Item("Orcish Banister", "Potential resale value", 5, 14)
     item2 = Item("Screw and bolts", "Useless", 2, 4)
     self._loot = [weapon, armor, potion, potion2, item, item2]
Example #7
0
    def __init__(self, name, description, greetings):
        """
        Initializes Isenguard.
        
        @param name:            The name of the UniquePlace.
        @param description:     A description of the UniquePlace.
        @param greetings:       The greetings the user gets as he enters.
        """
        #Call parent class init function
        UniquePlace.__init__(self, name, description, greetings)

        #Create three waves of monsters
        self._wave = []
        self._wave2 = []
        self._wave3 = []

        #Create monster wave #1
        for monster in range(6):
            urukHai = UrukHai(constants.MONSTER_STATS[UrukHai])
            self._wave.append(urukHai)
        for monster in range(3):
            urukHaiArcher = UrukHaiArcher(constants.MONSTER_STATS[UrukHaiArcher])
            self._wave.append(urukHaiArcher)
        
        #Create monster wave #2
        for monster in range(10):
            eliteUrukHai = EliteUrukHai(constants.MONSTER_STATS[EliteUrukHai])
            self._wave2.append(eliteUrukHai)
        for monster in range(4):
            urukHaiArcher = UrukHaiArcher(constants.MONSTER_STATS[UrukHaiArcher])
            self._wave2.append(urukHaiArcher)

        #Create monster wave #3 - elite Uruk Hai have increased stats
        BONUS = 3
        increasedStats = []
        for stat in constants.MONSTER_STATS[EliteUrukHai]:
            increasedStats.append(stat * BONUS)
        for monster in range(2):
            eliteUrukHai = EliteUrukHai(increasedStats)
            self._wave3.append(eliteUrukHai)
        #Create Sauroman
        sauroman = Sauroman(constants.MONSTER_STATS[Sauroman])
        self._wave3.append(sauroman)

        #Spawn loot
        description = ("Two gigantic black keys needed to gain entry to the"
        " Tower of Orthanc")
        keysOfOrthanc = Item("Keys to Orthanc", description, 1, 104)
        palatir = Item("Palatir", "Stones of Seeing", 6, 112)
        self._loot = [keysOfOrthanc, palatir]
 def __init__(self, name, description, greetings):
     """
     Initializes Tom Bombadil's House.
     
     @param name:            The name of the UniquePlace.
     @param description:     A description of the UniquePlace.
     @param greetings:       The greetings the user gets as he enters.
     """
     #Call parent class init function
     UniquePlace.__init__(self, name, description, greetings)
     
     #Spawn loot
     description = "Has a secret, sharpened edge"
     weapon = Weapon("Walking Cane", description, 4, 2, 2)
     description = "Contains rare herbs"
     potion = Potion("Forest Tonic", description, 1, 4, 6)
     self._gift = [weapon, potion]
Example #9
0
    def __init__(self, name, description, greetings):
        """
        Initializes Weathertop.
        
        @param name:            The name of the UniquePlace.
        @param description:     A description of the UniquePlace.
        @param greetings:       The greetings the user gets as he enters.
        """
        # Call parent class init function
        UniquePlace.__init__(self, name, description, greetings)

        # Generates Nazgul wave
        self._monsters = []
        numberNazgul = random.randrange(1, 8)
        for monster in range(numberNazgul):
            nazgul = Nazgul(constants.MONSTER_STATS[Nazgul])
            self._monsters.append(nazgul)
Example #10
0
    def __init__(self, name, description, greetings):
        """
        Initializes Derningle.
        
        @param name:            The name of the UniquePlace.
        @param description:     A description of the UniquePlace.
        @param greetings:       The greetings the user gets as he enters.
        """
        #Call parent class init function
        UniquePlace.__init__(self, name, description, greetings)

        #Create gift
        self._gift = []
        description = ("A mysterious elixir with extremely powerful" 
            " nourishing properties")
        for potion in range(3):
            potion = Potion("Ent Draught", description, 2, 42, 100)
            self._gift.append(potion)
Example #11
0
    def __init__(self, name, description, greetings):
        """
        Initializes GoblinTown.
        
        @param name:            The name of the UniquePlace.
        @param description:     A description of the UniquePlace.
        @param greetings:       The greetings the user gets as he enters.
        """
        #Call parent class init function
        UniquePlace.__init__(self, name, description, greetings)

        #Spawn loot
        description = "Good for goblins, terrible for humans"
        weapon = Weapon("Goblin Blade", description, 3, 5, 6)
        description = "Stolen from Erebor"
        weapon2 = Weapon("Dwarven Axe", description, 4, 8, 12)
        description = "Looks Gondorian... represents stolen goods"
        weapon3 = Weapon("Poleaxe", description, 6, 12, 14)
        self._loot = [weapon, weapon2, weapon3]

        #Create three monster waves
        self._wave = []
        self._wave2 = []
        self._wave3 = []

        #Create monster wave #1
        for monster in range(2):
            monster = Goblin(constants.MONSTER_STATS[Goblin])
            self._wave.append(monster)
            
        #Create monster wave #2
        for monster in range(8):
            monster = Goblin(constants.MONSTER_STATS[Goblin])
            self._wave2.append(monster)

        #Create monster wave #3
        for monster in range(4):
            monster = Goblin(constants.MONSTER_STATS[Goblin])
            self._wave3.append(monster)
        monster = GreatGoblin(constants.MONSTER_STATS[GreatGoblin])
        self._wave3.append(monster)
    
        #Create monster wave #4
        self._wave4 = self._wave + self._wave2 + self._wave3
Example #12
0
 def __init__(self, name, description, greetings):
     """
     Initializes Moria.
     
     @param name:            The name of the UniquePlace.
     @param description:     A description of the UniquePlace.
     @param greetings:       The greetings the user gets as he enters.
     """
     #Call parent class init function
     UniquePlace.__init__(self, name, description, greetings)
     
     #Initializing danger tracker
     self._danger = 0
     
     #Strings for low-risk activity
     self._sneakString = [("You continue through narrow halls,"
     " seeking to avoid detection...."), 
     "You creep by an rotting library....", 
     "You creep down a mine shaft....",
     "You sneak through some ancient tunnels....", 
     "You creep through a maze of machinery....", 
     "You sneak past a series of corpses....", 
     "You sneak past some strange glyphs...."]
     
     #Strings for neutral activity
     self._neutralString = [("You find the staircase littered with the" 
     " corpses of dwarven warriors."),
     "You pass an enormous mine shaft.",
     "You appear to be lost and turn back around.",
     "You find yourself in an enormous hall, ending an a winding staircase.",
     "You pass by what used to be a meeting place.",
     "You trust your gut in making a series of turns.",
     "You find yourself trapped and needing to turn around."]
     
     #Strings for battle encounter
     self._encounterString = ["You hear some footsteps....",
     "You think you see some shadows moving....",
     "You hear a series of agitated grunting....", 
     "You see shadows darting along in the distance....",
     "You hear whispers in the darkness...."]
     
     #Strings if player is running from monsters
     self._runString = ["You run over some rotting corpses!",
     "You run past an spiral staircase!",
     "You dart along some minecarts!",
     "You dash along a hall of columns!",
     "You dash along a large mine shaft!",
     "You dart past some ancient tombs!",
     "You climb over a pile of rubble!"]
     
     #Spawn loot
     description = "Taken from a slain dwarven warrior"
     weapon = Weapon("Rusty Axe", description, 6, 8, 12)
     description = "Worker's mallet"
     weapon2 = Weapon("Dwarven Hammer", description, 10, 12, 16)
     description = "Steeped in history"
     weapon3 = Weapon("Aeowyln", description, 8, 22, 18)
     description = "Historical significance"
     weapon4 = Weapon("Durnhelm", description, 4, 18, 3)
     description = "Old but still effective"
     armor = Armor("Iron Cap", description, 3, 4, 1)
     description = "May increase magic find"
     armor2 = Armor("Boots of Travel", description, 2, 8, 2)
     description = "One of Middle Earth's rarest metals"
     item = Item("Mithril", description, 0, 84)
     description = "Magical properties?"
     item2 = Item("Ancient Runes", description, 2, 42)
     self._loot = [weapon, weapon2, weapon3, weapon4, armor, armor2, item, 
         item2]
Example #13
0
 def __init__(self, name, description, greetings):
     """
     Initialize Barad Dur.
     
     @param name:            The name of the UniquePlace.
     @param description:     A description of the UniquePlace.
     @param greetings:       The greetings the user gets as he enters.
     """
     #Call parent class init function
     UniquePlace.__init__(self, name, description, greetings)
     
     self._wave = []
     self._wave2 = []
     self._wave3 = []
     self._wave4 = []
     self._wave5 = []
     
     #Create monster wave #1 
     for monster in range(12):
         monster = Orc_II(constants.MONSTER_STATS[Orc_II])
         self._wave.append(monster)
     for monster in range(7):
         monster = OrcArcher_II(constants.MONSTER_STATS[OrcArcher_II])
         self._wave.append(monster)
     for monster in range(5):
         monster = Troll_II(constants.MONSTER_STATS[Troll_II])
         self._wave.append(monster)
     for monster in range(3):
         monster = BlackNumernorian_II(constants.MONSTER_STATS[BlackNumernorian_II])
         self._wave.append(monster)
     
     #Create monster wave #2
     for monster in range(15):
         monster = Orc_II(constants.MONSTER_STATS[Orc_II])
         self._wave2.append(monster)
     for monster in range(6):
         monster = OrcArcher_II(constants.MONSTER_STATS[OrcArcher_II])
         self._wave2.append(monster)
     for monster in range(10):
         monster = Troll_II(constants.MONSTER_STATS[Troll_II])
         self._wave2.append(monster)
     for monster in range(4):
         monster = BlackNumernorian_II(constants.MONSTER_STATS[BlackNumernorian_II])
         self._wave2.append(monster)
         
     #Create monster wave #3
     for monster in range(5):
         monster = BlackNumernorian_II(constants.MONSTER_STATS[BlackNumernorian_II])
         self._wave3.append(monster)
     monster = MouthOfSauron(constants.MONSTER_STATS[MouthOfSauron])
     self._wave3.append(monster)
      
     #Create monster wave #4 
     for monster in range(8):
         monster = Nazgul_III(constants.MONSTER_STATS[Nazgul_III])
         self._wave4.append(monster)
     monster = WitchKing(constants.MONSTER_STATS[WitchKing])
     self._wave4.append(monster)
         
     #Create monster wave #5
     for monster in range(14):
         monster = DragonOfMordor(constants.MONSTER_STATS[DragonOfMordor])
         self._wave5.append(monster)
         
     #Create loot
     potion = Potion("Hyper Potion", "Extreme healing qualities", 2, 112, 
         500)
     potion2 = Potion("Super Potion", "Medium healing qualities", 2, 76, 350)
     potion3 = Potion("Dragon Milk", "Healing qualities", 2, 142, 1000)
     item = Item("Masterball", "Can catch any Pokemon", 4, 272)
     item2 = Item("Moonstone", "Evolves normal Pokemon", 6, 196)
     item3 = Item("Nugget", "High resale value", 12, 5000)
     self._loot = [potion, potion2, potion3, item, item2, item3]
Example #14
0
 def __init__(self, name, description, greetings):
     """
     Initialize UniquePlace object.
     
     @param name:            The name of the UniquePlace.
     @param description:     A description of the UniquePlace.
     @param greetings:       The greetings the user gets as he enters.
     """
     #Call parent class init function
     UniquePlace.__init__(self, name, description, greetings)
     
     self._wave = []
     self._wave2 = []
     self._wave3 = []
     self._wave4 = []
     
     #Create monster wave #1 
     for monster in range(11):
         monster = Orc_II(constants.MONSTER_STATS[Orc_II])
         self._wave.append(monster)
     for monster in range(6):
         monster = OrcArcher_II(constants.MONSTER_STATS[OrcArcher_II])
         self._wave.append(monster)
     for monster in range(6):
         monster = Troll_II(constants.MONSTER_STATS[Troll_II])
         self._wave.append(monster)
     for monster in range(2):
         monster = BlackNumernorian_II(constants.MONSTER_STATS[BlackNumernorian_II])
         self._wave.append(monster)
     
     #Create monster wave #2
     for monster in range(12):
         monster = Orc_II(constants.MONSTER_STATS[Orc_II])
         self._wave2.append(monster)
     for monster in range(6):
         monster = OrcArcher_II(constants.MONSTER_STATS[OrcArcher_II])
         self._wave2.append(monster)
     for monster in range(8):
         monster = Troll_II(constants.MONSTER_STATS[Troll_II])
         self._wave2.append(monster)
     for monster in range(4):
         monster = BlackNumernorian_II(constants.MONSTER_STATS[BlackNumernorian_II])
         self._wave2.append(monster)
     for monster in range(9):
         monster = Nazgul_III(constants.MONSTER_STATS[Nazgul_III])
         self._wave2.append(monster)
         
     #Create monster wave #3
     for monster in range(6):
         monster = BlackNumernorian_II(constants.MONSTER_STATS[BlackNumernorian_II])
         self._wave3.append(monster)
     monster = MouthOfSauron(constants.MONSTER_STATS[MouthOfSauron])
     self._wave3.append(monster)
      
     #Create monster wave #4 
     for monster in range(8):
         monster = Orc_II(constants.MONSTER_STATS[Orc_II])
         self._wave4.append(monster)
     for monster in range(5):
         monster = OrcArcher_II(constants.MONSTER_STATS[OrcArcher_II])
         self._wave4.append(monster)
     for monster in range(3):
         monster = Troll_II(constants.MONSTER_STATS[Troll_II])
         self._wave4.append(monster)
     for monster in range(4):
         monster = BlackNumernorian_II(constants.MONSTER_STATS[BlackNumernorian_II])
         self._wave4.append(monster)
     
     #Create loot
     weapon = Weapon("Orcish Knife", "Jagged and old", 4, 12, 8)
     armor = Armor("Rotting Boots", "Completely useless", 4, 0, 0)
     potion = Potion("Orc Draught", "May contain human flesh", 2, 0, -15)
     potion2 = Potion("Orc Draught", 
         "Basically the orcish version of Gatorade", 2, 0, -10)
     item = Item("Orcish Pillow", "Basically, a rock", 3, 0)
     item2 = Item("Orcish Blankets", "For slumber parties", 4, 2)
     self._loot = [weapon, armor, potion, potion2, item, item2]