示例#1
0
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
示例#2
0
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
示例#3
0
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
示例#4
0
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
示例#5
0
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
示例#6
0
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)
示例#7
0
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])