Esempio n. 1
0
        public static Frame CallPlanet(object sender, MouseEventArgs e, ListBox l, List <String> lastUrl)
        {
            Planet     p          = (Planet)l.SelectedItem;
            PlanetPage planetPage = new PlanetPage(p.url, lastUrl);
            TabItem    tabItem    = new TabItem();
            Frame      tabFrame   = new Frame();

            tabFrame.Content = planetPage;
            return(tabFrame);
        }
Esempio n. 2
0
        public static Frame GoBack(List <String> backUrl)
        {
            Frame  frame   = new Frame();
            string lastUrl = backUrl.Last();

            backUrl.Remove(lastUrl);
            switch (parseUrl(lastUrl))
            {
            case "planets":
                PlanetPage planetPage  = new PlanetPage(lastUrl, backUrl);
                Frame      planetFrame = new Frame();
                frame.Content = planetPage;
                break;

            case "species":
                SpeciesPage speciesPage  = new SpeciesPage(lastUrl, backUrl);
                Frame       speciesFrame = new Frame();
                frame.Content = speciesPage;
                break;

            case "vehicles":
                VehiclePage vehiclePage = new VehiclePage(lastUrl, backUrl);
                frame.Content = vehiclePage;
                break;

            case "starships":
                StarshipPage starshipPage = new StarshipPage(lastUrl, backUrl);
                frame.Content = starshipPage;
                break;

            case "people":
                PeoplePage peoplePage = new PeoplePage(lastUrl, backUrl);
                frame.Content = peoplePage;
                break;

            case "films":
                FilmPage filmPage = new FilmPage(lastUrl, backUrl);
                frame.Content = filmPage;
                break;
            }
            return(frame);
        }
Esempio n. 3
0
        private void CallPage(object sender, MouseEventArgs e)
        {
            List <String> backUrl = new List <String>();

            backUrl.Add("");
            switch (ListElements.SelectedItem.GetType().ToString())
            {
            case "OpenFood_C_Sharp.Modele.People":
                b         = new Button();
                b.Content = " X ";
                People     p               = (People)ListElements.SelectedItem;
                PeoplePage peoplePage      = new PeoplePage(p.url, backUrl);
                Frame      peoplePageFrame = new Frame();
                peoplePageFrame.Content = peoplePage;
                tabItem   = new TabItem();
                stack     = new StackPanel();
                l         = new Label();
                l.Content = p.ToString();
                stack.Children.Add(l);
                stack.Children.Add(b);
                stack.Orientation = Orientation.Horizontal;
                tabItem.Header    = stack;
                tabItem.Content   = peoplePageFrame;
                mainTab.Items.Add(tabItem);
                b.Click += removePanel;
                b.Tag    = tabItem;
                mainTab.SelectedItem = tabItem;
                mainTab.Visibility   = Visibility.Visible;
                break;

            case "OpenFood_C_Sharp.Modele.Film":
                b         = new Button();
                b.Content = " X ";
                Film     f             = (Film)ListElements.SelectedItem;
                FilmPage filmPage      = new FilmPage(f.url, backUrl);
                Frame    filmPageFrame = new Frame();
                filmPageFrame.Content = filmPage;
                tabItem   = new TabItem();
                stack     = new StackPanel();
                l         = new Label();
                l.Content = f.ToString();
                stack.Children.Add(l);
                stack.Children.Add(b);
                stack.Orientation = Orientation.Horizontal;
                tabItem.Header    = stack;
                tabItem.Content   = filmPageFrame;
                mainTab.Items.Add(tabItem);
                b.Tag    = tabItem;
                b.Click += removePanel;
                mainTab.SelectedItem = tabItem;
                mainTab.Visibility   = Visibility.Visible;
                break;

            case "OpenFood_C_Sharp.Modele.Starship":
                b         = new Button();
                b.Content = " X ";
                Starship     star           = (Starship)ListElements.SelectedItem;
                StarshipPage starshipPage   = new StarshipPage(star.url, backUrl);
                Frame        starsShipFrame = new Frame();
                starsShipFrame.Content = starshipPage;
                tabItem = new TabItem();
                stack   = new StackPanel();

                l         = new Label();
                l.Content = star.ToString();
                stack.Children.Add(l);
                stack.Children.Add(b);
                stack.Orientation = Orientation.Horizontal;
                tabItem.Header    = stack;
                tabItem.Content   = starsShipFrame;
                mainTab.Items.Add(tabItem);
                b.Tag    = tabItem;
                b.Click += removePanel;
                mainTab.SelectedItem = tabItem;
                mainTab.Visibility   = Visibility.Visible;
                break;

            case "OpenFood_C_Sharp.Modele.Vehicle":
                b         = new Button();
                b.Content = " X ";
                Vehicle     v             = (Vehicle)ListElements.SelectedItem;
                VehiclePage vehiclePage   = new VehiclePage(v.url, backUrl);
                Frame       vehiculeFrame = new Frame();
                vehiculeFrame.Content = vehiclePage;
                tabItem   = new TabItem();
                stack     = new StackPanel();
                l         = new Label();
                l.Content = v.ToString();
                stack.Children.Add(l);
                stack.Children.Add(b);
                stack.Orientation = Orientation.Horizontal;
                tabItem.Header    = stack;
                tabItem.Content   = vehiculeFrame;
                mainTab.Items.Add(tabItem);
                b.Tag    = tabItem;
                b.Click += removePanel;
                mainTab.SelectedItem = tabItem;
                mainTab.Visibility   = Visibility.Visible;
                break;

            case "OpenFood_C_Sharp.Modele.Species":
                b         = new Button();
                b.Content = " X ";
                Species     s            = (Species)ListElements.SelectedItem;
                SpeciesPage speciesPage  = new SpeciesPage(s.url, backUrl);
                Frame       speciesFrame = new Frame();
                speciesFrame.Content = speciesPage;
                tabItem   = new TabItem();
                stack     = new StackPanel();
                l         = new Label();
                l.Content = s.ToString();
                stack.Children.Add(l);
                stack.Children.Add(b);
                stack.Orientation = Orientation.Horizontal;
                tabItem.Header    = stack;
                tabItem.Content   = speciesFrame;
                mainTab.Items.Add(tabItem);
                b.Tag    = tabItem;
                b.Click += removePanel;
                mainTab.SelectedItem = tabItem;
                mainTab.Visibility   = Visibility.Visible;
                break;

            case "OpenFood_C_Sharp.Modele.Planet":
                b         = new Button();
                b.Content = " X ";
                Planet     pla         = (Planet)ListElements.SelectedItem;
                PlanetPage planetPage  = new PlanetPage(pla.url, backUrl);
                Frame      planetFrame = new Frame();
                planetFrame.Content = planetPage;
                tabItem             = new TabItem();
                stack     = new StackPanel();
                l         = new Label();
                l.Content = pla.ToString();
                stack.Children.Add(l);
                stack.Children.Add(b);
                stack.Orientation = Orientation.Horizontal;
                tabItem.Header    = stack;
                tabItem.Content   = planetFrame;
                mainTab.Items.Add(tabItem);
                b.Click += removePanel;
                mainTab.SelectedItem = tabItem;
                mainTab.Visibility   = Visibility.Visible;
                break;
            }
        }
Esempio n. 4
0
    protected void Page_Load(object sender, EventArgs e)
    {
        var js = new StringBuilder();
        var t  = new StringBuilder();

        GeneratePlanetLinks(t);

        js.Append("PW.init();\n");
        js.Append("PW.graphics.SetStroke(1);\n");
        js.Append("PW.graphics.SetColor('#89fecd')\n");

        var springieStates = Globals.Server.GetSpringieStates();

        var hide = Globals.Galaxy.Planets.Where(x => x.FactionName == null).Select(x => x.ID);

        if (hide.Count() > 0)
        {
            hide = hide.Except(Globals.Galaxy.GetClaimablePlanets().Select(x => x.ID));
        }

        var planetAttacked = new Dictionary <int, string>();
        int cnt            = 0;

        foreach (var state in springieStates)
        {
            int num = cnt % 3;
            if (state.Value.ReminderEvent == ReminderEvent.OnBattleStarted)
            {
                planetAttacked[state.Value.GameStartedStatus.PlanetID] = "img/planetstatus/attacking" + num + ".png";
            }
            else
            {
                planetAttacked[state.Value.PlanetID] = "img/planetstatus/preparing" + num + ".png";
            }
            cnt++;
        }

        var planetBattles = new Dictionary <int, IEnumerable <BattleEvent> >();

        foreach (var b in Globals.Galaxy.Events.OfType <BattleEvent>().GroupBy(x => x.PlanetID))
        {
            planetBattles.Add(b.Key, b);
        }



        var planetOrbits = new Dictionary <int, List <SpaceFleet> >();
        var fleetIcon    = Utils.GetImageDimensionsCached("img/fleets/Arm.png");

        foreach (var fleet in Globals.Galaxy.Fleets)
        {
            PointF curpos;
            if (fleet.GetCurrentPosition(out curpos, Globals.Galaxy.Turn))
            {
                List <SpaceFleet> fleets;
                if (!planetOrbits.TryGetValue(fleet.TargetPlanetID, out fleets))
                {
                    fleets = new List <SpaceFleet>();
                }
                fleets.Add(fleet);
                planetOrbits[fleet.TargetPlanetID] = fleets;
            }
            else
            {
                RenderFleet(fleet, ToScreenX(curpos.X) - fleetIcon.X / 2, ToScreenY(curpos.Y) - fleetIcon.Y / 2, t, js);
            }
        }

        foreach (var planet in Globals.Galaxy.Planets)
        {
            if (hide.Contains(planet.ID))
            {
                continue;
            }
            bool isMy = (Globals.Player != null && planet.OwnerName == Globals.Player.Name);

            var player = planet.OwnerName != null?Globals.Galaxy.GetPlayer(planet.OwnerName) : null;

            string planetImage = string.Format("planets/{0}.png", player == null ? "neutral" : player.FactionName.ToLower());
            // planet.ID % 15

            var imgSize = Utils.GetImageDimensionsCached(planetImage);


            string divid = "p" + planet.ID;


            // currently selected marker
            string overlay;
            if (planetAttacked.TryGetValue(planet.ID, out overlay))
            {
                t.AppendFormat(
                    "<a href='planet.aspx?name={5}' id='{6}'><img src='{4}' style='position:absolute; z-index:3; left:{0}px; top: {1}px;width:{2}px; height:{3}px'></a>",
                    GetPlanetX(planet) - (imgSize.X + 10) / 2,
                    GetPlanetY(planet) - (imgSize.Y + 10) / 2,
                    imgSize.X + 10,
                    imgSize.Y + 10,
                    overlay,
                    Uri.EscapeDataString(planet.Name),
                    divid);
            }

            // main image + text
            t.AppendFormat(
                "<a href='planet.aspx?name={3}' id='{5}' class='mapplanet' style='left:{0}px;top:{1}px;{4}'><img src='{2}'></a>",
                GetPlanetX(planet) - imgSize.X / 2,
                GetPlanetY(planet) - imgSize.Y / 2,
                planetImage,
                Uri.EscapeDataString(planet.Name),
                isMy ? "text-decoration: overline;" : "", overlay == null ?divid :"");

            t.AppendFormat(
                "<span class='mapowner' style='left:{0}px;top:{1}px;{3}'>{2}</span>",
                GetPlanetX(planet) + imgSize.X / 2,
                GetPlanetY(planet) - imgSize.Y / 2 - 5,
                planet.ToHtml(),
                isMy ? "text-decoration: overline;" : "");

            t.AppendFormat(
                "<span class='mapowner' style='left:{0}px;top:{1}px;{3}'>{2}</span>",
                GetPlanetX(planet) + imgSize.X / 2,
                GetPlanetY(planet) - imgSize.Y / 2 + 10,
                player.ToHtml(),
                isMy ? "text-decoration: overline;" : "");



            // past battles
            IEnumerable <BattleEvent> battles;
            if (planetBattles.TryGetValue(planet.ID, out battles))
            {
                int       battleCount = battles.Count();
                var       iconSize    = Utils.GetImageDimensionsCached("img/battles/Arm.png");
                const int maxLine     = 5;
                int       offsetY     = -imgSize.Y / 2 - (((battleCount - 1) / maxLine) + 1) * iconSize.Y;
                int       offsetX     = -iconSize.X * Math.Min(maxLine, battleCount) / 2;

                int i = 0;
                foreach (var battle in battles)
                {
                    var factionPlayers = from p in battle.EndGameInfos
                                         where !p.Spectator
                                         group p by p.Side
                                         into grouped
                                         select new { factionName = grouped.Key, factionCount = grouped.Count() };

                    string sideStrength = "";

                    foreach (var fp in factionPlayers)
                    {
                        sideStrength += string.Format("{0} {1} armies<br/>", fp.factionName, fp.factionCount);
                    }


                    string iconName = string.Format(
                        "img/battles/{0}{1}.png", battle.Victor, battle.Attacker == battle.Victor ? "" : "def");
                    t.AppendFormat(
                        "<a href='battle.aspx?turn={0}' id='b{0}'><img id='b{0}' src='{3}' style='position:absolute;z-index:4;left:{1}px;top:{2}px;'></a>",
                        battle.Turn,
                        GetPlanetX(planet) + offsetX + (i % maxLine) * iconSize.X,
                        GetPlanetY(planet) + offsetY + (i / maxLine) * iconSize.Y, iconName);
                    js.AppendFormat(
                        "PW.AddTooltip('b{0}', '<div class=\"popup\">{1} The {2} have {3} {4}.<br/>{5}</div>', null);\n",
                        battle.Turn,
                        HtmlRenderingExtensions.GetFactionImage(battle.Victor),
                        battle.Victor,
                        battle.Attacker == battle.Victor ? "invaded" : "protected",
                        planet.Name,
                        sideStrength);
                    i++;
                }
            }

            List <SpaceFleet> fleets;
            if (planetOrbits.TryGetValue(planet.ID, out fleets))
            {
                int       count    = fleets.Count;
                var       iconSize = Utils.GetImageDimensionsCached("img/fleets/Arm.png");
                const int maxLine  = 5;
                int       offsetY  = imgSize.Y / 2;
                int       offsetX  = -iconSize.X * Math.Min(maxLine, count) / 2;

                int i = 0;
                foreach (var fleet in fleets)
                {
                    RenderFleet(
                        fleet,
                        GetPlanetX(planet) + offsetX + (i % maxLine) * iconSize.X,
                        GetPlanetY(planet) + offsetY + (i / maxLine) * iconSize.Y,
                        t,
                        js);
                    i++;
                }
            }

            string htmltext =
                String.Format(
                    "<div class=\"popup\"><b>Name:</b> {0}<br /><b>Owner:</b> {1}<br /><b>Map:</b> {2}<br/><img src=\"{3}\" style=\"max-width: 200px\"><br/>{4}</div>",
                    planet.Name,
                    planet.OwnerName ?? "Unknown",
                    Path.GetFileNameWithoutExtension(planet.MapName ?? "Uncharted"),
                    HtmlRenderingExtensions.GetMinimapUrl(planet.MapName),
                    PlanetPage.GetMapInfoTable(planet.MapName, player != null ? player.Description : null));

            js.AppendFormat("PW.AddTooltip('{0}', '{1}', {2});\n", divid, htmltext, "null");
        }

        js.Append("PW.graphics.Paint();\n");
        litPlanets.Text += t.ToString();
        litJs.Text       = "<script language=\"javascript\">\nfunction doStuff() {" + js +
                           "\n}\naddLoadEvent(doStuff);</script>";
    }