Ejemplo n.º 1
0
        public void Draw_Navi_GL(NetNavi_Type Navi)
        {
            PointF S = ScreenScroll;

            Reset_Matrix_GL();

            GL.MatrixMode(MatrixMode.Texture);
            GL.LoadIdentity();
            GL.Scale(1f / (Navi.SpriteSheet.Width / Navi.SpriteSize.X),
                     1f / (Navi.SpriteSheet.Height / Navi.SpriteSize.Y), 1);
            GL.Translate(Navi.Sprite.X, Navi.Sprite.Y, 0);
            GL.BindTexture(TextureTarget.Texture2D, GLNaviTexture[(int)Navi.GLSpriteSheetName]);

            RectangleF r = new RectangleF();

            r.X      = ((Navi.Location_Last.X + Navi.Location.X) / 2f) - S.X;
            r.Y      = ((Navi.Location_Last.Y + Navi.Location.Y) / 2f) - S.Y;
            r.Width  = Navi.SpriteSize.X * Navi.Scale;
            r.Height = Navi.SpriteSize.Y * Navi.Scale;

            if (Navi.FaceLeft == true)
            {
                Draw_Sprite(r, true);
            }
            else
            {
                Draw_Sprite(r);
            }
        }
Ejemplo n.º 2
0
        private void Update_Physics_GL_Top(NetNavi_Type navi)
        {
            //Top
            int Top   = (int)(navi.Navi_Location().Top / 16);
            int Left  = (int)(navi.Navi_Location().Left / 16);
            int Right = (int)(navi.Navi_Location().Right / 16);

            //always does hightmap on tile colleciton
            for (int x = Left; x <= Right; x++)
            {
                RectangleF rct = navi.Navi_Location();
                if (stage.CollisionMap.ContainsKey(new Point(x, Top)))
                {
                    StageCollisionTile tile = stage.CollisionMap[new Point(x, Top)];
                    tile.Active = true;

                    //set to Top
                    if (rct.Top - (Top * 16 + 16) >= -1)
                    {
                        navi.Set_LocationY(Top * 16 + 16 + navi.Navi_Location().Height);
                        navi.Speed.Y        = 0;
                        navi.StepMovement.Y = 0;
                    }
                }
            }
        }
Ejemplo n.º 3
0
        private void Update_Physics_GL_Left(NetNavi_Type navi)
        {
            //Top
            int Top    = (int)((navi.Navi_Location().Top + 2) / 16);
            int Bottom = (int)((navi.Navi_Location().Bottom - 2) / 16);
            int Left   = (int)(navi.Navi_Location().Left / 16);

            //always does hightmap on tile colleciton
            for (int y = Top; y <= Bottom; y++)
            {
                RectangleF rct = navi.Navi_Location();
                if (stage.CollisionMap.ContainsKey(new Point(Left, y)))
                {
                    StageCollisionTile tile = stage.CollisionMap[new Point(Left, y)];
                    tile.Active = true;

                    if (rct.Bottom - (y * 16 + 16 - tile.HeightRight) >= 4)
                    {
                        //set to Left
                        if (rct.Left - (Left * 16 + 16) >= -1)
                        {
                            navi.Set_LocationX(Left * 16 + 16);
                            navi.Speed.X        = 0;
                            navi.StepMovement.X = 0;
                        }
                    }
                }
            }
        }
Ejemplo n.º 4
0
        public byte[] GetFromNavi(NetNavi_Type navi)
        {
            byte[] b     = new byte[Navi_Main.COMPACT_BUFFER_SIZE];
            int    index = 0;

            BitConverter.GetBytes(navi.Program_Step).CopyTo(b, index); index      += 8;
            BitConverter.GetBytes(navi.NAVIEXEID).CopyTo(b, index); index         += 8;
            BitConverter.GetBytes((int)navi.NaviID).CopyTo(b, index); index       += 4;
            BitConverter.GetBytes(navi.Location.X).CopyTo(b, index); index        += 4;
            BitConverter.GetBytes(navi.Location.Y).CopyTo(b, index); index        += 4;
            BitConverter.GetBytes(navi.Speed.X).CopyTo(b, index); index           += 4;
            BitConverter.GetBytes(navi.Speed.Y).CopyTo(b, index); index           += 4;
            BitConverter.GetBytes(navi.Scale).CopyTo(b, index); index             += 4;
            BitConverter.GetBytes(navi.Sprite.X).CopyTo(b, index); index          += 4;
            BitConverter.GetBytes(navi.Sprite.Y).CopyTo(b, index); index          += 4;
            BitConverter.GetBytes(navi.Health).CopyTo(b, index); index            += 4;
            BitConverter.GetBytes(navi.Energy).CopyTo(b, index); index            += 4;
            BitConverter.GetBytes(navi.Activated_Ability).CopyTo(b, index); index += 4;
            BitConverter.GetBytes(navi.OnGround).CopyTo(b, index); index          += 1;
            BitConverter.GetBytes(navi.FaceLeft).CopyTo(b, index); index          += 1;
            BitConverter.GetBytes(navi.Running).CopyTo(b, index); index           += 1;
            BitConverter.GetBytes(navi.Jumping).CopyTo(b, index); index           += 1;
            BitConverter.GetBytes(navi.HasJumped).CopyTo(b, index); index         += 1;
            BitConverter.GetBytes(navi.Shooting).CopyTo(b, index); index          += 1;
            BitConverter.GetBytes(navi.WallGrabing).CopyTo(b, index); index       += 1;
            BitConverter.GetBytes(navi.Dashing).CopyTo(b, index); index           += 1;
            BitConverter.GetBytes(navi.HasDashed).CopyTo(b, index); index         += 1;
            return(b);
        }
Ejemplo n.º 5
0
        private void initialiseNaviClient(Client peer, Navi_Name_ID NaviID, ulong NAVIEXEID)
        {
            NetNavi_Type navi = Navi_resources.Get_Data(NaviID, NAVIEXEID);

            navi.Initialised  = true;
            navi.Program_Step = NaviData.Host_Navi.Program_Step;
            NaviData.Client_Navi[peer.Name] = navi;
        }
Ejemplo n.º 6
0
        private void changePeerName(string name, string newName)
        {
            Client       temp     = peers[name];
            NetNavi_Type tempNavi = NaviData.Client_Navi[name];

            temp.Name = newName;
            peers.Remove(name);
            peers.Add(newName, temp);
            NaviData.Client_Navi.Remove(name);
            NaviData.Client_Navi.Add(newName, tempNavi);
            Console.WriteLine("Changed " + name + " to " + newName);
        }
Ejemplo n.º 7
0
 private bool packet_NaviUpdate(Client peer, NetNavi_Type navi)
 {
     try
     {
         byte[] buffer = new byte[Navi_Main.COMPACT_BUFFER_SIZE];
         navi.get_netBuffer().CopyTo(buffer, 0);
         peer.Write((byte)Headers.NaviUpdate);
         peer.WriteByteArray(buffer);
         peer.Flush();
         //Console.WriteLine("Peer Update Sent to: " + peer.Name);
         return(true);
     }
     catch (SocketException)
     { Console.WriteLine("Could not send Packet"); disconnectPeer(peer); return(false); }
 }
Ejemplo n.º 8
0
        private void Update_Physics_GDI_Bounds(NetNavi_Type navi)
        {
            //Bounds
            if (navi.FaceLeft == true)
            {
                if (navi.Navi_Location().Left <= Screen.PrimaryScreen.WorkingArea.Left)
                {
                    navi.Location.X = Screen.PrimaryScreen.WorkingArea.Left - (navi.GetSize().X - navi.GetHitBox().Right); navi.Speed.X = 0;
                }
            }
            else
            {
                if (navi.Navi_Location().Left <= Screen.PrimaryScreen.WorkingArea.Left)
                {
                    navi.Location.X = Screen.PrimaryScreen.WorkingArea.Left - navi.GetHitBox().Left; navi.Speed.X = 0;
                }
            }

            if (navi.FaceLeft == true)
            {
                if (navi.Navi_Location().Right >= Screen.PrimaryScreen.WorkingArea.Right)
                {
                    navi.Location.X = Screen.PrimaryScreen.WorkingArea.Right - (navi.GetSize().X - navi.GetHitBox().Left); navi.Speed.X = 0;
                }
            }
            else
            {
                if (navi.Navi_Location().Right >= Screen.PrimaryScreen.WorkingArea.Right)
                {
                    navi.Location.X = Screen.PrimaryScreen.WorkingArea.Right - navi.GetHitBox().Right; navi.Speed.X = 0;
                }
            }

            if (navi.Navi_Location().Bottom > Screen.PrimaryScreen.WorkingArea.Bottom)
            {
                navi.Location.Y = Screen.PrimaryScreen.WorkingArea.Bottom - navi.GetHitBox().Bottom;
            }
            if (navi.Navi_Location().Bottom == Screen.PrimaryScreen.WorkingArea.Bottom)
            {
                navi.OnGround = true; navi.Speed.Y = 0;
            }
            else
            {
                navi.OnGround = false;
            }
        }
Ejemplo n.º 9
0
        public void Initialise(NetNavi_Type Navi)
        {
            mnuHideNavi = new ToolStripMenuItem("Hide Navi");
            mnuSep1     = new ToolStripSeparator();
            mnuExit     = new ToolStripMenuItem("Close");
            MainMenu    = new ContextMenuStrip();
            MainMenu.Items.AddRange(new ToolStripItem[] {
                mnuHideNavi,
                mnuSep1,
                mnuExit
            });

            tray                  = new NotifyIcon();
            tray.Icon             = Navi.Icon;
            tray.ContextMenuStrip = MainMenu;
            tray.Text             = Navi.Navi_Display_Name + " Tray Icon Service";
            tray.Visible          = true;
        }
Ejemplo n.º 10
0
        private void Update_Physics_GL_Bounds(NetNavi_Type navi)
        {
            bool OnGround = false;

            if (navi.Navi_Location().Left < 0)
            {
                navi.Set_LocationX(0); navi.Speed.X = 0; navi.StepMovement.X = 0;
            }

            if (navi.Navi_Location().Right > stage.Bounds.Width)
            {
                navi.Set_LocationX(stage.Bounds.Width - navi.Navi_Location().Width); navi.Speed.X = 0; navi.StepMovement.X = 0;
            }


            if (navi.Navi_Location().Bottom > stage.Bounds.Height)
            {
                navi.Location.Y = stage.Bounds.Height - navi.GetHitBox().Bottom;
            }
            if (navi.Navi_Location().Bottom == stage.Bounds.Height)
            {
                OnGround = true; navi.Speed.Y = 0; navi.StepMovement.Y = 0;
            }

            //Top bounds
            if (navi.Navi_Location().Top < 0)
            {
                navi.Location.Y = 0 - navi.GetHitBox().Top; navi.Speed.Y = 0; navi.StepMovement.Y = 0;
            }

            //CollisionMap
            foreach (StageCollisionTile tile in stage.CollisionMap.Values)
            {
                tile.Active = false;
            }

            Update_Physics_GL_Left(navi);
            Update_Physics_GL_Right(navi);

            Update_Physics_GL_Top(navi);
            Update_Physics_GL_Bottom(navi, OnGround);
        }
Ejemplo n.º 11
0
        private void Update_Physics_Projectiles_Hit_Host(Projectiles_Type p, NetNavi_Type navi)
        {
            if (p.Owner != "Host")
            {
                Point point = new Point((int)p.Location.X, (int)p.Location.Y);
                if (navi.Navi_Location().Contains(point))
                {
                    if (p.Speed.X < 0)
                    {
                        navi.Speed.X -= 15;
                    }
                    else
                    {
                        navi.Speed.X += 15;
                    }

                    Projectile_List.Remove(p);
                }
            }
        }
Ejemplo n.º 12
0
 public Navi_Main(int Navi_Name_ID, ulong NAVIEXEID)
 {
     Host_Navi = Navi_resources.Get_Data((Navi_Name_ID)Navi_Name_ID, NAVIEXEID);
 }
Ejemplo n.º 13
0
        private void Update_Physics_GL_Bottom(NetNavi_Type navi, bool OnGround)
        {
            //Bottom
            int Top    = (int)(navi.Navi_Location().Top / 16);
            int Bottom = (int)(navi.Navi_Location().Bottom / 16);
            int Left   = (int)(navi.Navi_Location().Left / 16);
            int Right  = (int)(navi.Navi_Location().Right / 16);

            //always does hightmap on tile colleciton
            for (int y = Top; y <= Bottom; y++)
            {
                for (int x = Left; x <= Right; x++)
                {
                    //int x;//, y;
                    //x = Right;// y = Bottom;
                    RectangleF rct = navi.Navi_Location();
                    if (stage.CollisionMap.ContainsKey(new Point(x, y)))
                    {
                        StageCollisionTile tile = stage.CollisionMap[new Point(x, y)];
                        tile.Active = true;

                        //Slope collision with a center tile
                        float point, pointL, pointR, ratioL, ratioR;
                        point = 16;
                        if (x != Left && x != Right)
                        {
                            if (tile.HeightLeft > tile.HeightRight)
                            {
                                point = tile.HeightLeft;
                            }
                            else
                            {
                                point = tile.HeightRight;
                            }
                        }
                        else
                        //Slope collision with leftmost or rightmost tile
                        {
                            pointL = 16;
                            pointR = 16;

                            ratioR = (navi.Navi_Location().Right - x * 16) / 16;
                            ratioL = (navi.Navi_Location().Left - x * 16) / 16;
                            if (ratioL >= 0 && ratioL <= 1)
                            {
                                pointL = tile.HeightLeft + (tile.HeightRight - tile.HeightLeft) * ratioL;
                            }
                            if (ratioR >= 0 && ratioR <= 1)
                            {
                                pointR = tile.HeightLeft + (tile.HeightRight - tile.HeightLeft) * ratioR;
                            }
                            if (pointL < pointR)
                            {
                                point = pointL;
                            }
                            else
                            {
                                point = pointR;
                            }
                        }

                        //set to ground
                        if (rct.Bottom > (y * 16) + 16 - point)
                        {
                            if (rct.Bottom - (y * 16) - (16 - point) <= 4)
                            {
                                if (navi.Navi_Location().Top < (y * 16 + (16 - point)))
                                {
                                    navi.Set_LocationY(y * 16 + (16 - point));
                                    navi.Speed.Y        = 0;
                                    navi.StepMovement.Y = 0;
                                    OnGround            = true;
                                }
                            }
                        }

                        if (navi.Navi_Location().Bottom + 1 >= (y * 16) + 16 - point)
                        {
                            OnGround = true;
                        }
                    }
                    navi.OnGround = OnGround;
                }
            }
        }
Ejemplo n.º 14
0
        private void Update_Physics_Navi(NetNavi_Type navi)
        {
            //Friction
            if (navi.OnGround == true)
            {
                navi.Speed.X -= navi.Speed.X * stage.GroundFriction.X;
                navi.Speed.Y -= navi.Speed.Y * stage.GroundFriction.Y;
            }
            else
            {
                navi.Speed.X -= navi.Speed.X * stage.AirFriction.X;
                navi.Speed.Y -= navi.Speed.Y * stage.AirFriction.Y;
            }

            //Gravity
            //if (navi.OnGround == false)
            //{
            navi.Speed.Y = navi.Speed.Y + stage.Gravity.Y;
            navi.Speed.X = navi.Speed.X + stage.Gravity.X;
            //}
            //Host_Navi.Speed.Y = Host_Navi.Speed.Y + Gravity.Y

            //PointF vector = new PointF(navi.Speed.X * navi.Scale, navi.Speed.Y * navi.Scale);
            navi.StepMovement = new PointF(navi.Speed.X * navi.Scale, navi.Speed.Y * navi.Scale);

            float x, y;

            //1 by 1 movement
            do
            {
                if (navi.StepMovement.X > 0)
                {
                    if (navi.StepMovement.X > 1)
                    {
                        navi.StepMovement.X--; x = 1;
                    }
                    else
                    {
                        navi.StepMovement.X = 0; x = navi.StepMovement.X;
                    }
                }
                else
                if (navi.StepMovement.X < -1)
                {
                    navi.StepMovement.X++; x = -1;
                }
                else
                {
                    navi.StepMovement.X = 0; x = navi.StepMovement.X;
                }


                if (navi.StepMovement.Y > 0)
                {
                    if (navi.StepMovement.Y > 1)
                    {
                        navi.StepMovement.Y--; y = 1;
                    }
                    else
                    {
                        navi.StepMovement.Y = 0; y = navi.StepMovement.Y;
                    }
                }
                else
                if (navi.StepMovement.Y < -1)
                {
                    navi.StepMovement.Y++; y = -1;
                }
                else
                {
                    navi.StepMovement.Y = 0; y = navi.StepMovement.Y;
                }

                navi.Location.X += x;
                navi.Location.Y += y;

                if (!GLOn)
                {
                    Update_Physics_GDI_Bounds(navi);
                }
                else
                {
                    Update_Physics_GL_Bounds(navi);
                }
            } while (navi.StepMovement.X != 0 || navi.StepMovement.Y != 0);



            navi.Location_Last = navi.Location;
        }
Ejemplo n.º 15
0
        public static void Set_Correct_Animation(ref NetNavi_Type Navi)
        {
            switch (Navi.NaviID)
            {
            case
                Navi_Name_ID.Vex:

                if (Navi.OnGround == true)
                {
                    if (Navi.Running == true)
                    {
                        if (Navi.Dashing == true)
                        {
                            if (!(Navi.Current_Animation == Animation_Name_Enum.Vex_Dash_Start))
                            {
                                Navi.set_Animation(Animation_Name_Enum.Vex_Dash_Start);
                            }
                        }
                        else
                        {
                            Navi.HasDashed = false;
                            if (!(Navi.Current_Animation == Animation_Name_Enum.Vex_Runing))
                            {
                                Navi.set_Animation(Animation_Name_Enum.Vex_Runing);
                            }
                        }
                    }
                    else
                    {
                        if (Navi.HasDashed == true)
                        {
                            if (!(Navi.Current_Animation == Animation_Name_Enum.Vex_Dash_End))
                            {
                                Navi.set_Animation(Animation_Name_Enum.Vex_Dash_End);
                            }
                            Navi.HasDashed = false;
                        }
                        else
                        {
                            if (!(Navi.Current_Animation == Animation_Name_Enum.Vex_Standing))
                            {
                                if (Navi.Current_Animation == Animation_Name_Enum.Vex_Dash_End)
                                {
                                    if (Navi.Ani_Current.Finished == true)
                                    {
                                        Navi.set_Animation(Animation_Name_Enum.Vex_Standing);
                                    }
                                }
                                else
                                {
                                    Navi.set_Animation(Animation_Name_Enum.Vex_Standing);
                                }
                            }
                        }
                    }
                }
                else
                {
                    Navi.HasDashed = false;
                    if (!(Navi.Current_Animation == Animation_Name_Enum.Vex_Jumping))
                    {
                        Navi.set_Animation(Animation_Name_Enum.Vex_Jumping);
                    }
                }

                break;


            case
                Navi_Name_ID.Raven:
                if (Navi.OnGround == true)
                {
                    if (Navi.Running == true)
                    {
                        if (!(Navi.Current_Animation == Animation_Name_Enum.Raven_Runing))
                        {
                            Navi.set_Animation(Animation_Name_Enum.Raven_Runing);
                        }
                    }
                    else
                    {
                        if (!(Navi.Current_Animation == Animation_Name_Enum.Raven_Standing))
                        {
                            Navi.set_Animation(Animation_Name_Enum.Raven_Standing);
                        }
                    }
                }
                else
                {
                    if (!(Navi.Current_Animation == Animation_Name_Enum.Raven_Jumping))
                    {
                        Navi.set_Animation(Animation_Name_Enum.Raven_Jumping);
                    }
                }

                break;

            case
                Navi_Name_ID.Barnabus:
                if (Navi.OnGround == true)
                {
                    if (Navi.Running == true)
                    {
                        if (!(Navi.Current_Animation == Animation_Name_Enum.Barnabus_Runing))
                        {
                            Navi.set_Animation(Animation_Name_Enum.Barnabus_Runing);
                        }
                    }
                    else
                    {
                        if (!(Navi.Current_Animation == Animation_Name_Enum.Barnabus_Standing))
                        {
                            Navi.set_Animation(Animation_Name_Enum.Barnabus_Standing);
                        }
                    }
                }
                else
                {
                    if (!(Navi.Current_Animation == Animation_Name_Enum.Barnabus_Jumping))
                    {
                        Navi.set_Animation(Animation_Name_Enum.Barnabus_Jumping);
                    }
                }

                break;

            case
                Navi_Name_ID.Rebel:
                if (Navi.OnGround == true)
                {
                    if (Navi.Running == true)
                    {
                        if (!(Navi.Current_Animation == Animation_Name_Enum.Rebel_Runing))
                        {
                            Navi.set_Animation(Animation_Name_Enum.Rebel_Runing);
                        }
                    }
                    else
                    {
                        if (!(Navi.Current_Animation == Animation_Name_Enum.Rebel_Standing))
                        {
                            Navi.set_Animation(Animation_Name_Enum.Rebel_Standing);
                        }
                    }
                }
                else
                {
                    if (!(Navi.Current_Animation == Animation_Name_Enum.Rebel_Jumping))
                    {
                        Navi.set_Animation(Animation_Name_Enum.Rebel_Jumping);
                    }
                }

                break;

            case
                Navi_Name_ID.Zen:
                if (Navi.OnGround == true)
                {
                    if (Navi.Running == true)
                    {
                        if (Navi.Dashing == true)
                        {
                            if (!(Navi.Current_Animation == Animation_Name_Enum.Zen_Dash))
                            {
                                Navi.set_Animation(Animation_Name_Enum.Zen_Dash);
                            }
                        }
                        else
                        {
                            if (!(Navi.Current_Animation == Animation_Name_Enum.Zen_Runing))
                            {
                                Navi.set_Animation(Animation_Name_Enum.Zen_Runing);
                            }
                        }
                    }
                    else
                    {
                        if (!(Navi.Current_Animation == Animation_Name_Enum.Zen_Standing))
                        {
                            Navi.set_Animation(Animation_Name_Enum.Zen_Standing);
                        }
                    }
                }
                else
                {
                    if (!(Navi.Current_Animation == Animation_Name_Enum.Zen_Jumping))
                    {
                        Navi.set_Animation(Animation_Name_Enum.Zen_Jumping);
                    }
                }
                break;

            case
                Navi_Name_ID.DC24:
                if (Navi.OnGround == true)
                {
                    if (Navi.Running == true)
                    {
                        if (!(Navi.Current_Animation == Animation_Name_Enum.DC24_Runing))
                        {
                            Navi.set_Animation(Animation_Name_Enum.DC24_Runing);
                        }
                    }
                    else
                    {
                        if (!(Navi.Current_Animation == Animation_Name_Enum.DC24_Standing))
                        {
                            Navi.set_Animation(Animation_Name_Enum.DC24_Standing);
                        }
                    }
                }
                else
                {
                    if (!(Navi.Current_Animation == Animation_Name_Enum.DC24_Jumping))
                    {
                        Navi.set_Animation(Animation_Name_Enum.DC24_Jumping);
                    }
                }

                break;
            }
        }
Ejemplo n.º 16
0
        public static NetNavi_Type Get_Data(Navi_Name_ID Navi_Name, ulong NAVIEXEID)
        {
            NetNavi_Type N = new NetNavi_Type();

            switch (Navi_Name)
            {
            case
                Navi_Name_ID.Junker:
                N.Navi_Display_Name = "Junker";
                N.HitBox            = new Rectangle(0, 0, 35, 27);
                N.SpriteSheet       = Net_Navis.Resource1.Junker;
                N.GLSpriteSheetName = GLNaviSpriteName.Junker;
                N.Icon        = Net_Navis.Resource1.Rebel_Icon;
                N.SpriteSize  = new Point(35, 27);
                N.HealthMax   = 10;
                N.EnergyMax   = 10;
                N.Weight      = 10;
                N.GroundSpeed = 0f;
                N.AirSpeed    = 0f;
                N.DashSpeed   = 0;
                N.Acrobatics  = 0;
                break;

            case
                Navi_Name_ID.Raven:
                N.Navi_Display_Name = "Raven";
                N.HitBox            = new Rectangle(10, 22, 26, 26);
                N.SpriteSheet       = Net_Navis.Resource1.Raven;
                N.GLSpriteSheetName = GLNaviSpriteName.Raven;
                N.Icon        = Net_Navis.Resource1.Raven_Icon;
                N.SpriteSize  = new Point(48, 48);
                N.HealthMax   = 100;
                N.EnergyMax   = 100;
                N.Weight      = 50;
                N.GroundSpeed = 0.5f;
                N.AirSpeed    = 0.15f;
                N.DashSpeed   = 1;
                N.Acrobatics  = 15;
                N.ShootPoint  = new Point(40, 33);
                break;

            case
                Navi_Name_ID.Vex:
                N.Navi_Display_Name = "Vex";
                N.HitBox            = new Rectangle(11, 18, 29, 30);
                N.SpriteSheet       = Net_Navis.Resource1.Vex;
                N.GLSpriteSheetName = GLNaviSpriteName.Vex;
                N.Icon        = Net_Navis.Resource1.Vex_Icon;
                N.SpriteSize  = new Point(48, 48);
                N.HealthMax   = 100;
                N.EnergyMax   = 100;
                N.Weight      = 25;
                N.GroundSpeed = 0.5f;
                N.AirSpeed    = 0.1f;
                N.DashSpeed   = 2;
                N.Acrobatics  = 10;
                N.ShootPoint  = new Point(37, 34);
                break;

            case
                Navi_Name_ID.Barnabus:
                N.Navi_Display_Name = "Barnabus";
                N.HitBox            = new Rectangle(3, 5, 27, 27);
                N.SpriteSheet       = Net_Navis.Resource1.Barnabus;
                N.GLSpriteSheetName = GLNaviSpriteName.Barabus;
                N.Icon        = Net_Navis.Resource1.Barnabus_Icon;
                N.SpriteSize  = new Point(32, 32);
                N.HealthMax   = 100;
                N.EnergyMax   = 100;
                N.Weight      = 50;
                N.GroundSpeed = 0.5f;
                N.AirSpeed    = 0.1f;
                N.DashSpeed   = 1;
                N.Acrobatics  = 10;

                break;

            case
                Navi_Name_ID.Rebel:
                N.Navi_Display_Name = "Rebel";
                N.HitBox            = new Rectangle(13, 22, 22, 26);
                N.SpriteSheet       = Net_Navis.Resource1.Rebelpullsheet;
                N.GLSpriteSheetName = GLNaviSpriteName.Rebel;
                N.Icon        = Net_Navis.Resource1.Rebel_Icon;
                N.SpriteSize  = new Point(48, 48);
                N.HealthMax   = 100;
                N.EnergyMax   = 100;
                N.Weight      = 30;
                N.GroundSpeed = 0.5f;
                N.AirSpeed    = 0.1f;
                N.DashSpeed   = 1;
                N.Acrobatics  = 10;
                break;

            case
                Navi_Name_ID.Zen:
                N.Navi_Display_Name = "Zen";
                N.HitBox            = new Rectangle(15, 21, 19, 27);
                N.SpriteSheet       = Net_Navis.Resource1.Zen;
                N.GLSpriteSheetName = GLNaviSpriteName.Zen;
                N.Icon        = Net_Navis.Resource1.Zen_Icon;
                N.SpriteSize  = new Point(48, 48);
                N.HealthMax   = 100;
                N.EnergyMax   = 100;
                N.Weight      = 15;
                N.GroundSpeed = 0.8f;
                N.AirSpeed    = 0.1f;
                N.DashSpeed   = 2;
                N.Acrobatics  = 10;
                N.ShootPoint  = new Point(35, 37);
                break;

            case
                Navi_Name_ID.DC24:
                N.Navi_Display_Name = "DC24";
                N.HitBox            = new Rectangle(18, 9, 34, 49);
                N.SpriteSheet       = Net_Navis.Resource1.DC24;
                N.GLSpriteSheetName = GLNaviSpriteName.DC24;
                N.Icon        = Net_Navis.Resource1.DC24_Icon;
                N.SpriteSize  = new Point(64, 64);
                N.HealthMax   = 100;
                N.EnergyMax   = 100;
                N.Weight      = 15;
                N.GroundSpeed = 0.2f;
                N.AirSpeed    = 0.1f;
                N.DashSpeed   = 0.3f;
                N.Acrobatics  = 10;
                N.ShootPoint  = new Point(51, 29);
                break;
            }
            N.NaviID    = Navi_Name;
            N.NAVIEXEID = NAVIEXEID;
            N.Location  = new PointF(0, 0);
            N.Sprite    = new Point(0, 0);
            return(N);
        }