Exemplo n.º 1
0
        public override void ProvessEvents()
        {
            if (SwinGame.KeyTyped(Settings.PAUSE))
            {
                ScreenControler.SetScreen("PauseMenu");
            }

            for (int i = 0; i < 7; ++i)
            {
                if (Tick % (_triggers[i]) == 0)
                {
                    GameObjects.AddItem(new ItemEntity(new Point(_rand.Next() % (460 - GameResources.GameImage("Item" + _itemTypes[i].ToString()).Width) + 40, 50), _itemTypes[i]));
                }
            }

            for (int i = 0; i < 8; i++)
            {
                for (int j = 0; j < 13; j++)
                {
                    if (Tick % (_rand.Next() % 50000 + 30) == 0 && Tick > 0)
                    {
                        Point position = new Point(_rand.Next() % 460 + 40, _rand.Next() % 460 + 40);
                        for (int k = 0; k < 12; k++)
                        {
                            GameObjects.AddBullet(new BulletEntity(_bulletColours[i], _bulletTypes[j], null, position, _trajectories[k]));
                        }
                    }
                }
            }

            GameObjects.ProcessItemEvents();
            GameObjects.ProcessBulletEvents();
            GameObjects.Player.ProcessEvents();

            NextTick();
        }
        private void Cannon()
        {
            switch (_playerType)
            {
            case PlayerType.NarrowA:
                switch (_cannonMain)
                {
                case 0:
                    if (Tick % 6 == 0)
                    {
                        GameObjects.AddBullet(new BulletEntity(BulletColour.Blue, BulletType.Seed, this, Hitbox.Middle, new Vector(Math.Cos(BasicMath.ToRad(-90)) * 6, Math.Sin(BasicMath.ToRad(-90)) * 6)));
                    }
                    break;

                case 1:
                    if (Tick % 6 == 0)
                    {
                        GameObjects.AddBullet(new BulletEntity(BulletColour.Blue, BulletType.Seed, this, Hitbox.Middle, new Vector(Math.Cos(BasicMath.ToRad(-92)) * 6, Math.Sin(BasicMath.ToRad(-92)) * 6)));
                        GameObjects.AddBullet(new BulletEntity(BulletColour.Blue, BulletType.Seed, this, Hitbox.Middle, new Vector(Math.Cos(BasicMath.ToRad(-88)) * 6, Math.Sin(BasicMath.ToRad(-88)) * 6)));
                    }
                    break;

                case 2:
                    if (Tick % 6 == 0)
                    {
                        GameObjects.AddBullet(new BulletEntity(BulletColour.Turquoise, BulletType.Seed, this, Hitbox.Middle, new Vector(Math.Cos(BasicMath.ToRad(-94)) * 6, Math.Sin(BasicMath.ToRad(-94)) * 6)));
                        GameObjects.AddBullet(new BulletEntity(BulletColour.Blue, BulletType.Seed, this, Hitbox.Middle, new Vector(Math.Cos(BasicMath.ToRad(-90)) * 6, Math.Sin(BasicMath.ToRad(-90)) * 6)));
                        GameObjects.AddBullet(new BulletEntity(BulletColour.Turquoise, BulletType.Seed, this, Hitbox.Middle, new Vector(Math.Cos(BasicMath.ToRad(-86)) * 6, Math.Sin(BasicMath.ToRad(-86)) * 6)));
                    }
                    break;

                case 3:
                    if (Tick % 6 == 0)
                    {
                        GameObjects.AddBullet(new BulletEntity(BulletColour.Green, BulletType.Seed, this, Hitbox.Middle, new Vector(Math.Cos(BasicMath.ToRad(-98)) * 6, Math.Sin(BasicMath.ToRad(-98)) * 6)));
                        GameObjects.AddBullet(new BulletEntity(BulletColour.Turquoise, BulletType.Seed, this, Hitbox.Middle, new Vector(Math.Cos(BasicMath.ToRad(-94)) * 6, Math.Sin(BasicMath.ToRad(-94)) * 6)));
                        GameObjects.AddBullet(new BulletEntity(BulletColour.Blue, BulletType.Seed, this, Hitbox.Middle, new Vector(Math.Cos(BasicMath.ToRad(-90)) * 6, Math.Sin(BasicMath.ToRad(-90)) * 6)));
                        GameObjects.AddBullet(new BulletEntity(BulletColour.Turquoise, BulletType.Seed, this, Hitbox.Middle, new Vector(Math.Cos(BasicMath.ToRad(-86)) * 6, Math.Sin(BasicMath.ToRad(-86)) * 6)));
                        GameObjects.AddBullet(new BulletEntity(BulletColour.Green, BulletType.Seed, this, Hitbox.Middle, new Vector(Math.Cos(BasicMath.ToRad(-82)) * 6, Math.Sin(BasicMath.ToRad(-82)) * 6)));
                    }
                    break;
                }
                switch (_cannonAux)
                {
                case 1:
                    if (Tick % 24 == 0)
                    {
                        GameObjects.AddBullet(new BulletEntity(BulletColour.Purple, BulletType.Star, this, new Point(Hitbox.Middle.X + 32, Hitbox.Middle.Y), new Vector(Math.Cos(BasicMath.ToRad(-90)) * 4, Math.Sin(BasicMath.ToRad(-90)) * 4)));
                        GameObjects.AddBullet(new BulletEntity(BulletColour.Purple, BulletType.Star, this, new Point(Hitbox.Middle.X - 32, Hitbox.Middle.Y), new Vector(Math.Cos(BasicMath.ToRad(-90)) * 4, Math.Sin(BasicMath.ToRad(-90)) * 4)));
                    }
                    break;

                case 2:
                    if (Tick % 36 == 0)
                    {
                        GameObjects.AddBullet(new BulletEntity(BulletColour.Purple, BulletType.Star, this, new Point(Hitbox.Middle.X + 32, Hitbox.Middle.Y), new Vector(Math.Cos(BasicMath.ToRad(-90)) * 4, Math.Sin(BasicMath.ToRad(-90)) * 4)));
                        GameObjects.AddBullet(new BulletEntity(BulletColour.Purple, BulletType.Star, this, new Point(Hitbox.Middle.X - 32, Hitbox.Middle.Y), new Vector(Math.Cos(BasicMath.ToRad(-90)) * 4, Math.Sin(BasicMath.ToRad(-90)) * 4)));
                    }
                    if ((Tick + 18) % 36 == 0)
                    {
                        GameObjects.AddBullet(new BulletEntity(BulletColour.Red, BulletType.Star, this, new Point(Hitbox.Middle.X + 28, Hitbox.Middle.Y), new Vector(Math.Cos(BasicMath.ToRad(-90)) * 4, Math.Sin(BasicMath.ToRad(-90)) * 4)));
                        GameObjects.AddBullet(new BulletEntity(BulletColour.Red, BulletType.Star, this, new Point(Hitbox.Middle.X - 28, Hitbox.Middle.Y), new Vector(Math.Cos(BasicMath.ToRad(-90)) * 4, Math.Sin(BasicMath.ToRad(-90)) * 4)));
                    }
                    break;

                case 3:
                    if (Tick % 24 == 0)
                    {
                        GameObjects.AddBullet(new BulletEntity(BulletColour.Purple, BulletType.Star, this, new Point(Hitbox.Middle.X + 32, Hitbox.Middle.Y), new Vector(Math.Cos(BasicMath.ToRad(-90)) * 4, Math.Sin(BasicMath.ToRad(-90)) * 4)));
                        GameObjects.AddBullet(new BulletEntity(BulletColour.Purple, BulletType.Star, this, new Point(Hitbox.Middle.X - 32, Hitbox.Middle.Y), new Vector(Math.Cos(BasicMath.ToRad(-90)) * 4, Math.Sin(BasicMath.ToRad(-90)) * 4)));
                    }
                    if ((Tick + 12) % 24 == 0)
                    {
                        GameObjects.AddBullet(new BulletEntity(BulletColour.Red, BulletType.Star, this, new Point(Hitbox.Middle.X + 28, Hitbox.Middle.Y), new Vector(Math.Cos(BasicMath.ToRad(-90)) * 4, Math.Sin(BasicMath.ToRad(-90)) * 4)));
                        GameObjects.AddBullet(new BulletEntity(BulletColour.Red, BulletType.Star, this, new Point(Hitbox.Middle.X - 28, Hitbox.Middle.Y), new Vector(Math.Cos(BasicMath.ToRad(-90)) * 4, Math.Sin(BasicMath.ToRad(-90)) * 4)));
                    }
                    break;

                case 4:
                    if (Tick % 24 == 0)
                    {
                        GameObjects.AddBullet(new BulletEntity(BulletColour.Purple, BulletType.Star, this, new Point(Hitbox.Middle.X - 32, Hitbox.Middle.Y), new Vector(Math.Cos(BasicMath.ToRad(-92)) * 4, Math.Sin(BasicMath.ToRad(-92)) * 4)));
                        GameObjects.AddBullet(new BulletEntity(BulletColour.Purple, BulletType.Star, this, new Point(Hitbox.Middle.X + 32, Hitbox.Middle.Y), new Vector(Math.Cos(BasicMath.ToRad(-88)) * 4, Math.Sin(BasicMath.ToRad(-88)) * 4)));
                        GameObjects.AddBullet(new BulletEntity(BulletColour.Red, BulletType.Star, this, new Point(Hitbox.Middle.X + 32, Hitbox.Middle.Y), new Vector(Math.Cos(BasicMath.ToRad(-92)) * 4, Math.Sin(BasicMath.ToRad(-92)) * 4)));
                        GameObjects.AddBullet(new BulletEntity(BulletColour.Red, BulletType.Star, this, new Point(Hitbox.Middle.X - 32, Hitbox.Middle.Y), new Vector(Math.Cos(BasicMath.ToRad(-88)) * 4, Math.Sin(BasicMath.ToRad(-88)) * 4)));
                    }
                    if ((Tick + 12) % 24 == 0)
                    {
                        GameObjects.AddBullet(new BulletEntity(BulletColour.Red, BulletType.Star, this, new Point(Hitbox.Middle.X - 28, Hitbox.Middle.Y), new Vector(Math.Cos(BasicMath.ToRad(-92)) * 4, Math.Sin(BasicMath.ToRad(-92)) * 4)));
                        GameObjects.AddBullet(new BulletEntity(BulletColour.Red, BulletType.Star, this, new Point(Hitbox.Middle.X + 28, Hitbox.Middle.Y), new Vector(Math.Cos(BasicMath.ToRad(-88)) * 4, Math.Sin(BasicMath.ToRad(-88)) * 4)));
                        GameObjects.AddBullet(new BulletEntity(BulletColour.Purple, BulletType.Star, this, new Point(Hitbox.Middle.X + 28, Hitbox.Middle.Y), new Vector(Math.Cos(BasicMath.ToRad(-92)) * 4, Math.Sin(BasicMath.ToRad(-92)) * 4)));
                        GameObjects.AddBullet(new BulletEntity(BulletColour.Purple, BulletType.Star, this, new Point(Hitbox.Middle.X - 28, Hitbox.Middle.Y), new Vector(Math.Cos(BasicMath.ToRad(-88)) * 4, Math.Sin(BasicMath.ToRad(-88)) * 4)));
                    }
                    break;
                }
                break;

            case PlayerType.NarrowB:
                switch (_cannonMain)
                {
                case 0:
                    break;

                case 1:
                    break;

                case 2:
                    break;

                case 3:
                    break;
                }
                switch (_cannonAux)
                {
                case 1:
                    break;

                case 2:
                    break;

                case 3:
                    break;

                case 4:
                    break;
                }
                break;

            case PlayerType.WideA:
                switch (_cannonMain)
                {
                case 0:
                    break;

                case 1:
                    break;

                case 2:
                    break;

                case 3:
                    break;
                }
                switch (_cannonAux)
                {
                case 1:
                    break;

                case 2:
                    break;

                case 3:
                    break;

                case 4:
                    break;
                }
                break;

            case PlayerType.WideB:
                switch (_cannonMain)
                {
                case 0:
                    break;

                case 1:
                    break;

                case 2:
                    break;

                case 3:
                    break;
                }
                switch (_cannonAux)
                {
                case 1:
                    break;

                case 2:
                    break;

                case 3:
                    break;

                case 4:
                    break;
                }
                break;
            }
        }