Exemplo n.º 1
0
        public static bool cb(CSVReader csv_reader, GrowSkillItemData data, ref uint key1, ref uint key2)
        {
            data.id = key1;
            data.lv = (int)key2;
            csv_reader.Pop(ref data.exceedCnt);
            data.needExp = new GrowRate();
            csv_reader.Pop(ref data.needExp.rate);
            csv_reader.Pop(ref data.needExp.add);
            data.giveExp = new GrowRate();
            csv_reader.Pop(ref data.giveExp.rate);
            csv_reader.Pop(ref data.giveExp.add);
            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);
            }
            data.skillAtk = new GrowRate();
            csv_reader.Pop(ref data.skillAtk.rate);
            csv_reader.Pop(ref data.skillAtk.add);
            data.skillAtkRate = new GrowRate();
            csv_reader.Pop(ref data.skillAtkRate.rate);
            csv_reader.Pop(ref data.skillAtkRate.add);
            data.heal = new GrowRate();
            csv_reader.Pop(ref data.heal.rate);
            csv_reader.Pop(ref data.heal.add);
            data.supprtValue = new GrowRate[3];
            data.supprtTime  = new GrowRateFloat[3];
            for (int k = 0; k < 3; k++)
            {
                data.supprtValue[k] = new GrowRate();
                csv_reader.Pop(ref data.supprtValue[k].rate);
                csv_reader.Pop(ref data.supprtValue[k].add);
                data.supprtTime[k] = new GrowRateFloat();
                csv_reader.Pop(ref data.supprtTime[k].rate);
                csv_reader.Pop(ref data.supprtTime[k].add);
            }
            data.castTime = new GrowRate();
            csv_reader.Pop(ref data.castTime.rate);
            if ((int)data.castTime.rate <= 0)
            {
                data.castTime.rate = 100;
            }
            csv_reader.Pop(ref data.castTime.add);
            data.useGauge = new GrowRate();
            csv_reader.Pop(ref data.useGauge.rate);
            if ((int)data.useGauge.rate <= 0)
            {
                data.useGauge.rate = 100;
            }
            csv_reader.Pop(ref data.useGauge.add);
            return(true);
        }
Exemplo n.º 2
0
    public GrowSkillItemData GetGrowSkillItemData(uint skill_grow_id, int level)
    {
        if (growSkillItemTable == null)
        {
            return(null);
        }
        UIntKeyTable <GrowSkillItemData> uIntKeyTable = growSkillItemTable.Get(skill_grow_id);

        if (uIntKeyTable == null)
        {
            Log.Error("GrowSkillTable is NULL :: grow id = " + skill_grow_id + " Lv = " + level);
            return(null);
        }
        GrowSkillItemData growSkillItemData = uIntKeyTable.Get((uint)level);

        if (growSkillItemData != null)
        {
            return(growSkillItemData);
        }
        GrowSkillItemData under = null;
        GrowSkillItemData over  = null;

        uIntKeyTable.ForEach(delegate(GrowSkillItemData data)
        {
            if (data.lv > level && (over == null || data.lv < over.lv))
            {
                over = data;
            }
            if (data.lv <= level && (under == null || data.lv > under.lv))
            {
                under = data;
            }
        });
        if (under != null && over == null)
        {
            return(under);
        }
        if (under == null)
        {
            return(null);
        }
        float             num = (float)(level - under.lv) / (float)(over.lv - under.lv);
        GrowSkillItemData growSkillItemData2 = new GrowSkillItemData();

        growSkillItemData2.id           = skill_grow_id;
        growSkillItemData2.lv           = level;
        growSkillItemData2.exceedCnt    = Mathf.FloorToInt(Mathf.Lerp((float)under.exceedCnt, (float)over.exceedCnt, num));
        growSkillItemData2.needExp      = new GrowRate();
        growSkillItemData2.needExp.rate = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.needExp.rate, (float)(int)over.needExp.rate, num));
        growSkillItemData2.needExp.add  = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.needExp.add, (float)(int)over.needExp.add, num));
        growSkillItemData2.giveExp      = new GrowRate();
        growSkillItemData2.giveExp.rate = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.giveExp.rate, (float)(int)over.giveExp.rate, num));
        growSkillItemData2.giveExp.add  = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.giveExp.add, (float)(int)over.giveExp.add, num));
        growSkillItemData2.atk          = new GrowRate();
        growSkillItemData2.atk.rate     = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.atk.rate, (float)(int)over.atk.rate, num));
        growSkillItemData2.atk.add      = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.atk.add, (float)(int)over.atk.add, num));
        growSkillItemData2.def          = new GrowRate();
        growSkillItemData2.def.rate     = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.def.rate, (float)(int)over.def.rate, num));
        growSkillItemData2.def.add      = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.def.add, (float)(int)over.def.add, num));
        growSkillItemData2.hp           = new GrowRate();
        growSkillItemData2.hp.rate      = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.hp.rate, (float)(int)over.hp.rate, num));
        growSkillItemData2.hp.add       = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.hp.add, (float)(int)over.hp.add, num));
        growSkillItemData2.elemAtk      = new GrowRate[6];
        for (int i = 0; i < 6; i++)
        {
            growSkillItemData2.elemAtk[i]      = new GrowRate();
            growSkillItemData2.elemAtk[i].rate = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.elemAtk[i].rate, (float)(int)over.elemAtk[i].rate, num));
            growSkillItemData2.elemAtk[i].add  = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.elemAtk[i].add, (float)(int)over.elemAtk[i].add, num));
        }
        growSkillItemData2.elemDef = new GrowRate[6];
        for (int j = 0; j < 6; j++)
        {
            growSkillItemData2.elemDef[j]      = new GrowRate();
            growSkillItemData2.elemDef[j].rate = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.elemDef[j].rate, (float)(int)over.elemDef[j].rate, num));
            growSkillItemData2.elemDef[j].add  = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.elemDef[j].add, (float)(int)over.elemDef[j].add, num));
        }
        growSkillItemData2.skillAtk          = new GrowRate();
        growSkillItemData2.skillAtk.rate     = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.skillAtk.rate, (float)(int)over.skillAtk.rate, num));
        growSkillItemData2.skillAtk.add      = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.skillAtk.add, (float)(int)over.skillAtk.add, num));
        growSkillItemData2.skillAtkRate      = new GrowRate();
        growSkillItemData2.skillAtkRate.rate = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.skillAtkRate.rate, (float)(int)over.skillAtkRate.rate, num));
        growSkillItemData2.skillAtkRate.add  = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.skillAtkRate.add, (float)(int)over.skillAtkRate.add, num));
        growSkillItemData2.heal        = new GrowRate();
        growSkillItemData2.heal.rate   = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.heal.rate, (float)(int)over.heal.rate, num));
        growSkillItemData2.heal.add    = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.heal.add, (float)(int)over.heal.add, num));
        growSkillItemData2.supprtValue = new GrowRate[3];
        growSkillItemData2.supprtTime  = new GrowRateFloat[3];
        for (int k = 0; k < 3; k++)
        {
            growSkillItemData2.supprtValue[k]      = new GrowRate();
            growSkillItemData2.supprtValue[k].rate = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.supprtValue[k].rate, (float)(int)over.supprtValue[k].rate, num));
            growSkillItemData2.supprtValue[k].add  = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.supprtValue[k].add, (float)(int)over.supprtValue[k].add, num));
            growSkillItemData2.supprtTime[k]       = new GrowRateFloat();
            growSkillItemData2.supprtTime[k].rate  = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.supprtTime[k].rate, (float)(int)over.supprtTime[k].rate, num));
            growSkillItemData2.supprtTime[k].add   = (float)Mathf.FloorToInt(Mathf.Lerp((float)under.supprtTime[k].add, (float)over.supprtTime[k].add, num));
        }
        growSkillItemData2.castTime      = new GrowRate();
        growSkillItemData2.castTime.rate = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.castTime.rate, (float)(int)over.castTime.rate, num));
        growSkillItemData2.castTime.add  = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.castTime.add, (float)(int)over.castTime.add, num));
        growSkillItemData2.useGauge      = new GrowRate();
        growSkillItemData2.useGauge.rate = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.useGauge.rate, (float)(int)over.useGauge.rate, num));
        growSkillItemData2.useGauge.add  = Mathf.FloorToInt(Mathf.Lerp((float)(int)under.useGauge.add, (float)(int)over.useGauge.add, num));
        return(growSkillItemData2);
    }