var cowLevel = {
    
    // Variables
    size : 72,

    // Functions
    onload : function(){
        land.addLand("cowLevel", this.size, -1, this.load.bind(this), this.getText.bind(this), this.move.bind(this));
    },
    
    move : function(){
        // Get the character index
        var index = quest.getCharacterIndex();
        
        // Iterate over all things
        for(var i = 0; i < this.size; i++){
            // If it's a cow
            if(quest.things[i].text == "COW"){
                // We make it move if possible (if it is too close from the player we force it moving to the left)
                if(random.flipACoin() && Math.abs(index - i) > 5 && i < this.size - 1){
                    // If we can move it to the right
                    if(quest.things[i+1].type == "none"){
                        // We move it to the right
                        quest.things[i+1] = quest.things[i];
                        quest.things[i] = quest.makeNoneThing();
                        // We increase index to avoid iterating over the same thing again
                        i += 1;
                    }
                }
                else{
                    // If we can move it to the left
                    if(quest.things[i-1].type == "none"){
                        // We move it to the left
                        quest.things[i-1] = quest.things[i];
                        quest.things[i] = quest.makeNoneThing();
                    }
                }
            }
        }
    },
    
    load : function(){
        // Add the cow king
        quest.things[5 + random.getRandomIntUpTo(this.size - 6)] = this.makeCowKing();
        
        // Add cows
        for(var i = 1; i < this.size - 1; i++){
            if(quest.things[i].type == "none"){
                if(random.flipACoin()){
                     quest.things[i] = this.makeCow();
                }
            }
        }
    },
    
    getText : function(){
        var text = "                                   \"The cow level\"\n\n\n";
        
        text += "                  ";
        for(var i = 0; i < 18; i++){
            text += quest.things[i].text;
        }
        
        text += "\n\n         ";
        for(var i = 18; i < 42; i++){
            text += quest.things[i].text;
        }
        
        text += "\n\n";
        for(var i = 42; i < this.size; i++){
            text += quest.things[i].text;
        }
        
        return text;
    },
    
    makeCow : function(){
        return land.createMob("COW", 12, 12, "horns", "A cow ! Mooooo !", [drops.createDrop("candies", 100)]);
    },
    
    makeCowKing : function(){
        return land.createMob("COW", 180, 180, "horns", "The cow king ! It looks like a normal cow, but it isn't...", [drops.createDrop("candies", 1000), drops.createDrop("object", "hornOfPlenty", true)]);
    }
    
};
