function init(hero) {
    hero.setName("Lucifer");
    hero.setTier(9);
    
    hero.setChestplate("item.superhero_armor.piece.chestpiece");
    hero.setLeggings("item.superhero_armor.piece.pants");
    hero.setBoots("item.superhero_armor.piece.boots");
    
    hero.addPowers("soulhp:satanic");
    hero.addAttribute("IMPACT_DAMAGE", 0.5, 1);
    hero.addAttribute("FALL_RESISTANCE", 20.0, 0);
    hero.addAttribute("JUMP_HEIGHT", 2.5, 0);
    hero.addAttribute("PUNCH_DAMAGE", 10.0, 0);
    hero.addAttribute("SPRINT_SPEED", 1.0, 1);
	
	
    hero.addKeyBind("SHADOWFORM", "key.shadowForm", 5);
    hero.addKeyBind("ENERGY_PROJECTION", "Energy Projection", 1);
    hero.addKeyBind("TELEPORT", "key.teleport", 2);
    hero.addKeyBind("TELEKINESIS", "key.telekinesis", 3);
    hero.addKeyBind("SPELL_MENU", "key.spellMenu", 4);

    hero.setModifierEnabled(isModifierEnabled);
hero.setKeyBindEnabled(isKeyBindEnabled);
}



function hasProperty(entity, property) {
    return property == "BREATHE_SPACE";
}


function isModifierEnabled(entity, modifier) {
switch (modifier.name()) {
case "fiskheroes:flight":
    return entity.getData("fiskheroes:shadowform");
case "fiskheroes:telekinesis":
    return entity.getHeldItem().isEmpty() && !entity.getData("fiskheroes:shadowform") && !entity.getData("fiskheroes:lightsout");
default:
    return true;
}
}

function isKeyBindEnabled(entity, keyBind) {
    switch (keyBind) {
        case "ENERGY_PROJECTION":
            return !entity.getData("fiskheroes:shadowform")
        case "TELEPORT":
            return !entity.getData("fiskheroes:shadowform")
        case "TELEKINESIS":
            return !entity.getData("fiskheroes:shadowform")
        case "SPELL_MENU":
            return !entity.getData("fiskheroes:shadowform")
        default:
            return true;
        }
}
