Example #1
0
def GenerateRandomMonster(monsterLevel):
    critter = Monster()
    critter.SetGraphics("monsters1",1)
    critter.name = MonsterAdjectives[random.randint(0,len(MonsterAdjectives)-1)]+" Goblin"
    critter.description= ["The goblins will gitcha if you don't watch out!"]

    critter.Attributes.Skills["Combat"] = monsterLevel

    for x in range(0,monsterLevel):
        critter.Attributes.Stats[random.randint(0,4)] += 1
        skill = random.randint(0,2)
        if (skill==0):
            critter.Attributes.IncreaseSkill("Search",1)
        elif (skill==1):
            critter.Attributes.IncreaseSkill("Negotiate",1)
        else:
            critter.Attributes.IncreaseSkill("Magic defense",1)
                             
    #adjust monsterlevel
    if (monsterLevel<1):
        monsterLevel = 1

    # Does the monster get gear?
    if (random.randint(0,2)>0):
        # 3 in 4 it just has treasure
        if (random.randint(0,3)<3):
            item = Item.Item()
            item.Assign("Treasure")
            item.quantity = random.randint(1,monsterLevel*25) + random.randint(1,monsterLevel*25)
            item.SetPosition(5,4)
            critter.contents.append(item)
        elif (random.randint(0,2)<2):  #66% of the rest are POTIONS
            item = Item.Item()
            if (random.randint(0,1)==1):
                item.Assign("Potion of Healing")
            else:
                item.Assign("Potion of Essence")
                item.quantity = random.randint(1,3)
            item.SetPosition(5,4)
            critter.contents.append(item)            
        else:            
            item = Item.CreateRandomEquipmentItem(monsterLevel)
            item.quantity = 1
            item.SetPosition(2,2)
            critter.contents.append(item)
            
    return critter            
    
    
    

        
Example #2
0
def GenerateMonster(monsterType, monsterLevel, roomNumber):
    critter = Monster()
   
    critter.position.SetPosition(2,2)
    critter.position.MoveToRoom(roomNumber)

    # Ignore monsterType and level for now
    
    critter.SetGraphics("monsters1",1)
    critter.name = "Red-Eyed Goblin"
    critter.description = ["Red-Eyed Goblins are known for their red eyes,",
                           "their attention to detail, and their almost",
                           "infinite capacity for alcohol."]


    #item = Item.Item()
    #item.Assign("+1 Sword")
    item = Item.CreateRandomEquipmentItem(2)
    item.SetPosition(5,4)
    critter.contents.append(item)
    
    return critter
Example #3
0
def StockRoom(room, level):
    if (room.safeRoom):
        return
    monstersInRoom = 0
    if (random.randint(0, 1) == 1):
        monstersInRoom += 1
        monster = Monster.GenerateRandomMonster(random.randint(0, level))
        loc = FindSafeLocation(room)
        monster.position.PutInContainer(0)
        monster.position.MoveToRoom(room.roomID)
        monster.position.SetPosition(loc[0], loc[1])
        room.monsters.append(monster)

    if (level > 0) and (random.randint(0, 3) == 1):
        monstersInRoom += 1
        monster = Monster.GenerateRandomMonster(random.randint(0, level - 1))
        loc = FindSafeLocation(room)
        monster.position.PutInContainer(0)
        monster.position.MoveToRoom(room.roomID)
        monster.position.SetPosition(loc[0], loc[1])
        room.monsters.append(monster)

    if (level > 1) and (random.randint(0, 3) == 1):
        monstersInRoom += 1
        monster = Monster.GenerateRandomMonster(random.randint(0, level - 2))
        loc = FindSafeLocation(room)
        monster.position.PutInContainer(0)
        monster.position.MoveToRoom(room.roomID)
        monster.position.SetPosition(loc[0], loc[1])
        monster.SetStartingLocation(room.roomID, loc[0], loc[1])
        room.monsters.append(monster)

    if (random.randint(0, 3 + monstersInRoom) > 2):
        item = Item.Item()
        loc = FindSafeLocation(room)
        item.position.PutInContainer(0)
        item.position.MoveToRoom(room.roomID)
        item.SetPosition(loc[0], loc[1])

        if (random.randint(0, 3) > 1):
            # It's treasure.
            item.Assign("Treasure")
            item.quantity = random.randint(10, (1 + level) * 25)
        elif (random.randint(0, 1) == 1):
            if (random.randint(0, 1) == 1):
                item.Assign("Potion of Healing")
            else:
                item.Assign("Potion of Essence")
            item.quantity = random.randint(1, 3)
        else:
            item = Item.CreateRandomEquipmentItem(level)
            item.position.PutInContainer(0)
            item.position.MoveToRoom(room.roomID)
            item.SetPosition(loc[0], loc[1])

        # 66% chance it's in a chest
        if (random.randint(0, 2) > 0):
            chest = Item.Item()
            chest.Assign("Chest")
            chest.position.PutInContainer(0)
            chest.position.MoveToRoom(room.roomID)
            chest.SetPosition(loc[0], loc[1])
            chest.contents = [item]
            if (random.randint(0, 1) == 1):
                chest.lockLevel = 10 + level
            if (random.randint(0, 1) == 1):
                chest.trap = 10 + level
            room.contents = [chest]
        else:
            room.contents = [item]