Beispiel #1
0
    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;
        }
    }
Beispiel #2
0
 public void SetRepairState(ERepairState newState)
 {
     if (newState != CurrentRepairState)
     {
         _currentRepairState = newState;
         OnRepairStateChanged(newState);
     }
 }
Beispiel #3
0
 private void Start()
 {
     _currentRepairState = ERepairState.Fixed;
     OnRepairStateChanged(_currentRepairState);
 }