﻿using System;
using UnityEngine;

namespace JLGames.RocketDriver.Games.RpgMaterial.Common
{
    [Serializable]
    public class MetaWorth
    {
        [Tooltip("Worth\n价值")] [SerializeField]
        protected int m_Worth;

        /// <summary>
        /// Worth
        /// 价值
        /// </summary>
        public int Worth => m_Worth;

        public override string ToString()
        {
            return $"{{Worth={Worth}}}";
        }

        public MetaWorth()
        {
        }

        public MetaWorth(int worth)
        {
            m_Worth = worth;
        }

        /// <summary>
        /// Calculate quantity by total value
        /// 通过总价值计算数量
        /// </summary>
        /// <param name="worth"></param>
        /// <param name="ceil"></param>
        /// <returns></returns>
        public int GetNumByWorth(int worth, bool ceil)
        {
            return ceil ? Mathf.CeilToInt((float) worth / m_Worth) : worth / m_Worth;
        }

        /// <summary>
        /// Calculate total value by quantity
        /// 通过数量计算总价值
        /// </summary>
        /// <param name="num"></param>
        /// <returns></returns>
        public int GetWorthByNum(int num)
        {
            return num * m_Worth;
        }
    }
}