def easy_slime_event(player_team): """ Runs easy slime event for new players Args: player_team: list of player Character objects """ # inconsistent slime health done on purpose for easy slime event enemy_list = [ Character.Enemy("Slime 1", 10, "weak"), Character.Enemy("Slime 2", 10, "weak") ] battle(player_team, enemy_list) return
def baby_event(player_team): """ Runs the baby animal event Args: player_team: list of player Character objs """ enemy_list = [] check = True while (check): answer = (input( "\nYou see a hurt baby animal on the road. Will you try and help it? Y/N " )).lower() if (answer == "yes") or (answer == "y"): print( "\nThe animal was crying for its mother! The beast appears to defend its young." ) enemy_list.append(Character.Enemy("Momma Bear", 20, "average")) battle(player_team, enemy_list) check = False break elif (answer == "no") or (answer == "n"): print("\nYou leave the animal to die. You're a terrible person.") check = False break else: print("\nInvalid command! Try again.") return
def goblin_event(player_team): """ Runs the goblin event. """ enemy_list = [] while (True): answer = (input( "\nYou hear voices in the forest to your left. Would you like to investigate? Y/N " )).lower() if (answer == "yes") or (answer == "y"): print( "\nGoblins are arguing over a chest, but stop and draw their weapons when they see you." ) for n in range((random.randint(2, 4))): goblin = Character.Enemy("Goblin {}".format(n + 1), 10, "annoying") enemy_list.append(goblin) if battle(player_team, enemy_list): print("\nYou found a chest!") chest(player_team) break elif (answer == "no") or (answer == "n"): print("\nIt's probably nothing. You're fine, right?") break else: print("\nInvalid command! Try again.") return
def slime_generator(): """ Generates a random number of slime enemies Returns: enemy_list: a list of enemy slimes """ enemy_list = [] n_slimes = random.randint(1, 4) for n in range(n_slimes): slime = Character.Enemy("Slime {}".format(n + 1), 5, "weak") enemy_list.append(slime) return enemy_list
def boss_event(player_team): """ Runs the boss event. Spawns boss. """ enemy_list = [Character.Enemy("Dragon", 65, "boss") ] # FIXME: make modular and add more bosses if battle(player_team, enemy_list): player_team[0].gold += 1000 print("\nYou've saved the surrounding area! You've earned {} gold.". format(1000)) else: if not Overworld_main.still_alive(player_team): print( "\nThe dragon has burnt you and the surrounding area to ashes." ) else: print( "\nYou narrowly escape the dragon's flames, but the surrounding area has been burned to the ground." ) return
def startNewLevel(num): ''' Loads level file based on number passed, returns level, player and enemies returns the new level, player, enemy list, and boss (None if no boss in level) - num, level number which is passed to the level initialization method ''' level = Level(num) x, y = level.playerStartPosit player = Character.PlayerCharacter(level, x, y) enemies = [] if level.bossLevel: x, y = level.bossStartPosit boss = Character.Boss(level, x, y) else: boss = None for i in range(level.numEnemies): x, y = level.enemyStartPosit[i] enemies.append(Character.Enemy(level, x, y)) return (level, player, enemies, boss)
import Setting import Character import Plot import GetUserInfo #----------------------------- GET CHARACTER INFO ------------------------------ hero_name = input("What is your name? > ") body_type = GetUserInfo.get_body_type() mind_type = GetUserInfo.get_mind_type() #--------------------------- CREATE ITEMS / ENEMIES ---------------------------- #instantiate objects to be placed in rooms scroll = Character.Item() key1 = Character.Item() diamond = Character.Item() skeleton = Character.Enemy(name="Skeleton", hp=35) #--------------------------------- CREATE MAP ---------------------------------- # instantiate rooms start = Setting.Room() room2 = Setting.Room(contents=[scroll]) room3 = Setting.Room(contents=[key1]) room4 = Setting.Room() treasure = Setting.Room(contents=[skeleton, diamond]) # --> define starting room (which WorldCreator will use to place the hero in) STARTING_LOCATION = start # create map layout dungeon = Setting.layout([None, room3, room4], [start, room2, treasure])