avatar
Game of Coins Step 4 Power-Ups

luckyman 9 22nd Jun, 2022

PYTHON 5.68 KB
                                           
                         # Step 4 of creating a Pac-Man style arcade game.

# The game layout and items. Scroll down.
game.spawnXY("forest", 16, 16)
game.spawnXY("forest", 32, 16)
game.spawnXY("forest", 48, 16)
game.spawnXY("forest", 64, 16)
game.spawnXY("forest", 16, 32)
game.spawnXY("forest", 32, 32)
game.spawnXY("forest", 48, 32)
game.spawnXY("forest", 64, 32)
game.spawnXY("forest", 16, 48)
game.spawnXY("forest", 32, 48)
game.spawnXY("forest", 48, 48)
game.spawnXY("forest", 64, 48)

game.spawnXY("bronze-coin", 16, 8)
game.spawnXY("bronze-coin", 24, 8)
game.spawnXY("bronze-coin", 32, 8)
game.spawnXY("bronze-coin", 48, 8)
game.spawnXY("bronze-coin", 56, 8)
game.spawnXY("bronze-coin", 64, 8)
game.spawnXY("bronze-coin", 72, 8)

game.spawnXY("bronze-coin", 8, 16)
game.spawnXY("bronze-coin", 24, 16)
game.spawnXY("bronze-coin", 40, 16)
game.spawnXY("bronze-coin", 56, 16)
game.spawnXY("bronze-coin", 72, 16)

game.spawnXY("bronze-coin", 8, 24)
game.spawnXY("bronze-coin", 16, 24)
game.spawnXY("bronze-coin", 24, 24)
game.spawnXY("bronze-coin", 32, 24)
game.spawnXY("bronze-coin", 40, 24)
game.spawnXY("bronze-coin", 48, 24)
game.spawnXY("bronze-coin", 56, 24)
game.spawnXY("bronze-coin", 64, 24)
game.spawnXY("bronze-coin", 72, 24)

game.spawnXY("bronze-coin", 24, 32)
game.spawnXY("bronze-coin", 56, 32)

game.spawnXY("bronze-coin", 8, 40)
game.spawnXY("bronze-coin", 16, 40)
game.spawnXY("bronze-coin", 24, 40)
game.spawnXY("bronze-coin", 32, 40)
game.spawnXY("bronze-coin", 40, 40)
game.spawnXY("bronze-coin", 48, 40)
game.spawnXY("bronze-coin", 56, 40)
game.spawnXY("bronze-coin", 64, 40)
game.spawnXY("bronze-coin", 72, 40)

game.spawnXY("bronze-coin", 8, 48)
game.spawnXY("bronze-coin", 24, 48)
game.spawnXY("bronze-coin", 40, 48)
game.spawnXY("bronze-coin", 56, 48)
game.spawnXY("bronze-coin", 72, 48)

game.spawnXY("bronze-coin", 8, 56)
game.spawnXY("bronze-coin", 16, 56)
game.spawnXY("bronze-coin", 24, 56)
game.spawnXY("bronze-coin", 32, 56)
game.spawnXY("bronze-coin", 48, 56)
game.spawnXY("bronze-coin", 56, 56)
game.spawnXY("bronze-coin", 64, 56)
game.spawnXY("bronze-coin", 72, 56)

game.spawnXY("mushroom", 40, 8)
game.spawnXY("mushroom", 8, 32)
game.spawnXY("mushroom", 72, 32)
game.spawnXY("mushroom", 40, 56)

game.score = 1000
# The duration of power-ups.
game.powerDuration = 6
# The time until a power-up runs out. Used for UI.
game.powerTime = 0
# The time a power-up expires. Used internally.
game.powerEndTime = 0
ui.track(game, "time")
ui.track(game, "score")
# Adding ui for game.powerTime:
ui.track(game, "powerTime")
game.addCollectGoal()
game.addSurviveGoal();

player = game.spawnPlayerXY("knight", 8, 8)
player.maxSpeed = 30

# The function make the player big and strong.
def powerPlayerUp():
    player.scale = 2
    player.attackDamage = 100
    game.powerEndTime = game.time + game.powerDuration

# The function return the player in the normal state.
def powerPlayerDown():
    player.scale = 1
    player.attackDamage = 1

def onCollect(event):
    player = event.target
    item = event.other
    if item.type == "bronze-coin":
        game.score += 1
    if item.type == "mushroom":
        game.score += 5
        # Use powerPlayerUp to strengthen the player:
        powerPlayerUp()

def onCollide(event):
    player = event.target
    other = event.other
    # If other is a "scout" and the player's scale is 2:
    if other.type == "scout" and player.scale == 2:
        # Defeat the other with the defeat method:
        other.defeat()

player.on("collect", onCollect)
player.on("collide", onCollide)

generator = game.spawnXY("generator", 41, 31)
generator.spawnType = "scout"
generator.spawnDelay = 6;

def onSpawn(event):
    unit = event.target
    unit.maxSpeed = 8
    unit.attackDamage = player.maxHealth
    while True:
        # Enemies run away from the big player.
        if player.scale == 2:
            unit.behavior = "RunsAway"
        else:
            unit.behavior = "AttacksNearest"

def onDefeat(event):
    # Increase game.score for defeated enemies:
    game.score += 10

game.setActionFor("scout", "spawn", onSpawn)
# Set the action for "scout"'s "defeat" event:
game.setActionFor("scout", "defeat", onDefeat)

def checkTimeScore():
    game.score -= 0.5
    if game.score < 0:
        game.score = 0

def checkPowerTimer():
    # Remaining power time.
    game.powerTime = game.powerEndTime - game.time
    if game.powerTime <= 0:
        game.powerTime = 0
        # If the player is powered, then it's time to power-down.
        if player.scale == 2:
            powerPlayerDown()

# Lets combine all the time based functions.
def checkTimers():
    checkTimeScore()
    checkPowerTimer()

while True:
    checkTimers()

# Win the game.
                      
                                       
To share this paste please copy this url and send to your friends
RAW Paste Data

Comments

Authentication required

You must log in to post a comment.

Log in
    There are no comments yet.