public void InitSpecialOperationHUD(CallBackWithItem itemShortClickCallBack, CallBackWithItem addGemstoneCallBack) { equipmentCell.InitSpecialOperaiton(itemShortClickCallBack); functionalItemCell.InitSpecialOperaiton(itemShortClickCallBack); this.addGemstoneCallBack = addGemstoneCallBack; }
/// <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(); }
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); }); }
/// <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; }
public void InitSpecialOperaiton(CallBackWithItem itemClickCallBack) { soDragControl.InitItemDragControl(null, itemClickCallBack); soDropControl.InitItemDropCallBack(ItemDropSucceedCallBack); }
public void InitItemDragControl(Item item, CallBackWithItem shortClickCallBack) { this.item = item; this.shortClickCallBack = shortClickCallBack; }
/// <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); }
public void InitItemDropCallBack(CallBackWithItem dropSucceedCallBack) { this.dropSucceedCallBack = dropSucceedCallBack; }