public virtual void OnRepairStateChanged(ERepairState newState) { if (_repairedGameObject != null) { _repairedGameObject.SetActive(newState == ERepairState.Fixed); } if (_brokenGameObject != null) { _brokenGameObject.SetActive(newState == ERepairState.Broken); } switch (newState) { case ERepairState.Fixed: GameStateManager.Instance.ShipHealth.OnDeviceBecameFixed(); if (_fixedSound) { AudioManager.Instance.PlaySound(gameObject, _fixedSound); } break; case ERepairState.Broken: GameStateManager.Instance.ShipHealth.OnDeviceBecameDamaged(); if (_brokenSound) { AudioManager.Instance.PlaySound(gameObject, _brokenSound); } break; } }
public void SetRepairState(ERepairState newState) { if (newState != CurrentRepairState) { _currentRepairState = newState; OnRepairStateChanged(newState); } }
private void Start() { _currentRepairState = ERepairState.Fixed; OnRepairStateChanged(_currentRepairState); }