/// <summary>
        /// 初始化符文工厂
        /// </summary>
        private void InitInscriptionPage()
        {
            foreach (KeyValuePair <int, InscriptionPageMode> item in PlayerInscriptionPageMessage.InscriptionPageList)
            {
                InscriptionPageMode insPM = item.Value;
                InscriptionPage     iPage = new InscriptionPage();
                iPage.pageId   = insPM._inscriptionPageId;
                iPage.pageName = insPM._inscriptionPageName;
                foreach (InscriptionModel inscrModle in insPM._inscriptionModelList)
                {
                    Inscription insc = InscriptionFactory.Instance.GetInscriptionById(inscrModle._inscriptionID);
                    switch (inscrModle._inscriptionColor)
                    {
                    case InscriptionColor.GREEN:
                        iPage.SetGreenInscription(insc, inscrModle._inscriptionPosId);
                        break;

                    case InscriptionColor.RED:
                        iPage.SetRedInscription(insc, inscrModle._inscriptionPosId);
                        break;

                    case InscriptionColor.BLUE:
                        iPage.SetBlueInsciption(insc, inscrModle._inscriptionPosId);
                        break;
                    }
                }
                if (!_inscriptionPageList.ContainsKey(insPM._inscriptionPageId))
                {
                    _inscriptionPageList.Add(insPM._inscriptionPageId, iPage);
                }
            }
        }
示例#2
0
 /// <summary>
 ///在指定位置添加绿色符文
 /// </summary>
 /// <param name="greenIns"></param>
 /// <param name="posID"></param>
 public void SetGreenInscription(Inscription greenIns, int posID)
 {
     if (_greenInscription == null)
     {
         _greenInscription = new SortedDictionary <int, Inscription>();
     }
     if ((posID > 10 && posID <= 0) || _greenInscription.ContainsKey(posID))
     {
         return;
     }
     AddAttribueUpdate(greenIns);
     _greenInscription.Add(posID, greenIns);
 }
示例#3
0
 /// <summary>
 /// 在指定位置添加蓝色符文
 /// </summary>
 /// <param name="blueIns"></param>
 /// <param name="posID"></param>
 public void SetBlueInsciption(Inscription blueIns, int posID)
 {
     if (_blueInscriotion == null)
     {
         _blueInscriotion = new SortedDictionary <int, Inscription>();
     }
     if ((posID > 10 && posID <= 0) || _blueInscriotion.ContainsKey(posID))
     {
         return;
     }
     AddAttribueUpdate(blueIns);
     _blueInscriotion.Add(posID, blueIns);
 }
示例#4
0
 /// <summary>
 /// 在指定位置添加红色符文
 /// </summary>
 /// <param name="redIns"></param>
 /// <param name="posID"></param>
 public void SetRedInscription(Inscription redIns, int posID)
 {
     if (_redInsription == null)
     {
         _redInsription = new SortedDictionary <int, Inscription>();
     }
     if ((posID > 10 && posID <= 0) || _redInsription.ContainsKey(posID))
     {
         return;
     }
     AddAttribueUpdate(redIns);
     _redInsription.Add(posID, redIns);
 }
示例#5
0
        /// <summary>
        /// 根据符文ID获取指定的符文
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public Inscription GetInscriptionById(int id)
        {
            Inscription ins = new Inscription();

            if (_inscription != null)
            {
                foreach (Inscription inscription in _inscription)
                {
                    if (inscription.inscriptionID == id)
                    {
                        ins = inscription;
                    }
                }
            }
            return(ins);
        }
示例#6
0
 /// <summary>
 /// 添加铭文时,更新属性
 /// </summary>
 /// <param name="inscription"></param>
 private void AddAttribueUpdate(Inscription inscr)
 {
     if (_inscriptionAttribue == null)
     {
         _inscriptionAttribue = new SortedDictionary <int, InscriptionAttribute>();
     }
     foreach (InscriptionAttribute attributeItem in inscr.inscriptionAttribute)
     {
         //Debug.Log("id:"+attributeItem.attributeId);
         //Debug.Log("value:"+attributeItem.attribueValue);
         if (_inscriptionAttribue.ContainsKey(attributeItem.attributeId))
         {
             _inscriptionAttribue[attributeItem.attributeId].attribueValue += attributeItem.attribueValue;
         }
         else
         {
             InscriptionAttribute a = ChangeAttribute(attributeItem);
             _inscriptionAttribue.Add(attributeItem.attributeId, a);
         }
     }
 }
示例#7
0
 /// <summary>
 /// 移除铭文时,更新属性
 /// </summary>
 /// <param name="inscr"></param>
 private void RemoveAttributeUpdata(Inscription inscr)
 {
     if (_inscriptionAttribue == null)
     {
         _inscriptionAttribue = new SortedDictionary <int, InscriptionAttribute>();
     }
     foreach (InscriptionAttribute attributeItem in inscr.inscriptionAttribute)
     {
         if (_inscriptionAttribue.ContainsKey(attributeItem.attributeId))
         {
             _inscriptionAttribue[attributeItem.attributeId].attribueValue -= attributeItem.attribueValue;
             if (_inscriptionAttribue[attributeItem.attributeId].attribueValue <= 0)
             {
                 _inscriptionAttribue.Remove(attributeItem.attributeId);
             }
         }
         else
         {
             Debug.Log("There has many error!");
         }
     }
 }