public void KONAMI(GamePadState gamePadState) { // stores a letter if up, down, left, right, a, b or start is pressed and a dash if something else is pressed if (gamePadState.DPad.Up == ButtonState.Pressed && !m_inputDelay.bFlag) { if (m_fKonamiTimer >= m_fKONAMIDuration) { m_fKonamiTimer = 0.0f; m_sBuffer = string.Empty; } m_sBuffer += "u"; m_inputDelay.bFlag = true; m_fKonamiTimer = 0.0f; } else if (gamePadState.DPad.Down == ButtonState.Pressed && !m_inputDelay.bFlag) { if (m_fKonamiTimer >= m_fKONAMIDuration) { m_fKonamiTimer = 0.0f; m_sBuffer = string.Empty; } m_sBuffer += "d"; m_inputDelay.bFlag = true; m_fKonamiTimer = 0.0f; } else if (gamePadState.DPad.Left == ButtonState.Pressed && !m_inputDelay.bFlag) { if (m_fKonamiTimer >= m_fKONAMIDuration) { m_fKonamiTimer = 0.0f; m_sBuffer = string.Empty; } m_sBuffer += "l"; m_inputDelay.bFlag = true; m_fKonamiTimer = 0.0f; } else if (gamePadState.DPad.Right == ButtonState.Pressed && !m_inputDelay.bFlag) { if (m_fKonamiTimer >= m_fKONAMIDuration) { m_fKonamiTimer = 0.0f; m_sBuffer = string.Empty; } m_sBuffer += "r"; m_inputDelay.bFlag = true; m_fKonamiTimer = 0.0f; } else if (gamePadState.Buttons.B == ButtonState.Pressed && !m_inputDelay.bFlag) { if (m_fKonamiTimer >= m_fKONAMIDuration) { m_fKonamiTimer = 0.0f; m_sBuffer = string.Empty; } m_sBuffer += "b"; m_inputDelay.bFlag = true; m_fKonamiTimer = 0.0f; } else if (gamePadState.Buttons.A == ButtonState.Pressed && !m_inputDelay.bFlag) { if (m_fKonamiTimer >= m_fKONAMIDuration) { m_fKonamiTimer = 0.0f; m_sBuffer = string.Empty; } m_sBuffer += "a"; m_inputDelay.bFlag = true; m_fKonamiTimer = 0.0f; } else if (gamePadState.Buttons.Start == ButtonState.Pressed && !m_inputDelay.bFlag) { if (m_fKonamiTimer >= m_fKONAMIDuration) { m_fKonamiTimer = 0.0f; m_sBuffer = string.Empty; } m_sBuffer += "s"; m_inputDelay.bFlag = true; m_fKonamiTimer = 0.0f; } else if (gamePadState.Buttons.X == ButtonState.Pressed && gamePadState.Buttons.Y == ButtonState.Pressed && gamePadState.Buttons.Back == ButtonState.Pressed && gamePadState.Buttons.Guide == ButtonState.Pressed && gamePadState.Buttons.LeftShoulder == ButtonState.Pressed && gamePadState.Buttons.RightShoulder == ButtonState.Pressed && gamePadState.Buttons.LeftStick == ButtonState.Pressed && gamePadState.Buttons.RightStick == ButtonState.Pressed && gamePadState.Triggers.Left != 0.0f && gamePadState.Triggers.Right != 0.0f && gamePadState.ThumbSticks.Left.X != 0.0f && gamePadState.ThumbSticks.Left.Y != 0.0f && gamePadState.ThumbSticks.Right.X != 0.0f && gamePadState.ThumbSticks.Right.Y != 0.0f && !m_inputDelay.bFlag) { if (m_fKonamiTimer >= m_fKONAMIDuration) { m_fKonamiTimer = 0.0f; m_sBuffer = string.Empty; } m_sBuffer += "-"; m_inputDelay.bFlag = true; m_fKonamiTimer = 0.0f; } // checks if too many characters are given if (m_sBuffer.Length > 11) { // removes the first character char[] sBuffer = m_sBuffer.ToCharArray(1, 11); m_sBuffer = string.Empty; for (int i = 0; i < sBuffer.Length; i++) { m_sBuffer += sBuffer[i]; } } // ensures the user is not taking too long to input the code if (m_fKonamiTimer <= m_fKONAMIDuration) { m_fKonamiTimer += Time.deltaTime; } // checks if the konami code was entered if (m_sBuffer == m_sKonami && !m_bKonami) { m_gameOverCanvas.KONAMION(); m_sBuffer = string.Empty; } else if (m_sBuffer == m_sKonami && m_bKonami) { m_gameOverCanvas.KONAMIOFF(); m_sBuffer = string.Empty; } if (m_inputDelay.bFlag) { m_inputDelay.fTimer -= Time.deltaTime; if (m_inputDelay.fTimer < 0.0f) { m_inputDelay.fTimer = m_fInputDelay; m_inputDelay.bFlag = false; } } }