Files
godot-host-test/Game/Score/TotalScore.cs
T
redglow e7dbb9cabb .
2026-07-21 20:49:24 +02:00

29 lines
785 B
C#

using System;
using GodotHostTest.Interfaces;
using R3;
namespace GodotHostTest.Game.Score;
public class TotalScore : IScore, IDisposable
{
private readonly IDisposable _connectedObservableDisposable;
public TotalScore(ITargetEventBus targetEventBus)
{
var connectedObservable = targetEventBus.Hit.Select(_ => 20)
.Merge(targetEventBus.TimedOut.Select(_ => -5))
.Scan(0, (x1, x2) => x1 + x2)
.Prepend(0)
.Replay(1);
_connectedObservableDisposable = connectedObservable.Connect();
Score = connectedObservable.AsObservable();
}
public void Dispose()
{
_connectedObservableDisposable.Dispose();
GC.SuppressFinalize(this);
}
public Observable<int> Score { get; }
}