private void Reset() { MoverManager.movers.Clear(); _mainPartIsDead = false; _ready = true; _timer = Config.BossInitialTimer; if (_previousBossPart == null) { _mainPart = new BossPart( _gameRef, this, _players, MoverManager, _completeBulletPatterns, new Color(0f, 0.75f, 0f, 0.65f), 4242f, _iteration, _step, null, null, true ); _mainPart.Initialize(); } else { _mainPart = _previousBossPart; _mainPart.IterateStructure(_iteration); } _previousBossPart = (BossPart)_mainPart.Clone(); _parts.Add(_mainPart); int targetPlayerId = _gameRef.Rand.Next(0, _players.Count); _core = new BossCore(_gameRef, _mainPart, _players[targetPlayerId].GetPosition, MoverManager, _completeBulletPatterns); _core.Initialize(); }