Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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;
        }
Esempio n. 3
0
 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;
     }
 }
Esempio n. 4
0
        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();
            }
        }
Esempio n. 5
0
        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;
            }
        }
Esempio n. 6
0
        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);
        }