function init(hero) {

    hero.setName("The Amazing Spider-Man");

    hero.setVersion("TASM");

    hero.setTier(3);

    

    hero.setHelmet("Mask");

    hero.setChestplate("Body");

    hero.setLeggings("Pants");

    hero.setBoots("Boots");

    

    hero.addAbilities("fiskheroes:propelled_flight", "fiskheroes:gliding", "fiskheroes:enhanced_reflexes", "fiskheroes:cellular_regeneration", "fiskheroes:accelerated_perception", "fiskheroes:electrokinesis", "fiskheroes:leaping");

    hero.addAttribute("ATTACK_DAMAGE", 0.8, 0);

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

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

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

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

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



    hero.addKeyBind("TRANSFORM", "Web Swing", 1);

    hero.addKeyBind("SLOW_MOTION", "Spidey Sense", 2);



    hero.supplyFunction("getTransformTimerTicks", 4);

    hero.supplyFunction("getTransformTimerRegen", 5.5);

    hero.setModifierEnabled(isModifierEnabled);

    hero.setHasProperty(hasProperty);

}



function isModifierEnabled(entity, modifier) {

    switch (modifier) {

    case "fiskheroes:gliding":

        return entity.getData("fiskheroes:transform_cooldown") == 0;

    case "fiskheroes:propelled_flight":

        return entity.getData("fiskheroes:transformed");

    case "fiskheroes:electrokinesis":

        return entity.getData("fiskheroes:transform_timer") == 0;

    default:

        return true;

    }

}