package com.tiedup.remake.entities.skins;

import com.tiedup.remake.entities.DamselVariant;

/**
 * Registry and manager for damsel skin variants.
 *
 * Simplified: All skins from damsel folder, random selection.
 * 39 total skins (19 numbered + 20 named).
 */
public class DamselSkinManager {

    public static final SkinManagerCore<DamselVariant> CORE =
        new SkinManagerCore<>(
            "DamselSkinManager",
            "damsel",
            SkinDefinition::toDamselVariant,
            DamselSkinManager::loadHardcodedDefaults
        );

    /**
     * Initialize and register all default damsel variants.
     */
    public static void registerDefaults() {
        CORE.registerDefaults();
    }

    /**
     * Load hardcoded default skin variants.
     */
    private static void loadHardcodedDefaults() {
        // Numbered skins (dam_mob_1 to dam_mob_19)
        // Slim arms: variants 10, 11, 15
        CORE.registerVariant(DamselVariant.create("dam_mob_1", false));
        CORE.registerVariant(DamselVariant.create("dam_mob_2", false));
        CORE.registerVariant(DamselVariant.create("dam_mob_3", false));
        CORE.registerVariant(DamselVariant.create("dam_mob_4", false));
        CORE.registerVariant(DamselVariant.create("dam_mob_5", false));
        CORE.registerVariant(DamselVariant.create("dam_mob_6", false));
        CORE.registerVariant(DamselVariant.create("dam_mob_7", false));
        CORE.registerVariant(DamselVariant.create("dam_mob_8", false));
        CORE.registerVariant(DamselVariant.create("dam_mob_9", false));
        CORE.registerVariant(DamselVariant.create("dam_mob_10", true)); // SLIM
        CORE.registerVariant(DamselVariant.create("dam_mob_11", true)); // SLIM
        CORE.registerVariant(DamselVariant.create("dam_mob_12", false));
        CORE.registerVariant(DamselVariant.create("dam_mob_13", false));
        CORE.registerVariant(DamselVariant.create("dam_mob_14", false));
        CORE.registerVariant(DamselVariant.create("dam_mob_15", true)); // SLIM
        CORE.registerVariant(DamselVariant.create("dam_mob_16", false));
        CORE.registerVariant(DamselVariant.create("dam_mob_17", false));
        CORE.registerVariant(DamselVariant.create("dam_mob_18", false));
        CORE.registerVariant(DamselVariant.create("dam_mob_19", false));

        // Named skins (community/special)
        CORE.registerVariant(
            DamselVariant.create("anastasia", true, "Anastasia")
        );
        CORE.registerVariant(DamselVariant.create("blizz", true, "Blizz"));
        CORE.registerVariant(DamselVariant.create("ceras", true, "Ceras"));
        CORE.registerVariant(DamselVariant.create("creamy", true, "Creamy"));
        CORE.registerVariant(DamselVariant.create("el", true, "El"));
        CORE.registerVariant(
            DamselVariant.create("fuya_kitty", true, "Fuya Kitty")
        );
        CORE.registerVariant(DamselVariant.create("glacie", true, "Glacie"));
        CORE.registerVariant(DamselVariant.create("hazey", true, "Hazey"));
        CORE.registerVariant(DamselVariant.create("junichi", true, "Junichi"));
        CORE.registerVariant(DamselVariant.create("kitty", true, "Kitty"));
        CORE.registerVariant(DamselVariant.create("kyky", true, "Kyky"));
        CORE.registerVariant(DamselVariant.create("laureen", true, "Laureen"));
        CORE.registerVariant(DamselVariant.create("mani", true, "Mani"));
        CORE.registerVariant(DamselVariant.create("nobu", true, "Nobu"));
        CORE.registerVariant(DamselVariant.create("pika", true, "Pika"));
        CORE.registerVariant(DamselVariant.create("raph", true, "Raph"));
        CORE.registerVariant(DamselVariant.create("risette", true, "Risette"));
        CORE.registerVariant(DamselVariant.create("roxy", true, "Roxy"));
        CORE.registerVariant(DamselVariant.create("sayari", true, "Sayari"));
        CORE.registerVariant(DamselVariant.create("sui", true, "Sui"));
    }
}
