public void UpdateData(RoleData role) { roleData = role; roleData.Init(); desc = string.Format("称谓:{0}\n门派:{1}\n地位:{2}", roleData.Name, Statics.GetOccupationName(roleData.Occupation), roleData.IsHost ? ("当家" + string.Format("(<color=\"{0}\">{1}</color>)", Statics.GetGenderColor(roleData.Gender), Statics.GetGenderDesc(roleData.Gender))) : "门客"); info = string.Format("状态:{0}\n气血:{1}/{2}\n外功:{3}\n外防:{4}\n内功:{5}\n内防:{6}\n攻速:{7}\n轻功:{8}\n{9}", Statics.GetInjuryName(roleData.Injury), roleData.HP, roleData.MaxHP, roleData.PhysicsAttack, roleData.PhysicsDefense, roleData.MagicAttack, roleData.MagicDefense, roleData.AttackSpeed, roleData.Dodge, roleData.Desc == "" ? "" : "人物介绍:\n" + roleData.Desc); }
public void UpdateData(string id, JArray data, bool willDuring) { msgStr = data[2].ToString(); msgStr = msgStr.Replace("<n>", DbManager.Instance.HostData.Name); msgStr = msgStr.Replace("<o>", Statics.GetOccupationName(DbManager.Instance.HostData.Occupation)); msgStr = msgStr.Replace("<s>", Statics.GetGenderDesc(DbManager.Instance.HostData.Gender)); msgStr = msgStr.Replace("<ss>", DbManager.Instance.HostData.Gender == GenderType.Male ? "哥哥" : "姐姐"); msgStr = msgStr.Replace("<sss>", DbManager.Instance.HostData.Gender == GenderType.Male ? "公子" : "小姐"); if (willDuring) { alphaGroup = gameObject.AddComponent <CanvasGroup>(); alphaGroup.alpha = 0; alphaGroup.DOFade(1, 0.5f).OnComplete(() => { if (alphaGroup != null) { Destroy(alphaGroup); } }); } }
public override void RefreshView() { icon.sprite = Statics.GetIconSprite(weaponData.IconId); flashImage.gameObject.SetActive(((int)weaponData.Quality) >= ((int)QualityType.FlashGold)); nameText.text = string.Format("<color=\"{0}\">{1}</color> {2}", Statics.GetQualityColorString(weaponData.Quality), weaponData.Name, weaponLVData.LV > 0 ? ("+" + weaponLVData.LV) : ""); // weaponWidthScript.UpdateData(weaponData); // weaponWidthScript.RefreshView(); infoText.text = info; if (weaponData.BelongToRoleId == "") { occupationText.text = string.Format("门派限制:{0}", weaponData.Occupation != OccupationType.None ? Statics.GetOccupationName(weaponData.Occupation) : "无限制"); } else { occupationText.text = string.Format("仅限 {0} 使用", JsonManager.GetInstance().GetMapping <RoleData>("RoleDatas", weaponData.BelongToRoleId).Name); } lvFullNoticeText.gameObject.SetActive(weaponData.Quality >= QualityType.FlashGold && weaponLVData.LV >= weaponLVData.MaxLV); lvUpgradeBtn.gameObject.SetActive(weaponData.Quality >= QualityType.FlashGold && weaponLVData.LV < weaponLVData.MaxLV); StartCoroutine(refreshHeight()); }
void onClick(GameObject e) { if (!e.GetComponent <Button>().enabled) { return; } switch (e.name) { case "MakeBtn": if (bookData.Occupation == OccupationType.None || bookData.Occupation == hostRoleData.Occupation) { if (bookData.State == BookStateType.Unread) { ConfirmCtrl.Show(string.Format("是否将{0}拼合成<color=\"{1}\">{2}</color>进行研读?", costStr, Statics.GetQualityColorString(bookData.Quality), bookData.Name), () => { Messenger.Broadcast <int>(NotifyTypes.ReadBook, bookData.PrimaryKeyId); }); } else { AlertCtrl.Show(string.Format("<color=\"{0}\">{1}</color>已经研读过", Statics.GetQualityColorString(bookData.Quality), bookData.Name), null); } } else { AlertCtrl.Show(string.Format("非{0}弟子不得研习<color=\"{1}\">{2}</color>!", Statics.GetOccupationName(bookData.Occupation), Statics.GetQualityColorString(bookData.Quality), bookData.Name)); } break; case "Btn": Messenger.Broadcast <BookData>(NotifyTypes.ShowBookDetailPanel, bookData); break; default: break; } viewedNewFlag(); }
public override void RefreshView() { icon.sprite = Statics.GetIconSprite(weaponData.IconId); nameText.text = string.Format("<color=\"{0}\">{1}</color>", Statics.GetQualityColorString(weaponData.Quality), weaponData.Name); weaponWidthScript.UpdateData(weaponData); weaponWidthScript.RefreshView(); infoText.text = info; if (weaponData.BelongToRoleId == "") { occupationText.text = string.Format("门派限制:{0}", weaponData.Occupation != OccupationType.None ? Statics.GetOccupationName(weaponData.Occupation) : "无限制"); } else { occupationText.text = string.Format("仅限 {0} 使用", JsonManager.GetInstance().GetMapping <RoleData>("RoleDatas", weaponData.BelongToRoleId).Name); } }
/// <summary> /// 获取任务详情数据 /// </summary> /// <param name="taskId">Task identifier.</param> public void GetTaskDetailInfoData(string taskId) { validTaskListData(); TaskData data = getTask(taskId); if (data != null && (data.State != TaskStateType.CanNotAccept && data.State != TaskStateType.Completed)) { //就职任务执行之前判断性别 if (data.IsInaugurationTask) { RoleData hostRoleData = GetHostRoleData(); if (hostRoleData.Occupation != OccupationType.None) { AlertCtrl.Show("你已是有门有派之人, 不可在此另行拜师!"); return; } if (hostRoleData.Gender == GenderType.Male) { if (data.InaugurationOccupation == OccupationType.EMei) { AlertCtrl.Show(string.Format("{0}派向来只收女弟子,这位公子请自重", Statics.GetOccupationName(OccupationType.EMei))); return; } } else { if (data.InaugurationOccupation == OccupationType.ShaoLin) { AlertCtrl.Show("阿弥陀佛,佛门乃清净之地,这位女施主请回"); return; } } } //将任务数据转化成步骤信息发送给前端 JArray dialogDataList = new JArray(); TaskDialogData dialog; TaskDialogStatusType dialogStatus; for (int i = 0; i < data.Dialogs.Count; i++) { dialog = data.Dialogs[i]; dialogStatus = data.GetDialogStatus(i); switch (dialogStatus) { case TaskDialogStatusType.HoldOn: dialogDataList.Add(new JArray(i.ToString(), dialog.Type, dialog.TalkMsg, (short)dialogStatus, dialog.IconId, dialog.StringValue)); break; case TaskDialogStatusType.ReadYes: case TaskDialogStatusType.ReadNo: dialogDataList.Add(new JArray(i.ToString(), dialog.Type, dialog.TalkMsg, (short)dialogStatus, dialog.IconId, dialog.StringValue)); //除了谈话和提示信息类的步骤外,将完成结果返回给前端 if (dialog.Type != TaskDialogType.JustTalk && dialog.Type != TaskDialogType.Notice) { dialogDataList.Add(new JArray(i.ToString() + "_0", TaskDialogType.Notice, dialogStatus == TaskDialogStatusType.ReadYes ? dialog.YesMsg : dialog.NoMsg, (short)dialogStatus, dialog.IconId, dialog.StringValue)); } break; default: break; } } Messenger.Broadcast <JArray>(NotifyTypes.ShowTaskDetailInfoPanel, new JArray(data.Id, dialogDataList, data.HostUpgradeLv)); } }
/// <summary> /// 检测任务对话状态(任务对话的进度在这里来更新, 每次验证任务对话类型,然后判断是否可以完成,如果可以完成则CurrentDialogIndex+1) /// </summary> /// <param name="taskId">Task identifier.</param> /// <param name="auto">If set to <c>true</c> auto.</param> /// <param name="selectedNo">If set to <c>true</c> selected no.</param> public void CheckTaskDialog(string taskId, bool auto = false, bool selectedNo = false) { TaskData data = getTask(taskId); if (data != null) { if (data.State == TaskStateType.Completed) { // db.CloseSqlConnection(); return; } string triggerNewBackTaskDataId = ""; TaskDialogType dialogType = data.GetCurrentDialog().Type; bool canModify = false; JArray pushData = new JArray(); TaskDialogData dialog = data.GetCurrentDialog(); data.State = TaskStateType.Accepted; if (data.GetCurrentDialogStatus() == TaskDialogStatusType.Initial) { if (dialogType == TaskDialogType.JustTalk || dialogType == TaskDialogType.Notice) { //交谈步骤和信息显示步骤直接变为已读状态 data.SetCurrentDialogStatus(TaskDialogStatusType.ReadYes); } else { //其他状态的话需要等待下一个步骤提交时检测是否可以完成,所以先HoldOn data.SetCurrentDialogStatus(TaskDialogStatusType.HoldOn); bool loadEvents = false; //如果是动态战斗事件步骤需要在这里创建动态战斗事件 if (dialogType == TaskDialogType.EventFightWined) { // Debug.LogWarning("如果是动态战斗事件步骤需要在这里创建动态战斗事件"); //创建一个区域大地图的战斗事件 CreateNewEvent(SceneEventType.Battle, dialog.StringValue, UserModel.CurrentUserData.CurrentAreaSceneName); loadEvents = true; } //如果是区域大地图野外任务事件步骤需要在这里创建动态任务事件 if (dialogType == TaskDialogType.CreateTaskIsBindedWithEvent) { // Debug.LogWarning("如果是区域大地图野外任务事件步骤需要在这里创建动态任务事件"); //创建一个区域大地图的战斗事件 AddNewTask(dialog.StringValue); CreateNewEvent(SceneEventType.Task, dialog.StringValue, UserModel.CurrentUserData.CurrentAreaSceneName); loadEvents = true; } if (loadEvents) { //加载动态事件列表 Messenger.Broadcast <string>(NotifyTypes.GetActiveEventsInArea, UserModel.CurrentUserData.CurrentAreaSceneName); } } dialog = data.GetCurrentDialog(); pushData.Add(new JArray(dialog.Index.ToString(), dialog.Type, dialog.TalkMsg, (short)data.GetCurrentDialogStatus(), dialog.IconId, dialog.StringValue)); canModify = true; } else { RoleData hostRole; switch (dialogType) { case TaskDialogType.Choice: if (!auto) { triggerNewBackTaskDataId = selectedNo ? data.GetCurrentDialog().BackNoTaskDataId : data.GetCurrentDialog().BackYesTaskDataId; data.SetCurrentDialogStatus(selectedNo ? TaskDialogStatusType.ReadNo : TaskDialogStatusType.ReadYes); //输出步骤执行结果信息 pushData.Add(new JArray(dialog.Index.ToString() + "_0", TaskDialogType.Notice, data.GetCurrentDialogStatus() == TaskDialogStatusType.ReadYes ? dialog.YesMsg : dialog.NoMsg, (short)data.GetCurrentDialogStatus(), dialog.IconId, dialog.StringValue)); canModify = true; } break; case TaskDialogType.ConvoyNpc: //暂时没考虑好怎么做护送npc任务 data.SetCurrentDialogStatus(TaskDialogStatusType.ReadYes); pushData.Add(new JArray(dialog.Index.ToString() + "_0", TaskDialogType.Notice, dialog.YesMsg, (short)data.GetCurrentDialogStatus(), dialog.IconId, dialog.StringValue)); canModify = true; break; case TaskDialogType.FightWined: case TaskDialogType.EventFightWined: if (IsFightWined(dialog.StringValue)) { data.SetCurrentDialogStatus(TaskDialogStatusType.ReadYes); pushData.Add(new JArray(dialog.Index.ToString() + "_0", TaskDialogType.Notice, dialog.YesMsg, (short)data.GetCurrentDialogStatus(), dialog.IconId, dialog.StringValue)); canModify = true; } break; case TaskDialogType.JustTalk: case TaskDialogType.Notice: canModify = true; break; case TaskDialogType.RecruitedThePartner: if (GetRoleDataByRoleId(dialog.StringValue) != null) { data.SetCurrentDialogStatus(TaskDialogStatusType.ReadYes); pushData.Add(new JArray(dialog.Index.ToString() + "_0", TaskDialogType.Notice, dialog.YesMsg, (short)data.GetCurrentDialogStatus(), dialog.IconId, dialog.StringValue)); canModify = true; } break; case TaskDialogType.SendItem: if (CostItemFromBag(dialog.StringValue, dialog.IntValue)) { DbManager.Instance.UpdateUsedItemRecords(dialog.StringValue, dialog.IntValue); data.SetCurrentDialogStatus(TaskDialogStatusType.ReadYes); pushData.Add(new JArray(dialog.Index.ToString() + "_0", TaskDialogType.Notice, dialog.YesMsg, (short)data.GetCurrentDialogStatus(), dialog.IconId, dialog.StringValue)); canModify = true; } break; case TaskDialogType.UsedTheBook: hostRole = GetHostRoleData(); if (hostRole != null) { for (int i = 0; i < hostRole.ResourceBookDataIds.Count; i++) { if (hostRole.ResourceBookDataIds[i] == dialog.StringValue) { data.SetCurrentDialogStatus(TaskDialogStatusType.ReadYes); pushData.Add(new JArray(dialog.Index.ToString() + "_0", TaskDialogType.Notice, dialog.YesMsg, (short)data.GetCurrentDialogStatus(), dialog.IconId, dialog.StringValue)); canModify = true; break; } } } break; case TaskDialogType.UsedTheSkillOneTime: if (GetUsedTheSkillTimes(dialog.StringValue) > 0) { data.SetCurrentDialogStatus(TaskDialogStatusType.ReadYes); pushData.Add(new JArray(dialog.Index.ToString() + "_0", TaskDialogType.Notice, dialog.YesMsg, (short)data.GetCurrentDialogStatus(), dialog.IconId, dialog.StringValue)); canModify = true; } break; case TaskDialogType.UsedTheWeapon: hostRole = GetHostRoleData(); if (hostRole.ResourceWeaponDataId == dialog.StringValue) { data.SetCurrentDialogStatus(TaskDialogStatusType.ReadYes); pushData.Add(new JArray(dialog.Index.ToString() + "_0", TaskDialogType.Notice, dialog.YesMsg, (short)data.GetCurrentDialogStatus(), dialog.IconId, dialog.StringValue)); canModify = true; } break; case TaskDialogType.WeaponPowerPlusSuccessed: if (GetWeaponPowerPlusSuccessedTimes(dialog.IntValue) > 0) { data.SetCurrentDialogStatus(TaskDialogStatusType.ReadYes); pushData.Add(new JArray(dialog.Index.ToString() + "_0", TaskDialogType.Notice, dialog.YesMsg, (short)data.GetCurrentDialogStatus(), dialog.IconId, dialog.StringValue)); canModify = true; } break; case TaskDialogType.SendResource: // if (CostResource((ResourceType)Enum.Parse(typeof(ResourceType), dialog.StringValue), dialog.IntValue)) { if (GetResourceNum((ResourceType)Enum.Parse(typeof(ResourceType), dialog.StringValue)) >= dialog.IntValue) { data.SetCurrentDialogStatus(TaskDialogStatusType.ReadYes); pushData.Add(new JArray(dialog.Index.ToString() + "_0", TaskDialogType.Notice, dialog.YesMsg, (short)data.GetCurrentDialogStatus(), dialog.IconId, dialog.StringValue)); canModify = true; } break; case TaskDialogType.TheHour: if (FramePanelCtrl.CurrentTimeIndex == dialog.IntValue) { data.SetCurrentDialogStatus(TaskDialogStatusType.ReadYes); pushData.Add(new JArray(dialog.Index.ToString() + "_0", TaskDialogType.Notice, dialog.YesMsg, (short)data.GetCurrentDialogStatus(), dialog.IconId, dialog.StringValue)); canModify = true; } break; case TaskDialogType.PushRoleToWinshop: PushNewRoleToWinShop(dialog.StringValue); data.SetCurrentDialogStatus(TaskDialogStatusType.ReadYes); pushData.Add(new JArray(dialog.Index.ToString() + "_0", TaskDialogType.Notice, dialog.YesMsg, (short)data.GetCurrentDialogStatus(), dialog.IconId, dialog.StringValue)); canModify = true; break; case TaskDialogType.CreateTaskIsBindedWithEvent: if (IsTaskCompleted(dialog.StringValue)) { data.SetCurrentDialogStatus(TaskDialogStatusType.ReadYes); pushData.Add(new JArray(dialog.Index.ToString() + "_0", TaskDialogType.Notice, dialog.YesMsg, (short)data.GetCurrentDialogStatus(), dialog.IconId, dialog.StringValue)); canModify = true; } break; default: break; } if (canModify && data.CheckCompleted()) { data.State = TaskStateType.Completed; } } TaskStateType currentState = data.State; if (canModify) { db = OpenDb(); //如果是可循环的任务这里需要置为可接受,否则置为已完成 if (data.State == TaskStateType.Completed && data.CanRepeat) { data.State = TaskStateType.CanAccept; for (int a = 0; a < data.ProgressData.Count; a++) { data.ProgressData[a] = (short)TaskDialogStatusType.Initial; } data.SetCurrentDialogIndex(0); } //update data db.ExecuteQuery("update TasksTable set ProgressData = '" + data.ProgressData.ToString() + "', CurrentDialogIndex = " + data.CurrentDialogIndex + ", State = " + ((int)data.State) + " where TaskId ='" + taskId + "' and BelongToRoleId = '" + currentRoleId + "'"); db.CloseSqlConnection(); int index = taskListData.FindIndex(item => item.Id == taskId); //update cache if (taskListData.Count > index) { taskListData[index] = data; } } //触发新任务 if (triggerNewBackTaskDataId != "" && triggerNewBackTaskDataId != "0") { AddNewTaskExceptType(triggerNewBackTaskDataId, TaskType.IsBindedWithEvent); //检测任务状态 checkAddedTasksStatus(); } if (currentState == TaskStateType.Completed) { //添加任务奖励物品 //查询背包是否已满 bool enoughBagSeat = false; // int hasNum = GetItemNumLeftInBag(); //还剩余的背包位子 // if (hasNum > 0) { // enoughBagSeat = true; // } //任务掉落的物品没有背包限制 List <DropData> drops = PushItemToBag(data.Rewards, true); if (drops.Count > 0) { Messenger.Broadcast <List <DropData> >(NotifyTypes.ShowDropsListPanel, drops); } //如果是就职任务则提示就职成功 if (data.IsInaugurationTask) { HostData = GetHostRoleData(); if (HostData.Occupation == OccupationType.None) { //加入门派 HostData.Occupation = data.InaugurationOccupation; HostData.Disposed(); db = OpenDb(); db.ExecuteQuery("update RolesTable set RoleData = '" + DESStatics.StringEncoder(JsonManager.GetInstance().SerializeObject(HostData)) + "' where Id = " + HostData.PrimaryKeyId); //判断兵器是否属于本门派 WeaponData currentWeapon = JsonManager.GetInstance().GetMapping <WeaponData>("Weapons", HostData.ResourceWeaponDataId); if (currentWeapon.Occupation != OccupationType.None && currentWeapon.Occupation != HostData.Occupation) { SqliteDataReader sqReader = db.ExecuteQuery("select * from WeaponsTable where BeUsingByRoleId = '" + currentRoleId + "' and BelongToRoleId ='" + currentRoleId + "'"); while (sqReader.Read()) { //将兵器先卸下 int dataId = sqReader.GetInt32(sqReader.GetOrdinal("Id")); db.ExecuteQuery("update WeaponsTable set BeUsingByRoleId = '' where Id = " + dataId); } } db.CloseSqlConnection(); //检查下是否有新兵器需要 CheckNewWeaponIdsOfWorkshop(UserModel.CurrentUserData.CurrentCitySceneId); Messenger.Broadcast(NotifyTypes.MakeCheckNewFlags); //判断城镇界面的新增提示 AlertCtrl.Show(string.Format("你已成功加入{0}!", Statics.GetOccupationName(HostData.Occupation))); } else { AlertCtrl.Show("你已是有门有派之人, 不可在此另行拜师!"); } } //任务完成后出发后续任务 addChildrenTasks(data.Id); //任务完成后移除区域大地图上的任务事件 RemoveTaskEvent(data.Id); } Messenger.Broadcast <JArray>(NotifyTypes.CheckTaskDialogEcho, pushData); if (data.GetCurrentDialogStatus() == TaskDialogStatusType.ReadNo || data.GetCurrentDialogStatus() == TaskDialogStatusType.ReadYes) { data.NextDialogIndex(); } } }
public void RefreshView() { Icon.sprite = Statics.GetIconSprite(weaponData.IconId); FlashImage.gameObject.SetActive(((int)weaponData.Quality) >= ((int)QualityType.FlashGold)); Name.text = string.Format("<color=\"{0}\">{1}</color>", Statics.GetQualityColorString(weaponData.Quality), weaponData.Name); // WeaponWidth.rectTransform.sizeDelta = new Vector2(100f * (weaponData.Width / 100f), WeaponWidth.rectTransform.sizeDelta.y); // PowerIndexDesc0.text = string.Format("+100%伤害概率: {0}%", (int)(weaponData.Rates[1] * 100)); // PowerIndexDesc1.text = string.Format("+50%伤害概率: {0}%", (int)(weaponData.Rates[2] * 100)); // PowerIndexDesc2.text = string.Format("+25%伤害概率: {0}%", (int)(weaponData.Rates[3] * 100)); if (weaponData.BeUsingByRoleId != "") { Btn.gameObject.SetActive(false); bg.sprite = Statics.GetSprite("Border12"); // PowerIndexFlag0.gameObject.SetActive(false); // PowerIndexFlag1.gameObject.SetActive(false); // PowerIndexFlag2.gameObject.SetActive(false); State.text = "已装备"; TakeOffBtn.gameObject.SetActive(true); } else { TakeOffBtn.gameObject.SetActive(false); if (weaponData.Occupation == OccupationType.None || weaponData.Occupation == hostRoleData.Occupation) { Btn.gameObject.SetActive(true); State.text = "已装备"; } else { Btn.gameObject.SetActive(false); State.text = string.Format("<color=\"#FF0000\">限{0}</color>", Statics.GetOccupationName(weaponData.Occupation)); } // if (hostWeaponData != null) { // if (weaponData.Rates[1] != hostWeaponData.Rates[1]) { // PowerIndexFlag0.gameObject.SetActive(true); // PowerIndexFlag0.sprite = Statics.GetSprite(weaponData.Rates[1] > hostWeaponData.Rates[1] ? "StateUp" : "StateDown"); // } // else { // PowerIndexFlag0.gameObject.SetActive(false); // } // // if (weaponData.Rates[2] != hostWeaponData.Rates[2]) { // PowerIndexFlag1.gameObject.SetActive(true); // PowerIndexFlag1.sprite = Statics.GetSprite(weaponData.Rates[2] > hostWeaponData.Rates[2] ? "StateUp" : "StateDown"); // } // else { // PowerIndexFlag1.gameObject.SetActive(false); // } // if (weaponData.Rates[3] != hostWeaponData.Rates[3]) { // PowerIndexFlag2.gameObject.SetActive(true); // PowerIndexFlag2.sprite = Statics.GetSprite(weaponData.Rates[3] > hostWeaponData.Rates[3] ? "StateUp" : "StateDown"); // } // else { // PowerIndexFlag2.gameObject.SetActive(false); // } // } // else { // PowerIndexFlag0.gameObject.SetActive(false); // PowerIndexFlag1.gameObject.SetActive(false); // PowerIndexFlag2.gameObject.SetActive(false); // } } OccupationText.text = weaponData.Occupation != OccupationType.None ? string.Format("门派:{0}", Statics.GetOccupationName(weaponData.Occupation)) : ""; string info = ""; if (weaponData.FixedDamagePlus != 0) { info += info == "" ? "" : "\n"; info += string.Format("固定伤害:{0}", (weaponData.FixedDamagePlus > 0 ? "+" : "") + weaponData.FixedDamagePlus.ToString()); } if (weaponData.DamageRatePlus != 0) { info += info == "" ? "" : "\n"; info += string.Format("最终伤害:{0}%", (weaponData.DamageRatePlus > 0 ? "+" : "") + (weaponData.DamageRatePlus * 100).ToString()); } if (weaponData.PhysicsAttackPlus != 0) { info += info == "" ? "" : "\n"; info += string.Format("外功:{0}", (weaponData.PhysicsAttackPlus > 0 ? "+" : "") + weaponData.PhysicsAttackPlus.ToString()); } DescText.text = info; }
public void RefreshView() { Icon.sprite = Statics.GetIconSprite(roleData.IconId); if (roleData.State == RoleStateType.InTeam) { bg.sprite = Statics.GetSprite("Border12"); } else { bg.sprite = Statics.GetSprite("Border11"); } Desc.text = string.Format("称谓:{0}\n门派:{1}\n地位:{2}\n状态:{3}", roleData.Name, Statics.GetOccupationName(roleData.Occupation), roleData.IsHost ? "当家" : "门客", Statics.GetInjuryName(roleData.Injury)); if (roleData.Weapon != null) { WeaponNameText.text = string.Format("<color=\"{0}\">{1}</color>", Statics.GetQualityColorString(roleData.Weapon.Quality), roleData.Weapon.Name); WeaponWidth.rectTransform.sizeDelta = new Vector2(100f * (roleData.Weapon.Width / 100f) * 0.5f, WeaponWidth.rectTransform.sizeDelta.y); WeaponIcon.gameObject.SetActive(true); WeaponIcon.sprite = Statics.GetIconSprite(roleData.Weapon.IconId); } else { WeaponIcon.gameObject.SetActive(false); } for (int i = 0; i < 3; i++) { if (roleData.Books.Count > i) { BookIcons[i].gameObject.SetActive(true); BookIcons[i].sprite = Statics.GetIconSprite(roleData.Books[i].IconId); } else { BookIcons[i].gameObject.SetActive(false); } } if (roleData.IsHost) { SelectBtn.gameObject.SetActive(false); CancelBtn.gameObject.SetActive(false); } else { SelectBtn.gameObject.SetActive(roleData.State == RoleStateType.OutTeam); CancelBtn.gameObject.SetActive(roleData.State == RoleStateType.InTeam); if (roleData.Injury == InjuryType.Moribund) { MakeButtonEnable(SelectBtn, false); MakeButtonEnable(CancelBtn, false); } } }
public void RefreshView() { string color = ""; string content = ""; string rewards = ""; DropData drop; for (int i = 0; i < taskData.Rewards.Count; i++) { drop = taskData.Rewards[i]; rewards += drop.Item.Name + (drop.Num > 1 ? "*" + drop.Num : ""); if (i < taskData.Rewards.Count - 1) { rewards += ", "; } } switch (taskData.State) { case TaskStateType.Accepted: color = "#00FF00"; content = string.Format("{0}\n{1}", taskData.Desc, getDialogDesc(currentDialog)); break; case TaskStateType.CanAccept: color = "#00FFFF"; content = string.Format("{0}\n{1}", taskData.Desc, getDialogDesc(currentDialog)); break; case TaskStateType.CanNotAccept: color = "#CCCCCC"; string condition = ""; switch (taskData.Type) { case TaskType.Gender: condition = (GenderType)taskData.IntValue == GenderType.Female ? "需要主角为 女性" : "需要主角为 男性"; break; case TaskType.ItemInHand: condition = "需要拥有 " + JsonManager.GetInstance().GetMapping <ItemData>("ItemDatas", taskData.StringValue).Name; break; case TaskType.MoralRange: condition = "需要道德点区间为 " + taskData.MinIntValue + "-" + taskData.MaxIntValue; break; case TaskType.None: condition = "无限制"; break; case TaskType.Occupation: condition = "主角所属门派必须为 " + Statics.GetOccupationName((OccupationType)taskData.IntValue); break; case TaskType.TheHour: condition = "需要到 " + Statics.GetTimeName(taskData.IntValue) + " 才能接取"; break; default: break; } content = string.Format("{0}\n接取条件:<color=\"#FF0000\">{1}</color>\n目标:前往<color=\"#F57729\">{2}</color>的<color=\"#F57729\">{3}</color>找<color=\"#F57729\">{4}</color>交谈", taskData.Desc, condition, areaName, scene.Name, npc.Name); break; case TaskStateType.Completed: color = "#999999"; content = "已完成"; break; case TaskStateType.Ready: color = "#00FF00"; content = string.Format("{0}\n{1}", taskData.Desc, getDialogDesc(currentDialog)); break; default: color = "#FFFFFF"; break; } title.text = string.Format("<color=\"{0}\">{1}</color>", color, taskData.Name); desc.text = string.Format("{0}\n奖励:{1}", content, rewards != "" ? rewards : "无"); if (currentDialog.Type == TaskDialogType.EventFightWined || currentDialog.Type == TaskDialogType.CreateTaskIsBindedWithEvent) { ScoutBtn.gameObject.SetActive(true); } else { ScoutBtn.gameObject.SetActive(false); } }
/// <summary> /// 研读秘籍 /// </summary> /// <param name="id">Identifier.</param> public void ReadBook(int id) { bool read = false; BookData book = null; db = OpenDb(); SqliteDataReader sqReader = db.ExecuteQuery("select BookId from BooksTable where Id = " + id); if (sqReader.Read()) { book = JsonManager.GetInstance().GetMapping <BookData>("Books", sqReader.GetString(sqReader.GetOrdinal("BookId"))); if (book.Occupation == OccupationType.None || book.Occupation == HostData.Occupation) { bool enough = true; string msg = ""; CostData cost; ItemData item; //计算需要的物品是否足够 for (int i = 0; i < book.Needs.Count; i++) { cost = book.Needs[i]; item = JsonManager.GetInstance().GetMapping <ItemData>("ItemDatas", cost.Id); sqReader = db.ExecuteQuery("select Num from BagTable where ItemId = '" + cost.Id + "' and BelongToRoleId = '" + currentRoleId + "'"); if (sqReader.Read()) { if (sqReader.GetInt32(sqReader.GetOrdinal("Num")) < cost.Num) { enough = false; msg = string.Format("行囊里的{0}不够", item.Name); break; } } else { enough = false; msg = string.Format("行囊里并不曾见过有{0}", item.Name); break; } } if (enough) { int num; //扣除物品 for (int i = 0; i < book.Needs.Count; i++) { cost = book.Needs[i]; sqReader = db.ExecuteQuery("select Id, Num from BagTable where ItemId = '" + cost.Id + "' and BelongToRoleId = '" + currentRoleId + "'"); if (sqReader.Read()) { num = sqReader.GetInt32(sqReader.GetOrdinal("Num")) - cost.Num; num = num < 0 ? 0 : num; if (num > 0) { db.ExecuteQuery("update BagTable set Num = " + num + " where Id = " + sqReader.GetInt32(sqReader.GetOrdinal("Id"))); } else { db.ExecuteQuery("delete from BagTable where Id = " + sqReader.GetInt32(sqReader.GetOrdinal("Id"))); } } } //研读秘籍 db.ExecuteQuery("update BooksTable set State = " + ((int)BookStateType.Read) + ", SeatNo = 888 where Id = " + id); read = true; } else { AlertCtrl.Show(msg, null); } } else { AlertCtrl.Show(string.Format("非{0}弟子不得研习<color=\"{1}\">{2}</color>!", Statics.GetOccupationName(book.Occupation), Statics.GetQualityColorString(book.Quality), book.Name)); } } db.CloseSqlConnection(); if (read && book != null) { Statics.CreatePopMsg(Vector3.zero, string.Format("研读<color=\"{0}\">{1}</color>后使你武功精进!", Statics.GetQualityColorString(book.Quality), book.Name), Color.white, 30); GetBooksOfForbiddenAreaPanelData(book.BelongToCityId); } }
/// <summary> /// Scenes the notify init. /// </summary> public static void RoleNotifyInit() { Messenger.AddListener <bool>(NotifyTypes.CallRoleInfoPanelData, (isfighting) => { DbManager.Instance.CallRoleInfoPanelData(isfighting); }); Messenger.AddListener <JObject, bool>(NotifyTypes.CallRoleInfoPanelDataEcho, (obj, isfighting) => { RoleInfoPanelCtrl.Show((JArray)obj["data"], isfighting); if (!isfighting) { Messenger.Broadcast(NotifyTypes.ShowTaskBtnPanel); } }); Messenger.AddListener(NotifyTypes.HideRoleInfoPanel, () => { RoleInfoPanelCtrl.MoveDown(); Messenger.Broadcast(NotifyTypes.HideTaskBtnPanel); }); Messenger.AddListener <bool>(NotifyTypes.MakeChangeRoleEnable, (enable) => { RoleInfoPanelCtrl.MakeChangeRoleEnable(enable); }); Messenger.AddListener <bool>(NotifyTypes.MakeChangeBookEnable, (enable) => { RoleInfoPanelCtrl.MakeChangeBookEnable(enable); }); Messenger.AddListener <bool>(NotifyTypes.MakeRoleInfoPanelDisable, (dis) => { RoleInfoPanelCtrl.MakeDisable(dis); }); Messenger.AddListener <string>(NotifyTypes.GetRolesOfWinShopPanelData, (cityId) => { DbManager.Instance.GetRolesOfWinShopPanelData(cityId); }); Messenger.AddListener <List <RoleData> >(NotifyTypes.GetRolesOfWinShopPanelDataEcho, (roles) => { RolesOfWinShopPanelCtrl.Show(roles); }); Messenger.AddListener(NotifyTypes.GetWeaponsListPanelData, () => { DbManager.Instance.GetWeaponsListPanelData(); }); Messenger.AddListener <List <WeaponData>, RoleData>(NotifyTypes.GetWeaponsListPanelDataEcho, (weapons, host) => { WeaponListPanelCtrl.Show(weapons, host); }); Messenger.AddListener <int, string>(NotifyTypes.ReplaceWeapon, (id, beUsingByRoleId) => { DbManager.Instance.ReplaceWeapon(id, beUsingByRoleId); }); Messenger.AddListener <int>(NotifyTypes.TakeOffWeapon, (id => { DbManager.Instance.TakeOffWeapon(id); })); Messenger.AddListener(NotifyTypes.GetBooksListPanelData, () => { DbManager.Instance.GetBooksListPanelData(); }); Messenger.AddListener <List <BookData> >(NotifyTypes.GetBooksListPanelDataEcho, (books) => { BookListPanelCtrl.Show(books); }); Messenger.AddListener <int>(NotifyTypes.UseBook, (id => { DbManager.Instance.UseBook(id); })); Messenger.AddListener <int>(NotifyTypes.UnuseBook, (id => { DbManager.Instance.UnuseBook(id); })); Messenger.AddListener <string>(NotifyTypes.GetBooksOfForbiddenAreaPanelData, (cityId) => { DbManager.Instance.GetBooksOfForbiddenAreaPanelData(cityId); }); Messenger.AddListener <List <BookData>, RoleData>(NotifyTypes.GetBooksOfForbiddenAreaPanelDataEcho, (books, host) => { BooksOfForbiddenAreaPanelCtrl.Show(books, host); }); Messenger.AddListener <int>(NotifyTypes.InviteRole, (id) => { // DbManager.Instance.InviteRole(id); DbManager.Instance.InviteRoleWithResources(id); }); Messenger.AddListener <int>(NotifyTypes.ReadBook, (id => { DbManager.Instance.ReadBook(id); })); Messenger.AddListener(NotifyTypes.GetReadyToTravelPanelData, () => { DbManager.Instance.GetReadyToTravelPanelData(); }); Messenger.AddListener <List <RoleData>, ItemData>(NotifyTypes.GetReadyToTravelPanelDataEcho, (roles, food) => { Messenger.Broadcast(NotifyTypes.HideRoleInfoPanel); ReadyToTravelPanelCtrl.Show(roles, food); }); Messenger.AddListener <RoleData>(NotifyTypes.MakeSelectRoleInTeam, (role) => { ReadyToTravelPanelCtrl.MakeSelectRole(role); }); Messenger.AddListener <RoleData>(NotifyTypes.MakeUnSelectRoleInTeam, (role) => { ReadyToTravelPanelCtrl.MakeUnSelectRole(role); }); Messenger.AddListener <JArray>(NotifyTypes.ChangeRolesSeatNo, (ids) => { DbManager.Instance.ChangeRolesSeatNo(ids); }); Messenger.AddListener(NotifyTypes.ChangeRolesSeatNoEcho, () => { Messenger.Broadcast(NotifyTypes.HideCityScenePanel); Messenger.Broadcast(NotifyTypes.FromCitySceneBackToArea); Messenger.Broadcast(NotifyTypes.CallAreaMainPanelData); ReadyToTravelPanelCtrl.Hide(); }); Messenger.AddListener(NotifyTypes.GetHospitalPanelData, () => { DbManager.Instance.GetHospitalPanelData(); }); Messenger.AddListener <List <RoleData> >(NotifyTypes.GetHospitalPanelDataEcho, (roles) => { HospitalPanelCtrl.Show(roles); }); Messenger.AddListener <int>(NotifyTypes.CureRole, (id => { DbManager.Instance.CureRole(id); })); Messenger.AddListener(NotifyTypes.GetBagPanelData, () => { DbManager.Instance.GetBagPanelData(); }); Messenger.AddListener <List <ItemData>, double>(NotifyTypes.GetBagPanelDataEcho, (items, silver) => { BagPanelCtrl.Show(items, silver); }); Messenger.AddListener <ItemData, bool>(NotifyTypes.ShowItemDetailPanel, (item, fromBag) => { ItemDetailPanelCtrl.Show(item, fromBag); }); Messenger.AddListener(NotifyTypes.GetSellItemsPanelData, () => { DbManager.Instance.GetSellItemsPanelData(); }); Messenger.AddListener <List <ItemData> >(NotifyTypes.GetSellItemsPanelDataEcho, (items) => { SellItemsPanelCtrl.Show(items); }); Messenger.AddListener(NotifyTypes.MakeSelectedItemOfSellItemsPanel, () => { SellItemsPanelCtrl.MakeSelectedItem(); }); Messenger.AddListener <JArray>(NotifyTypes.SellItems, (ids) => { DbManager.Instance.SellItems(ids); }); Messenger.AddListener <double>(NotifyTypes.SellItemsEcho, (silver) => { SellItemsPanelCtrl.Hide(); StorePanelCtrl.MakeChangeSilverNum(silver); }); Messenger.AddListener <int>(NotifyTypes.DiscardItem, (id) => { DbManager.Instance.DiscardItem(id); }); Messenger.AddListener <BookData>(NotifyTypes.ShowBookDetailPanel, (book) => { BookDetailPanelCtrl.Show(book); }); Messenger.AddListener <WeaponData>(NotifyTypes.ShowWeaponDetailPanel, (weapon) => { WeaponDetailPanelCtrl.Show(weapon); }); Messenger.AddListener <RoleData>(NotifyTypes.ShowRoleDetailPanel, (role) => { RoleDetailPanelCtrl.Show(role); }); Messenger.AddListener <List <DropData> >(NotifyTypes.ShowDropsListPanel, (drops) => { DropsListPanelCtrl.Show(drops); }); Messenger.AddListener <int>(NotifyTypes.UseItem, (id => { DbManager.Instance.UseItem(id); })); Messenger.AddListener <string>(NotifyTypes.GetInnInCityData, (cityId) => { DbManager.Instance.GetInnInCityData(cityId); }); Messenger.AddListener <List <FloydResult> >(NotifyTypes.GetInnInCityDataEcho, (results) => { InnPanelCtrl.Show(results); }); Messenger.AddListener <int, int>(NotifyTypes.GoToCity, (fromIndex, toIndex) => { DbManager.Instance.GoToCity(fromIndex, toIndex); }); Messenger.AddListener <SceneData>(NotifyTypes.GoToCityEcho, (scene) => { string eventId = JsonManager.GetInstance().GetMapping <string>("AreaCityPosDatas", scene.Id); string[] fen = eventId.Split(new char[] { '_' }); if (fen.Length >= 3) { string areaName = fen[0]; int x = int.Parse(fen[1]); int y = int.Parse(fen[2]); if (UserModel.CurrentUserData != null) { CityScenePanelCtrl.MakeClose(); InnPanelCtrl.Hide(); UserModel.CurrentUserData.PositionStatu = UserPositionStatusType.InCity; UserModel.CurrentUserData.CurrentCitySceneId = scene.Id; UserModel.CurrentUserData.CurrentAreaSceneName = areaName; UserModel.CurrentUserData.CurrentAreaX = x; UserModel.CurrentUserData.CurrentAreaY = y; //清空临时事件 Messenger.Broadcast(NotifyTypes.ClearDisableEventIdMapping); Messenger.Broadcast <System.Action <UserData> >(NotifyTypes.UpdateUserData, null); Messenger.Broadcast <string>(NotifyTypes.GoToScene, areaName); } } }); Messenger.AddListener <string>(NotifyTypes.NpcsEventHandler, (npcId) => { switch (npcId) { case "05002001": if (DbManager.Instance.HostData.Occupation == OccupationType.None) { if (!DbManager.Instance.HasAnyTask((new List <string>() { "task_occupation0", "task_occupation1", "task_occupation2", "task_occupation3", "task_occupation4", "task_occupation5" }).ToArray())) { OccupationPanelCtrl.Show(); } else { AlertCtrl.Show("去吧去吧,老夫已为你做了引荐"); } } else { AlertCtrl.Show(string.Format("你已是{0}{1},可喜可贺啊,哦哈哈哈哈", Statics.GetOccupationName(DbManager.Instance.HostData.Occupation), Statics.GetOccupationDesc(DbManager.Instance.HostData.Occupation))); } break; default: break; } }); }
public void RefreshView() { Icon.sprite = Statics.GetIconSprite(weaponData.IconId); Name.text = string.Format("<color=\"{0}\">{1}</color>", Statics.GetQualityColorString(weaponData.Quality), weaponData.Name); WeaponWidth.rectTransform.sizeDelta = new Vector2(100f * (weaponData.Width / 100f), WeaponWidth.rectTransform.sizeDelta.y); PowerIndexDesc0.text = string.Format("+100%伤害概率: {0}%", (int)(weaponData.Rates[1] * 100)); PowerIndexDesc1.text = string.Format("+50%伤害概率: {0}%", (int)(weaponData.Rates[2] * 100)); PowerIndexDesc2.text = string.Format("+25%伤害概率: {0}%", (int)(weaponData.Rates[3] * 100)); if (weaponData.BeUsingByRoleId != "") { Btn.gameObject.SetActive(false); bg.sprite = Statics.GetSprite("Border12"); PowerIndexFlag0.gameObject.SetActive(false); PowerIndexFlag1.gameObject.SetActive(false); PowerIndexFlag2.gameObject.SetActive(false); State.text = "已装备"; TakeOffBtn.gameObject.SetActive(true); } else { TakeOffBtn.gameObject.SetActive(false); if (weaponData.Occupation == OccupationType.None || weaponData.Occupation == hostRoleData.Occupation) { Btn.gameObject.SetActive(true); State.text = "已装备"; } else { Btn.gameObject.SetActive(false); State.text = string.Format("<color=\"#FF0000\">限{0}</color>", Statics.GetOccupationName(weaponData.Occupation)); } if (hostWeaponData != null) { if (weaponData.Rates[1] != hostWeaponData.Rates[1]) { PowerIndexFlag0.gameObject.SetActive(true); PowerIndexFlag0.sprite = Statics.GetSprite(weaponData.Rates[1] > hostWeaponData.Rates[1] ? "StateUp" : "StateDown"); } else { PowerIndexFlag0.gameObject.SetActive(false); } if (weaponData.Rates[2] != hostWeaponData.Rates[2]) { PowerIndexFlag1.gameObject.SetActive(true); PowerIndexFlag1.sprite = Statics.GetSprite(weaponData.Rates[2] > hostWeaponData.Rates[2] ? "StateUp" : "StateDown"); } else { PowerIndexFlag1.gameObject.SetActive(false); } if (weaponData.Rates[3] != hostWeaponData.Rates[3]) { PowerIndexFlag2.gameObject.SetActive(true); PowerIndexFlag2.sprite = Statics.GetSprite(weaponData.Rates[3] > hostWeaponData.Rates[3] ? "StateUp" : "StateDown"); } else { PowerIndexFlag2.gameObject.SetActive(false); } } else { PowerIndexFlag0.gameObject.SetActive(false); PowerIndexFlag1.gameObject.SetActive(false); PowerIndexFlag2.gameObject.SetActive(false); } } }