public override void Start()
        {
            PlanetDetailsScreen highestLevelScreen = Service.Get <ScreenController>().GetHighestLevelScreen <PlanetDetailsScreen>();

            if (highestLevelScreen != null)
            {
                highestLevelScreen.Close(null);
            }
            if (Service.Get <GameStateMachine>().CurrentState is GalaxyState)
            {
                Service.Get <GalaxyViewController>().GoToHome();
            }
            BattleInitializationData data = BattleInitializationData.CreateFromDefensiveCampaignMissionVO(this.parent.MissionVO);

            BattleStartState.GoToBattleStartState(data, null);
            EventManager eventManager = Service.Get <EventManager>();

            eventManager.RegisterObserver(this, EventId.BattleEndFullyProcessed, EventPriority.Default);
            eventManager.RegisterObserver(this, EventId.GameStateChanged, EventPriority.Default);
            if (this.parent.OnIntroHook())
            {
                base.PauseBattle();
                return;
            }
            this.StartMission();
        }
        public override void Start()
        {
            PlanetDetailsScreen highestLevelScreen = Service.Get <ScreenController>().GetHighestLevelScreen <PlanetDetailsScreen>();

            if (highestLevelScreen != null)
            {
                highestLevelScreen.Close(null);
            }
            if (Service.Get <GameStateMachine>().CurrentState is GalaxyState)
            {
                Service.Get <GalaxyViewController>().GoToHome();
            }
            if (this.parent.OnIntroHook())
            {
                Service.Get <UserInputInhibitor>().DenyAll();
                return;
            }
            this.StartCounting();
        }