Exemplo n.º 1
0
        public override void Next()
        {
            if (DebugManager.DebugPhases)
            {
                Debug.Log("Combat SubPhase - Next");
            }
            if (Selection.ThisShip != null)
            {
                Selection.ThisShip.CallAfterAttackWindow();
            }

            Selection.DeselectAllShips();

            bool success = GetNextActivation(RequiredPilotSkill);

            if (!success)
            {
                int nextPilotSkill = GetNextPilotSkill(RequiredPilotSkill);

                if (nextPilotSkill != RequiredPilotSkill)
                {
                    Phases.CallCombatSubPhaseRequiredPilotSkillIsChanged();
                }

                if (nextPilotSkill != int.MaxValue)
                {
                    success = GetNextActivation(nextPilotSkill);
                }
                else
                {
                    FinishPhase();
                }
            }

            if (success)
            {
                if (DebugManager.DebugPhases)
                {
                    Debug.Log("Attack time for: " + RequiredPlayer + ", skill " + RequiredPilotSkill);
                }

                UpdateHelpInfo();
                HighlightShips();
                Roster.GetPlayer(RequiredPlayer).PerformAttack();
            }
        }
Exemplo n.º 2
0
        public override void Next()
        {
            if (DebugManager.DebugPhases)
            {
                Debug.Log("Combat SubPhase - Next");
            }

            UI.HideSkipButton();

            Selection.DeselectAllShips();

            bool success = GetNextActivation(RequiredPilotSkill);

            if (!success)
            {
                int nextPilotSkill = GetNextPilotSkill(RequiredPilotSkill);

                if (nextPilotSkill != RequiredPilotSkill)
                {
                    Phases.CallCombatSubPhaseRequiredPilotSkillIsChanged();
                }

                if (nextPilotSkill != int.MaxValue)
                {
                    success = GetNextActivation(nextPilotSkill);
                }
                else
                {
                    FinishPhase();
                }
            }

            if (success)
            {
                if (DebugManager.DebugPhases)
                {
                    Debug.Log("Attack time for: " + RequiredPlayer + ", skill " + RequiredPilotSkill);
                }

                UpdateHelpInfo();
                Roster.HighlightShipsFiltered(FilterShipsToAssignManeuver);
                Roster.GetPlayer(RequiredPlayer).PerformAttack();
            }
        }