public BallExtraFeatureBuilder( IBallManager ballManager, ITailManager tailManager, BallBuilder ballBuilder, FireBallCounter fireBallCounter) { this.ballManager = ballManager; this.tailManager = tailManager; this.ballBuilder = ballBuilder; this.fireBallCounter = fireBallCounter; }
public GameEngine(int number) { GameConfig.Mouses = number; screen = new Screen { Width = ScreenWidth, Height = ScreenHeight }; ManagerScope = managerScopeFactory.Create(screen); levelManager = ManagerScope.Resolve <ILevelManager>(); ballManager = ManagerScope.Resolve <IBallManager>(); padManager = ManagerScope.Resolve <IPadManager>(); tailManager = ManagerScope.Resolve <ITailManager>(); borderManager = ManagerScope.Resolve <IBorderManager>(); collisionManager = ManagerScope.Resolve <ICollisionManager>(); screenCollisionManager = ManagerScope.Resolve <IScreenCollisionManager>(); borderCollisionManager = ManagerScope.Resolve <IBorderCollisionManager>(); FireBallCounter = new FireBallCounter(tailManager); ballStateMachine = new BallStateMachine( ManagerScope, Bricks, HitBrick, LostBall); ballBuilder = new BallBuilder( ballManager, tailManager, padManager, FastBallCounter.TimerHandler); ballExtraFeatureBuilder = new BallExtraFeatureBuilder( ballManager, tailManager, ballBuilder, FireBallCounter); levelBuilder = new LevelBuilder( screen, levelManager, padManager, borderManager, borderCollisionManager, ballBuilder, GameConfig, Bricks); }
public void StartPlay() { if (!ballStateMachine.IsBallInIdleState()) { return; } FastBallCounter.Clear(); FireBallCounter.Clear(); ballBuilder.Create(GameConfig); ballStateMachine.GoIntoPlay(); }