Example #1
0
 public override void Update()
 {
     foreach (var warehouse in gameBoard.Locations.Select(l => l.Occupant).OfType <Warehouse>()
              .Concat(gameBoard.Locations.Select(l => l.Occupant).OfType <Mine>().Select(m => m.Storage))
              .Where(w => !w.Established))
     {
         Prefabs
         .Warehouse(warehouse)
         .AddToState(state);
         warehouse.Established = true;
     }
 }
Example #2
0
        public GameplayState()
        {
            var game = new MiningLogisticsGameplay();
            var play = game.Play().GetEnumerator();

            play.MoveNext();

            Entity
            .Empty
            .AddComponent(new GameStepBehavior(play, this, game.GameBoard))
            .AddToState(this);

            Entity
            .Empty
            .AddComponent(new Transform())
            .AddComponent(new Sprite(Texture2D("board"), origin: Vector2.Zero))
            .AddToState(this);

            Entity
            .Empty
            .AddComponent(new ShowWarehousesBehavior(game.GameBoard, this))
            .AddToState(this);

            Entity
            .Empty
            .AddComponent(new ShowPurchaseOrdersBehavior(game.GameBoard, this))
            .AddToState(this);

            foreach (var corp in game.GameBoard.Corporations)
            {
                Entity.Empty
                .AddComponent(new Transform
                {
                    Position = corp.Name == "LuDare" ? new Vector2(1640, 630) :
                               corp.Name == "Adico" ? new Vector2(1640, 715) :
                               corp.Name == "SparkTech Industries" ? new Vector2(1640, 800) :
                               Vector2.Zero,
                })
                .AddComponent(new FavorBehavior(corp))
                .AddComponent(new TextSprite(SpriteFont("large"), color: Color.Black))
                .AddToState(this);
            }


            foreach (var mine in game.GameBoard.Mines)
            {
                var loc = Prefabs.GetWarehousePosition(mine.Storage) -
                          new Vector2(30, 0);

                var gauge = Entity.Empty
                            .AddComponent(new Transform {
                    Position = loc
                });

                for (int i = 0; i < GameConfiguration.MaxCumulativeMineShutdowns; i++)
                {
                    gauge.AddChild(Entity.Empty
                                   .AddComponent(new Transform {
                        Position = new Vector2(4, 8 + (i * 14.5f)), Scale = 1.1f
                    })
                                   .AddComponent(new Sprite(Texture2D("shutdownpip"), color: Color.Red))
                                   .AddComponent(new MinShutdownPipBehavior(i, mine))
                                   );
                }

                gauge.AddToState(this);
            }

            var sellOff = Entity
                          .Empty
                          .AddComponent(new Transform {
                Position = new Vector2(1730, 636)
            });


            for (int i = 0; i < GameConfiguration.MaxSellOffPile; i++)
            {
                sellOff.AddChild(Entity
                                 .Empty
                                 .AddComponent(new Transform())
                                 .AddComponent(new SellOfPipBehavior(i, game.GameBoard.SellOffPile))
                                 .AddComponent(new Sprite(Texture2D("ironpip")))
                                 );
            }

            sellOff.AddToState(this);

            //foreach (var mine in game.GameBoard.Locations.Select(l => l.Occupant).OfType<Mine>())
            //{

            //}



            //Entity
            //    .Empty
            //    .AddComponent(new Transform())
            //    .AddComponent(new Sprite(GameContent.LazyGet<Texture2D>("pointer"), origin: Vector2.Zero))
            //    .AddComponent(new PointerBehavior())
            //    .AddToState(this);
        }