Example #1
0
    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);
    }
Example #2
0
        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);
        }