Example #1
0
    public void SetSkillDetailATB()
    {
        this.m_nSkillDetailATB = 0;
        for (int i = 0; i < 10; i++)
        {
            if (this.m_nSkillDetalParamValue[i] > 0 && this.m_nSkillDetalParamType[i] > 0)
            {
                eBATTLESKILL_DETAIL_CODE eBATTLESKILL_DETAIL_CODE = (eBATTLESKILL_DETAIL_CODE)this.m_nSkillDetalParamType[i];
                switch (eBATTLESKILL_DETAIL_CODE)
                {
                case eBATTLESKILL_DETAIL_CODE.ENDURE_HEAL:
                case eBATTLESKILL_DETAIL_CODE.ENDURE_HEAL_P:
                    goto IL_14F;

                case eBATTLESKILL_DETAIL_CODE.ENDURE_ANGERLYPOINT:
                case eBATTLESKILL_DETAIL_CODE.AFTER_USED_DAMAGE_TYPE:
                case eBATTLESKILL_DETAIL_CODE.AFTER_USED_DAMAGE_TARGET:
                case eBATTLESKILL_DETAIL_CODE.DEL_BUFF_ALL:
                case eBATTLESKILL_DETAIL_CODE.DEL_BUFF_TYPE:
                case eBATTLESKILL_DETAIL_CODE.ACTION_HP_P:
                case eBATTLESKILL_DETAIL_CODE.SUICIDE:
                case eBATTLESKILL_DETAIL_CODE.REVIVAL:
IL_7C:
                    switch (eBATTLESKILL_DETAIL_CODE)
                    {
                    case eBATTLESKILL_DETAIL_CODE.BLOOD_SUCKING_PER:
                    case eBATTLESKILL_DETAIL_CODE.BLOOD_SUCKING_VALUE:
                    case eBATTLESKILL_DETAIL_CODE.ADD_BLOOD_SUCKING_PER:
                    case eBATTLESKILL_DETAIL_CODE.ADD_BLOOD_SUCKING_VALUE:
                    case eBATTLESKILL_DETAIL_CODE.BLOOD_SUCKING_ALL_PER:
                    case eBATTLESKILL_DETAIL_CODE.BLOOD_SUCKING_ALL_VALUE:
                        if (!this.CheckSkillDetailATB(4))
                        {
                            this.SetSkillDetailATBData(4);
                        }
                        goto IL_19B;

                    case eBATTLESKILL_DETAIL_CODE.PROTECT_SHIELD_TYPE:
                    case eBATTLESKILL_DETAIL_CODE.PROTECT_SHIELD_VALUE:
                    case eBATTLESKILL_DETAIL_CODE.PROTECT_SHIELD_VALUE_P:
                    case eBATTLESKILL_DETAIL_CODE.SKILL_SHIELD_TYPE:
                    case eBATTLESKILL_DETAIL_CODE.SKILL_SHIELD_BUFFTYPE:
IL_B9:
                        switch (eBATTLESKILL_DETAIL_CODE)
                        {
                        case eBATTLESKILL_DETAIL_CODE.NOTURN_ON:
                        case eBATTLESKILL_DETAIL_CODE.NOSKILL_ON:
                        case eBATTLESKILL_DETAIL_CODE.NOCONTROL_ON:
                        case eBATTLESKILL_DETAIL_CODE.NOCONTROL_AND_NOTARGETING:
                        case eBATTLESKILL_DETAIL_CODE.NONORMAL_ATTACK_ON:
                            goto IL_11F;

                        case eBATTLESKILL_DETAIL_CODE.NOATTACK_ON:
                        case eBATTLESKILL_DETAIL_CODE.IMMORTAL_ON:
IL_DE:
                            switch (eBATTLESKILL_DETAIL_CODE)
                            {
                            case eBATTLESKILL_DETAIL_CODE.HEAL:
                            case eBATTLESKILL_DETAIL_CODE.HEAL_P:
                                goto IL_14F;

                            case eBATTLESKILL_DETAIL_CODE.DAMAGE_P:
IL_F2:
                                if (eBATTLESKILL_DETAIL_CODE == eBATTLESKILL_DETAIL_CODE.SLEEP_ON)
                                {
                                    goto IL_11F;
                                }
                                if (eBATTLESKILL_DETAIL_CODE != eBATTLESKILL_DETAIL_CODE.SUMMON_BARRIER_KIND)
                                {
                                    goto IL_19B;
                                }
                                goto IL_181;
                            }
                            goto IL_F2;
                        }
                        goto IL_DE;
IL_11F:
                        if (!this.CheckSkillDetailATB(2))
                        {
                            this.SetSkillDetailATBData(2);
                        }
                        goto IL_19B;

                    case eBATTLESKILL_DETAIL_CODE.ADD_ANGERLYPOINT:
                    case eBATTLESKILL_DETAIL_CODE.PLUNDER_ANGERLYPOINT_P:
                        if (!this.CheckSkillDetailATB(16))
                        {
                            this.SetSkillDetailATBData(16);
                        }
                        goto IL_19B;
                    }
                    goto IL_B9;

                case eBATTLESKILL_DETAIL_CODE.AFTER_USED_DAMAGE:
                case eBATTLESKILL_DETAIL_CODE.AFTER_USED_DAMAGE_P:
                case eBATTLESKILL_DETAIL_CODE.AFTER_USED_HEAL:
                case eBATTLESKILL_DETAIL_CODE.AFTER_USED_SKILL:
                case eBATTLESKILL_DETAIL_CODE.AFTER_USED_SKILL_LEVEL:
                    if (!this.CheckSkillDetailATB(1))
                    {
                        this.SetSkillDetailATBData(1);
                    }
                    goto IL_19B;

                case eBATTLESKILL_DETAIL_CODE.SUMMON_KIND:
                    goto IL_181;
                }
                goto IL_7C;
IL_14F:
                if (!this.CheckSkillDetailATB(8))
                {
                    this.SetSkillDetailATBData(8);
                }
                goto IL_19B;
IL_181:
                if (!this.CheckSkillDetailATB(32))
                {
                    this.SetSkillDetailATBData(32);
                }
            }
            IL_19B :;
        }
    }
Example #2
0
    private void ReplaceParamValBattleSkill(ref int m_iTextCount, ref StringBuilder refReplaceText, string szContent, BATTLESKILL_DETAIL BSkillDetail, NkSoldierInfo solInfo, int costumeUnique = -1)
    {
        int length = szContent.Length;
        int i      = m_iTextCount + 1;

        this.willReplaceParamBuilder.Length = 0;
        while (i < length)
        {
            if (szContent[i] == this.m_szTag[13])
            {
                break;
            }
            this.willReplaceParamBuilder.Append(szContent[i]);
            i++;
        }
        string text      = this.willReplaceParamBuilder.ToString();
        int    paramType = NrTSingleton <BATTLE_SKILL_PARSER> .Instance.GetParamType(text);

        int   skillDetalParamValue = BSkillDetail.GetSkillDetalParamValue(paramType);
        float num  = 0f;
        long  num2 = 0L;

        if (skillDetalParamValue != 0)
        {
            eBATTLESKILL_DETAIL_CODE eBATTLESKILL_DETAIL_CODE = (eBATTLESKILL_DETAIL_CODE)paramType;
            switch (eBATTLESKILL_DETAIL_CODE)
            {
            case eBATTLESKILL_DETAIL_CODE.ADD_CRITICAL:
            case eBATTLESKILL_DETAIL_CODE.ADD_PHY_DEFENSE_P:
            case eBATTLESKILL_DETAIL_CODE.ADD_MAG_DEFENSE_P:
            case eBATTLESKILL_DETAIL_CODE.ADD_HIT_RATE_P:
            case eBATTLESKILL_DETAIL_CODE.ADD_EVASION_P:
            case eBATTLESKILL_DETAIL_CODE.ADD_CRITICAL_P:
            case eBATTLESKILL_DETAIL_CODE.ADD_MIN_DAMAGE_P:
            case eBATTLESKILL_DETAIL_CODE.ADD_MAX_DAMAGE_P:
            case eBATTLESKILL_DETAIL_CODE.ADD_MAX_HP_P:
            case eBATTLESKILL_DETAIL_CODE.MINUS_MIN_DAMAGE_P:
            case eBATTLESKILL_DETAIL_CODE.MINUS_MAX_DAMAGE_P:
            case eBATTLESKILL_DETAIL_CODE.MINUS_PHY_DEFENSE_P:
            case eBATTLESKILL_DETAIL_CODE.MINUS_MAG_DEFENSE_P:
            case eBATTLESKILL_DETAIL_CODE.MINUS_MAX_HP_P:
            case eBATTLESKILL_DETAIL_CODE.MINUS_CRITICAL:
            case eBATTLESKILL_DETAIL_CODE.MINUS_HEAL_P:
            case eBATTLESKILL_DETAIL_CODE.PLUS_HEAL_P:
            case eBATTLESKILL_DETAIL_CODE.MINUS_DAMAGE_P:
            case eBATTLESKILL_DETAIL_CODE.PLUS_DAMAGE_P:
                goto IL_2C3;

            case eBATTLESKILL_DETAIL_CODE.ADD_MIN_DAMAGE:
            case eBATTLESKILL_DETAIL_CODE.ADD_MAX_DAMAGE:
            case eBATTLESKILL_DETAIL_CODE.ADD_MAX_HP:
            case eBATTLESKILL_DETAIL_CODE.MINUS_MIN_DAMAGE:
            case eBATTLESKILL_DETAIL_CODE.MINUS_MAX_DAMAGE:
            case eBATTLESKILL_DETAIL_CODE.MINUS_PHY_DEFENSE:
            case eBATTLESKILL_DETAIL_CODE.MINUS_MAG_DEFENSE:
            case eBATTLESKILL_DETAIL_CODE.MINUS_MAX_HP:
            case eBATTLESKILL_DETAIL_CODE.NOMOVE_ON:
            case eBATTLESKILL_DETAIL_CODE.NOTURN_ON:
            case eBATTLESKILL_DETAIL_CODE.NOSKILL_ON:
            case eBATTLESKILL_DETAIL_CODE.NOATTACK_ON:
            case eBATTLESKILL_DETAIL_CODE.IMMORTAL_ON:
            case eBATTLESKILL_DETAIL_CODE.NOCONTROL_ON:
            case eBATTLESKILL_DETAIL_CODE.NOCONTROL_AND_NOTARGETING:
            case eBATTLESKILL_DETAIL_CODE.NONORMAL_ATTACK_ON:
            case eBATTLESKILL_DETAIL_CODE.MINUS_HEAL:
            case eBATTLESKILL_DETAIL_CODE.PLUS_HEAL:
            case eBATTLESKILL_DETAIL_CODE.MINUS_DAMAGE:
            case eBATTLESKILL_DETAIL_CODE.PLUS_DAMAGE:
IL_13A:
                switch (eBATTLESKILL_DETAIL_CODE)
                {
                case eBATTLESKILL_DETAIL_CODE.EMPTY_P:
                case eBATTLESKILL_DETAIL_CODE.INCREASE_WEPON_ACTIVE:
                case eBATTLESKILL_DETAIL_CODE.DECREASE_PVP_DAMAGE:
                case eBATTLESKILL_DETAIL_CODE.INCREASE_PVP_DAMAGE:
                case eBATTLESKILL_DETAIL_CODE.INCREASE_BOSS_DAMAGE:
                case eBATTLESKILL_DETAIL_CODE.DECREASE_MONSTER_DAMAGE:
                case eBATTLESKILL_DETAIL_CODE.INCREASE_EXP_P:
                case eBATTLESKILL_DETAIL_CODE.INCREASE_GOLD_P:
                case eBATTLESKILL_DETAIL_CODE.INCREASE_ITEM_P:
                case eBATTLESKILL_DETAIL_CODE.PHOENIX:
                case eBATTLESKILL_DETAIL_CODE.EMPTY_P2:
                    goto IL_2C3;

                case eBATTLESKILL_DETAIL_CODE.EMPTY_DAMAGE_P:
                case eBATTLESKILL_DETAIL_CODE.EMPTY_DAMAGE_P2:
                    goto IL_230;

                case eBATTLESKILL_DETAIL_CODE.IMMUNE_EQUAL_BOSS:
                case eBATTLESKILL_DETAIL_CODE.INCREASE_DEFENCE_ACTIVE:
                case eBATTLESKILL_DETAIL_CODE.DECREASE_CRITICAL_HIT:
                case eBATTLESKILL_DETAIL_CODE.MAGIC_RESIST:
                case eBATTLESKILL_DETAIL_CODE.PHYSICAL_RESIST:
                case eBATTLESKILL_DETAIL_CODE.EMPTY_VALUE2:
IL_190:
                    switch (eBATTLESKILL_DETAIL_CODE)
                    {
                    case eBATTLESKILL_DETAIL_CODE.ENDURE_DAMAGE_POISON_P:
                    case eBATTLESKILL_DETAIL_CODE.ENDURE_DAMAGE_FIRE_P:
                    case eBATTLESKILL_DETAIL_CODE.ENDURE_DAMAGE_ICE_P:
                    case eBATTLESKILL_DETAIL_CODE.ENDURE_DAMAGE_LIGHTNING_P:
                    case eBATTLESKILL_DETAIL_CODE.ENDURE_DAMAGE_BLEEDING_P:
                    case eBATTLESKILL_DETAIL_CODE.ENDURE_HEAL_P:
                    case eBATTLESKILL_DETAIL_CODE.AFTER_USED_DAMAGE_P:
                        goto IL_230;

                    case eBATTLESKILL_DETAIL_CODE.ENDURE_HEAL:
                    case eBATTLESKILL_DETAIL_CODE.ENDURE_ANGERLYPOINT:
                    case eBATTLESKILL_DETAIL_CODE.AFTER_USED_DAMAGE:
                    case eBATTLESKILL_DETAIL_CODE.AFTER_USED_DAMAGE_TYPE:
                    case eBATTLESKILL_DETAIL_CODE.AFTER_USED_DAMAGE_TARGET:
                    case eBATTLESKILL_DETAIL_CODE.AFTER_USED_HEAL:
                    case eBATTLESKILL_DETAIL_CODE.AFTER_USED_SKILL_LEVEL:
                    case eBATTLESKILL_DETAIL_CODE.DEL_BUFF_ALL:
                    case eBATTLESKILL_DETAIL_CODE.DEL_BUFF_TYPE:
IL_1E2:
                        switch (eBATTLESKILL_DETAIL_CODE)
                        {
                        case eBATTLESKILL_DETAIL_CODE.BLOOD_SUCKING_PER:
                        case eBATTLESKILL_DETAIL_CODE.ADD_BLOOD_SUCKING_PER:
                        case eBATTLESKILL_DETAIL_CODE.BLOOD_SUCKING_ALL_PER:
                            goto IL_2C3;

                        case eBATTLESKILL_DETAIL_CODE.BLOOD_SUCKING_VALUE:
                        case eBATTLESKILL_DETAIL_CODE.ADD_BLOOD_SUCKING_VALUE:
IL_200:
                            if (eBATTLESKILL_DETAIL_CODE == eBATTLESKILL_DETAIL_CODE.DAMAGE_P || eBATTLESKILL_DETAIL_CODE == eBATTLESKILL_DETAIL_CODE.HEAL_P)
                            {
                                goto IL_230;
                            }
                            if (eBATTLESKILL_DETAIL_CODE == eBATTLESKILL_DETAIL_CODE.SUMMON_LEVEL_P)
                            {
                                goto IL_2C3;
                            }
                            if (eBATTLESKILL_DETAIL_CODE == eBATTLESKILL_DETAIL_CODE.PROTECT_SHIELD_VALUE_P)
                            {
                                goto IL_230;
                            }
                            if (eBATTLESKILL_DETAIL_CODE != eBATTLESKILL_DETAIL_CODE.PLUNDER_ANGERLYPOINT_P)
                            {
                                goto IL_385;
                            }
                            goto IL_2C3;
                        }
                        goto IL_200;

                    case eBATTLESKILL_DETAIL_CODE.AFTER_USED_SKILL:
                    {
                        int skillDetalParamValue2            = BSkillDetail.GetSkillDetalParamValue(74);
                        BATTLESKILL_DETAIL battleSkillDetail = NrTSingleton <BattleSkill_Manager> .Instance.GetBattleSkillDetail(skillDetalParamValue, skillDetalParamValue2);

                        if (battleSkillDetail != null)
                        {
                            skillDetalParamValue = BSkillDetail.GetSkillDetalParamValue(3);
                            if (skillDetalParamValue > 0)
                            {
                                if (solInfo != null)
                                {
                                    int            num3 = (solInfo.GetMaxDamage() + solInfo.GetMinDamage()) / 2;
                                    EVENT_HERODATA eventHeroCharCode = NrTSingleton <NrTableEvnetHeroManager> .Instance.GetEventHeroCharCode(solInfo.GetCharKind(), solInfo.GetGrade());

                                    if (eventHeroCharCode != null)
                                    {
                                        int num4 = (int)((float)num3 * ((float)eventHeroCharCode.i32Attack * 0.01f));
                                        num3 = num4;
                                    }
                                    num2 = (long)((int)((float)num3 * ((float)skillDetalParamValue / 10000f)));
                                }
                                else
                                {
                                    num = (float)skillDetalParamValue / 100f;
                                }
                            }
                        }
                        goto IL_385;
                    }

                    case eBATTLESKILL_DETAIL_CODE.ACTION_HP_P:
                        goto IL_2C3;
                    }
                    goto IL_1E2;
                }
                goto IL_190;

            case eBATTLESKILL_DETAIL_CODE.PLUS_MIN_DAMAGE_P:
            case eBATTLESKILL_DETAIL_CODE.PLUS_MAX_DAMAGE_P:
                goto IL_230;
            }
            goto IL_13A;
IL_230:
            if (solInfo != null)
            {
                int num5 = (solInfo.GetMaxDamage() + solInfo.GetMinDamage()) / 2;
                if (0 <= costumeUnique)
                {
                    num5 = this.GetCostumeDamage(solInfo, costumeUnique);
                }
                EVENT_HERODATA eventHeroCharCode2 = NrTSingleton <NrTableEvnetHeroManager> .Instance.GetEventHeroCharCode(solInfo.GetCharKind(), solInfo.GetGrade());

                if (eventHeroCharCode2 != null)
                {
                    int num6 = (int)((float)num5 * ((float)eventHeroCharCode2.i32Attack * 0.01f));
                    num5 = num6;
                }
                num2  = (long)num5 * (long)skillDetalParamValue;
                num2 /= 10000L;
            }
            else
            {
                num = (float)skillDetalParamValue / 100f;
            }
            goto IL_385;
IL_2C3:
            num = (float)skillDetalParamValue / 100f;
IL_385:
            string value;
            if (num2 > 0L)
            {
                value = num2.ToString();
            }
            else if (num > 0f)
            {
                value = num.ToString();
            }
            else
            {
                value = skillDetalParamValue.ToString();
            }
            refReplaceText.Append(value);
        }
        m_iTextCount += text.Length + 1;
    }