Пример #1
0
        public JoinGuiScreen(InputHandler Input)
            : base(Input, true, true, false, false)
        {
            SetTitle("join game");

            IpLabel      = new Label(Input);
            IpLabel.Text = "enter ip: ";
            IpLabel.Size = 1;
            IpLabel.X    = 20;
            IpLabel.Y    = 60;
            Controls.Add(IpLabel);

            InputBox           = new TextBox(Input);
            InputBox.MaxLength = 15;
            InputBox.Size      = 1;
            InputBox.X         = 20 + GFont.GetStringWidth(IpLabel.Text, 1);
            InputBox.Y         = 60;
            InputBox.IsFocused = true;
            InputBox.InputType = InputTypes.NumbersOnly;
            Controls.Add(InputBox);

            if (GameComponent.DEV)
            {
                InputBox.AppendText(GameClient.SelfIP.ToString());
            }

            Update();
        }
Пример #2
0
        public override void Render(GBitmap screen)
        {
            if (Enabled)
            {
                if (HasFocus)
                {
                    screen.DrawRect(Color.White, 2, iX - 2, iY - 2, 32, 32);
                    screen.FillCircle(Color.FromArgb(100, 255, 255, 255), EntityRange.iX - EntityRange.R / 2 + W / 2, EntityRange.iY - EntityRange.R / 2 + H / 2, EntityRange.R, EntityRange.R);

                    Color col = Color.Green;
                    if (Health < MaxHealth * 1 / 3)
                    {
                        col = Color.Red;
                    }
                    else if (Health < MaxHealth * 2 / 3)
                    {
                        col = Color.Yellow;
                    }
                    screen.FillRect(col, iX, iY + H + 6, (int)((double)Health / MaxHealth * 30), 4);
                }

                screen.Blit(Art.GRAPHICS[9, 1], iX, iY);
                GFont.Write(screen, "" + EntityRange.Owner, 1, iX - screen.XOffset, iY - screen.YOffset);
            }
        }
Пример #3
0
        private void RenderPlayer(GBitmap screen, ref int yo, string name, int kills, int deaths, int col1, int col2, int col3)
        {
            GFont.Write(screen, name, 1, col1, yo);
            GFont.Write(screen, "" + kills, 1, col2, yo);
            GFont.Write(screen, "" + deaths, 1, col3, yo);

            yo += 10;
        }
Пример #4
0
        public override void Render(GBitmap screen)
        {
            screen.Fill(175, 0, 0, 0);

            Modes mode        = GameLevel.GetMode();
            int   colWidth    = 195;
            int   nameColSx   = screen.ScreenWidth / 2 - colWidth / 2;
            int   killsColSx  = nameColSx + 100;
            int   deathsColSx = killsColSx + 50;
            int   yo          = 20;

            GFont.WriteXCenter(screen, "statistics", 2, yo);
            yo += 40;

            if (mode == Modes.Deathmatch)
            {
                RenderColTitle(screen, ref yo, nameColSx, killsColSx, deathsColSx);

                foreach (Player player in Players)
                {
                    RenderPlayer(screen, ref yo, player.Name, player.Kills, player.Deaths, nameColSx, killsColSx, deathsColSx);
                }
            }
            else
            {
                int xo     = -(screen.ScreenWidth - colWidth) / 4 - 15;
                int col2Yo = yo;

                GFont.Write(screen, "team of blu", 1, nameColSx + xo, yo);
                yo += 20;

                RenderColTitle(screen, ref yo, nameColSx + xo, killsColSx + xo, deathsColSx + xo);

                foreach (Player player in Players)
                {
                    if (player.Team == Teams.Blu)
                    {
                        RenderPlayer(screen, ref yo, player.Name, player.Kills, player.Deaths, nameColSx + xo, killsColSx + xo, deathsColSx + xo);
                    }
                }

                xo = -1 * xo;
                yo = col2Yo;

                GFont.Write(screen, "team of red", 1, nameColSx + xo, yo);
                yo += 20;

                RenderColTitle(screen, ref yo, nameColSx + xo, killsColSx + xo, deathsColSx + xo);

                foreach (Player player in Players)
                {
                    if (player.Team == Teams.Red)
                    {
                        RenderPlayer(screen, ref yo, player.Name, player.Kills, player.Deaths, nameColSx + xo, killsColSx + xo, deathsColSx + xo);
                    }
                }
            }
        }
Пример #5
0
        private void RenderGameGui(GBitmap screen)
        {
            screen.FillRect(Color.Black, screen.XOffset, screen.ScreenHeight - 45 + screen.YOffset, screen.ScreenWidth, 45);

            screen.Blit(Art.GRAPHICS[1, 18], 10 + screen.XOffset, screen.ScreenHeight - 30 + screen.YOffset);
            string HSign = "" + GameLevel.CurrentPlayer.Health;

            GFont.Write(screen, HSign, 1, new Point(31, screen.ScreenHeight - 26));

            int    ax    = 31 + GFont.GetStringWidth(HSign, 1) + 10;
            string ASign = "" + GameLevel.CurrentPlayer.Ammunition;

            screen.Blit(Art.GRAPHICS[0, 18], ax + screen.XOffset, screen.ScreenHeight - 30 + screen.YOffset);
            GFont.Write(screen, ASign, 1, ax + 16 + 5, screen.ScreenHeight - 26);

            int xPaddingBonuses   = 5;
            int xPaddingInventory = 22 - 1;
            int w          = 24;
            int h          = 4;
            int xBonuses   = screen.ScreenWidth - w - 13;
            int xInventory = screen.ScreenWidth / 2 - ((w + xPaddingInventory) * GameLevel.CurrentPlayer.Inventory.Count) / 2;

            for (int i = GameLevel.CurrentPlayer.PickedBonuses.Count - 1; i >= 0; --i)
            {
                Bonus B = GameLevel.CurrentPlayer.PickedBonuses[i];

                screen.Blit(Art.GRAPHICS[B.ImageIndex, 19], xBonuses - 3 + screen.XOffset, screen.ScreenHeight - 29 - 8 + screen.YOffset);

                if (B.Active)
                {
                    int bw = (w - 2) - (int)((double)B.GetLifeSpan() / B.GetDuration() * (w - 2));
                    screen.FillRect(Color.Green, xBonuses + 1 + screen.XOffset, screen.ScreenHeight - 9 - h - 1 + screen.YOffset, bw, h);
                }

                xBonuses -= w + xPaddingBonuses;
            }

            foreach (InvItem I in GameLevel.CurrentPlayer.Inventory)
            {
                if (I.IsSelected())
                {
                    screen.FillRect(Color.FromArgb(200, 113, 123, 140), xInventory - 7 - 5 * 2 + screen.XOffset, screen.ScreenHeight - 29 - 8 - 7 + screen.YOffset, 45, 44);
                }

                GFont.Write(screen, "" + I.ActivationKey, 1, new Point(xInventory - 7 - 5, screen.ScreenHeight - 29 + 9 - 5));

                screen.Blit(Art.GRAPHICS[I.ImageIconIndex, 19], xInventory - 3 + screen.XOffset, screen.ScreenHeight - 29 - 8 + screen.YOffset);

                if (I.Amount > 1)
                {
                    string AmSign = "" + I.Amount;
                    GFont.Write(screen, AmSign, 1, new Point(xInventory + w / 2 - GFont.GetStringWidth(AmSign, 1) / 2, screen.ScreenHeight - 7 - 2));
                }

                xInventory += w + xPaddingInventory;
            }
        }
Пример #6
0
 public void TryToSave()
 {
     if (!MapSaver.Save(_parent.FileName, this))
     {
         Screen.FillRect(Color.FromArgb(200, 0, 0, 0), OffsetX, OffsetY, DisplayWidth, DisplayHeight);
         GFont.WriteXCenter(Screen, "Impossible to save map. It has no spawners", 1, GameComponent.GetScreenHeight() / 2);
         _showText = 15;
     }
 }
 public override void Resized()
 {
     lName.X = 10;
     lName.Y = 10;
     lW.X    = GameComponent.GetScreenWidth() / 2;
     lW.Y    = 10;
     lMode.X = GameComponent.GetScreenWidth() - GFont.GetStringWidth(lMode.Text, 1) - 10;
     lMode.Y = 10;
     base.Resized();
     _clearScreen = true;
     Render(Screen);
 }
Пример #8
0
        private void RenderColTitle(GBitmap screen, ref int yo, int col1, int col2, int col3)
        {
            string nameSign = "name";

            GFont.Write(screen, nameSign, 1, col1, yo);
            string killsSign = "kills";

            GFont.Write(screen, killsSign, 1, col2, yo);
            string deathsSign = "deaths";

            GFont.Write(screen, deathsSign, 1, col3, yo);

            yo += 20;
        }
Пример #9
0
        public override void Render(GBitmap screen)
        {
            if (Enabled)
            {
                if (HasFocus)
                {
                    screen.DrawRect(Color.White, 1, iX, iY, 30, 30);
                    screen.FillCircle(Color.FromArgb(100, 255, 255, 255), ExplosionRange.iX - R / 2 + WIDTH / 2, ExplosionRange.iY - R / 2 + HEIGHT / 2, ExplosionRange.W, ExplosionRange.H);
                }

                screen.Blit(Art.GRAPHICS[7, 1], iX, iY);

                if (Countdown)
                {
                    GFont.Write(screen, "" + (EXPL_DELAY - SkippedExplTicks), 1, iX + screen.XOffset, iY + screen.YOffset);
                }
            }
        }
Пример #10
0
        public StringLabel(string aString, string aFontName, int pointSize, int x, int y, GFont.FontStyle style)
            : base("StringLabel",x,y,0,0)
        {
			// WAA
			fNeedsCalculation = true;
			fStyle = style;
            fString = aString;
            fFontName = aFontName;
			fPointSize = pointSize;
			fStartPoint = new Point(x,y);
            fBasePoint = new Point(x, y);
 
			fTextColor = RGBColor.Black;
            fBackColor = RGBColor.TRANSPARENT;
            fBrush = new GBrush(fTextColor);

            fFont = new GDIFont(fFontName, fPointSize);

			Recalculate();
        }
Пример #11
0
 public virtual void Render(GBitmap screen)
 {
     //if (!NonClearableScreen) screen.Fill(255, 0, 0, 0);
     if (RenderTitle && !AskIsOn)
     {
         GFont.WriteXCenter(screen, ScreenTitle, 2, 20);
     }
     foreach (GuiComponent item in Controls)
     {
         item.Render(screen);
     }
     if (RenderTip && !AskIsOn)
     {
         GFont.WriteXCenter(screen, TipMessage, 1, screen.ScreenHeight - 20);
     }
     if (AskIsOn)
     {
         AskPopUp.Render(screen);
     }
 }
Пример #12
0
        public override void Render(GBitmap screen)
        {
            if (Level != null)
            {
                Level.Render(screen);
            }

            RenderGameGui(screen);
            GFont.Write(screen, "" + GameComponent.Gs.IntStatsShots, 1, 10, 30);

            if (Paused)
            {
                PausePopUp.Render(screen);
            }
            if (TeamNotSelected)
            {
                TeamSelectPopUp.Render(screen);
            }
            if (ShowStatistics)
            {
                StatsPopUp.Render(screen);
            }
        }
 public override void Render(GBitmap screen)
 {
     base.Render(screen);
     GFont.Write(screen, ">", 1, 85, GetOptionTopOffset());
 }
Пример #14
0
 public void Render(GBitmap screen, double progress)
 {
     screen.Fill(175, 0, 0, 0);
     GFont.WriteCenterLine(screen, "connecting.. " + (int)progress + "%", 2, 0);
 }
Пример #15
0
        public void Render(GBitmap screen)
        {
            int Rs = 3;

            screen.SetOffset(XScroll, YScroll);
            Background.SetOffset(XScroll, YScroll);
            screen.Blit(new GBitmap(Background.GetClippedImage()), XScroll, YScroll);

            foreach (GEntity T in Tiles)
            {
                if (InCameraFocus(T) && !T.IsStatic)
                {
                    T.Render(screen); ++Rs;
                }
            }

            if (ShowGrid)
            {
                BuildingGrid.SetOffset(XScroll, YScroll);
                screen.Blit(new GBitmap(BuildingGrid.GetClippedImage()), XScroll, YScroll);
            }

            foreach (GEntity E in Entities)
            {
                if (InCameraFocus(E) && !E.IsStatic)
                {
                    E.Render(screen); ++Rs;
                }
            }
            foreach (Particle P in Particles)
            {
                if (InCameraFocus(P))
                {
                    P.Render(screen); ++Rs;
                }
            }
            foreach (KeyValuePair <int, Bonus> B in Bonuses)
            {
                if (InCameraFocus(B.Value))
                {
                    B.Value.Render(screen); ++Rs;
                }
            }

            try
            {
                foreach (Player P in Players)
                {
                    if (P != null && InCameraFocus(P))
                    {
                        P.Render(screen); ++Rs;
                    }
                }
            }
            catch { }
            CurrentPlayer.Render(screen);

            foreach (Bullet B in Bullets)
            {
                if (InCameraFocus(B))
                {
                    B.Render(screen); ++Rs;
                }
            }

            Fog.SetOffset(XScroll, YScroll);
            //screen.Blit(new GBitmap(Fog.GetClippedImage()), XScroll, YScroll);

            GFont.Write(screen, Rs + " objects", 1, 10, 10);
            GFont.Write(screen, "red score " + Score.Red + ", " + "blu score " + Score.Blu, 1, 10, 20);
        }
Пример #16
0
 private int _getControlX()
 {
     return(_getLabelX() + GFont.GetStringWidth("height: ", 2) + 20);
 }
 public override void Render(GBitmap screen)
 {
     base.Render(screen);
     GFont.Write(screen, "mode " + (int)GameLevel.GetMode(), 1, 10, 10);
     GFont.Write(screen, "levels " + Selector.Grid.Count, 1, 10, 20);
 }