protected override void Load() { EveryUpdate .Subscribe(_ => transform.LookAt(Vector3.zero)) .AddTo(_disposables); _collision.OnTriggerEnterAsObservable() .Where(it => it.CompareTag("CircleOfFire")) .Do(_ => canMove = false) .Subscribe() .AddTo(_disposables); _collision.OnTriggerExitAsObservable() .Where(it => it.CompareTag("CircleOfFire")) .Do(_ => canMove = true) .Subscribe() .AddTo(_disposables); EveryUpdate .Where(_ => canMove) .Subscribe(_ => transform.Translate(Vector3.forward * Time.deltaTime)) .AddTo(_disposables); Observable.Timer(TimeSpan.Zero, TimeSpan.FromSeconds(1f)) .Do(_ => Jump(true)) .Wait(0.5f) .Do(_ => Jump(false)) .Subscribe() .AddTo(_disposables); }
private void StopShootingSubscription() { EveryUpdate .Do(_ => _stopShootingTimer -= Time.deltaTime) .Where(_ => _stopShootingTimer < 0) .Subscribe(_ => _waterEmission.enabled = false) .AddTo(_disposables); }
protected override void Load() { _allHumedals = FindObjectsOfType <Humedal>().ToList(); EveryUpdate .Where(_ => _allHumedals.All(it => it.IsBurnt())) .First() .Subscribe(_ => EventStream.Send(Events.Defeat())); }
protected override void Load() { EveryUpdate .Do(_ => _fireSpawnTimer -= Time.deltaTime) .Where(_ => _fireSpawnTimer < 0) .Select(_ => GeneratePosition()) .Do(SpawnFire) .Subscribe() .AddTo(_disposables); }
protected override void Load() { SetRadius(); EveryUpdate .TakeWhile(_ => StateIsInRange) .Where(_ => AllHumedalsOfRingAreDead(state)) .Do(_ => AdvanceState()) .Where(_ => StateIsInRange) .Do(_ => SetRadius()) .Subscribe() .AddTo(_disposables); }
private void GoTowardsNearestHumedalSubscription() { EveryUpdate .Where(_ => _beingKnockedBackTimer <= 0) .Select(_ => FindClosestAliveHumedal()) .Where(HumedalIsNotNull) .Subscribe(MoveTowardsTarget) .AddTo(_disposables); EveryUpdate .Where(_ => _beingKnockedBackTimer > 0) .Do(_ => _beingKnockedBackTimer -= Time.deltaTime) .Subscribe() .AddTo(_disposables); }
protected override void Load() { _humedales = FindObjectsOfType <Humedal>().ToList(); _actualHumedal = FindClosestAliveHumedal(); transform.position = _actualHumedal.transform.position; GenerateRandomPosition(); EveryUpdate .Where(_ => !_actualHumedal.IsBurnt()) .Where(_ => canMove) .Subscribe(_ => JumpAroundHumedal()) .AddTo(_disposables); EveryUpdate .Where(_ => _actualHumedal.IsBurnt()) .Subscribe(_ => GoToOtherHumedal()) .AddTo(_disposables); }