/// <summary> /// 读取玩家的背包数据 /// </summary> private void LoadFromXML_PlayerPackageData() { //参数检查 if (string.IsNullOrEmpty(_FileNameByPlayerPackageData)) { Debug.LogError("读取玩家背包页面参数失败!"); return; } try { //读取XML数据 string strTemp = XmlOperation.GetInstance().LoadXML(_FileNameByPlayerPackageData); //反序列化 Mod_PlayerPackageData ppd = XmlOperation.GetInstance().DeserializeObject(strTemp, typeof(Mod_PlayerPackageData)) as Mod_PlayerPackageData; //赋值 Mod_PlayerPackageDataProxy.GetInstance().Item_Weapon_1.Count = ppd.Item_Weapon_1.Count; Mod_PlayerPackageDataProxy.GetInstance().Item_Shield_1.Count = ppd.Item_Shield_1.Count; Mod_PlayerPackageDataProxy.GetInstance().Item_Boot_1.Count = ppd.Item_Boot_1.Count; Mod_PlayerPackageDataProxy.GetInstance().Item_HPPotion_1.Count = ppd.Item_HPPotion_1.Count; Mod_PlayerPackageDataProxy.GetInstance().Item_MPPotion_1.Count = ppd.Item_MPPotion_1.Count; } catch { Debug.LogError("读取玩家背包页面参数失败!"); } }
/// <summary> /// 控制层:增加当某个道具的数量 /// </summary> /// <param name="item"></param> /// <param name="number"></param> public void AddItemCount(ItemStruct item, int number) { if (number > 0) { Mod_PlayerPackageDataProxy.GetInstance().AddItemCount(item, number); } }
/// <summary> /// 控制层:减少某个道具的数量 /// </summary> /// <param name="item"></param> /// <param name="number"></param> /// <returns>是否可减</returns> public bool SubItemCount(ItemStruct item, int number) { if (number > 0) { return(Mod_PlayerPackageDataProxy.GetInstance().SubItemCount(item, number)); } return(false); }
//购买:靴子道具1:旅行靴(120G) public bool Buy_Boot_1() { //逻辑:玩家的金币-120,如果成功,玩家得到1个旅行靴 bool boolFlag = Ctrl_HeroProperty.Instance.SubGold(120); if (boolFlag) { Ctrl_HeroProperty.Instance.AddItemCount(Mod_PlayerPackageDataProxy.GetInstance().Item_Boot_1, 1); return(true); } return(false); }
//购买:魔法药水道具1:弱效魔法药水(60G) public bool Buy_MPPotion_1() { //逻辑:玩家的金币-60,如果成功,玩家得到1个弱效魔法药水 bool boolFlag = Ctrl_HeroProperty.Instance.SubGold(60); if (boolFlag) { Mod_PlayerPackageDataProxy.GetInstance().AddItemCount(Mod_PlayerPackageDataProxy.GetInstance().Item_MPPotion_1, 1); return(true); } return(false); }
//购买:生命药水道具1:弱效生命药水(80G) public bool Buy_HPPotion_1() { //逻辑:玩家的金币-80,如果成功,玩家得到1个弱效生命药水 bool boolFlag = Ctrl_HeroProperty.Instance.SubGold(80); if (boolFlag) { //需要编写专门的“背包系统”的模型层 Mod_PlayerPackageDataProxy.GetInstance().AddItemCount(Mod_PlayerPackageDataProxy.GetInstance().Item_HPPotion_1, 1); ////需要改进的原本写法 //Mod_PlayerPackageDataProxy.GetInstance().AddHPPotion_1_Count(1); return(true); } return(false); }
/// <summary> /// 显示旅行靴 /// </summary> /// <param name="kv"></param> public void DisplayBoot_1(KeyValuesUpdate kv, string itemName = "") { //如果匹配道具名字,键值对的键匹配道具数量 if (itemName == Mod_PlayerPackageDataProxy.GetInstance().Item_Boot_1.Name&& kv.Key.Equals("Count")) { //非空游戏对象判断 if (goItem_Boot_1) { //如果道具数量大于等于1,则显示道具 if (Convert.ToInt32(kv.Values) >= 1) { goItem_Boot_1.SetActive(true); } } } }
private void Start() { //另一种方式:使用XML解析的时候在加载场景时(或者游戏开始时) //进行一次性初始化 //初始化模型层数据 Mod_PlayerKernelDataProxy playerKernelDataObj = new Mod_PlayerKernelDataProxy(PlayerCurHp, PlayerCurMP, PlayerATK, PlayerDEF, PlayerDEX, PlayerMaxHP, PlayerMaxMP, PlayerATKByItem, PlayerDEFByItem, PlayerDEXByItem); Mod_PlayerExtendedDataProxy playerExtendedDataObj = new Mod_PlayerExtendedDataProxy(PlayerEXP, PlayerKillNum, PlayerLevel, PlayerGold, PlayerDiamond); //***这个写法有待改进*** Mod_PlayerPackageDataProxy playerPackageData = new Mod_PlayerPackageDataProxy(IntWeapon_1_Count, IntShield_1_Count, IntBoot_1_Count, IntHPPotion_1_Count, IntMPPotion_1_Count); //开始MP恢复协程 StartCoroutine("RecoverMP"); }
/// <summary> /// 显示血瓶和血瓶数量 /// </summary> /// <param name="kv"></param> public void DisplayHPPotion_1(KeyValuesUpdate kv, string itemName = "") { //if(kv.Key.Equals("HPPotion_1_Count")) { //如果匹配道具名字,键值对的键匹配道具数量 if (itemName == Mod_PlayerPackageDataProxy.GetInstance().Item_HPPotion_1.Name&& kv.Key.Equals("Count")) { //非空游戏对象判断 if (goItem_HPPotion_1 && Txt_HPPotion_1_Count) { //如果道具数量大于等于1,则显示道具 if (Convert.ToInt32(kv.Values) >= 1) { goItem_HPPotion_1.SetActive(true); //显示道具数量 Txt_HPPotion_1_Count.text = kv.Values.ToString(); } } } }
/// <summary> /// 控制层:得到某个道具的数量 /// </summary> /// <param name="item"></param> /// <returns></returns> public int GetItemCount(ItemStruct item) { return(Mod_PlayerPackageDataProxy.GetInstance().GetItemCount(item)); }