using UnityEngine;

public class PlayerData
{
    static int nextDefaultProfession;
    static int nextDefaultSpecies;

    public PlayerData()
    {
    }

    public PlayerData(string playerName)
    {
        PlayerName = playerName;
        Color1 = Color.yellow;
        Color2 = Color.red;
        EnsurePlayerHasProfession();
        EnsurePlayerHasPledge();
    }

    public string PlayerName;
    public string ModelName;

    public int Health = 100;
    public Color Color1;
    public Color Color2;

    public Profession Profession;
    public Species Species;

    public Pledge Pledge;
    public Battler Battler;

    public void SetModel(Models model) => ModelName = model.ToString();

    public void SetClass(Profession profession) => Profession = profession;
    public void SetSpecies(Species species) => Species = species;


    public void EnsurePlayerHasProfession()
    {
	    if (Profession)
		    return;

        if (nextDefaultProfession >= Aspects.Classes.Length)
            nextDefaultProfession = 0;
	    Profession = Aspects.Classes[nextDefaultProfession];
        nextDefaultProfession++;
    }

    public void EnsurePlayerHasSpecies()
    {
	    if (Species)
		    return;

        if (nextDefaultSpecies >= Aspects.Species.Length)
            nextDefaultSpecies = 0;
        Species = Aspects.Species[nextDefaultSpecies];
        nextDefaultSpecies++;
    }

    public void SetPledgeAspect(Pledge aspect) => Pledge = aspect;

    public void EnsurePlayerHasPledge()
    {
        if (Pledge)
            return;

        Pledge = Aspects.Pledges[Random.Range(0, Aspects.Pledges.Length)];
    }
}