public BadgePresentator(BadgePresentation badgePresentation,
                         List <DroppingMothership> droppable,
                         Sprite[] badges,
                         Sprite[] bosses,
                         Sprite[] badgeStands,
                         Sprite[] bossStands)
 {
     _badgePresentation = badgePresentation;
     _droppable         = droppable;
     _badges            = badges;
     _bossBadges        = bosses;
     _badgeStands       = badgeStands;
     _bossStands        = bossStands;
     _badgeSpawner      = new UsualBadgeSpawner();
 }
        public void Init(PlayerData playerData, AutomationsData automationsData, BadgeData badgeData)
        {
            _badgeSprites      = new Sprite[_badges.spriteCount];
            _bossSprites       = new Sprite[_bossBadges.spriteCount];
            _bossStandSprites  = new Sprite[_bossStands.spriteCount];
            _badgeStandSprites = new Sprite[_badgeStands.spriteCount];

            _badges.GetSprites(_badgeSprites);
            _bossBadges.GetSprites(_bossSprites);
            _badgeStands.GetSprites(_badgeStandSprites);
            _bossStands.GetSprites(_bossStandSprites);

            _bossCountdown.Init();

            _badgeBusinessInput = new BadgeBusinessRules(playerData,
                                                         badgeData,
                                                         automationsData,
                                                         _bossCountdown);

            _badgePresentation = GetComponent <BadgePresentation>();
            _badgePresentation.Init(badgeData, _badgeBusinessInput);

            foreach (var mothership in _droppingMotherships)
            {
                mothership.Init(badgeData, playerData);
            }


            _badgeBusinessInput.CreateBadgeEvent += CreateBadge;
            _badgeBusinessInput.CreateBossEvent  += CreateBoss;
            _badgeBusinessInput.BadgeCreated     += OnBadgeCreated;
            _bossCountdown.BossNotDefeated       += OnBossNotDefeated;

            _badgeProgressPresentation.Init(badgeData);
            _hitDamageSpawner.Init(automationsData);
            _badgeBusinessInput.CreateNewBadge();
        }