Main/Assets/Code/Logic/Equipment/EquipQuality.cs
2025-01-25 04:38:09 +08:00

53 lines
1.7 KiB
C#

//资质比计算类,用于计算装备资质比
using Thousandto.Cfg.Data;
using Thousandto.Code.Global;
using MSG_backpack;
using System;
using System.Collections.Generic;
namespace Thousandto.Code.Logic
{
public class EquipQuality
{
private bool _isInit = false;
private static EquipQuality instance = new EquipQuality();
private Dictionary<int, Key_Value> equipQua = new Dictionary<int, Key_Value>();
private void OnInit()
{
_isInit = true;
var global = DeclareGlobal.Get(1050);
var stts = global.Params.Split(GameDefine.SplitSemicolon, StringSplitOptions.RemoveEmptyEntries);
for(int i = 0; i < stts.Length; i++)
{
var attrs = stts[i].Split(GameDefine.SplitUnderline, StringSplitOptions.RemoveEmptyEntries);
if(attrs.Length == 3)
{
int iType = int.Parse(attrs[0]);
int baseAttr = int.Parse(attrs[1]);
int growAttr = int.Parse(attrs[2]);
Key_Value value = new Key_Value();
value.key = baseAttr;
value.value = growAttr;
equipQua.Add(iType, value);
}
}
}
public static float GetQualityNum(int iType, ulong Num)
{
if(!instance._isInit)
{
instance.OnInit();
}
float qualityNum = 0;
if(Num > (ulong)instance.equipQua[iType].value)
{
qualityNum = (float)(Num - (ulong)instance.equipQua[iType].value) / instance.equipQua[iType].key * 10;
}
return qualityNum;
}
}
}