示例#1
0
        public CoroutineRunner(IGameObjectFactory gameObjectFactory)
        {
            this.gameObjectFactory = gameObjectFactory;

            var go = this.gameObjectFactory.Create("CoroutineRunnerPrefab");
            coroutineRunnerBehaviour = go.GetComponent<ICoroutineRunner>();
        }
 public TestTerrainBuilder(CustomizationService customizationService,
                           IElevationProvider elevationProvider,
                           IGameObjectFactory gameObjectFactory,
                           IObjectPool objectPool) :
     base(customizationService, elevationProvider, gameObjectFactory, objectPool)
 {
 }
        public TankSpawnerEngine(IGameObjectFactory gameObjectFactory, IEntityFactory entityFactory)
        {
            _GameObjectFactory = gameObjectFactory;
            _EntityFactory     = entityFactory;

            Spawn();
        }
示例#4
0
 public PhysicsEngine(IMessageBus bus, IObservableTimer timer,IGameObjectFactory gameObjectFactory)
 {
     Timer = timer;
     Bus = bus;
     Running = false;
     _gameObjectFactory = gameObjectFactory;
 }
        public override void PostInitialize()
        {
            gameObjectFactory = GameServiceManager.GetService<IGameObjectFactory>();

            LoadLevel("testLevel");

            base.PostInitialize();
        }
示例#6
0
        public override void PostInitialize()
        {
            gameObjectFactory = GameServiceManager.GetService <IGameObjectFactory>();

            LoadLevel("testLevel");

            base.PostInitialize();
        }
示例#7
0
    public ImprovedSpawnSystem(IWorldContext worldContext, GameObject prefab, IGameObjectFactory factory)
    {
        mWorldContext = worldContext;

        mPrefab = prefab;

        mFactory = factory;
    }
示例#8
0
        public CoroutineRunner(IGameObjectFactory gameObjectFactory)
        {
            this.gameObjectFactory = gameObjectFactory;

            var go = this.gameObjectFactory.Create("CoroutineRunnerPrefab");

            coroutineRunnerBehaviour = go.GetComponent <ICoroutineRunner>();
        }
示例#9
0
        public bool Execute(List <GameObject> gameObjects, IGameObjectFactory factory)
        {
            foreach (var screenObject in gameObjects)
            {
                screenObject.AutoMove();
            }

            return(true);
        }
示例#10
0
 protected BaseGameEngine(IMessageBus bus, IGraphicsEngine graphics, ILevel level, ITimer timer, IGameObjectFactory gameObjectFactory)
 {
     _graphics = graphics;
     _timer = timer;
     _gameObjectFactory = gameObjectFactory;
     Bus = bus;
     Level = level;
     _timer.Ticks.Subscribe(Update);
 }
示例#11
0
        public List <GameObject> CreateGameObjects(IGameObjectFactory factory)
        {
            _factory     = factory;
            _gameObjects = new List <GameObject>();

            CreatePlayers();
            CreateCarQueues();

            return(_gameObjects);
        }
示例#12
0
 public TerrainBuilder(CustomizationService customizationService,
                       IElevationProvider elevationProvider,
                       IGameObjectFactory gameObjectFactory,
                       IObjectPool objectPool)
 {
     _customizationService = customizationService;
     _elevationProvider    = elevationProvider;
     _gameObjectFactory    = gameObjectFactory;
     _objectPool           = objectPool;
     _meshCellBuilder      = new MeshCellBuilder(_objectPool);
 }
示例#13
0
        public Game(ITimer timer, IGraphics graphics, IMessageBus bus, IGameObjectFactory factory)
        {
            Timer = timer;
            Timer.SubSample(5).Subscribe(t => Bus.SendAll());
            Graphics = graphics;
            Bus = bus;
            Factory = factory;
            Timer.Subscribe(Update);

            Bus.OfType<RequestCloseMessage>().Subscribe(m => Stop());
        }
示例#14
0
        public void SetUp()
        {
            _universe = Substitute.For<IUniverse>();
            _gravitySimulator = Substitute.For<IGravitySimulator>();
            _gameObjectFactory = Substitute.For<IGameObjectFactory>();
            _keyboardHandler = Substitute.For<IKeyboardHandler>();
            _actionHandler = Substitute.For<IActionHandler>();
            _drawingManager = Substitute.For<IDrawingManager>();

            _gameEngine = new GameEngine(_universe, _gravitySimulator, _gameObjectFactory, _keyboardHandler, _actionHandler, _drawingManager);
        }
示例#15
0
        public TileModelLoader(IGameObjectFactory gameObjectFactory,
                               ITerrainBuilder terrainBuilder, IStylesheetProvider stylesheetProvider,
                               CustomizationService customizationService, IObjectPool objectPool)
        {
            _terrainBuilder       = terrainBuilder;
            _customizationService = customizationService;

            _objectPool = objectPool;

            _gameObjectFactory = gameObjectFactory;
            _stylesheet        = stylesheetProvider.Get();
        }
示例#16
0
        /// <param name="method">Returns a list of all game objects for the game.</param>
        /// <param name="gameObjectFactory">Creates game objects.</param>
        /// <param name="gameProcedures">Performs win/loss condition checks and responses.</param>
        public GameEngine(ICreateObjectMethod method, IGameObjectFactory gameObjectFactory, IGameCycleProcedure[] gameProcedures)
        {
            _method            = method;
            _gameObjectFactory = gameObjectFactory;
            _frameTimer        = new Stopwatch();

            if (gameProcedures == null || gameProcedures.Any() == false)
            {
                throw new ArgumentNullException("gameProcedures");
            }

            _gameProcedures = gameProcedures;
        }
示例#17
0
 public MapManipulator(IGameObjectFactory factory)
 {
     if (factory == null)
     {
         throw new ArgumentNullException("Game factory is null");
     }
     random          = new Random();
     this.gOFactory  = factory;
     minObjectAmount = Config.MIN_OBJECT_AMOUNT;
     maxObjectAmount = Config.MAX_OBJECT_AMOUNT;
     idBegin         = Config.BEGIN_OBJECT_ID;
     idEnd           = Config.END_OBJECT_ID;
 }
示例#18
0
        internal GameEngine(IUniverse universe, IGravitySimulator gravitySimulator, IGameObjectFactory gameObjectFactory, IKeyboardHandler keyboardHandler, IActionHandler actionHandler, IDrawingManager drawingManager)
        {
            _universe = universe;
            _drawingManager = drawingManager;
            _gravitySimulator = gravitySimulator;

            _gameObjectFactory = gameObjectFactory;

            _keyboardHandler = keyboardHandler;
            _actionHandler = actionHandler;
            _controllerFactory = new ControllerFactory(_keyboardHandler);
            actionHandler.RegisterTriggerAction(Keys.Space, () => _paused = !_paused);
        }
示例#19
0
        private bool NoCollisionDetected(List <GameObject> gameObjects, IGameObjectFactory factory)
        {
            var deadPlayers = (from p in gameObjects.OfType <Player>().ToArray()
                               from o in gameObjects.Except(new[] { p })
                               where p.CollidedWith(o) || o.CollidedWith(p)
                               select p).ToArray();

            foreach (var deadPlayer in deadPlayers)
            {
                ReplacePlayerWithStain(deadPlayer, gameObjects, factory);
            }

            return(!deadPlayers.Any());
        }
示例#20
0
 public FieldController(GameConfigModel configModel,
                        GameFieldModel fieldModel,
                        IFieldDimensionModel fieldDimensionModel,
                        IGameObjectFactory gameObjectFactory,
                        IMessageSender messageSender,
                        EntityMapperService entityMapperService)
 {
     ConfigModel         = configModel;
     FieldModel          = fieldModel;
     FieldDimensionModel = fieldDimensionModel;
     GameObjectFactory   = gameObjectFactory;
     MessageSender       = messageSender;
     EntityMapperService = entityMapperService;
 }
示例#21
0
 public GameEngine(IObservableTimer timer, IMessageBus bus, IGameObjectFactory factory, IGraphicsEngine graphics,
                   IAudioEngine audio, IPhysicsEngine physics)
 {
     Timer = timer;
     Bus = bus;
     Graphics = graphics;
     Audio = audio;
     Physics = physics;
     Factory = factory;
     Bus.Add(new DebugMessage(Timer.LastTickTime, "Initialising Engines"));
     Bus.OfType<ExitGameRequest>().Subscribe(m => Stop());
     Timer.Subscribe(Update);
     Timer.SubSample(5).Subscribe(t => bus.SendAll());
     Running = false;
 }
示例#22
0
        public bool Execute(List <GameObject> gameObjects, IGameObjectFactory factory)
        {
            var playerWon = gameObjects.Any(p => p.HasWon());

            if (!playerWon)
            {
                return(true);
            }

            foreach (var player in gameObjects.OfType <Player>())
            {
                player.Respawn();
            }

            return(true);
        }
示例#23
0
        public OpenGLWindow(IMessageBus bus, ITimer timer, ICamera camera, IViewManager viewManager,
                            IAssetManager assetManager, IGameObjectFactory factory)
            : base(1280, 720, new GraphicsMode(32, 0, 0, 4), "Test")
        {
            Bus = bus;
            Timer = timer;
            _camera = camera;
            _viewManager = viewManager;
            _assetManager = assetManager;
            _factory = factory;

            VSync = VSyncMode.On;

            Mouse.WheelChanged += (sender, args) =>
                {
                    _camera.Eye += new Vect3(0, 0, args.DeltaPrecise *-2.0);
                };
        }
示例#24
0
        public void Listen(UnitySyncContext syncContext, IGameObjectFactory enemyFactory, Game game)
        {
            mServer = new Server();
            mServer.Ports.Add(new ServerPort(IPAddress.Any.ToString(), GameUtils.GamePort, ServerCredentials.Insecure));
            mServer.Services.Add(GameService.BindService(mGameService = new GameServiceImpl(game, enemyFactory, syncContext)));
            mGameService.MessageRecived += GameServiceOnMessageRecived;

            var meeleeWarriorService = new MeeleeWarriorServiceImpl();

            MeeleeWarriorRegistrator = meeleeWarriorService;
            mServer.Services.Add(MeeleeWarriorService.BindService(meeleeWarriorService));

            var rangedWarriorService = new RangedWarriorServiceImpl();

            RangedWarriorRegistrator = rangedWarriorService;
            mServer.Services.Add(RangedWarriorService.BindService(rangedWarriorService));

            var workerService = new WorkerServiceImpl();

            WorkerRegistrator = workerService;
            mServer.Services.Add(WorkerService.BindService(workerService));

            var buildingTemplateService = new BuildingTemplateServiceImpl();

            BuildingTemplateRegistrator = buildingTemplateService;
            mServer.Services.Add(BuildingTemplateService.BindService(buildingTemplateService));

            var centralBuildingService = new CentralBuildingServiceImpl();

            CentralBuildingRegistrator = centralBuildingService;
            mServer.Services.Add(CentralBuildingService.BindService(centralBuildingService));

            var miningCampService = new MiningCampServiceImpl();

            MiningCampRegistrator = miningCampService;
            mServer.Services.Add(MiningCampService.BindService(miningCampService));

            var barrakService = new BarrakServiceImpl();

            BarrakRegistrator = barrakService;
            mServer.Services.Add(BarrakService.BindService(barrakService));

            mServer.Start();
        }
示例#25
0
        internal SpaceWar2Game()
        {
            _contentManager = new ContentManagerWrapper(Content.ServiceProvider, "Content");
            var graphicsDeviceManager = new GraphicsDeviceManager(this);
            _graphicsDevice = new GraphicsDeviceWrapper(graphicsDeviceManager);

            _universe = Universe.CreateDefault();
            _drawingManager = new DrawingManager(_universe);
            _gravitySimulator = new GravitySimulator();
            _shipComponentFactory = new ShipComponentFactory();
            _graphicsFactory = new GraphicsFactory();

            _gameObjectFactory = new GameObjectFactory(_contentManager, _graphicsFactory, _gravitySimulator, _drawingManager, _universe, _shipComponentFactory);

            _keyboardHandler = new KeyboardHandler(new KeyboardWrapper());

            var actionHandler = new ActionHandler(_keyboardHandler);

            _gameEngine = new GameEngine(_universe, _gravitySimulator, _gameObjectFactory, _keyboardHandler, actionHandler, _drawingManager);

            SetUpActions(actionHandler);
        }
 /// <summary>
 /// Injects the specified game object factory.
 /// </summary>
 /// <param name="gameObjectFactory">The game object factory.</param>
 public void Inject(IGameObjectFactory gameObjectFactory)
 {
     this.gameObjectFactory = gameObjectFactory;
 }
示例#27
0
文件: Player.cs 项目: gormel/rts
 public Player(IGameObjectFactory externalFactory)
 {
     mExternalFactory = externalFactory;
 }
示例#28
0
 public ShellSpawnerEngine(IGameObjectFactory gameObjectFactory, IEntityFactory entityFactory, ITime time)
 {
     _GameObjectFactory = gameObjectFactory;
     _EntityFactory     = entityFactory;
     _Time = time;
 }
示例#29
0
 public TestGameEngine(IMessageBus bus, IGraphicsEngine graphics, ILevel level, ITimer timer, IGameObjectFactory gameObjectFactory)
     : base(bus, graphics, level, timer, gameObjectFactory)
 {
 }
示例#30
0
 public GameServiceImpl(Game game, IGameObjectFactory serverFactory, UnitySyncContext syncContext)
 {
     mGame          = game;
     mServerFactory = serverFactory;
     mSyncContext   = syncContext;
 }
示例#31
0
 public EnemyFactory(IGameObjectFactory gameObjectFactory,
                     IEntityFactory entityFactory)
 {
     _gameobjectFactory = gameObjectFactory;
     _entityFactory     = entityFactory;
 }
示例#32
0
 public TestPhysics(IMessageBus bus, IObservableTimer timer, IGameObjectFactory gameObjectFactory)
     : base(bus, timer, gameObjectFactory)
 {
 }
示例#33
0
        /*
        public TestGameEngine()
            : base(new AsyncObservableTimer(), new MessageBus(), new TestFactory(), new TestGraphics(), new TestAudio(), new TestPhysics())
        {
            Bus.OfType<GraphicsReady>().Subscribe(Start);
        }

        private void Start(GraphicsReady m)
        {
            Bus.Add(new DebugMessage(Timer.LastTickTime, "Starting Game"));

            for (int y = 0; y < 2; y++)
            for (int x = 0; x < 3; x++)
            {
                Bus.Add(new GameObjectRequest(m.TimeSent, new TestGameObject(Bus), new Vect3(3 * x, 3 * y , 0)));
            }

            var testGameObject = new TestGameObject(Bus);
            Bus.Add(new GameObjectRequest(m.TimeSent, testGameObject, new Vect3(-11, -1, 0)));
            Bus.Add(new SetVelocity(Timer.LastTickTime, testGameObject, new Vect3(3, 0, 0)));
        }
         * */
        public TestGameEngine(IObservableTimer timer, IMessageBus bus, IGameObjectFactory factory, IGraphicsEngine graphics, IAudioEngine audio, IPhysicsEngine physics)
            : base(timer, bus, factory, graphics, audio, physics)
        {
        }
示例#34
0
 public WaypointModelBuilder(IElevationProvider elevationProvider,
                             IGameObjectFactory gameObjectFactory)
 {
     _elevationProvider = elevationProvider;
     _gameObjectFactory = gameObjectFactory;
 }
示例#35
0
        public City(uint id,
                    IPlayer owner,
                    string name,
                    Position position,
                    ILazyResource resource,
                    byte radius,
                    decimal ap,
                    string defaultTheme,
                    string roadTheme,
                    string troopTheme,
                    string wallTheme,
                    IActionWorker worker,
                    CityNotificationManager notifications,
                    IReferenceManager references,
                    ITechnologyManager technologies,
                    ITroopManager troops,
                    IUnitTemplate template,
                    ITroopStubFactory troopStubFactory,
                    IDbManager dbManager,
                    IGameObjectFactory gameObjectFactory,
                    IActionFactory actionFactory,
                    BattleProcedure battleProcedure)
        {
            Id                     = id;
            Owner                  = owner;
            this.name              = name;
            this.radius            = radius;
            this.troopStubFactory  = troopStubFactory;
            this.dbManager         = dbManager;
            this.gameObjectFactory = gameObjectFactory;
            this.actionFactory     = actionFactory;
            this.battleProcedure   = battleProcedure;

            PrimaryPosition = position;
            AlignmentPoint  = ap;
            DefaultTheme    = defaultTheme;
            RoadTheme       = roadTheme;
            WallTheme       = wallTheme;
            TroopTheme      = troopTheme;
            Resource        = resource;

            Worker        = worker;
            Notifications = notifications;
            References    = references;
            Technologies  = technologies;
            Troops        = troops;
            Template      = template;

            #region Event Proxies

            Template.UnitUpdated += evtTemplate =>
            {
                if (Global.Current.FireEvents && DbPersisted)
                {
                    dbManager.Save(evtTemplate);
                }

                UnitTemplateUpdated(this, new EventArgs());
            };

            Troops.TroopAdded += stub => TroopAdded(this, new TroopStubEventArgs {
                Stub = stub
            });
            Troops.TroopRemoved += stub => TroopRemoved(this, new TroopStubEventArgs {
                Stub = stub
            });
            Troops.TroopUpdated += stub => TroopUpdated(this, new TroopStubEventArgs {
                Stub = stub
            });
            Troops.TroopUnitUpdated += stub => TroopUnitUpdated(this, new TroopStubEventArgs {
                Stub = stub
            });

            Worker.ActionRemoved += (stub, state) => ActionRemoved(this, new ActionWorkerEventArgs {
                State = state, Stub = stub
            });
            Worker.ActionStarted += (stub, state) => ActionStarted(this, new ActionWorkerEventArgs {
                State = state, Stub = stub
            });
            Worker.ActionRescheduled += (stub, state) => ActionRescheduled(this, new ActionWorkerEventArgs {
                State = state, Stub = stub
            });

            Resource.ResourcesUpdate += () =>
            {
                CheckUpdateMode();
                ResourcesUpdated(this, new EventArgs());
            };

            Technologies.TechnologyCleared  += OnTechnologyCleared;
            Technologies.TechnologyAdded    += OnTechnologyAdded;
            Technologies.TechnologyRemoved  += OnTechnologyRemoved;
            Technologies.TechnologyUpgraded += OnTechnologyUpgraded;

            References.ReferenceAdded   += (sender, args) => ReferenceAdded(this, args);
            References.ReferenceRemoved += (sender, args) => ReferenceRemoved(this, args);

            #endregion
        }
 public override void Initialize()
 {
     cachedProjectiles = new Dictionary<string, IGameObject>(32);
     gameObjectFactory = GameServiceManager.GetService<IGameObjectFactory>();
 }
示例#37
0
 public WaypointModelBuilder(IElevationProvider elevationProvider, 
     IGameObjectFactory gameObjectFactory)
 {
     _elevationProvider = elevationProvider;
     _gameObjectFactory = gameObjectFactory;
 }
示例#38
0
 public ClientPlayerFactory(IGameObjectFactory gameObjectFactory,
                            IEntityFactory entityFactory)
 {
     _gameobjectFactory = gameObjectFactory;
     _entityFactory     = entityFactory;
 }
        public void SetUp()
        {
            _contentManager = Substitute.For<IContentManager>();
            _graphicsFactory = Substitute.For<IGraphicsFactory>();
            _gravitySimulator = Substitute.For<IGravitySimulator>();
            _drawingManager = Substitute.For<IDrawingManager>();
            _universe = Substitute.For<IUniverse>();
            _shipComponentFactory = Substitute.For<IShipComponentFactory>();

            _gameObjectFactory = new GameObjectFactory(_contentManager, _graphicsFactory, _gravitySimulator, _drawingManager, _universe, _shipComponentFactory);
        }
 private void IHaveADodgingObjectFactory()
 {
     DodgingObjectFactory = new DodgingObjectFactory();
 }
 public GridSpawnEngine(IGameObjectFactory gameObjectFactory, IEntityFactory entityFactory)
 {
     _gameObjectFactory = gameObjectFactory;
     _entityFactory     = entityFactory;
 }
示例#42
0
 /// <param name="factory">Creates game objects for the queue to manage.</param>
 public GameObjectQueueFactory(IGameObjectFactory factory)
 {
     _factory = factory;
 }
示例#43
0
        private void ReplacePlayerWithStain(Player player, List <GameObject> gameObjects, IGameObjectFactory factory)
        {
            var stain = factory.CreateStainFromPlayer(player);

            gameObjects.Add(stain);
            gameObjects.Remove(player);
        }
        public override void Initialize()
        {
            gameObjectFactory = GameServiceManager.GetService<IGameObjectFactory>();

            base.Initialize();
        }
示例#45
0
 public bool Execute(List <GameObject> gameObjects, IGameObjectFactory factory)
 {
     return(NoCollisionDetected(gameObjects, factory));
 }
示例#46
0
        public override void Initialize()
        {
            gameObjectFactory = GameServiceManager.GetService <IGameObjectFactory>();

            base.Initialize();
        }
示例#47
0
 public void GivenIHaveAFallingObjectFactory()
 {
     fallingObjectFactory = new FallingObjectFactory();
 }
示例#48
0
 public SceneProcesser(Lazy <ISpaceStore> spaceContext, IGameObjectFactory gameObjectFactory)
 {
     this.spaceContext = spaceContext;
     factory           = gameObjectFactory;
 }
示例#49
0
 public SceneManager(IContentManager contentManager, IGameObjectFactory gameObjectFactory, IRenderer renderer)
 {
     _contentManager    = contentManager;
     _renderer          = renderer;
     _gameObjectFactory = gameObjectFactory;
 }
 private void IHaveAFallingObjectFactory()
 {
     fallingObjectFactory = new FallingObjectFactory();
 }
 public override void Initialize()
 {
     cachedProjectiles = new Dictionary <string, IGameObject>(32);
     gameObjectFactory = GameServiceManager.GetService <IGameObjectFactory>();
 }