[text] S

Viewer

  1. using System;
  2. using System.Threading;
  3. using Cysharp.Threading.Tasks;
  4. using Features.Collectibles.Album.Providers.Infrastructure;
  5. using Features.Collectibles.Badge.ViewModels.Infrastructure;
  6. using Features.Collectibles.PacksOpening.ViewModels.Infrastructure;
  7. using Playtika.Unity.ControllerTree;
  8.  
  9. namespace Features.Collectibles.PacksOpening.Controllers
  10. {
  11.         public abstract class AlbumNewCardsAnimationBaseController : Controller
  12.         {
  13.                 protected readonly IAlbumBadgeViewModel AlbumBadgeViewModel;
  14.  
  15.                 private readonly TimeSpan _secondsBeforeAnimationStart = TimeSpan.FromSeconds(1f);
  16.                 private readonly IAlbumPackDetailsViewModel _albumPackDetailsViewModel;
  17.                 private readonly IAlbumPlayerDataProvider _albumPlayerDataProvider;
  18.  
  19.                 protected AlbumNewCardsAnimationBaseController(
  20.                         IAlbumBadgeViewModel albumBadgeViewModel,
  21.                         IAlbumPackDetailsViewModel albumPackDetailsViewModel,
  22.                         IAlbumPlayerDataProvider albumPlayerDataProvider)
  23.                 {
  24.                         AlbumBadgeViewModel = albumBadgeViewModel;
  25.                         _albumPackDetailsViewModel = albumPackDetailsViewModel;
  26.                         _albumPlayerDataProvider = albumPlayerDataProvider;
  27.                 }
  28.  
  29.                 protected sealed override UniTask OnInitialize(CancellationToken token)
  30.                 {
  31.                         return UniTask.CompletedTask;
  32.                 }
  33.  
  34.                 protected sealed override async UniTask Running(CancellationToken token)
  35.                 {
  36.                         await UniTask.Delay(_secondsBeforeAnimationStart, cancellationToken: token);
  37.  
  38.                         await ShowBadge(token);
  39.  
  40.                         await RunFlyingAnimation(token);
  41.  
  42.                         await HideBadge(token);
  43.  
  44.                         _albumPlayerDataProvider.SetHasAlbumUpdates(true);
  45.                 }
  46.  
  47.                 protected abstract UniTask ShowBadge(CancellationToken token);
  48.  
  49.                 protected abstract UniTask HideBadge(CancellationToken token);
  50.  
  51.                 private UniTask RunFlyingAnimation(CancellationToken token)
  52.                 {
  53.                         var badgePosition = AlbumBadgeViewModel.BadgeTransform.position;
  54.  
  55.                         return UniTask.WhenAll(
  56.                                 _albumPackDetailsViewModel.PlayCardsFlyAnimations(badgePosition, token),
  57.                                 AlbumBadgeViewModel.PlayFlippingAnimation(token)
  58.                         );
  59.                 }
  60.         }
  61. }

Editor

You can edit this paste and save as new:


File Description
  • S
  • Paste Code
  • 30 Jun-2022
  • 1.98 Kb
You can Share it: