public override bool Equals(object obj) { if (obj == null) { return(false); } GrowEquipItemNeedItemData growEquipItemNeedItemData = obj as GrowEquipItemNeedItemData; if (growEquipItemNeedItemData == null) { return(false); } bool flag = id == growEquipItemNeedItemData.id && lv == growEquipItemNeedItemData.lv && needMoney == growEquipItemNeedItemData.needMoney; if (needMaterial.Length == growEquipItemNeedItemData.needMaterial.Length) { for (int i = 0; i < needMaterial.Length; i++) { flag = (flag && needMaterial[i].Equals(growEquipItemNeedItemData.needMaterial[i])); } } else { flag = false; } return(flag); }
public static DoubleUIntKeyTable <GrowEquipItemNeedItemData> CreateNeedTableBinary(byte[] bytes) { DoubleUIntKeyTable <GrowEquipItemNeedItemData> doubleUIntKeyTable = new DoubleUIntKeyTable <GrowEquipItemNeedItemData>(); BinaryTableReader binaryTableReader = new BinaryTableReader(bytes); while (binaryTableReader.MoveNext()) { uint key = binaryTableReader.ReadUInt32(0u); uint key2 = binaryTableReader.ReadUInt32(0u); GrowEquipItemNeedItemData growEquipItemNeedItemData = new GrowEquipItemNeedItemData(); growEquipItemNeedItemData.LoadFromBinary(binaryTableReader, ref key, ref key2); doubleUIntKeyTable.Add(key, key2, growEquipItemNeedItemData); } return(doubleUIntKeyTable); }
public static bool cb(CSVReader csv_reader, GrowEquipItemNeedItemData data, ref uint key1, ref uint key2) { data.id = key1; data.lv = key2; List <NeedMaterial> list = new List <NeedMaterial>(); for (int i = 0; i < NEED_MATERIAL_LENGTH_MAX; i++) { uint value = 0u; int value2 = 0; CSVReader.PopResult popResult = csv_reader.Pop(ref value); CSVReader.PopResult popResult2 = csv_reader.Pop(ref value2); if (value != 0 && value2 != 0) { list.Add(new NeedMaterial(value, value2)); } } data.needMaterial = list.ToArray(); CSVReader.PopResult popResult3 = csv_reader.Pop(ref data.needMoney); return(true); }
public GrowEquipItemNeedItemData GetGrowEquipItemNeedItemData(uint id, uint lv) { if (needTableData == null) { return(null); } UIntKeyTable <GrowEquipItemNeedItemData> uIntKeyTable = needTableData.Get(id); if (uIntKeyTable == null) { Log.Error("GetGrowEquipItemNeedItemData is NULL :: need id = " + id + " Lv = " + lv); return(null); } GrowEquipItemNeedItemData growEquipItemNeedItemData = uIntKeyTable.Get(lv); if (growEquipItemNeedItemData != null) { return(growEquipItemNeedItemData); } GrowEquipItemNeedItemData under = null; GrowEquipItemNeedItemData over = null; uIntKeyTable.ForEach(delegate(GrowEquipItemNeedItemData table) { if (table.lv > lv && (over == null || table.lv < over.lv)) { over = table; } if (table.lv <= lv && (under == null || table.lv > under.lv)) { under = table; } }); if (under != null && over == null) { return(under); } if (under == null) { return(null); } GrowEquipItemNeedItemData growEquipItemNeedItemData2 = new GrowEquipItemNeedItemData(); float lerp_value = (float)(double)(lv - under.lv) / (float)(double)(over.lv - under.lv); growEquipItemNeedItemData2.id = id; growEquipItemNeedItemData2.lv = lv; List <NeedMaterial> material_list = new List <NeedMaterial>(); Array.ForEach(under.needMaterial, delegate(NeedMaterial material_data) { Array.ForEach(over.needMaterial, delegate(NeedMaterial over_need_material) { if (over_need_material.itemID == material_data.itemID) { material_list.Add(new NeedMaterial(over_need_material.itemID, Mathf.FloorToInt(Mathf.Lerp((float)material_data.num, (float)over_need_material.num, lerp_value)))); } }); }); growEquipItemNeedItemData2.needMaterial = material_list.ToArray(); growEquipItemNeedItemData2.needMoney = Mathf.FloorToInt(Mathf.Lerp((float)under.needMoney, (float)over.needMoney, lerp_value)); return(growEquipItemNeedItemData2); }