예제 #1
0
    /// <summary>
    /// 检测是否可进阶
    /// </summary>
    /// <returns></returns>
    bool CheckJinJie()
    {
        int levelLimit = 0;
        int equipID1   = 0;
        int equipID2   = 0;
        int equipID3   = 0;
        int equipID4   = 0;
        int equipID5   = 0;
        int equipID6   = 0;

        if (ConfigM.GetNextQuality(m_soldierInfo.Quality) == 0)
        {
            return(false);
        }

        SoldierM.GetUpQualityNeed(m_soldierInfo.SoldierTypeID, m_soldierInfo.Quality, ref levelLimit,
                                  ref equipID1, ref equipID2, ref equipID3,
                                  ref equipID4, ref equipID5, ref equipID6);

        if (CheckUpEquip(levelLimit, equipID1, equipID2, equipID3, equipID4, equipID5, equipID6) == false)
        {
            return(false);
        }
        return(true);
    }
예제 #2
0
    /// <summary>
    /// 升阶
    /// </summary>
    void BtnJinSheng_OnClickEventHandler(UIButton sender)
    {
        int levelLimit = 0;
        int equipID1   = 0;
        int equipID2   = 0;
        int equipID3   = 0;
        int equipID4   = 0;
        int equipID5   = 0;
        int equipID6   = 0;

        if (ConfigM.GetNextQuality(m_soldierInfo.Quality) == 0)
        {
            NGUIUtil.ShowTipWndByKey("30000017", 1.0f, ConstantData.iDepBefore3DModel);
            return;
        }

        SoldierM.GetUpQualityNeed(m_soldierInfo.SoldierTypeID, m_soldierInfo.Quality, ref levelLimit,
                                  ref equipID1, ref equipID2, ref equipID3,
                                  ref equipID4, ref equipID5, ref equipID6);

        if (CheckUpEquip(levelLimit, equipID1, equipID2, equipID3, equipID4, equipID5, equipID6) == false)
        {
            NGUIUtil.ShowTipWndByKey(30000019);
            return;
        }
        //可以进阶啦,发送进阶请求
        EnablePrevNextBtn(false);
        DoEquipsFly();
        m_preSoldierInfo.Copy(m_soldierInfo);
        SoldierDC.Send_SoldierQualityUpRequest(m_soldierInfo.ID);
    }
예제 #3
0
    /// <summary>
    /// 陷阱能否升阶.
    /// </summary>
    /// <returns>The quality can U.</returns>
    /// <param name="info">Info.</param>
    public static CanQualityResult GetQualityCanUP(BuildInfo info)
    {
        int NextQuality = ConfigM.GetNextQuality(info.Quality);

        if (NextQuality == info.Quality)
        {
            return(CanQualityResult.QualityMax);
        }

        int LimitLev = 0;

        Dictionary <int, int> lNeedMaterial = new Dictionary <int, int>();
        Dictionary <int, int> lhaveFragment = new Dictionary <int, int> ();

        buildingM.GetUpQualityNeed(info.BuildType, info.Quality, ref lNeedMaterial, ref LimitLev);
        if (info.Level < LimitLev)
        {
            return(CanQualityResult.LevelLimit);
        }

        if (lNeedMaterial.Count == 0 && info.Quality == NextQuality)
        {
            return(CanQualityResult.QualityMax);
        }

        foreach (int itemtype in lNeedMaterial.Keys)
        {
            if (lNeedMaterial[itemtype] == 0 && info.Quality == NextQuality)
            {
                return(CanQualityResult.QualityMax);
            }
        }

        //获取已有的资源。
        List <int> litemType = new List <int>();

        foreach (int itemtype in lNeedMaterial.Keys)
        {
            litemType.Add(itemtype);
        }
        ItemDC.GetItemCount(litemType, ref lhaveFragment);

        foreach (int itemtype in lNeedMaterial.Keys)
        {
            if (lhaveFragment[itemtype] < lNeedMaterial[itemtype])
            {
                return(CanQualityResult.MaterialLimit);
            }
        }
        return(CanQualityResult.CanUp);
    }
예제 #4
0
    private void SetUI()
    {
        //		AddDoubleLabelItem ("[552d0a]"+NGUIUtil.GetStringByKey(10000058)+"[-]"+m_Info.m_Solidity.ToString()
        //		                    ,"[552d0a]"+NGUIUtil.GetStringByKey(10000059)+"[-]"+m_Info.m_Intensity.ToString(),22);
        //
        //		AddDoubleLabelItem ("[552d0a]"+NGUIUtil.GetStringByKey(10000060)+"[-]"+m_Info.m_Tenacity.ToString()
        //		                    ,"[552d0a]"+NGUIUtil.GetStringByKey(10000057)+"[-]"+m_Info.m_hp.ToString(),22);
        //
        //		AddDoubleLabelItem ("[552d0a]"+NGUIUtil.GetStringByKey(10000053)+"[-]"+m_Info.m_phyattack.ToString()
        //		                    ,"[552d0a]"+NGUIUtil.GetStringByKey(10000055)+"[-]"+m_Info.m_phydefend.ToString(),22);
        //
        //		AddDoubleLabelItem ("[552d0a]"+NGUIUtil.GetStringByKey(10000071)+"[-]"+m_Info.m_magicattack.ToString()
        //		                    ,"[552d0a]"+NGUIUtil.GetStringByKey(10000056)+"[-]"+m_Info.m_magicdefend.ToString(),22);
        AddGrayItem();


        string StrLimit = "";

        int NextQuality = ConfigM.GetNextQuality(m_Info.Quality);
        int LimitLev    = buildingM.GetUpQualityLevelNeed(m_Info);

        CanQualityResult result = buildingM.GetQualityCanUP(m_Info);

        if (result == CanQualityResult.QualityMax)
        {
            MyHead.table.Reposition();
            return;
        }

        if (result != CanQualityResult.CanUp)
        {
            StrLimit = string.Format("[552d0a]" + NGUIUtil.GetStringByKey(10000072) + "[-]" + "[FF0000]" + NGUIUtil.GetStringByKey(10000091) + "[-]", LimitLev);
        }
        else
        {
            StrLimit = string.Format("[552d0a]" + NGUIUtil.GetStringByKey(10000072) + ":[-]");
        }

        m_CanUp = result == CanQualityResult.CanUp;
        AddLabelItem(StrLimit, 20);

        AddNeedMaTerial();
        AddShengJieBtn();

        MyHead.table.Reposition();

        DoCanShengJie();
    }
예제 #5
0
    /// <summary>
    /// 获取升阶所需资源
    /// </summary>
    /// <param name="SoldierType">炮弹兵类型</param>
    /// <param name="Quality">当前阶</param>
    /// <param name="NeedMaterial">需要材料,key item id,value 数量</param>
    /// <param name="Star">建筑星级</param>
    /// <returns>建筑数据,null 获取失败</returns>
    public static void GetUpQualityNeed(int SoldierType, int CurQuality, ref int LimitLevel,
                                        ref int equipID1, ref int equipID2, ref int equipID3,
                                        ref int equipID4, ref int equipID5, ref int equipID6)
    {
        s_soldierqualityInfo Info = GetqualityInfoData(SoldierType, CurQuality);

        if (Info != null)
        {
            equipID1 = Info.equipment0;
            equipID2 = Info.equipment1;
            equipID3 = Info.equipment2;
            equipID4 = Info.equipment3;
            equipID5 = Info.equipment4;
            equipID6 = Info.equipment5;
        }
        //
        s_soldierqualityInfo Info1 = GetqualityInfoData(SoldierType, ConfigM.GetNextQuality(CurQuality));

        if (Info1 != null)
        {
            LimitLevel = Info1.levellimit;
        }
    }
예제 #6
0
    /// <summary>
    /// 检测炮弹兵是否满足进阶条件
    /// </summary>
    public bool CheckSoldierJinJie()
    {
        Dictionary <int, int> l = new Dictionary <int, int>();

        // 是否最高阶
        if (ConfigM.GetNextQuality(Quality) == 0)
        {
            return(false);
        }
        int levelLimit = 0;
        int equipID1   = 0;
        int equipID2   = 0;
        int equipID3   = 0;
        int equipID4   = 0;
        int equipID5   = 0;
        int equipID6   = 0;

        SoldierM.GetUpQualityNeed(SoldierTypeID, Quality, ref levelLimit,
                                  ref equipID1, ref equipID2, ref equipID3,
                                  ref equipID4, ref equipID5, ref equipID6);
        // 等级限制
        if (Level < levelLimit)
        {
            return(false);
        }

        //需要的装备
        List <int> lEquipsID = new List <int>();

        if (Equipment0 <= 0)
        {
            lEquipsID.Add(equipID1);
        }
        if (Equipment1 <= 0)
        {
            lEquipsID.Add(equipID2);
        }
        if (Equipment2 <= 0)
        {
            lEquipsID.Add(equipID3);
        }
        if (Equipment3 <= 0)
        {
            lEquipsID.Add(equipID4);
        }
        if (Equipment4 <= 0)
        {
            lEquipsID.Add(equipID5);
        }
        if (Equipment5 <= 0)
        {
            lEquipsID.Add(equipID6);
        }
        // 不缺装备
        if (lEquipsID.Count == 0)
        {
            return(true);
        }
        //统计需要的装备
        foreach (int itemid in lEquipsID)
        {
            ItemTypeInfo ItemInfo = ItemDC.SearchItem(itemid);            //检测装备道具是否存在
            //检测装备是否存在
            if (ItemInfo == null)
            {
                return(false);
            }
            //检测等级是否满足装备要求
            if (Level < ItemInfo.m_level)
            {
                return(false);
            }

            if (l.ContainsKey(itemid) == false)
            {
                l.Add(itemid, 1);
            }
            else
            {
                l[itemid] = l[itemid] + 1;
            }
        }
        //判断装备数量是否够
        foreach (int itemid in l.Keys)
        {
            int num = ItemDC.CheckItem(itemid);
            if (num < l[itemid])
            {
                return(false);
            }
        }
        return(true);
    }