using System; using Services.Interfaces; using Views; namespace Presenter { public class ScorePresenter : IDisposable{ private readonly IScoreService scoreService; private readonly ScoreView scoreView; public ScorePresenter(IScoreService scoreService, ScoreView scoreView) { this.scoreService = scoreService; this.scoreView = scoreView; this.scoreService.OnScoreChanged += OnScoreChanged; this.scoreView.SetScore(this.scoreService.Score); } public void Tick(float scoreSpeed) { this.scoreView.UpdateScore(scoreSpeed); } private void OnScoreChanged(int score) { this.scoreView.SetScore(score); } public void Dispose() { this.scoreService.OnScoreChanged -= OnScoreChanged; } } }