public IEnumerator PenaltyRoutine(int playerShotsFired) { // It's fine if a few penalty points take a "long" time to process, but it needs to be fast when there's a lot of them float penaltyCycleInterval = m_penaltyPointInterval; if (playerShotsFired * m_penaltyPointInterval > m_penaltySpeedUpTimeLimit) { penaltyCycleInterval = Mathf.Clamp(m_penaltySpeedUpTimeLimit / playerShotsFired, m_penaltyPointIntervalMin, m_penaltyPointInterval); } //Debug.Log(DebugUtilities.AddTimestampPrefix("Shots penalty being applied! Cycle interval: " + penaltyCycleInterval)); int penaltyAmount = 0; while (playerShotsFired > 0) { playerShotsFired--; ScenarioManager.SetShotsFired(playerShotsFired); ScenarioManager.ModifyScore(-5); penaltyAmount += 5; SetPenaltyAmount(-penaltyAmount); if (m_penaltyPointSFX != null) { Debug.Log(DebugUtilities.AddTimestampPrefix("Chuck!")); m_penaltyPointSFX.PlayOnSource(m_uiAudio); } yield return(new WaitForSecondsRealtime(penaltyCycleInterval)); } }
public void OnHit() { // Deduct score if "killed" if (m_canControl) { ScenarioManager.ModifyScore(-m_turret.m_killScore); } SetCanControl(false); }