예제 #1
0
    public bool Shoot()
    {
        float currentTime = _timer.Time;

        if (currentTime < _lastLaunchTime + _coolTime)
        {
            // クールタイム中であれば失敗
            return(false);
        }

        if (_blocker.Block())
        {
            // 発射遮断中であれば失敗
            return(false);
        }

        _launcher.Launch();

        // 発射時間を更新
        _lastLaunchTime = currentTime;

        return(true);
    }
예제 #2
0
 public void Dispose()
 {
     _blocker.Block(_applicationLifecycleSubject.OnStop());
 }