Beispiel #1
0
        /// <summary>
        /// 通过[副本ID]二分快速查表
        /// </summary>
        /// <param name="copyId">副本ID</param>
        /// <returns></returns>
        public static IEnumerable <CopyTargetDataBase> Query(this List <CopyTargetDataBase> sorted, uint copyId)
        {
            var key = new CopyTargetDataBase()
            {
                copyId = copyId
            };
            var comparer = new Comparer1();
            var from     = sorted.BinarySearch(key, comparer);

            if (from < 0)
            {
                yield break;
            }
            var to = from + 1;

            while (from > 0 && comparer.Compare(key, sorted[from - 1]) == 0)
            {
                from--;
            }
            while (to < sorted.Count && comparer.Compare(key, sorted[to]) == 0)
            {
                to++;
            }
            for (var i = from; i < to; i++)
            {
                yield return(sorted[i]);
            }
        }
Beispiel #2
0
    /// <summary>
    /// title
    /// </summary>
    void InitCopyTargetTitle()
    {
        uint waveId = m_listCopyTarget.Count > 0 ? m_listCopyTarget[0].waveIdList[0] : 0;
        CopyTargetDataBase copyTargetDb = GameTableManager.Instance.GetTableItem <CopyTargetDataBase>(copyManager.EnterCopyID, (int)waveId);

        if (copyTargetDb != null)
        {
            m_label_copyTargetTitle.text = copyTargetDb.stepName;
        }
    }
Beispiel #3
0
        /// <summary>
        /// 通过[副本ID + 波数]二分快速查表
        /// </summary>
        /// <param name="copyId">副本ID</param>
        /// <param name="waveId">波数</param>
        /// <returns></returns>
        public static CopyTargetDataBase Query(this List <CopyTargetDataBase> sorted, uint copyId, uint waveId)
        {
            var key = new CopyTargetDataBase()
            {
                copyId = copyId, waveId = waveId
            };
            var comparer = new Comparer2();
            var index    = sorted.BinarySearch(key, comparer);

            return(index >= 0 ? sorted[index] : default(CopyTargetDataBase));
        }
    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);
    }