Beispiel #1
0
        public ShipProfileItem(SpaceShipType type, bool selected = false)
        {
            _shipType = type;
            Selected  = selected;

            int widthOverTwo  = YnG.Width / 2;
            int heightOverTwo = YnG.Height / 2;

            _border = new YnSprite(new Rectangle(
                                       (int)SpaceGame.GetScaleX(450),
                                       (int)SpaceGame.GetScaleY(150),
                                       (int)SpaceGame.GetScaleX(650),
                                       (int)SpaceGame.GetScaleY(400)),
                                   Color.White);

            Add(_border);

            _container = new YnSprite(new Rectangle(
                                          (int)_border.X + BorderSize,
                                          (int)_border.Y + BorderSize,
                                          _border.Width - BorderSize * 2,
                                          _border.Height - BorderSize - 2), new Color(0, 108, 165));
            Add(_container);

            _shipImage = new YnSprite();

            spaceShipDescription = Registry.SpaceShipDescriptions[(int)_shipType];
        }
Beispiel #2
0
        public SoloPlayerState(SpaceShipType type, LevelType levelType)
            : base("solostate", true)
        {
            _levelType = levelType;

            if (_levelType == LevelType.Interior)
            {
                background = new InteriorBackground();
            }
            else
            {
                background = new SpaceBackground();
            }

            Add(background);

            // Les bonus sont en dessous de tout
            bonusGroup = new YnGroup();
            Add(bonusGroup);

            // Joueur
            _player                   = new SpacePlayer(PlayerIndex.One, Registry.SpaceShipDescriptions[(int)type]);
            _player.Viewport          = background.PlayableViewport;
            _player.Killed           += new EventHandler <EventArgs>(_player_Killed);
            _player.PlayerReallyDead += new EventHandler <EventArgs>(_player_PlayerReallyDead);
            Add(_player);

            Registry.Players = new SpacePlayer[] { _player };
            Registry.ScoreManager.CurrentGameScore = _player.GameScore;

            // Gestionnaire d'ennemies
            _ennemyManager             = new EnnemyManager();
            _ennemyManager.EnnemyDied += new EventHandler <EnnemyDeadEventArgs>(alienManager_EnnemyDied);
            Add(_ennemyManager);

            // Interface
            gameUI = new GameUI(Registry.Players);
            Add(gameUI);

            // Gestionnaire de message
            messageBoxManager = new MessageBoxManager();
            Add(messageBoxManager);

            messageBoxManager.MessageBoxStart.CloseRequested += messageBoxStart_CloseRequested;
            messageBoxManager.MessageBoxPause.CloseRequested += messageBoxPause_CloseRequested;
            messageBoxManager.MessageBoxEnd.CloseRequested   += messageBoxEnd_CloseRequested;

            // Timers
            _startGameTimer            = new YnTimer(2500, 0);
            _startGameTimer.Completed += startGameTimer_Completed;
            _startGameTimer.Start();

            _looseTimer            = new YnTimer(5000, 0);
            _looseTimer.Completed += endTimer_Completed;

            // FX
            fxManager = new FxManager();
            Add(fxManager);

            // audio
            Registry.AudioManager.VocalRate = 0;

            // Registry

            Registry.GameStatus  = gameStatus;
            Registry.ActiveState = this;
            Registry.Ennemies    = _ennemyManager;
            Registry.GameUI      = gameUI;
            Registry.Background  = background;
            Registry.FX          = fxManager;

            ChangeGameStatus(GameStatus.Starting);
        }
Beispiel #3
0
        private static SpaceShipDescription InitSpaceShipDescription(SpaceShipType type, int id)
        {
            SpaceShipDescription spaceShipDescription = new SpaceShipDescription();

            spaceShipDescription.Id            = id;
            spaceShipDescription.SpaceShitType = type;
            spaceShipDescription.Health        = 100.0f;
            spaceShipDescription.Shield        = 100.0f;

            switch (type)
            {
            case SpaceShipType.MercsA:

                spaceShipDescription.AssetName         = "Ship/MercsA_64";
                spaceShipDescription.Model             = "Raptor d1";
                spaceShipDescription.Category          = "Mercenary";
                spaceShipDescription.Weight            = 2405;
                spaceShipDescription.ShipSpeed         = new ShipSpeed(0.90f, 0.90f, 0.15f, 0.45f);;
                spaceShipDescription.Description       = "It is a lightweight fighter, his only goal is destruction. \n";
                spaceShipDescription.Description      += "Mercenaries respect one thing: money. If you pay them well \n";
                spaceShipDescription.Description      += "so they will do a fantastic job, but otherwise .. they will turn against you!";
                spaceShipDescription.PrimaryWeapons    = "Three photon lasers";
                spaceShipDescription.SecondaryWeapons  = "Aggressor special missile";
                spaceShipDescription.PrimaryWeaponId   = 0;
                spaceShipDescription.SecondaryWeaponId = 3;
                break;

            case SpaceShipType.MercsB:
                spaceShipDescription.AssetName         = "Ship/MercsB_64";
                spaceShipDescription.Model             = "Mantra N4";
                spaceShipDescription.Category          = "Mercenary";
                spaceShipDescription.Weight            = 2500;
                spaceShipDescription.ShipSpeed         = new ShipSpeed(0.90f, 0.90f, 0.15f, 0.45f);;
                spaceShipDescription.Description       = "A ship with an old alien technology.. Nobody knows exactly how the \n";
                spaceShipDescription.Description      += "ship works, but it is a formidable opponent in close combat";
                spaceShipDescription.PrimaryWeapons    = "Two tacticals lasers";
                spaceShipDescription.SecondaryWeapons  = "Unknow missile technologie";
                spaceShipDescription.PrimaryWeaponId   = 0;
                spaceShipDescription.SecondaryWeaponId = 3;
                break;

            case SpaceShipType.ShipA:
                spaceShipDescription.AssetName         = "Ship/ShipA_64";
                spaceShipDescription.Model             = "ZThunder 4";
                spaceShipDescription.Category          = "Destroyer";
                spaceShipDescription.Weight            = 6750;
                spaceShipDescription.ShipSpeed         = new ShipSpeed(0.90f, 0.90f, 0.15f, 0.45f);;
                spaceShipDescription.Description       = "No description yet, but don't worry.. it's coming !";
                spaceShipDescription.PrimaryWeapons    = "Two tacticals lasers";
                spaceShipDescription.SecondaryWeapons  = "One missile launcher";
                spaceShipDescription.PrimaryWeaponId   = 1;
                spaceShipDescription.SecondaryWeaponId = 3;
                break;

            case SpaceShipType.ShipB:
                spaceShipDescription.AssetName         = "Ship/ShipB_64";
                spaceShipDescription.Model             = "Pulsar X6";
                spaceShipDescription.Category          = "Interceptor";
                spaceShipDescription.Weight            = 5560;
                spaceShipDescription.ShipSpeed         = new ShipSpeed(0.90f, 0.90f, 0.15f, 0.45f);;
                spaceShipDescription.Description       = "No description yet too, I'm so sorry, but don't worry.. it's coming !";
                spaceShipDescription.PrimaryWeapons    = "Two tacticals lasers";
                spaceShipDescription.SecondaryWeapons  = "One missile launcher";
                spaceShipDescription.Health            = 100;
                spaceShipDescription.PrimaryWeaponId   = 2;
                spaceShipDescription.SecondaryWeaponId = 3;
                break;
            }

            return(spaceShipDescription);
        }