/// <summary>
    /// 一组目标是否完成
    /// </summary>
    /// <param name="copyTargetInfo"></param>
    /// <returns></returns>
    public bool IsCopyTargetCompleted(CopyTargetInfo copyTargetInfo)
    {
        for (int i = 0; i < copyTargetInfo.waveIdList.Count; i++)
        {
            if (false == m_listCompletedWaveId.Contains(copyTargetInfo.waveIdList[i]))
            {
                return(false);
            }
        }

        return(true);
    }
    /// <summary>
    /// 进入副本时 初始化波数数据
    /// </summary>
    void InitWaveIdListByCopyId()
    {
        m_listCopyTarget.Clear();

        List <CopyTargetDataBase> copyTargetDbList = GameTableManager.Instance.GetTableList <CopyTargetDataBase>();

        copyTargetDbList = copyTargetDbList.FindAll((data) => { return(data.copyId == this.m_uEnterCopyID); });

        for (int i = 0; i < copyTargetDbList.Count; i++)
        {
            CopyTargetInfo info = m_listCopyTarget.Find((data) => { return(data.waveType == copyTargetDbList[i].waveType); });

            //有同组的波数
            if (info != null)
            {
                if (false == info.waveIdList.Contains(copyTargetDbList[i].waveId))
                {
                    info.waveIdList.Add(copyTargetDbList[i].waveId);
                }
            }
            //无同组的波数
            else
            {
                CopyTargetInfo copyTargetInfo = new CopyTargetInfo();
                copyTargetInfo.stepId   = copyTargetDbList[i].stepId;
                copyTargetInfo.waveType = copyTargetDbList[i].waveType;
                copyTargetInfo.npcId    = copyTargetDbList[i].npcId;
                copyTargetInfo.mapId    = copyTargetDbList[i].mapId;

                List <uint> waveIdList = new List <uint>();
                waveIdList.Add(copyTargetDbList[i].waveId);
                copyTargetInfo.waveIdList = waveIdList;

                m_listCopyTarget.Add(copyTargetInfo);
            }

            //当前副本总共的阶段数
            if (false == m_listCopyStepId.Exists((d) => { return(d == copyTargetDbList[i].stepId); }))
            {
                m_listCopyStepId.Add(copyTargetDbList[i].stepId);
            }
        }
    }
Ejemplo n.º 3
0
    public override void SetGridData(object data)
    {
        base.SetGridData(data);

        this.copyTarget = data as CopyTargetInfo;
    }
    public string GetCopyTargetName(CopyTargetInfo copyTargetInfo)
    {
        uint copyId = DataManager.Manager <ComBatCopyDataManager>().EnterCopyID;

        string name = string.Empty;

        for (int j = 0; j < copyTargetInfo.waveIdList.Count; j++)
        {
            uint waveId           = copyTargetInfo.waveIdList[j];
            bool isCompleted      = IsCopyTargetWaveCompleted(waveId);
            CopyTargetDataBase db = GameTableManager.Instance.GetTableItem <CopyTargetDataBase>(copyId, (int)waveId);
            if (db != null)
            {
                string tempName = string.Empty;
                if (isCompleted)
                {
                    tempName = ColorManager.GetColorString(ColorType.Green, db.completeWaveName);
                }
                else
                {
                    tempName = db.waveName;
                }

                if (copyTargetInfo.waveIdList.Count > 1 && j < copyTargetInfo.waveIdList.Count - 1)
                {
                    tempName = string.Format("{0}\n", tempName);
                }

                name = name + tempName;

                //五行阵副本
                if (IsWuXinZhenCopy())
                {
                    uint finishCount = GetWuXinZhenWaveFinishCount(db.waveListStr);
                    name = string.Format(name, finishCount);
                }

                //特殊处理演武场
                if (IsYanWuChangCopy(copyId))
                {
                    if (waveId == 37)
                    {
                        name = string.Format(db.waveName, this.LaskSkillWave);
                    }

                    if (waveId == 38)
                    {
                        string exp = ColorManager.GetColorString(ColorType.Yellow, this.m_copyRewardExp.ToString());
                        name = string.Format("{0}\n    {1}", db.waveName, exp);
                    }
                }

                //金银山副本
                if (IsGoldCopy(copyId))
                {
                    if (waveId == 2)
                    {
                        name = string.Format(db.waveName, this.LaskSkillWave);
                    }

                    if (waveId == 3)
                    {
                        string gold = ColorManager.GetColorString(ColorType.Yellow, this.m_gainGoldInCopy.ToString());
                        name = string.Format("{0}\n    {1}", db.waveName, gold);
                    }
                }

                //世界聚宝
                if (IsWorldJuBao(copyId))
                {
                    //排行
                    if (waveId == 1)
                    {
                        string rank = DataManager.Manager <JvBaoBossWorldManager>().MyBossDamRank.ToString();
                        name = string.Format(db.waveName, rank);
                    }

                    //鼓舞加成
                    if (waveId == 2)
                    {
                        string add = DataManager.Manager <JvBaoBossWorldManager>().CurInspirePileValue.ToString();
                        name = string.Format(db.waveName, add);
                    }

                    //累计伤害值
                    if (waveId == 3)
                    {
                        uint   myBossDamage = DataManager.Manager <JvBaoBossWorldManager>().MyBossDam;
                        string damage       = ColorManager.GetColorString(ColorType.Yellow, myBossDamage.ToString());
                        name = string.Format("{0}\n    {1}", db.waveName, damage);
                    }
                }
            }
        }

        return(name);
    }