Esempio n. 1
0
    /// <summary>
    /// 计算炮弹兵战斗力
    /// </summary>
    private static void CalcSoldierPower(ref SoldierInfo Info)
    {
        if (Info == null)
        {
            return;
        }
        int k1         = 0;
        int k2         = 0;
        int k3         = 0;
        int k4         = 0;
        int k5         = 0;
        int LimitLevel = 0;
        int equipID1   = 0;
        int equipID2   = 0;
        int equipID3   = 0;
        int equipID4   = 0;
        int equipID5   = 0;
        int equipID6   = 0;

        //
        ConfigM.GetSoldierPower(ref k1, ref k2, ref k3, ref k4, ref k5);
        int totalSkillLevel = Info.m_Skill.GetTotalSkillLevel();
        int Power           = totalSkillLevel * k1;

        Power = Power + (k2 + ConfigM.GetQualityIndex(Info.Quality) * k3 + Info.StarLevel * k4) * Info.Level;

        List <int> lQuality = ConfigM.GetPrevQuality(Info.Quality);

        List <int> lEquipType = new List <int>();

        foreach (int quality in lQuality)
        {
            GetUpQualityNeed(Info.SoldierTypeID, quality, ref LimitLevel,
                             ref equipID1, ref equipID2, ref equipID3,
                             ref equipID4, ref equipID5, ref equipID6);
            lEquipType.Add(equipID1);
            lEquipType.Add(equipID2);
            lEquipType.Add(equipID3);
            lEquipType.Add(equipID4);
            lEquipType.Add(equipID5);
            lEquipType.Add(equipID6);
        }
        //当前阶装备类型
        GetUpQualityNeed(Info.SoldierTypeID, Info.Quality, ref LimitLevel,
                         ref equipID1, ref equipID2, ref equipID3,
                         ref equipID4, ref equipID5, ref equipID6);
        //
        if (Info.Equipment0 > 0)
        {
            lEquipType.Add(equipID1);
        }
        if (Info.Equipment1 > 0)
        {
            lEquipType.Add(equipID2);
        }
        if (Info.Equipment2 > 0)
        {
            lEquipType.Add(equipID3);
        }
        if (Info.Equipment3 > 0)
        {
            lEquipType.Add(equipID4);
        }
        if (Info.Equipment4 > 0)
        {
            lEquipType.Add(equipID5);
        }
        if (Info.Equipment5 > 0)
        {
            lEquipType.Add(equipID6);
        }

        int EquipTotalLevel = 0;

        foreach (int EquipType in lEquipType)
        {
            s_itemtypeInfo item = ItemM.GetItemInfo(EquipType);
            if (item != null)
            {
                EquipTotalLevel += item.level;
            }
        }
        //添加装备部分产生的战斗力
        Power = Power + EquipTotalLevel * k5;

        Info.m_combat_power = Power;
    }
Esempio n. 2
0
    /// <summary>
    /// 获取炮弹兵适合穿的装备
    /// </summary>
    private static List <int> GetAllEquipType(SoldierInfo Info)
    {
        List <int> l = new List <int>();

        if (Info == null)
        {
            return(l);
        }
        List <int> lQuality = new List <int>();

        lQuality = ConfigM.GetPrevQuality(Info.Quality);
        //早阶的装备
        foreach (int Q in lQuality)
        {
            s_soldierqualityInfo qualityinfo = GetqualityInfoData(Info.SoldierTypeID, Q);
            if (qualityinfo != null)
            {
                l.Add(qualityinfo.equipment0);
                l.Add(qualityinfo.equipment1);
                l.Add(qualityinfo.equipment2);
                l.Add(qualityinfo.equipment3);
                l.Add(qualityinfo.equipment4);
                l.Add(qualityinfo.equipment5);
            }
        }
        //当前穿的装备
        s_soldierqualityInfo Nowqualityinfo = GetqualityInfoData(Info.SoldierTypeID, Info.Quality);

        if (Nowqualityinfo != null)
        {
            if (Info.Equipment0 != 0)
            {
                l.Add(Nowqualityinfo.equipment0);
            }

            if (Info.Equipment1 != 0)
            {
                l.Add(Nowqualityinfo.equipment1);
            }

            if (Info.Equipment2 != 0)
            {
                l.Add(Nowqualityinfo.equipment2);
            }

            if (Info.Equipment3 != 0)
            {
                l.Add(Nowqualityinfo.equipment3);
            }


            if (Info.Equipment4 != 0)
            {
                l.Add(Nowqualityinfo.equipment4);
            }


            if (Info.Equipment5 != 0)
            {
                l.Add(Nowqualityinfo.equipment5);
            }
        }
        return(l);
    }