function init(hero) {
    hero.setName("Miss Martian/Young Justice");
    hero.setTier(7);
    
    hero.setHelmet("item.superhero_armor.piece.head");
    hero.setChestplate("item.superhero_armor.piece.torso");
    hero.setLeggings("item.superhero_armor.piece.leggings");
    hero.setBoots("item.superhero_armor.piece.boots");
    
    hero.addPowers("tmfp:miss_martian_powers");
    hero.addAttribute("PUNCH_DAMAGE", 4.0, 0);
    hero.addAttribute("SPRINT_SPEED", 0.1, 1);
    
    hero.addKeyBind("SHAPE_SHIFT", "key.shapeShift", 1);
    hero.addKeyBind("SHAPE_SHIFT_RESET", "key.shapeShiftReset", 1);
    hero.addKeyBind("CAMOUFLAGE", "Camouflage", 2);
    hero.addKeyBind("TELEKINESIS", "key.telekinesis", 3);
    hero.addKeyBind("SHIELD", "Telekinetic Forcefield", 4);
    
    hero.setDefaultScale(0.9);
    hero.setHasProperty(hasProperty);
    hero.addAttributeProfile("SHIELD", shieldProfile);
    hero.setAttributeProfile(getAttributeProfile);
    hero.setKeyBindEnabled(isKeyBindEnabled);
}

function isKeyBindEnabled(entity, keyBind) {
    switch (keyBind) {
    case "SHAPE_SHIFT":
        return !entity.isSneaking();
    case "SHAPE_SHIFT_RESET":
        return entity.isSneaking();
    default:
        return true;
    }
}
function hasProperty(entity, property) {
    switch (property) {
    case "MASK_TOGGLE":
        return entity.isAlive();
    case "BREATHE_SPACE":
        return entity.isAlive();
    default:
        return false;
    }
}

function shieldProfile(profile) {
    profile.inheritDefaults();
    profile.addAttribute("BASE_SPEED", -0.7, 1);
}

function getAttributeProfile(entity) {
    return entity.getData("fiskheroes:shield_blocking") ? "SHIELD" : null;
}