Example #1
0
        /// <summary>
        /// 领悟秘籍诀要
        /// </summary>
        /// <param name="secret">Secret.</param>
        public void StudySecret(BookData book, SecretData secret)
        {
            List <SecretData> secrets = null;

            db = OpenDb();
            SqliteDataReader sqReader = db.ExecuteQuery("select Id, ExpData, SecretsData from BookExpsTable where BookId = " + book.Id + " and BelongToRoleId = '" + currentRoleId + "'");

            if (sqReader.Read())
            {
                ExpData exp = JsonManager.GetInstance().DeserializeObject <ExpData>(DESStatics.StringDecder(sqReader.GetString(sqReader.GetOrdinal("ExpData"))));
                secrets = JsonManager.GetInstance().DeserializeObject <List <SecretData> >(DESStatics.StringDecder(sqReader.GetString(sqReader.GetOrdinal("SecretsData"))));
                int bookLv = Statics.GetBookLV(exp.Cur);
                if (secrets.Count >= bookLv)
                {
                    AlertCtrl.Show(string.Format("<color=\"{0}\">{1}</color>目前只能领悟最多{2}张诀要", Statics.GetQualityColorString(book.Quality), book.Name, bookLv));
                    db.CloseSqlConnection();
                    return;
                }
                else
                {
                    if (secrets.FindIndex(item => item.Type == secret.Type) < 0)
                    {
                        secrets.Add(secret);
                        db.ExecuteQuery("update BookExpsTable set SecretsData = '" + DESStatics.StringEncoder(JsonManager.GetInstance().SerializeObject(secrets)) + "' where Id = " + sqReader.GetInt32(sqReader.GetOrdinal("Id")));
                        db.ExecuteQuery("update BookSecretsTable set BelongToBookId = '" + book.Id + "' where Id = '" + secret.PrimaryKeyId + "'");
                    }
                    else
                    {
                        AlertCtrl.Show("该类型诀要不能重复领悟!");
                        db.CloseSqlConnection();
                        return;
                    }
                }
            }
            else
            {
                secrets = new List <SecretData>()
                {
                    secret
                };
                //处理空数据初始化
                db.ExecuteQuery("insert into BookExpsTable (BookId, ExpData, SecretsData, BelongToRoleId) values('" + book.Id + "', '" + DESStatics.StringEncoder(JsonManager.GetInstance().SerializeObject(new ExpData(0, Statics.GetBookMaxExp(book.Quality)))) + "', '" + DESStatics.StringEncoder(JsonManager.GetInstance().SerializeObject(secrets)) + "', '" + currentRoleId + "')");
                db.ExecuteQuery("update BookSecretsTable set BelongToBookId = '" + book.Id + "' where Id = '" + secret.PrimaryKeyId + "'");
            }
            db.CloseSqlConnection();
            if (secrets != null)
            {
                Messenger.Broadcast <BookData, List <SecretData> >(NotifyTypes.DealSecretEcho, book, secrets);
                Statics.CreatePopMsg(Vector3.zero, string.Format("领悟<color=\"{0}\">{1}</color>后<color=\"{2}\">{3}</color>更为精进!!", Statics.GetQualityColorString(secret.Quality), secret.Name, Statics.GetQualityColorString(book.Quality), book.Name), Color.white, 30);
                SoundManager.GetInstance().PushSound("ui0010");
            }
        }
Example #2
0
        public override void RefreshView()
        {
            iconImage.sprite = Statics.GetIconSprite(bookData.IconId);
            flashImage.gameObject.SetActive(((int)bookData.Quality) >= ((int)QualityType.FlashGold));
            nameText.text = string.Format("<color=\"{0}\">{1}</color>", Statics.GetQualityColorString(bookData.Quality), bookData.Name);
            descText.text = string.Format("{0}{1}{2}{3}\n描述:\n{4}",
                                          bookData.GetCurrentSkill() != null ? bookData.GetCurrentSkill().Desc : "心法无招式",
                                          bookData.LimitWeaponType != WeaponType.None ? string.Format("\n兵器限制:{0}", Statics.GetEnmuDesc <WeaponType>(bookData.LimitWeaponType)) : "",
                                          info != "" ? string.Format("\n附加属性:\n<color=\"#00FF00\">{0}</color>", info) : "",
                                          secretInfo != "" ? string.Format("\n诀要加成属性:\n<color=\"#00FF00\">{0}</color>", secretInfo) : "",
                                          !string.IsNullOrEmpty(bookData.Desc) ? bookData.Desc : "无");
            if (bookData.IsMindBook)
            {
                titleText.text = "心法";
            }
            else if (bookData.IsLostKnowledge)
            {
                titleText.text = "绝学";
            }
            else
            {
                titleText.text = "秘籍";
            }
            if (prefabObj == null)
            {
                prefabObj = Statics.GetPrefab("Prefabs/UI/GridItems/SkillItemContainer");
            }
            StartCoroutine(refreshHeight());
            if (!bookData.IsMindBook)
            {
                secretsDescText.text = string.Format("修为:\n{0}/{1}", expAndSecretData.Exp.Cur, expAndSecretData.Exp.Max > 0 ? Statics.GetBookStepExp(expAndSecretData.Exp.Cur) : 0);
                studyText.text       = string.Format("领悟:{0}/{1}", expAndSecretData.Secrets.Count, Statics.GetBookLV(expAndSecretData.Exp.Cur));
                MakeButtonEnable(studyBtn, true);
            }
            else
            {
                secretsDescText.text = "修为:\n不可修炼";
                studyText.text       = "不可领悟";
                MakeButtonEnable(studyBtn, false);
            }
//			if (bookData.Skills.Count > 0) {
//				emptyImage.gameObject.SetActive(false);
//				SkillData skill;
//				GameObject itemPrefab;
//				SkillItemContainer container;
//				for (int i = 0; i < bookData.Skills.Count; i++) {
//					skill = bookData.Skills[i];
//					if (containers.Count <= i) {
//						itemPrefab = Statics.GetPrefabClone(prefabObj);
//						MakeToParent(gridTrans.transform, itemPrefab.transform);
//						container = itemPrefab.GetComponent<SkillItemContainer>();
//						containers.Add(container);
//					}
//					else {
//						container = containers[i];
//					}
//					container.UpdateData(skill, i != bookData.Skills.Count - 1);
//					container.RefreshView();
//				}
//			}
//			else {
//				emptyImage.gameObject.SetActive(true);
//			}
        }