public void OnExtraAwardClicked(int index) { // 翻牌次数用尽 if (mLeftExtraAwardTimes < 1) { return; } if (mRes == null) { return; } if (index < 0 || index >= mItemExtraList.Count) { return; } StageBalanceItemUI item = mItemExtraList[index]; if (item == null) { return; } // 翻过了 if (item.IsAwarded()) { return; } int idx = mRes.mExtraAwardTimes - mLeftExtraAwardTimes; if (idx < 0 || mLeftExtraAwardTimes < 0) { return; } if (mRes.mExtraAwardCostId >= 0) { if (DataManager.ConditionTable.ContainsKey(mRes.mExtraAwardCostId)) { ConditionTableItem condItem = DataManager.ConditionTable[mRes.mExtraAwardCostId] as ConditionTableItem; if (condItem != null) { // 消耗不足 if (!ConditionManager.Instance.CheckCondition(condItem.mType, condItem.mParam1, condItem.mParam2, condItem.mValue * (idx + 1))) { PopTipManager.Instance.AddNewTip(StringHelper.GetErrorString(ERROR_CODE.ERR_SCENE_PASS_FAILED_AWARD_NOCOST, FontColor.Red)); //PromptUIManager.Instance.AddNewPrompt(StringHelper.GetErrorString(ERROR_CODE.ERR_SCENE_PASS_FAILED_AWARD_NOCOST)); return; } } } } role_dropaward drop = StageDataManager.Instance.GetExtraRandomAward(idx); if (drop == null) { return; } if (drop.drop_id_type == 1) { item.Award(ConditionManager.Instance.GetConditionIcon(ConditionType.ITEM, drop.drop_id, -1), ConditionManager.Instance.GetConditionText(ConditionType.ITEM, drop.drop_id, -1, drop.drop_num)); } else { item.Award(ConditionManager.Instance.GetConditionIcon(drop.drop_id), ConditionManager.Instance.GetConditionText(drop.drop_id)); } //mExtraAwardsList.RemoveAt(0); mLeftExtraAwardTimes--; UpdateExtraAwardTimes(); }
// 掉落首次&&通关&&Boss奖励 public void DropPassAward() { ObjectBase obj = PlayerController.Instance.GetControlObj(); if (obj == null) { return; } // 首次通关掉落 PlayerDataModule module = ModuleManager.Instance.FindModule <PlayerDataModule>(); if (!module.IsStageHasPassed(mSubRes.resID)) { List <role_dropaward> fpList = StageDataManager.Instance.GetFirstPassAwards(); if (fpList != null) { for (int i = 0; i < fpList.Count; ++i) { role_dropaward fpAward = fpList[i]; if (fpAward != null) { if (fpAward.drop_id_type == 0) { GameDebug.LogWarning("掉落物的Dropbox表不使用ConditionId了."); } else { List <PickInitParam> paramList = new List <PickInitParam>(); if (SceneObjManager.CreatePickInitParam(Pick.PickType.ITEM, -1, fpAward.drop_id, obj.GetPosition(), 0, out paramList, true, Pick.FlyType.DROP_DOWN, false)) { foreach (PickInitParam param in paramList) { CreateSprite(param); } } } } } } } Vector3 pos = BossDeadPos != Vector3.zero ? BossDeadPos : obj.GetPosition(); if (pos == null) { return; } // 通关随机掉落 List <role_dropaward> dropList = StageDataManager.Instance.GetBossKillAwards(); if (dropList != null && dropList.Count > 0) { for (int i = 0; i < dropList.Count; ++i) { role_dropaward dropAward = dropList[i]; if (dropAward != null) { if (dropAward.drop_id_type == 0) { GameDebug.LogWarning("掉落物的Dropbox表不使用ConditionId了."); } else { List <PickInitParam> paramList = new List <PickInitParam>(); if (SceneObjManager.CreatePickInitParam(Pick.PickType.ITEM, -1, dropAward.drop_id, obj.GetPosition(), 0, out paramList, true, Pick.FlyType.FLY_OUT, false)) { foreach (PickInitParam param in paramList) { CreateSprite(param); } } } } } } // 金币随机掉落 uint gold = StageDataManager.Instance.GetGoldAwards(); if (gold != 0 && gold != uint.MaxValue) { List <PickInitParam> paramList = new List <PickInitParam>(); if (SceneObjManager.CreatePickInitParam(Pick.PickType.MONEY, 3, (int)gold, pos, 0, out paramList, true, Pick.FlyType.FLY_OUT, false)) { foreach (PickInitParam param in paramList) { CreateSprite(param); } } } }