public static bool cb(CSVReader csv_reader, GrowEquipItemData data, ref uint key1, ref uint key2) { data.id = key1; data.lv = key2; data.atk = new GrowRate(); csv_reader.Pop(ref data.atk.rate); csv_reader.Pop(ref data.atk.add); data.def = new GrowRate(); csv_reader.Pop(ref data.def.rate); csv_reader.Pop(ref data.def.add); data.hp = new GrowRate(); csv_reader.Pop(ref data.hp.rate); csv_reader.Pop(ref data.hp.add); data.elemAtk = new GrowRate[6]; int i = 0; for (int num = 6; i < num; i++) { data.elemAtk[i] = new GrowRate(); csv_reader.Pop(ref data.elemAtk[i].rate); csv_reader.Pop(ref data.elemAtk[i].add); } data.elemDef = new GrowRate[6]; int j = 0; for (int num2 = 6; j < num2; j++) { data.elemDef[j] = new GrowRate(); csv_reader.Pop(ref data.elemDef[j].rate); csv_reader.Pop(ref data.elemDef[j].add); } return(true); }
public override bool Equals(object obj) { if (obj == null) { return(false); } GrowEquipItemData growEquipItemData = obj as GrowEquipItemData; if (growEquipItemData == null) { return(false); } bool flag = id.value == growEquipItemData.id.value && lv.value == growEquipItemData.lv.value && atk.Equals(growEquipItemData.atk) && def.Equals(growEquipItemData.def) && hp.Equals(growEquipItemData.hp); for (int i = 0; i < elemAtk.Length; i++) { flag = (flag && elemAtk[i].Equals(growEquipItemData.elemAtk[i])); } for (int j = 0; j < elemDef.Length; j++) { flag = (flag && elemDef[j].Equals(growEquipItemData.elemDef[j])); } return(flag); }
public GrowEquipItemData GetGrowEquipItemData(uint id, uint lv) { if (growTableData == null) { return(null); } UIntKeyTable <GrowEquipItemData> uIntKeyTable = growTableData.Get(id); if (uIntKeyTable == null) { Log.Error("GrowEquipItemTable is NULL :: grow id = " + id + " Lv = " + lv); return(null); } GrowEquipItemData growEquipItemData = uIntKeyTable.Get(lv); if (growEquipItemData != null && lv > 1) { return(growEquipItemData); } GrowEquipItemData under = null; GrowEquipItemData over = null; uIntKeyTable.ForEach(delegate(GrowEquipItemData table) { if ((uint)table.lv > lv && (over == null || (uint)table.lv < (uint)over.lv)) { over = table; } if ((uint)table.lv <= lv && (under == null || (uint)table.lv > (uint)under.lv)) { under = table; } }); if (under != null && over == null) { return(under); } if (under == null) { under = new GrowEquipItemData(); under.lv = 1u; under.id = id; under.atk = new GrowRate(); under.atk.rate = 100; under.atk.add = 0; under.def = new GrowRate(); under.def.rate = 100; under.def.add = 0; under.hp = new GrowRate(); under.hp.rate = 100; under.hp.add = 0; under.elemAtk = new GrowRate[6]; for (int i = 0; i < 6; i++) { under.elemAtk[i] = new GrowRate(); under.elemAtk[i].rate = 100; under.elemAtk[i].add = 0; } under.elemDef = new GrowRate[6]; for (int j = 0; j < 6; j++) { under.elemDef[j] = new GrowRate(); under.elemDef[j].rate = 100; under.elemDef[j].add = 0; } } GrowEquipItemData growEquipItemData2 = new GrowEquipItemData(); float num = (float)(double)(lv - (uint)under.lv) / (float)(double)((uint)over.lv - (uint)under.lv); growEquipItemData2.id = id; growEquipItemData2.lv = lv; growEquipItemData2.atk = new GrowRate(); growEquipItemData2.atk.rate = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.atk.rate, (float)(int)over.atk.rate, num)); growEquipItemData2.atk.add = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.atk.add, (float)(int)over.atk.add, num)); growEquipItemData2.def = new GrowRate(); growEquipItemData2.def.rate = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.def.rate, (float)(int)over.def.rate, num)); growEquipItemData2.def.add = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.def.add, (float)(int)over.def.add, num)); growEquipItemData2.hp = new GrowRate(); growEquipItemData2.hp.rate = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.hp.rate, (float)(int)over.hp.rate, num)); growEquipItemData2.hp.add = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.hp.add, (float)(int)over.hp.add, num)); growEquipItemData2.elemAtk = new GrowRate[6]; for (int k = 0; k < 6; k++) { growEquipItemData2.elemAtk[k] = new GrowRate(); growEquipItemData2.elemAtk[k].rate = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.elemAtk[k].rate, (float)(int)over.elemAtk[k].rate, num)); growEquipItemData2.elemAtk[k].add = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.elemAtk[k].add, (float)(int)over.elemAtk[k].add, num)); } growEquipItemData2.elemDef = new GrowRate[6]; for (int l = 0; l < 6; l++) { growEquipItemData2.elemDef[l] = new GrowRate(); growEquipItemData2.elemDef[l].rate = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.elemDef[l].rate, (float)(int)over.elemDef[l].rate, num)); growEquipItemData2.elemDef[l].add = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.elemDef[l].add, (float)(int)over.elemDef[l].add, num)); } return(growEquipItemData2); }