Game Dev 2 Teatime

Hello again,

The Game Dev 2 Teatime level has some peculiar behavior. I saw a previous bug about it from years ago, but also saw an admonition not to revive old threads, so here’s a new one. The behavior is exactly the same as described in “old post”: Web Development 2 Level: Teatime HELP

Rather than spawning two mobs at the designated intervals, the game spawns an endless stream of them - and also uses so much processing power that the game stutters. I eventually reset all the code to “start over”. (This did not fix it.) Then I commented out (added “#”) the munchkin 2 spawn event and ran the code (without providing instructions to spawn the throwers). It spawned only one monster, as expected. I then removed the # and commented out munchkin 1, and it correctly created only the one mob from the other direction.

Then, I removed all the # comments and finished the code.

And it ran correctly.

I don’t know why this would occur. (I’m using Chrome, if that matters.)

@Bryukh - I see you announced the level years back, so are you the person to talk to about fixing it? Or is there someone else if you are not the best person for this now?

Thank you for looking into it, or for providing me some context so I can avoid repeating the problem.

Regards,
DNC

# Use timers to spawn enemies and items.

# This spawns two aggressive munchkins.
def spawnMunchkins():
    munchkin1 = game.spawnXY("munchkin", 2, 12)
    munchkin2 = game.spawnXY("munchkin", 2, 56)
    munchkin1.behavior = "AttacksNearest"
    munchkin2.behavior = "AttacksNearest"

# This spawns two aggressive throwers.
def spawnThrowers():
    thrower1 = game.spawnXY("thrower", 2, 16)
    thrower1.behavior = "AttacksNearest"
    thrower2 = game.spawnXY("thrower", 2, 52)
    thrower2.behavior = "AttacksNearest"

# This spawns a health potion near the village.
def spawnPotion():
    game.spawnXY("potion-large", 46, 34)

# Survive 30 seconds.
game.addSurviveGoal(30)

# The inital values of timers define the first appearance.
game.munchkinSpawnTime = 0
game.throwerSpawnTime = 0
game.potionSpawnTime = 6
# This is used for UI.
game.nextPotionIn = 0

ui.track(game, "time")
# Lets show how long until the next potion.
ui.track(game, "nextPotionIn")

player = game.spawnPlayerXY("duelist", 40, 34)
player.maxSpeed = 15

# This checks and updates timers.
def updateTimers():
    # If game time is greater than the munchkinSpawnTime
    if game.time > game.munchkinSpawnTime:
        # Update the timer and spawn the munchkins.
        game.munchkinSpawnTime = game.munchkinSpawnTime + 6
        spawnMunchkins()
    # If game time is greater than potionSpawnTime
    if game.time > game.potionSpawnTime:
        player.say("The potion is here!")
        # Increase game.potionSpawnTime by 6:
        game.potionSpawnTime = game.potionSpawnTime + 6
        # Call the spawnPotion function:
        spawnPotion()
    # If game time is greater than throwerSpawnTime:
    if game.time > game.throwerSpawnTime:
        # Increase game.throwerSpawnTime by 9:
        game.throwerSpawnTime = game.throwerSpawnTime + 9
        # Call the spawnThrowers function:
        spawnThrowers()
    # Update the UI timer until the next potion
    game.nextPotionIn = game.potionSpawnTime - game.time
    
while True:
    updateTimers()

Hi. Thank you. I (or someone from my colleagues) made this level several years ago so I need to check it first to answer you. I’ve added a task for that.

1 Like

Thank you Bryukh. I completely understand how something done years ago might no longer be at the top of your priority list. The good news is that a “workaround” is now documented here.

Workaround for end-user: Comment out (add “#”) munchkin1 spawn and behavior and run. (Should only spawn 1 munchkin at a time.) Then remove the #'s and comment out munchkin2 spawn and behavior and run. Finally, add the code spawning throwers and remove munchkin2 comments. It should run correctly.

Have a good day.
DNC