function init(hero) {
    hero.setName("Firestorm/CW");
    hero.setVersion("Ronnie Raymond");
    hero.setTier(4);
    
    hero.setChestplate("item.superhero_armor.piece.jacket");
    hero.setLeggings("item.superhero_armor.piece.pants");
    hero.setBoots("item.superhero_armor.piece.shoes");
    
    hero.addPowers("cwheropack:firestorm_matrix");
    hero.addAttribute("PUNCH_DAMAGE", 5.0, 0);
    hero.addAttribute("FALL_RESISTANCE", 5.0, 0);
    
    hero.addKeyBind("AIM", "key.shoot", 1);
    hero.addKeyBind("HOVER", "key.hover", 2);
    
    hero.setHasProperty(hasProperty);
    hero.supplyFunction("canAim", canAim);
    
    hero.setDamageProfile(getDamageProfile);
    hero.addDamageProfile("FLAME_PUNCH", {
        "types": {
            "BLUNT": 1.0,
            "FIRE": 0.4
        },
        "properties": {
            "HEAT_TRANSFER": 40,
            "IGNITE": 2
        }
    });
    
    hero.addSoundEvent("MASK_OPEN", "fiskheroes:flame_off");
    hero.addSoundEvent("MASK_CLOSE", "fiskheroes:flame_on");
}

function getDamageProfile(entity) {
    return entity.getHeldItem().isEmpty() ? "FLAME_PUNCH" : null;
}

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

function canAim(entity) {
    return entity.getHeldItem().isEmpty() && !entity.getData("fiskheroes:jetpacking");
}
