using System;
using UnityEngine;
using XCharts.Runtime;

public class WorldUIController : MonoBehaviour
{
    [SerializeField] private LineChart winChart;
    public int[] totalGames;
    public int[] winGames;

    private int maxXAxis = 0;

    // Start is called before the first frame update
    private void Start()
    {
        totalGames = new int[(int)Targets.Num];
        winGames = new int[(int)Targets.Num];
        Array.Clear(totalGames, 0, (int)Targets.Num);
        Array.Clear(winGames, 0, (int)Targets.Num);
        //WinChart.Init();
        winChart.RemoveData();
        for (int i = 0; i < (int)Targets.Num; i++)
        {
            string lineName = Enum.GetName(typeof(Targets), i);
            winChart.AddSerie<Line>(lineName);
        }
    }

    public void UpdateChart(Targets targetType, int endType)
    {
        float winRatio = 0f;
        int targetTypeInt = (int)targetType;
        switch (endType)
        {
            case (int)TargetController.EndType.Win:
                //Win
                totalGames[targetTypeInt] += 1;
                winGames[targetTypeInt] += 1;
                winRatio = (float)winGames[targetTypeInt] / totalGames[targetTypeInt];
                winChart.AddData(targetTypeInt, winRatio);
                if (totalGames[targetTypeInt] > maxXAxis)
                {
                    maxXAxis = totalGames[targetTypeInt];
                    winChart.AddXAxisData(Convert.ToString(maxXAxis));
                }
                break;

            case (int)TargetController.EndType.Lose:
                //lose
                totalGames[targetTypeInt] += 1;
                winRatio = (float)winGames[targetTypeInt] / totalGames[targetTypeInt];
                winChart.AddData(targetTypeInt, winRatio);
                if (totalGames[targetTypeInt] > maxXAxis)
                {
                    maxXAxis = totalGames[targetTypeInt];
                    winChart.AddXAxisData(Convert.ToString(maxXAxis));
                }
                break;

            default:
                break;
        }
    }
}