using System;
using UnityEngine;
using XCharts.Runtime;

public class WorldUIController : MonoBehaviour
{
    public 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)SceneBlockContainer.Targets.Num];
        winGames = new int[(int)SceneBlockContainer.Targets.Num];
        Array.Clear(totalGames, 0, (int)SceneBlockContainer.Targets.Num);
        Array.Clear(winGames, 0, (int)SceneBlockContainer.Targets.Num);
        //WinChart.Init();
        winChart.RemoveData();
        for (int i = 0; i < (int)SceneBlockContainer.Targets.Num; i++)
        {
            string lineName = Enum.GetName(typeof(SceneBlockContainer.Targets), i);
            winChart.AddSerie<Line>(lineName);
        }
    }

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

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

            default:
                break;
        }
    }
}