function init(hero) {
    hero.setName("Batman Beyond");
    hero.setTier(7);

    hero.setHelmet("item.superhero_armor.piece.cowl");
    hero.setChestplate("item.superhero_armor.piece.chestpiece");
    hero.setLeggings("item.superhero_armor.piece.pants");
    hero.setBoots("item.superhero_armor.piece.boots");
    hero.setPrimaryEquipment("fiskheroes:grappling_gun");

    hero.addPowers("nh:batsuit_beyond");
    hero.addAttribute("FALL_RESISTANCE", 10, 0);
    hero.addAttribute("JUMP_HEIGHT", 1.75, 0);
    hero.addAttribute("WEAPON_DAMAGE", -2, 0);
    hero.addAttribute("PUNCH_DAMAGE", 8, 0);
    hero.addAttribute("SPRINT_SPEED", 0.65, 1);
    hero.addAttribute("IMPACT_DAMAGE", 0.65, 1);

    hero.addKeyBind("UTILITY_BELT", "key.utilityBelt", 1);
    hero.addKeyBind("BLADE", "key.claws", 2);
    hero.addKeyBind("INVISIBILITY", "Toggle Cloaking", 3);


    hero.setHasProperty(hasProperty);
    hero.setHasPermission(hasPermission);
    hero.addAttributeProfile("CLAWS", clawsProfile);
    hero.setAttributeProfile(getProfile);
    hero.setDamageProfile(getProfile);
    hero.addDamageProfile("CLAWS", { "types": { "SHARP": 1.0 } });
}

function clawsProfile(profile) {
    profile.inheritDefaults();
    profile.addAttribute("PUNCH_DAMAGE", 10.5, 0);
}

function getProfile(entity) {
    return entity.getData("fiskheroes:blade") ? "CLAWS" : null;
}

function hasPermission(entity, permission) {
    return permission == "USE_GRAPPLING_GUN";
}

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