function init(hero) {

    hero.setName("Batman Beyond");

    hero.setAliases("bat_beyond");

    hero.setVersion("\u00A76\u00A7lComics\u00A7r");

    hero.setTier(8);

    

    hero.setHelmet("Mask");

    hero.setChestplate("Chestplate");

    hero.setLeggings("Pants");

    hero.setBoots("Boots");

    hero.addPrimaryEquipment("fiskheroes:grappling_gun", true);

    

    hero.addPowers("ahhp:batman_beyond");

    hero.addAttribute("PUNCH_DAMAGE", 7.0, 0);

    hero.addAttribute("WEAPON_DAMAGE", 3.5, 0);

    hero.addAttribute("JUMP_HEIGHT", 1.0, 0);

    hero.addAttribute("FALL_RESISTANCE", 7.0, 0);

    hero.addAttribute("SPRINT_SPEED", 0.3, 1);

    hero.addAttribute("IMPACT_DAMAGE", 0.6, 1);

    

    hero.addKeyBind("UTILITY_BELT", "key.utilityBelt", 1);

    hero.addKeyBind("SHIELD", "key.shield", 2);

    hero.addKeyBind("INVISIBILITY", "key.invisibility", 4);



    hero.setHasProperty(hasProperty);

    hero.setHasPermission(hasPermission);

    hero.setModifierEnabled(isModifierEnabled);

}



function hasProperty(entity, property) {

    switch (property) {

    case "BREATHE_SPACE":

        return !entity.getData("fiskheroes:mask_open");

    case "MASK_TOGGLE":

        return true;

    default:

        return false;

    }

}



function hasPermission(entity, permission) {

    return permission == "USE_GRAPPLING_GUN";

}



function isModifierEnabled(entity, modifier) {

    switch (modifier) {

        case "fiskheroes:controlled_flight":

            return entity.getData("fiskheroes:flight_boost_timer") != 0 && entity.getData("fiskheroes:shield_blocking_timer") > 0;

        default:

            return true;
    }

}