// A forgotten tomb in the forest!
// But the ogres are hot on your heels.
// Break open the tomb, while defending yourself from the munchkins.

// This function should attack an enemy if it exists, otherwise attack the door!
function checkToDefend(target) {
    // Check if the `target` exists
    if (target) {
        
    

// This shows how to define a function called cleaveWhenClose
// The function defines a parameter called `target`
function cleaveWhenClose(target) {
    if(hero.distanceTo(target) < 5) {
        // Put your attack code here
        // If cleave is ready, then cleave target
        if (hero.isReady("cleave")) {
        hero.cleave(enemy);
        }

// Gather 4 lightstones to defeat the Brawler.
// If you find a lightstone, hide.

function checkTakeHide(item) {
    if (item) {
        // The item is here, so take it.
        hero.moveXY(item.pos.x, item.pos.y);
        // Then move to the center of the camp (40, 34)
        hero.moveXY(40, 34);
    }
}

// Sprawdź czy miny są bezpieczne dla robotników.

function checkEnemyOrSafe(target) {
    // jeśli cel (parametr) istnieje :
    if (target) {
        
    
        // Następnie zaatakuj cel.
        hero.attack(target);
    }
    // Otherwise:
    else {
        
    

// Użyj funkcji checkAndAttack by uprościć swój kod.

// Ta funkcja ma parametr.
// Parametr to sposób na przekazanie informacji do funkcji.
function checkAndAttack(target) {
    // Parametr 'target' jest tylko zmienną!
    // Zawiera argument ,gdy funkcja zostanie wywołana.
    if(target) {
        hero.attack(target);
    }
    hero.moveXY(43, 34);
}

// Incoming munchkins! Defend the town!

// Define your own function to fight the enemy!
function cleaveOrAttack() {
    // In the function, find an enemy, then cleave or attack it.
    var ogre = hero.findNearestEnemy();
    if (ogre) {
        if (hero.isReady("cleave")) {
            hero.cleave(ogre);
        }
        // Else attack the ogre:
        else {
            hero.attack(ogre);
        }
    }
}