public void InitSpecialOperationHUD(CallBackWithItem itemShortClickCallBack, CallBackWithItem addGemstoneCallBack)
        {
            equipmentCell.InitSpecialOperaiton(itemShortClickCallBack);

            functionalItemCell.InitSpecialOperaiton(itemShortClickCallBack);

            this.addGemstoneCallBack = addGemstoneCallBack;
        }
Exemplo n.º 2
0
        /// <summary>
        /// 初始化背包物品显示界面[不初始化任何显示,只初始化各种回调和背包切换按钮状态]
        /// </summary>
        /// <param name="itemClickCallBack">Item click call back.</param>
        /// <param name="initPurchaseBag">Init purchase bag.</param>
        public void InitBagItemsDisplayPlane(CallBackWithItem itemClickCallBack, CallBackWithInt initPurchaseBag, CallBack enterPurchaseGold)
        {
            currentBagIndex = 0;

            this.itemClickCallBack = itemClickCallBack;

            this.initPurchaseBag = initPurchaseBag;

            this.enterPurchaseGold = enterPurchaseGold;

            UpdateBagTabs();
        }
Exemplo n.º 3
0
        public void SetUpToolButton(SpecialItem tool, CallBackWithItem toolSelectCallBack)
        {
            toolIcon.sprite = GameManager.Instance.gameDataCenter.allSpecialItemSprites.Find(delegate(Sprite obj)
            {
                return(obj.name == tool.spriteName);
            });

            toolName.text = tool.itemName;

            toolCount.text = tool.itemCount.ToString();

            toolButton.onClick.RemoveAllListeners();

            toolButton.onClick.AddListener(delegate
            {
                toolSelectCallBack(tool);
            });
        }
Exemplo n.º 4
0
        /// <summary>
        /// 初始化背包界面
        /// </summary>
        public void SetUpBagView(bool setVisible)
        {
            // 默认显示背包界面
            panelIndex = 0;

            // 如果初始化后不显示背包界面
            if (!setVisible)
            {
                this.GetComponent <Canvas>().enabled = false;
                return;
            }

            this.player = Player.mainPlayer;

            // 创建一个空的属性变化,这样开背包时就不会显示属性变化了
            PropertyChange propertyChange = new PropertyChange();

            // 以空的属性变化(属性变化都是0)来初始化玩家状态面板
            SetUpPlayerStatusPlane(propertyChange);

            // 初始化装备面板
            SetUpEquipedEquipmentsPlane();

            // 获取物品点击响应回调
            CallBackWithItem shortClickCallback = GetComponent <BagViewController>().OnItemInBagClick;

            // 根据平台初始化背包面板
#if UNITY_IOS
            bagItemsDisplay.InitBagItemsDisplayPlane(shortClickCallback, PurchaseBagCallBack, buyGoldView.SetUpBuyGoldView);
#elif UNITY_ANDROID
            bagItemsDisplay.InitBagItemsDisplayPlane(shortClickCallback, PurchaseBagCallBack, EnterGoldWatchAdOnAndroid);
#elif UNITY_EDITOR
            UnityEditor.BuildTarget buildTarget = UnityEditor.EditorUserBuildSettings.activeBuildTarget;

            switch (buildTarget)
            {
            case UnityEditor.BuildTarget.Android:
                bagItemsDisplay.InitBagItemsDisplayPlane(shortClickCallback, PurchaseBagCallBack, EnterGoldWatchAdOnAndroid);
                break;

            case UnityEditor.BuildTarget.iOS:
                bagItemsDisplay.InitBagItemsDisplayPlane(shortClickCallback, PurchaseBagCallBack, buyGoldView.SetUpBuyGoldView);
                break;
            }
                #endif
            // 初始化技能面板
            skillsView.InitSkillsView(SetUpPlayerStatusPlane);

            // 默认初始化 背包一
            SetUpBagItemsPlane(0);

            // reset物品详细信息面板
            itemDetail.ClearItemDetails();

            // 默认显示的是背包界面,将背包tab button的字体颜色改为选中的颜色
            bagButtonTitle.color   = CommonData.tabBarTitleSelectedColor;
            skillButtonTitle.color = CommonData.tabBarTitleNormalColor;

            // 初始化技能面板
            skillsView.InitSkillsView(SetUpPlayerStatusPlane);
            // 但是不显示技能面板
            skillsView.QuitSkillsView();

            // 默认初始化 背包一
            SetUpBagItemsPlane(0);

            // reset物品详细信息面板
            itemDetail.ClearItemDetails();

            // 默认显示的是背包界面,将背包tab button的字体颜色改为选中的颜色
            bagButtonTitle.color   = CommonData.tabBarTitleSelectedColor;
            skillButtonTitle.color = CommonData.tabBarTitleNormalColor;

            // 显示背包画布
            this.GetComponent <Canvas>().enabled = true;
        }
Exemplo n.º 5
0
        public void InitSpecialOperaiton(CallBackWithItem itemClickCallBack)
        {
            soDragControl.InitItemDragControl(null, itemClickCallBack);

            soDropControl.InitItemDropCallBack(ItemDropSucceedCallBack);
        }
Exemplo n.º 6
0
 public void InitItemDragControl(Item item, CallBackWithItem shortClickCallBack)
 {
     this.item = item;
     this.shortClickCallBack = shortClickCallBack;
 }
Exemplo n.º 7
0
        /// <summary>
        /// 使用特殊物品
        /// </summary>
        /// <returns>属性变化</returns>
        /// <param name="itemForSpecialOperation">进行特殊操作的物品</param>
        /// <param name="refreshItemDetailCallBack">使用完成后更新物品描述的回调</param>
        public PropertyChange UseSpecialItem(Item itemForSpecialOperation, CallBackWithItem refreshItemDetailCallBack)
        {
            PropertyChange propertyChange = new PropertyChange();

            switch (specialItemType)
            {
            case SpecialItemType.TuiMoJuanZhou:
                if (itemForSpecialOperation is Equipment)
                {
                    Equipment equipment = itemForSpecialOperation as Equipment;
                    // 使用退魔卷轴,移除装备上的所有属性宝石
                    PropertyGemstone[] propertyGemstones = equipment.RemovePropertyGemstons();
                    // 属性宝石重新添加进背包
                    for (int i = 0; i < propertyGemstones.Length; i++)
                    {
                        Player.mainPlayer.AddItem(propertyGemstones[i]);
                    }

                    // 刷新装备详细信息
                    if (refreshItemDetailCallBack != null)
                    {
                        refreshItemDetailCallBack(equipment);
                    }
                    // 重算人物属性
                    propertyChange = Player.mainPlayer.ResetBattleAgentProperties(false);
                    GameManager.Instance.soundManager.PlayAudioClip(CommonData.xiaoMoAudioName);
                }
                break;

            case SpecialItemType.ChongZhuShi:
                if (itemForSpecialOperation is Equipment)
                {
                    Equipment equipment = itemForSpecialOperation as Equipment;
                    // 重铸装备
                    equipment.RebuildEquipment();
                    // 刷新装备详细信息页面
                    if (refreshItemDetailCallBack != null)
                    {
                        refreshItemDetailCallBack(equipment);
                    }
                    // 重算人物属性
                    propertyChange = Player.mainPlayer.ResetBattleAgentProperties(false);
                    GameManager.Instance.soundManager.PlayAudioClip(CommonData.chongzhuAudioName);
                }
                break;

            case SpecialItemType.YinShenYuPai:
                int oriFadeStepLeft = ExploreManager.Instance.battlePlayerCtr.fadeStepsLeft;
                // 人物隐身20步
                ExploreManager.Instance.battlePlayerCtr.fadeStepsLeft = Mathf.Max(oriFadeStepLeft, 20);
                GameManager.Instance.soundManager.PlayAudioClip(CommonData.yinShenAudioName);
                // 如果原来人物没有隐身,则播放隐身特效动画
                if (oriFadeStepLeft == 0)
                {
                    ExploreManager.Instance.battlePlayerCtr.SetEffectAnim(CommonData.yinShenEffectName, null, 0, 0);
                }
                break;

            case SpecialItemType.DianJinFuShi:
                if (itemForSpecialOperation is Equipment)
                {
                    Equipment equipment = itemForSpecialOperation as Equipment;
                    // 将装备重铸为金色品质
                    equipment.SetToGoldQuality();
                    // 刷新装备详细信息页面
                    if (refreshItemDetailCallBack != null)
                    {
                        refreshItemDetailCallBack(equipment);
                    }
                    // 重算人物属性
                    propertyChange = Player.mainPlayer.ResetBattleAgentProperties(false);
                    GameManager.Instance.soundManager.PlayAudioClip(CommonData.dianjinAudioName);
                }
                break;

            case SpecialItemType.TieYaoShi:
            case SpecialItemType.TongYaoShi:
            case SpecialItemType.JinYaoShi:
            case SpecialItemType.WanNengYaoShi:
            case SpecialItemType.QiaoZhen:
                break;

            case SpecialItemType.QianDai:
                // 钱袋开出500金币
                Player.mainPlayer.totalGold += 500;
                GameManager.Instance.soundManager.PlayAudioClip(CommonData.goldAudioName);
                break;

            case SpecialItemType.ShenMiYaoJi:
                // 神秘药剂增加2个技能点
                Player.mainPlayer.skillNumLeft += 2;
                GameManager.Instance.soundManager.PlayAudioClip(CommonData.drinkAudioName);
                break;

            case SpecialItemType.ShenMiMianJu:
                // 神秘面具隐身30步
                oriFadeStepLeft = ExploreManager.Instance.battlePlayerCtr.fadeStepsLeft;
                ExploreManager.Instance.battlePlayerCtr.fadeStepsLeft = Mathf.Max(oriFadeStepLeft, 30);
                if (oriFadeStepLeft == 0)
                {
                    ExploreManager.Instance.battlePlayerCtr.SetEffectAnim(CommonData.yinShenEffectName, null, 0, 0);
                }
                GameManager.Instance.soundManager.PlayAudioClip(CommonData.yinShenAudioName);
                break;

            case SpecialItemType.JingYanZhiShu:
                // 经验之书直接升一级
                Player.mainPlayer.agentLevel++;
                ExploreManager.Instance.expUICtr.ShowLevelUpPlane();
                GameManager.Instance.soundManager.PlayAudioClip(CommonData.levelUpAudioName);
                break;

            case SpecialItemType.BaoXiang:
                // 宝箱开出1-3个高级宝石
                int gemstoneCount = Random.Range(1, 4);
                List <PropertyGemstoneModel> allHighGradeGemstones = GameManager.Instance.gameDataCenter.allPropertyGemstoneModels.FindAll(delegate(PropertyGemstoneModel obj)
                {
                    return(obj.grade == GemstoneGrade.High);
                });
                for (int i = 0; i < gemstoneCount; i++)
                {
                    int randomSeed = Random.Range(0, allHighGradeGemstones.Count);
                    PropertyGemstoneModel propertyGemstoneModel = allHighGradeGemstones[randomSeed];
                    PropertyGemstone      propertyGemstone      = new PropertyGemstone(propertyGemstoneModel, 1);
                    Player.mainPlayer.AddItem(propertyGemstone);
                }
                GameManager.Instance.soundManager.PlayAudioClip(CommonData.gemstoneAudioName);

                break;

            case SpecialItemType.CaoYao:
                // 草药回复40%生命
                Player.mainPlayer.health += Mathf.RoundToInt(Player.mainPlayer.maxHealth * 0.4f);
                GameManager.Instance.soundManager.PlayAudioClip(CommonData.eatAudoiName);
                break;

            case SpecialItemType.QuSanChangDi:
            case SpecialItemType.QuSanLingDang:
                // 消灭地图上30%的怪物
                ExploreManager.Instance.newMapGenerator.SomeMonstersToPool(0.3f);
                break;

            case SpecialItemType.HuoBa:
            case SpecialItemType.YouDeng:
                // 环境变亮
                ExploreManager.Instance.newMapGenerator.SetUpExploreMask(1);
                break;

            case SpecialItemType.KaiGuan:
                ExploreManager.Instance.newMapGenerator.AllTrapsOff();
                break;

            case SpecialItemType.SiYeCao:
                // 四叶草提升开宝箱是开出好装备的概率
                Player.mainPlayer.luckInOpenTreasure = 1;
                //GameManager.Instance.persistDataManager.SaveCompletePlayerData();
                GameManager.Instance.soundManager.PlayAudioClip(CommonData.siYeCaoAudioName);
                break;

            case SpecialItemType.XingYunYuMao:
                // 幸运羽毛提升怪物掉落物品的概率
                Player.mainPlayer.luckInMonsterTreasure = 1;
                //GameManager.Instance.persistDataManager.SaveCompletePlayerData();
                GameManager.Instance.soundManager.PlayAudioClip(CommonData.xingYunYuMaoAudioName);
                break;
            }
            return(propertyChange);
        }
Exemplo n.º 8
0
 public void InitItemDropCallBack(CallBackWithItem dropSucceedCallBack)
 {
     this.dropSucceedCallBack = dropSucceedCallBack;
 }