Exemple #1
0
        public bool IsStatusSuppressed(
            StatusType statusType,
            int currentTurn,
            ActionPhaseCheckMode phaseCheckMode = ActionPhaseCheckMode.Default)
        {
            if (m_statusSuppression == null)
            {
                return(false);
            }
            var statusSuppression = m_statusSuppression;

            for (var index = 0; index < statusSuppression.Count; ++index)
            {
                if (statusSuppression[index].m_statusType != statusType)
                {
                    continue;
                }
                var statusInterval      = statusSuppression[index];
                var startOffset         = statusInterval.m_startOffset;
                var duration            = statusInterval.m_duration;
                var interval            = statusInterval.m_interval;
                var tillStartOfMovement = statusInterval.m_delayTillStartOfMovement;
                return(IsActiveInCurrentActionPhase(currentTurn, duration, interval,
                                                    startOffset, tillStartOfMovement, phaseCheckMode));
            }

            return(false);
        }
Exemple #2
0
        public bool IsStatusActive(
            StatusType statusType,
            int currentTurn,
            ActionPhaseCheckMode phaseCheckMode = ActionPhaseCheckMode.Default)
        {
            if (m_alwaysOnStatuses == null)
            {
                return(false);
            }
            foreach (var status in m_alwaysOnStatuses)
            {
                if (status.m_statusType != statusType)
                {
                    continue;
                }
                int  startOffset         = status.m_startOffset;
                int  duration            = status.m_duration;
                int  interval            = status.m_interval;
                bool tillStartOfMovement = status.m_delayTillStartOfMovement;
                return(IsActiveInCurrentActionPhase(currentTurn, duration, interval, startOffset, tillStartOfMovement,
                                                    phaseCheckMode));
            }

            return(false);
        }
Exemple #3
0
        public bool IsActiveInCurrentActionPhase(
            int currentTurn,
            int onDuration,
            int restDuration,
            int startOffset,
            bool delayTillMoveStart,
            ActionPhaseCheckMode phaseCheckMode)
        {
            bool flag1 = false;
            bool flag2;

            if ((flag2 = IsActiveInCurrentTurn(currentTurn, onDuration, restDuration, startOffset)) &&
                phaseCheckMode == ActionPhaseCheckMode.Any)
            {
                flag1 = true;
            }
            else if (flag2)
            {
                if (delayTillMoveStart)
                {
                    bool flag3 = IsActiveInCurrentTurn(currentTurn - 1, onDuration, restDuration, startOffset);
                    if (!IsOnStartOfIntervalCycle(currentTurn, onDuration, restDuration,
                                                  startOffset) && flag3)
                    {
                        flag1 = true;
                    }
                    else if (!(flag1 = phaseCheckMode == ActionPhaseCheckMode.Movement) &&
                             phaseCheckMode == ActionPhaseCheckMode.Default)
                    {
                        switch (ServerClientUtils.GetCurrentActionPhase())
                        {
                        case ActionBufferPhase.AbilitiesWait:
                        case ActionBufferPhase.Movement:
                        case ActionBufferPhase.MovementChase:
                        case ActionBufferPhase.MovementWait:
                            flag1 = true;
                            break;

                        case ActionBufferPhase.Done:
                            if (GameFlowData.gameState == GameState.BothTeams_Resolve ||
                                GameFlowData.gameState == GameState.EndingTurn)
                            {
                                goto case ActionBufferPhase.AbilitiesWait;
                            }
                            else
                            {
                                break;
                            }
                        }
                    }
                }
                else
                {
                    flag1 = true;
                }
            }

            return(flag1);
        }