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
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
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]