public GrowEnemyData GetGrowEnemyData(uint growId, int level) { if (growTableData == null) { Log.Warning("GetGrowEnemyData: growTableDate is null!"); return(_defaultData); } UIntKeyTable <GrowEnemyData> uIntKeyTable = growTableData.Get(growId); if (uIntKeyTable == null) { Log.Warning("GetGrowEnemyData: growId {0} is not found!", growId); return(_defaultData); } GrowEnemyData growEnemyData = uIntKeyTable.Get((uint)level); if (growEnemyData != null) { return(growEnemyData); } GrowEnemyData prev = null; GrowEnemyData next = null; uIntKeyTable.ForEach(delegate(GrowEnemyData grow) { if ((int)grow.level < level && (prev == null || (int)grow.level > (int)prev.level)) { prev = grow; } if ((int)grow.level > level && (next == null || (int)grow.level < (int)next.level)) { next = grow; } }); if (next == null || prev == null) { if (next != null) { return(next); } if (prev != null) { return(prev); } Log.Warning("GetGrowEnemyData: growId {0}, Lv {1} Lerp error", growId, level); return(_defaultData); } float num = (float)(level - (int)prev.level) / (float)((int)next.level - (int)prev.level); growEnemyData = new GrowEnemyData(); growEnemyData.growId = growId; growEnemyData.level = level; growEnemyData.hp = Mathf.FloorToInt(Mathf.Lerp((float)(int)prev.hp, (float)(int)next.hp, num)); growEnemyData.atk = Mathf.FloorToInt(Mathf.Lerp((float)(int)prev.atk, (float)(int)next.atk, num)); return(growEnemyData); }
public static bool cb(CSVReader csv_reader, GrowEnemyData data, ref uint key1, ref uint key2) { data.growId = key1; data.level = (int)key2; float value = 0f; csv_reader.Pop(ref value); data.hp = Mathf.RoundToInt(value); float value2 = 0f; csv_reader.Pop(ref value2); data.atk = Mathf.RoundToInt(value2); return(true); }