/// <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"); } }
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); // } }