public Action clickCancelCallBack; //取消回调 /// <summary> /// 购买指定礼物界面 /// </summary> /// <param name="item">指定的礼物</param> /// <param name="defultAmount">默认数量</param> /// <param name="buySucceedCallBack">购买成功回调</param> /// <param name="clickCancelCallBack">点击取消回调</param> public async void ShowBuyView(ImpulseGiftGoods item, int defultAmount, Action <int> buySucceedCallBack = null, Action clickCancelCallBack = null) { this.gameObject.SetActive(true);//显示界面 this.giftInfo = item; Title.text = $"你还没有{ StaticData.GetMultiLanguageByGameItemId(giftInfo.goodsID)}哦,要购买吗";//TODO goodsIcon.sprite = await ABManager.GetAssetAsync <Sprite>(giftInfo.goodsIcon); goodsName.text = $"{StaticData.GetMultiLanguageByGameItemId(giftInfo.goodsID)}"; n2pAddValue.text = $"+{giftInfo.NpcAddValue}"; p2nAddValue.text = $"+{giftInfo.playerAddValue}"; int id = giftInfo.goodsPriceBuy[0].ID; //取到钻石图片的id priceAmount = (int)giftInfo.goodsPriceBuy[0].Count; //取到数量 Sprite sprite = await ZillionaireToolManager.LoadItemSprite(id); propIcon.sprite = sprite; this.buySucceedCallBack = buySucceedCallBack; this.clickCancelCallBack = clickCancelCallBack; amountComponent._defaultValue = defultAmount.ToString(); amountComponent.inputFiled.text = defultAmount.ToString(); amountComponent.act = BuyAmount; amountComponent._changeAction = ChangeAct; //取消事件 cancelBtn.onClick.RemoveAllListeners(); cancelBtn.onClick.AddListener(Cancel); //初始价格显示 默认数量*指定礼物价格 Price.text = (priceAmount * defultAmount).ToString(); }
/// <summary> /// 购买指定礼物界面 /// </summary> /// <param name="item">指定的礼物</param> /// <param name="defultAmount">默认数量</param> /// <param name="buySucceedCallBack">购买成功回调</param> /// <param name="clickCancelCallBack">点击取消回调</param> public async void ShowBuyView(int defultAmount, Action buySucceedCallBack = null, Action clickCancelCallBack = null, Action buyFailure = null) { this.gameObject.SetActive(true);//显示界面 Title.text = $"{ StaticData.GetMultilingual(120074)}{StaticData.GetMultilingual(2000002)}"; goodsName.text = $"{StaticData.GetMultiLanguageByGameItemId(StaticData.configExcel.GetVertical().PurpleGoldsId)}"; var zjbData = StaticData.configExcel.GetStoreByShopId(StaticData.configExcel.GetVertical().PurpleGoldsId); int id = zjbData.OriginalPrice[0].ID; //取到钻石图片的id priceAmount = (int)zjbData.OriginalPrice[0].Count; //取到数量 Sprite sprite = await ZillionaireToolManager.LoadItemSprite(id); this.buySucceedCallBack = buySucceedCallBack; this.clickCancelCallBack = clickCancelCallBack; this.buyFailureCallBack = buyFailure; amountComponent._defaultValue = defultAmount.ToString(); amountComponent.inputFiled.text = defultAmount.ToString(); amountComponent.act = BuyAmount; amountComponent._changeAction = ChangeAct; //初始价格显示 默认数量*指定礼物价格 Price.text = (priceAmount * defultAmount).ToString(); }
/// <summary> /// 投掷骰子 /// </summary> private void OnClickThrowBtn() { Debug.Log("投掷骰子 OnClickThrowBtn"); if (!_isShowDice) { return; } //新手引导标记完成 if (StaticData.isOpenGuide && GuideCanvasComponent._instance != null && GuideCanvasComponent._instance.isCurrStepGuiding) { GuideCanvasComponent._instance.SetLittleStepFinish(); } //色子可以投掷 角色移动完成 if (!_curDiceController.IsThrow || !ZillionairePlayerManager._instance.CurrentPlayer.IsEndMove) { return; } if (!PowerIsEnough()) { //没有购买体力次数进入结算界面 df if (!IsHavePurchases()) { OnClickOut(); return; } Debug.Log("体力不足不可以投掷骰子!!!"); StaticData.OpenBuyPower(ConfirmBuyItems, CancelBuyPower); return; } // ZillionaireToolManager.NotifyServerDice(_selectDiceType, NotifyServerDiceCallback); }
async void UnlockView(SectionDefine chapterInfo, Action ClickCallBack) { int id = chapterInfo.UnlockPrice[0].ID; //取到钻石图片的id int count = (int)chapterInfo.UnlockPrice[0].Count; //取到数量 Sprite sprite = await ZillionaireToolManager.LoadItemSprite(id); string str = string.Format(StaticData.GetMultilingual(120241), unlockLevel);//该章节需要解锁,是否提前解锁//钻石不足,需要购买吗 StaticData.OpenCommonBuyTips(str, sprite, count, () => ClickCallBACK(count, ClickCallBack)); }
/// <summary> /// 确认购买体力 /// </summary> /// <param name="id"></param> /// <param name="num"></param> private void ConfirmBuyItems(int id, int num) { _curBuyPorwerNum = num; CSBuyProp buyItem = new CSBuyProp(); buyItem.GoodId = ZillionaireGameMapManager._instance.CurZillionaireMapControl.CurSelectMap.PowerBuyID; buyItem.GoodNum = num; buyItem.BuyWay = GoodsBuyWay.FirstWay; ZillionaireToolManager.NotifyServerBuyItems(buyItem, BuyPowerSuccess); }
/// <summary> /// 弹出购买章节界面 /// </summary> public async static void PopupBuyChapterView(int chapterID, Action cancelCallBack) {//如果还没出下一章TODO var chapterInfo = StaticData.configExcel.GetSectionBySectionId(chapterID); if (chapterInfo == null) { StaticData.ToManorSelf(); cancelCallBack?.Invoke(); return; } int id = chapterInfo.UnlockPrice[0].ID; //取到钻石图片的id int count = (int)chapterInfo.UnlockPrice[0].Count; //取到数量 Sprite sprite = await ZillionaireToolManager.LoadItemSprite(id); string str = $"你的等级不够解锁下一章了哦"; StaticData.OpenCommonBuyTips(str, sprite, count, () => { if (StaticData.GetWareHouseDiamond() >= count) { //扣除资源 //刷新章节 StaticData.UpdateWareHouseDiamond(-count); CSBuySection cSBuySection = new CSBuySection() { SectionId = chapterID }; ProtocalManager.Instance().SendCSBuySection(cSBuySection, (SCBuySection x) => { StaticData.CreateToastTips("章节购买成功"); ChapterHelper.UnlockChapter(chapterID);//存入前端缓存 foreach (var goodsInfo in x.CurrencyInfo) { StaticData.UpdateWareHouseItems(goodsInfo.GoodsId, (int)goodsInfo.Count); } //进入下一章 EnterIntoChapter(chapterID); }, (ErrorInfo e) => { StaticData.CreateToastTips("章节购买失败"); Debug.LogError("章节购买失败" + e.webErrorCode); }, false); } else { StaticData.OpenRechargeUI(); } }, () => //取消购买直接进庄园 { cancelCallBack?.Invoke(); StaticData.ToManorSelf(); }, 120212); }
/// <summary> /// 设置item信息 /// </summary> /// <param name="itemObj"></param> /// <param name="id"></param> private async void SetItemInfo(GameObject itemObj, int id) { GameItemDefine itemData = StaticData.configExcel.GetGameItemByID(id); Sprite icon = await ZillionaireToolManager.LoadItemSpriteByIconName(itemData.Icon); Image itemIcon = itemObj.transform.Find("BG/Icon").GetComponent <Image>(); itemIcon.sprite = icon; itemIcon.SetNativeSize(); itemObj.transform.Find("BG/Name").GetComponent <Text>().text = LocalizationDefineHelper.GetStringNameById(itemData.ItemName); }
/// <summary> /// 当前玩家移动完成 /// </summary> public void CurRoleMoveEnd() { //没有可以执行的东西了 if (_diceCallbackInfoNew == null || _diceCallbackInfoNew.Info == null || _diceCallbackInfoNew.Info.Count <= 0) { Debug.Log("CurRoleMoveEnd 当前玩家移动完成 通知色子可以继续!!!"); _isShowDice = true; _middleTra.gameObject.SetActive(true); //体力不足最小骰子消耗 if (!ZillionairePlayerManager._instance.CurrentPlayer.IsMinPower()) { Debug.Log("体力不足不可以投掷骰子!!!"); StaticData.OpenBuyPower(ConfirmBuyItems, CancelBuyPower); } return; } //获取移动终点格子 var grid = ZillionaireGameMapManager._instance.GetGridDataByID(ZillionairePlayerManager._instance.CurrentPlayer.CurGridID); Debug.Log("当前移动到的格子id:" + ZillionairePlayerManager._instance.CurrentPlayer.CurGridID); Debug.Log("当前移动到的格子的数据的id:" + grid.GridInfo.ID); //激活事件 随机事件 //激活普通事件 if (grid.IsActiveEvent || grid.GridInfo.IsEvent) { ZillionaireGameMapManager._instance.CurZillionaireMapControl.CurMapEventManager.ActiveEvent(_diceCallbackInfoNew.Info[0], grid, ActionEvenCallback); return; } //领取奖励 if (grid.GridInfo.BasicReward != null && grid.GridInfo.BasicReward.ID != 0) { Debug.Log("CurRoleMoveEnd 只有奖励"); // int baseNum = (int)grid.GridInfo.BasicReward.Count; //金币进行等级计算 if (grid.GridInfo.BasicReward.ID == StaticData.configExcel.GetVertical().GoldGoodsId) { baseNum = ZillionaireToolManager.GetGridBaseReward(baseNum); } //暂存玩家获得的奖励 ZillionairePlayerManager._instance.CurrentPlayer.AddPlayerRewards(grid.GridInfo.BasicReward.ID, baseNum); //发放体力奖励 + 播放角色获得动画 ZillionairePlayerManager._instance.CurrentPlayer.IssueCurrentRewards(); //CurDiceActionEnd(); } CurDiceActionEnd(); }
/// <summary> /// 初始化值 数量+名称+图片+等级 /// </summary> /// <param name="id"></param> /// <param name="num"></param> /// <param name="localScale"></param> public async void InitValue(int id, int num, float localScale = 0.0f, bool isShowLv = false) { Init(); GameItemDefine itemData = StaticData.configExcel.GetGameItemByID(id); _name.text = LocalizationDefineHelper.GetStringNameById(itemData.ItemName); Sprite icon = await ZillionaireToolManager.LoadItemSpriteByIconName(itemData.Icon); _lv.SetActive(isShowLv); if (isShowLv) { _lvNum.text = itemData.Grade.ToString(); } _level1.SetActive(false); _level2.SetActive(false); _level3.SetActive(false); switch (itemData.Rarity) { case TypeRarity.Intermediate: _level2.SetActive(true); _level2Icon.sprite = icon; _level2Icon.SetNativeSize(); break; case TypeRarity.Senior: _level3.SetActive(true); _level3Icon.sprite = icon; _level3Icon.SetNativeSize(); break; default: _level1.SetActive(true); _level1Icon.sprite = icon; _level1Icon.SetNativeSize(); break; } if (num <= 0) { _num.gameObject.SetActive(false); } _num.text = num.ToString(); if (localScale != 0.0f) { gameObject.transform.localScale = new Vector3(localScale, localScale); } }
/// <summary> /// 点击进入下一章章节按钮 /// </summary> public void OnClickNextChapterBtn(Button btn) { if (ChapterHelper.NextChapterIsUnlock(curChapterID)) {//进入下一章 btn.onClick.RemoveAllListeners(); btn.onClick.AddListener(() => {//请求读完章节 CSClearance cSClearance = new CSClearance() { SectionId = curChapterID }; ProtocalManager.Instance().SendCSClearance(cSClearance, (x) => { ChapterHelper.PassChapter(curChapterID); //打开下一个章节 ChapterHelper.EnterIntoChapter(curChapterID + 1); Destroy(gameObject);//销毁自身 }, (ErrorInfo e) => { Debug.Log("请求过关章节失败"); }); }); } else {//打开解锁页面 btn.onClick.RemoveAllListeners(); btn.onClick.AddListener(async() => { var chapterInfo = StaticData.configExcel.GetSectionBySectionId(curChapterID + 1); int id = chapterInfo.UnlockPrice[0].ID; //取到钻石图片的id int count = (int)chapterInfo.UnlockPrice[0].Count; //取到数量 Sprite sprite = await ZillionaireToolManager.LoadItemSprite(id); string str = $"你的等级不够解锁下一章了哦"; StaticData.OpenCommonBuyTips(str, sprite, count, () => { ClickCallBACK((count), () => {//购买成功扣掉钻石后直接进入下一章节 ChapterHelper.EnterIntoChapter(curChapterID + 1); Destroy(this.gameObject); }); }); }); }; }
/// <summary> /// 大满贯事件 /// </summary> private async void GrandSlamEvent(ZillionaireEventDefine curEvent) { //1.播放动画效果 List <ZillionaireGameMapGridDefInfo> needPlayAnimList = new List <ZillionaireGameMapGridDefInfo>(); //2.有大满贯触发格子播放获得道具效果 foreach (var item in ZillionaireGameMapManager._instance.CurZillionaireMapControl.MapGridDic) { if (!item.Value.GridInfo.IsTrigger) { continue; } needPlayAnimList.Add(item.Value); //添加奖励 int baseNum = (int)item.Value.GridInfo.BasicReward.Count; //金币进行等级计算 if (item.Value.GridInfo.BasicReward.ID == StaticData.configExcel.GetVertical().GoldGoodsId) { baseNum = ZillionaireToolManager.GetGridBaseReward(baseNum); } //暂存玩家获得的奖励 ZillionairePlayerManager._instance.CurrentPlayer.AddPlayerRewards(item.Value.GridInfo.BasicReward.ID, baseNum); } while (needPlayAnimList.Count > 0) { Debug.Log("通知格子播放获得奖励效果!"); //通知格子播放获得奖励效果 needPlayAnimList[0].PlayPickupItemEffect(true); await UniTask.Delay(200); needPlayAnimList.RemoveAt(0); } Debug.Log("大满贯事件 end"); //完成 EventEnd(); }
/// <summary> /// 奖励翻倍事件 /// </summary> private void RewardDoubledEvent(ZillionaireEventDefine curEvent, ZillionaireGameMapGridDefInfo gridInfo) { //1.播放动画效果 翻倍数量在动效中表现 //2.获得奖励效果 int baseNum = (int)gridInfo.GridInfo.BasicReward.Count; //金币进行等级计算 if (gridInfo.GridInfo.BasicReward.ID == StaticData.configExcel.GetVertical().GoldGoodsId) { baseNum = ZillionaireToolManager.GetGridBaseReward(baseNum); } baseNum *= curEvent.Effect; //暂存玩家获得的奖励 ZillionairePlayerManager._instance.CurrentPlayer.AddPlayerRewards(gridInfo.GridInfo.BasicReward.ID, baseNum); //发放体力奖励 + 播放角色获得动画 ZillionairePlayerManager._instance.CurrentPlayer.IssueCurrentRewards(); //通知格子播放获得奖励效果 gridInfo.PlayPickupItemEffect(true); //完成 EventEnd(); }
/// <summary> /// 订单界面显示 /// </summary> /// <param name="itemData"></param> /// <param name="num"></param> public async void InitValue(GameItemDefine itemData, string ownAndDemand) { Init(); _name.gameObject.SetActive(false); _name.gameObject.transform.parent.gameObject.SetActive(false); _num.gameObject.SetActive(false); _lv.SetActive(false); Sprite icon = await ZillionaireToolManager.LoadItemSpriteByIconName(itemData.Icon); _level1.SetActive(false); _level2.SetActive(false); _level3.SetActive(false); switch (itemData.Rarity) { case TypeRarity.Intermediate: _level2.SetActive(true); _level2Icon.sprite = icon; _level2Icon.SetNativeSize(); break; case TypeRarity.Senior: _level3.SetActive(true); _level3Icon.sprite = icon; _level3Icon.SetNativeSize(); break; default: _level1.SetActive(true); _level1Icon.sprite = icon; _level1Icon.SetNativeSize(); break; } _ownAndDemandValue.gameObject.SetActive(true); _ownAndDemandValue.text = ownAndDemand; }
/// <summary> /// 初始化格子图片 /// </summary> private async void InitGridIcon() { if (GridInfo.IsEvent) { _defSprite = await ZillionaireToolManager.LoadEventZillionaireSprite(GridInfo.EventFirst); } else { if (GridInfo.BasicReward != null && GridInfo.BasicReward.ID != 0) { _defSprite = await ZillionaireToolManager.LoadItemZillionaireSprite(GridInfo.BasicReward.ID); } } SetGridSprite(_defSprite); if (GridInfo.EventSecond != 0) { _randomEventSprite = await ZillionaireToolManager.LoadEventZillionaireSprite(GridInfo.EventSecond); } //等待图标加载完成再显示图标 ShowGridIcon(); }
/// <summary> /// 生成显示的种子 /// </summary> private async void SpawnSeedShow() { for (int i = 0; i < _seedMiniList.childCount; i++) { Destroy(_seedMiniList.GetChild(i).gameObject); } GameObject itemObj = null; GameItemDefine itemData = null; for (int i = 0; i < _unlockCrops.Count; i++) { itemData = StaticData.configExcel.GetGameItemByID(_unlockCrops[i].ID); Sprite icon = await ZillionaireToolManager.LoadItemSpriteByIconName(itemData.Icon); string name = LocalizationDefineHelper.GetStringNameById(itemData.ItemName); itemObj = Instantiate(_seedItem, _seedMiniList); itemObj.transform.Find("Icon").GetComponent <Image>().sprite = icon; itemObj.transform.Find("NameBG/Name").GetComponent <Text>().text = name; itemObj.SetActive(true); } }
/// <summary> /// 发送请求到服务器 /// </summary> private void SendServer(bool isClose = false) { //是否已经请求过 / 请求数据长度小于等于0 if (_isAllLottery || _slectedCards.Count <= 0) { if (isClose) { CloseUI(); } return; } List <int> rewards = new List <int>(); for (int i = 0; i < _gridRewards.Count; i++) { if (_slectedCards.Contains(i)) { rewards.Add(_gridRewards[i].ID); } } ZillionaireToolManager.NotifyServerChooseOrLucky(LuckyTyep.LuckySeed, rewards, ServerCallback); }
/// <summary> /// 进入结算 /// </summary> private void EnterSettlement() { Debug.Log("EnterSettlement 进入结算"); ZillionaireToolManager.NotifyServerGameSettlement(EnterSettlementCallback); }
/// <summary> /// 获取当前骰子的消耗 /// </summary> /// <returns></returns> public int GetCurDiceConsume() { return(ZillionaireToolManager.GetDiceConsume(_selectDiceType)); }
/// <summary> /// 发送请求到服务器 /// </summary> private void SendRequestServer() { _lotteryItem = null; ZillionaireToolManager.NotifyServerChooseOrLucky(LuckyTyep.LuckyProp, null, ServerCallback); }
/// <summary> /// 体力是否足够最小骰子需求 /// </summary> /// <returns></returns> public bool IsMinPower() { return(ZillionaireToolManager.GetDiceMinConsume() > _curStamina ? false : true); }
/// <summary> /// 弹出购买章节界面 /// </summary> public async void PopupBuyChapterView(int chapterID, Action nextAction, Action cancelCallBack = null, int dealyTime = 0) { //如果还没出下一章 if (chapterID - StaticData.configExcel.Section[0].SectionId > StaticData.configExcel.GetVertical().CurVersionsChapterMaxCount - 1) { //显示未完待续页面,点击后淡出到大厅 //var expect = await ABManager.GetAssetAsync<GameObject>("ExpectTipView"); //GameObject go = GameObject.Instantiate(expect); //go.transform.SetRectTransformStretchAllWithParent(UIRoot.instance.GetUIRootCanvas().transform); //go.GetComponent<Button>().onClick.AddListener(() => //{ // go.GetComponent<Button>().enabled = false; // cancelCallBack?.Invoke(); // ChapterTool.FadeInFadeOut(go.GetComponent<CanvasGroup>(), 0, 0.01f, null, () => // { // Destroy(go.gameObject); // GameSoundPlayer.Instance.PlayBgMusic(MusicHelper.BgMusicLobby); // }); //}); cancelCallBack?.Invoke(); UIComponent.RemoveUI(UIType.UIChapter); await StaticData.ToManorSelf(); GameSoundPlayer.Instance.PlayBgMusic(MusicHelper.BgMusicManor); return; } var chapterInfo = StaticData.configExcel.GetSectionBySectionId(chapterID); int id = chapterInfo.UnlockPrice[0].ID; //取到钻石图片的id int count = (int)chapterInfo.UnlockPrice[0].Count; //取到数量 Sprite sprite = await ZillionaireToolManager.LoadItemSprite(id); string str = StaticData.GetMultilingual(120225); //$"你的等级不够解锁下一章了哦"; StaticData.OpenCommonBuyTips(str, sprite, count, () => { if (StaticData.GetWareHouseDiamond() >= count) { //扣除资源 //刷新章节 StaticData.UpdateWareHouseDiamond(-count); CSBuySection cSBuySection = new CSBuySection() { SectionId = chapterID }; ProtocalManager.Instance().SendCSBuySection(cSBuySection, async(SCBuySection x) => { StaticData.CreateToastTips(StaticData.GetMultilingual(120234)); //("章节购买成功"); ChapterHelper.UnlockChapter(chapterID); //存入前端缓存 foreach (var goodsInfo in x.CurrencyInfo) { //更新前端的货币信息 StaticData.UpdateWareHouseItems(goodsInfo.GoodsId, (int)goodsInfo.Count); } //进入下一章 EnterIntoNextChapter(chapterID, dealyTime); cancelCallBack?.Invoke(); //await ChapterHelper.EnterIntoChapter(chapterID); }, (ErrorInfo e) => { StaticData.CreateToastTips(StaticData.GetMultilingual(120235));//("章节购买失败"); Debug.LogError("章节购买失败" + e.webErrorCode); }, false); } else {//打开提示钻石不足界面 UnlockView(); } }, async() => //取消按钮改为去庄园 { nextAction?.Invoke(); if (dealyTime != 0) { await UniTask.Delay(dealyTime); } await StaticData.ToManorSelf(); Dispose(); UIComponent.RemoveUI(UIType.UIChapter); GameSoundPlayer.Instance.PlayBgMusic(MusicHelper.BgMusicManor); }, 120212, true); }
/// <summary> /// 开始游戏 /// </summary> /// <param name="data"></param> public void PlayGame(int selectMapID) { _needEnterMapID = selectMapID; ZillionaireToolManager.NotifyServerEnterMap(selectMapID, EnterMapCallback); }