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); }
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); }
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); }