Exemplo n.º 1
0
        public void Generate()
        {
            double x = canvas.Width / Columns;
            double y = canvas.Height / Rows;

            for (int i = 0; i < Columns; i++)
            {
                for (int j = 0; j < Rows; j++)
                {
                    SilverlightControlPlanet p = new SilverlightControlPlanet();

                    p.PlanetName = namegen.GetPlanetName();
                    p.Owner      = PlanetOwner.Neutral;
                    p.ShipNum    = rnd.Next(100) + 10;
                    p.MaxProd    = rnd.Next(SilverlightControlPlanet.MAX_MAXPROD) + SilverlightControlPlanet.MIN_MAXPROD;
                    p.Production = rnd.Next(SilverlightControlPlanet.MAX_PRODUCTION) + SilverlightControlPlanet.MIN_PRODUCTION;

                    p.SetValue(Canvas.LeftProperty, i * x + rnd.Next((int)(x - p.Width - 10)) + 5);
                    p.SetValue(Canvas.TopProperty, j * y + rnd.Next((int)(y - p.Height - 10)) + 5);

                    double pv = Math.Max(p.PlanetValue(), 60.0) / 100.0;

                    p.Width  *= pv;
                    p.Height *= pv;

                    if (MouseLeftButtonDown != null)
                    {
                        p.MouseLeftButtonDown += MouseLeftButtonDown;
                    }

                    if (MouseRightButtonDown != null)
                    {
                        p.MouseRightButtonDown += MouseRightButtonDown;
                    }

                    Planets.Add(p);

                    canvas.Children.Add(p);
                }
            }

            // Initializing the player's planet
            Planets[0].Owner      = PlanetOwner.Player;
            Planets[0].MaxProd    = GameParameters.START_MAXPROD;
            Planets[0].ShipNum    = GameParameters.START_SHIPNUM;
            Planets[0].Production = GameParameters.START_PRODUCTION;
            Planets[0].Width      = SilverlightControlPlanet.PLANET_WIDTH;
            Planets[0].Height     = SilverlightControlPlanet.PLANET_HEIGHT;

            // Initializing the enemy's planet
            Planets[Planets.Count - 1].Owner      = PlanetOwner.Enemy;
            Planets[Planets.Count - 1].MaxProd    = GameParameters.START_MAXPROD;
            Planets[Planets.Count - 1].ShipNum    = GameParameters.START_SHIPNUM;
            Planets[Planets.Count - 1].Production = GameParameters.START_PRODUCTION;
            Planets[Planets.Count - 1].Width      = SilverlightControlPlanet.PLANET_WIDTH;
            Planets[Planets.Count - 1].Height     = SilverlightControlPlanet.PLANET_HEIGHT;
        }