package com.example.tcg;

import android.content.Context;
import android.content.SharedPreferences;

public class JogadorManager {
    private static final String PREFS_NAME = "jogador_prefs";

    private static final String KEY_OURO = "ouro";
    private static final String KEY_LIMITE_CARTAS = "limite_cartas";
    private static final String KEY_MULTIPLICADOR_SORTE = "multiplicador_sorte";

    private static final String CHAVE_PRECO_LIMITE = "preco_limite";
    private static final String CHAVE_PRECO_SORTE = "preco_sorte";

    private final SharedPreferences prefs;

    public JogadorManager(Context context) {
        prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
    }

    // ========= OURO =========
    public int getOuro() {
        return prefs.getInt(KEY_OURO, 100);
    }

    public void adicionarOuro(int valor) {
        prefs.edit().putInt(KEY_OURO, getOuro() + valor).apply();
    }

    public void removerOuro(int valor) {
        prefs.edit().putInt(KEY_OURO, Math.max(0, getOuro() - valor)).apply();
    }

    // ========= LIMITE DE CARTAS =========
    public int getLimiteCartas() {
        return prefs.getInt(KEY_LIMITE_CARTAS, 5);
    }

    public void aumentarLimiteCartas() {
        prefs.edit().putInt(KEY_LIMITE_CARTAS, getLimiteCartas() + 1).apply();
    }

    // ========= MULTIPLICADOR DE SORTE =========
    public int getMultiplicadorSorte() {
        return prefs.getInt(KEY_MULTIPLICADOR_SORTE, 1);
    }

    public void aumentarMultiplicadorSorte() {
        int atual = getMultiplicadorSorte();
        if (atual < 3) {
            prefs.edit().putInt(KEY_MULTIPLICADOR_SORTE, atual + 1).apply();
        }
    }

    // ========= PREÇOS DA LOJA =========
    public int getPrecoLimite() {
        return prefs.getInt(CHAVE_PRECO_LIMITE, 100);
    }

    public void salvarPrecoLimite(int preco) {
        prefs.edit().putInt(CHAVE_PRECO_LIMITE, preco).apply();
    }

    public int getPrecoSorte() {
        return prefs.getInt(CHAVE_PRECO_SORTE, 200);
    }

    public void salvarPrecoSorte(int preco) {
        prefs.edit().putInt(CHAVE_PRECO_SORTE, preco).apply();
    }

    // ========= FORMATAÇÃO =========
    public static String formatarOuro(int valor) {
        if (valor >= 1_000_000_000)
            return String.format("%.1fB", valor / 1_000_000_000.0);
        else if (valor >= 1_000_000)
            return String.format("%.1fM", valor / 1_000_000.0);
        else if (valor >= 1_000)
            return String.format("%.1fK", valor / 1_000.0);
        else
            return String.valueOf(valor);
    }
}



