예제 #1
0
        /// <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("读取玩家背包页面参数失败!");
            }
        }
예제 #2
0
 /// <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);
     }
 }
예제 #3
0
 /// <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);
 }
예제 #4
0
        //购买:靴子道具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);
        }
예제 #5
0
        //购买:魔法药水道具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);
        }
예제 #6
0
        //购买:生命药水道具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);
        }
예제 #7
0
 /// <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);
             }
         }
     }
 }
예제 #8
0
        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");
        }
예제 #9
0
 /// <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();
             }
         }
     }
 }
예제 #10
0
 /// <summary>
 /// 控制层:得到某个道具的数量
 /// </summary>
 /// <param name="item"></param>
 /// <returns></returns>
 public int GetItemCount(ItemStruct item)
 {
     return(Mod_PlayerPackageDataProxy.GetInstance().GetItemCount(item));
 }