public override void Awake() { base.Awake(); Instance = this; var t = controller.transform; ScreenCollider = t.FindEx("Collider").gameObject; VictoryAnimation = t.FindEx("VictoryObj").gameObject; DefeatRating = t.FindEx("BattleDefeatRating").gameObject; DefeatAnimation = t.FindEx("DefeatObj").gameObject; CampaignRating = t.FindEx("CampaignRatingGM").gameObject; CommonCampaignRating = t.FindEx("CommonBuddyRatingGM").gameObject; LadderRating = t.FindEx("LadderRatingGM").gameObject; ResInstanceRating = t.FindEx("ResInstanceRatingGM").gameObject; ArenaRating = t.FindEx("ArenaRatingGM").gameObject; WorldBossRating = t.FindEx("WorldBoss").gameObject; HonorArenaResult = t.FindEx("HonorArenaResult").gameObject; heroBattleResult = t.GetMonoILRComponent <LTHeroBattleResultView>("HeroBattleResultGM"); m_CombatResult = eCombatOutcome.Win; DarkObj = t.FindEx("Dark").gameObject; ContinueTips = t.FindEx("TipPanel/Tip").gameObject; timeTips = t.GetComponent <UILabel>("TipPanel/Time"); AnalyseBtn = t.FindEx("TipPanel/BattleAnalyse").gameObject; AnalyseBtn.GetComponent <UIButton>().onClick.Add(new EventDelegate(OnAnalyseBtnClick)); debugTest = false; reviveCost = 5000; t.GetComponent <UIEventTrigger>("Collider").onClick.Add(new EventDelegate(OnContinueClick)); }
IEnumerator ShowOutcome(eCombatOutcome outcome) { FusionAudio.PostEvent("MUS/CombatView/Demo", false); m_CombatResult = outcome; Reset(); switch (outcome) { case eCombatOutcome.Win: FusionAudio.PostEvent("MUS/CombatView/Stinger/Victory", controller.gameObject, true); switch (_battleType) { default: ShowBattleResult(true); break; } break; case eCombatOutcome.Draw: case eCombatOutcome.Lose: switch (_battleType) { case eBattleType.MainCampaignBattle: case eBattleType.ChallengeCampaign: case eBattleType.SleepTower: case eBattleType.InfiniteChallenge: ShowDefeatMessage(); break; case eBattleType.AlienMazeBattle: if (isCombatOut) { ShowDefeatMessage(); } else { ShowBattleResult(false); }; break; default: ShowBattleResult(false); break; } FusionAudio.PostEvent("MUS/CombatView/Stinger/Defeat", controller.gameObject, true); break; default: EB.Debug.LogError("BattleResultScreenController: No corresponding response for {0}", outcome); break; } PushCache(outcome); yield break; }
public void Show(eBattleType battletype, eCombatOutcome outcome, bool isCampaignFinished) { if (Instance == null) { return; } _isCampaignFinished = isCampaignFinished; _battleType = battletype; if (!_isShowingBattleResult) { RecordBattle(outcome); controller.gameObject.CustomSetActive(true); EB.Coroutines.Run(ShowOutcome(outcome)); _isShowingBattleResult = true; } }
public override IEnumerator OnAddToStack() { Hashtable ht = mParam as Hashtable; eBattleType battleType = (eBattleType)ht["battleType"]; if (SceneLogic.BattleType != battleType) { SceneLogic.BattleType = battleType; } eCombatOutcome outCome = (eCombatOutcome)ht["outCome"]; bool isCampaignFinished = (bool)ht["campaignFinished"]; isCombatOut = (bool)ht["isCombatOut"]; isFastCombat = EB.Dot.Bool("isFastCombat", ht, false); yield return(base.OnAddToStack()); Show(battleType, outCome, isCampaignFinished); if (BattleReadyHudController.ShowMercenary()) { //战斗结束 预先把雇佣的伙伴换下 LTFormationDataManager.Instance.SetCurTeamMemberData(); } }
void PushCache(eCombatOutcome outcome) { switch (SceneLogic.BattleType) { case eBattleType.LadderBattle: GlobalMenuManager.Instance.PushCache("LadderUI"); break; case eBattleType.ArenaBattle: GlobalMenuManager.Instance.PushCache("ArenaHudUI"); break; case eBattleType.HonorArena: GlobalMenuManager.Instance.PushCache("HonorArenaHudUI"); break; case eBattleType.HantBattle: if (!LTBountyTaskConversationController.sRunAway && LTBountyTaskHudController.HantTimes < LTBountyTaskHudController.TotalHantTimes) { GlobalMenuManager.Instance.PushCache("LTBountyTaskOverUI"); } LTBountyTaskConversationController.sRunAway = false; if (outcome == eCombatOutcome.Win) { FusionTelemetry.GamePlayData.PostEvent(FusionTelemetry.GamePlayData.bounty_topic, FusionTelemetry.GamePlayData.bounty_event_id, FusionTelemetry.GamePlayData.bounty_umengId, "reward"); } break; case eBattleType.TransferOrRob: if (outcome == eCombatOutcome.Win) { if (AlliancesManager.Instance.DartData.State == eAllianceDartCurrentState.Rob) { AlliancesManager.Instance.DartData.State = eAllianceDartCurrentState.None; if (AlliancesManager.Instance.RobDartInfo.RobAwards != null) { var list = new List <LTShowItemData>(); for (var i = 0; i < AlliancesManager.Instance.RobDartInfo.RobAwards.Count; i++) { var item = AlliancesManager.Instance.RobDartInfo.RobAwards[i]; list.Add(new LTShowItemData(item.id, item.count, item.type, false)); } DartResultController.sRewardDataList = list; AllianceEscortUtil.SetEscortResultHudCache(eDartResultType.RobSuccess); FusionTelemetry.GamePlayData.PostEsortEvent("reward", "rob"); } else { EB.Debug.LogError("rob dart success but award = null"); } } } else { if (AlliancesManager.Instance.DartData.State == eAllianceDartCurrentState.Rob) { AllianceEscortUtil.SetEscortResultHudCache(eDartResultType.RobFail); } } break; case eBattleType.HeroBattle: GlobalMenuManager.Instance.PushCache("LTHeroBattleMatch"); break; case eBattleType.NationBattle: NationBattleHudController.IsContinueWalk = outcome == eCombatOutcome.Win; int cityId = 0; DataLookupsCache.Instance.SearchIntByID("combat.cityId", out cityId); GlobalMenuManager.Instance.PushCache("LTNationBattleEntryUI", cityId); break; case eBattleType.AwakeningBattle: { if (!GlobalMenuManager.Instance.IsContain("LTAwakeningInstanceHud")) { GlobalMenuManager.Instance.PushCache("LTInstanceMapHud"); GlobalMenuManager.Instance.PushCache("LTAwakeningInstanceHud"); } }; break; case eBattleType.SleepTower: { if (!GlobalMenuManager.Instance.IsContain("LTClimbingTowerHud")) { GlobalMenuManager.Instance.PushCache("LTInstanceMapHud"); GlobalMenuManager.Instance.PushCache("LTClimbingTowerHud"); } }; break; case eBattleType.ExpSpringBattle: { if (!GlobalMenuManager.Instance.IsContain("LTResourceInstanceUI")) { GlobalMenuManager.Instance.PushCache("LTInstanceMapHud"); GlobalMenuManager.Instance.PushCache("LTResourceInstanceUI", "Exp"); } }; break; case eBattleType.TreasuryBattle: { if (!GlobalMenuManager.Instance.IsContain("LTResourceInstanceUI")) { GlobalMenuManager.Instance.PushCache("LTInstanceMapHud"); GlobalMenuManager.Instance.PushCache("LTResourceInstanceUI", "Gold"); } }; break; case eBattleType.InfiniteChallenge: if (!GlobalMenuManager.Instance.IsContain("LTUltimateTrialHud")) { GlobalMenuManager.Instance.PushCache("LTUltimateTrialHud"); } break; } }
private void RecordBattle(eCombatOutcome outcome)//上报友盟,是否通关 { bool tmpIsWon = outcome == eCombatOutcome.Win ? true : false; string tmpLevel = string.Empty; if (_battleType == eBattleType.MainCampaignBattle) { tmpLevel = LTMainInstanceCampaignCtrl.CampaignId.ToString(); if (!string.IsNullOrEmpty(tmpLevel)) { JudgeBattle(tmpIsWon, "Main" + tmpLevel); if (tmpIsWon) { LTChargeManager.Instance.CheckLimitedTimeGiftTrigger(Hotfix_LT.Data.LTGTriggerType.Main, tmpLevel); } } } else if (_battleType == eBattleType.InfiniteChallenge) { DataLookupsCache.Instance.SearchDataByID <string>("infiniteChallenge.info.currentlayer", out tmpLevel); if (!string.IsNullOrEmpty(tmpLevel)) { JudgeBattle(tmpIsWon, _battleType.ToString() + tmpLevel); if (tmpIsWon) { LTChargeManager.Instance.CheckLimitedTimeGiftTrigger(Hotfix_LT.Data.LTGTriggerType.UltimateTrial, tmpLevel); } } Data.NewGameConfigTemplateManager.Instance.GetEnterVigor(eBattleType.InfiniteChallenge, out int dayDisCountTime, out int NewVigor, out int oldVigor); int curDisCountTime = dayDisCountTime - LTUltimateTrialDataManager.Instance.GetCurrencyTimes(); if (outcome == eCombatOutcome.Win && curDisCountTime >= 0) { LTDailyDataManager.Instance.SetDailyDataRefreshState(); } } else if (_battleType == eBattleType.TreasuryBattle) { ArrayList rewardData; DataLookupsCache.Instance.SearchDataByID <ArrayList>("combat.rewards", out rewardData); Hashtable rewardDataTable = Johny.HashtablePool.Claim(); if (rewardData != null) { rewardDataTable = rewardData[0] as Hashtable; } tmpLevel = EB.Dot.String("gold.currentDifficulty", rewardDataTable, null); if (!string.IsNullOrEmpty(tmpLevel)) { JudgeBattle(tmpIsWon, _battleType.ToString() + tmpLevel); } } else if (_battleType == eBattleType.ExpSpringBattle) { ArrayList rewardData; DataLookupsCache.Instance.SearchDataByID <ArrayList>("combat.rewards", out rewardData); Hashtable rewardDataTable = Johny.HashtablePool.Claim(); if (rewardData != null) { rewardDataTable = rewardData[0] as Hashtable; } tmpLevel = EB.Dot.String("currentDifficulty", rewardDataTable, null); if (!string.IsNullOrEmpty(tmpLevel)) { JudgeBattle(tmpIsWon, _battleType.ToString() + tmpLevel); } } else if (_battleType == eBattleType.ChallengeCampaign) { tmpLevel = LTInstanceMapModel.Instance.CurLevelNum.ToString(); } int chapterId = 0; int.TryParse(tmpLevel, out chapterId); string teamName = FormationUtil.GetCurrentTeamName(_battleType); string teamDataPath = SmallPartnerPacketRule.USER_TEAM + "." + teamName + ".team_info"; List <int> heroInfos = new List <int>(); ArrayList teamDatas; DataLookupsCache.Instance.SearchDataByID(teamDataPath, out teamDatas); if (teamDatas != null) { for (var i = 0; i < teamDatas.Count; i++) { var td = teamDatas[i]; string heroid = EB.Dot.String("hero_id", td, ""); if (!string.IsNullOrEmpty(heroid)) { LTPartnerData data = LTPartnerDataManager.Instance.GetPartnerByHeroId(int.Parse(heroid)); if (data != null) { // IDictionary<string, int> hero = new Dictionary<string, int>(); // hero.Add(data.HeroInfo.name, data.Level); heroInfos.Add(data.InfoId); } } } } FusionTelemetry.PostCombat(_battleType.ToString(), chapterId, tmpIsWon ? 1 : 2, heroInfos, isCombatOut ? 2 : 1); }