示例#1
0
    private void Update()
    {
        if (_runInRoomTime)
        {
            return;
        }
        switch (_state)
        {
        case GASBOTTLESTATE.BURNING:
            _fuse -= Time.deltaTime;
            _rb.AddForceAtPosition(-_pushPoint.forward * _pushForce, _pushPoint.position);

            if (_fuse < 0.0f)
            {
                Explode();
                _anims.SetTrigger("Explode");
                _state = GASBOTTLESTATE.EXPLODING;
            }
            break;

        case GASBOTTLESTATE.EXPLODING:
            _audio.PlayOneShot(_soundExplotion);
            _state = GASBOTTLESTATE.BROKEN;
            break;

        case GASBOTTLESTATE.NONE:
        case GASBOTTLESTATE.BROKEN:
        default:
            break;
        }
    }
示例#2
0
 private void Hit()
 {
     if (_state != GASBOTTLESTATE.NONE)
     {
         return;
     }
     _state = GASBOTTLESTATE.BURNING;
     _anims.SetTrigger("Burn");
     _fuse = Core.Instance.Settings.Room.GasBottleFuse;
 }