Beispiel #1
0
 public void RefreshActionButtonSelection(Action.eActions action)
 {
     GUIGroupButtons.CurrentSelection = GUIGroupButtons.Elements.FindIndex(delegate(Element elm)
     {
         return(((ButtonAction)elm).ActionType == action);
     });
 }
Beispiel #2
0
            public Bullet(Tank pShooter, Texture2D pImage, Vector2 pPosition, Vector2 pVelocity, Action.eActions pBulletType, Vector2 pScale) : base(pImage)
            {
                Layer     += 0.2f;
                Sender     = pShooter;
                Position   = pPosition;
                Velocity   = pVelocity;
                Scale      = pScale;
                BulletType = pBulletType;
                switch (BulletType)
                {
                case TankArmageddon.Action.eActions.None:
                    break;

                case TankArmageddon.Action.eActions.iGrayBullet:
                    ImgBox = AssetManager.TanksAtlas.Textures.Find(t => t.Name == "tank_bullet1.png").ImgBox;
                    Radius = 40;
                    Force  = 2;
                    break;

                case TankArmageddon.Action.eActions.iGrayBombshell:
                    ImgBox = AssetManager.TanksAtlas.Textures.Find(t => t.Name == "tank_bullet2.png").ImgBox;
                    Radius = 50;
                    Force  = 15;
                    break;

                case TankArmageddon.Action.eActions.GoldBullet:
                    ImgBox = AssetManager.TanksAtlas.Textures.Find(t => t.Name == "tank_bullet5.png").ImgBox;
                    Radius = 40;
                    Force  = 4;
                    break;

                case TankArmageddon.Action.eActions.GoldBombshell:
                    ImgBox = AssetManager.TanksAtlas.Textures.Find(t => t.Name == "tank_bullet6.png").ImgBox;
                    Radius = 50;
                    Force  = 25;
                    break;

                case TankArmageddon.Action.eActions.GrayMissile:
                    ImgBox = AssetManager.TanksAtlas.Textures.Find(t => t.Name == "tank_bullet4.png").ImgBox;
                    Radius = 80;
                    Force  = 40;
                    break;

                case TankArmageddon.Action.eActions.GreenMissile:
                    ImgBox = AssetManager.TanksAtlas.Textures.Find(t => t.Name == "tank_bullet3.png").ImgBox;
                    Radius = 80;
                    Force  = 50;
                    break;

                default:
                    break;
                }
                Origin             = new Vector2(ImgBox.Value.Width / 2, ImgBox.Value.Height / 2);
                OnBulletExplosion += Sender.Parent.Parent.CreateExplosion;
            }
Beispiel #3
0
 public bool SelectAction(Action.eActions actions)
 {
     if (actions != Action.eActions.None)
     {
         if (Inventory[actions] != 0)
         {
             Tank CurrentTank = Tanks[IndexTank];
             CurrentTank.SelectedAction = actions;
             return(true);
         }
     }
     return(false);
 }
Beispiel #4
0
            public Grenada(Tank pShooter, Vector2 pPosition, Vector2 pVelocity, Action.eActions pBulletType) : base()
            {
                #region Initialisation des valeurs
                Layer += 0.2f;
                Sender = pShooter;
                switch (pBulletType)
                {
                case TankArmageddon.Action.eActions.Grenada:
                    Radius          = 80;
                    Force           = 25;
                    BounceLimit     = 30;
                    _timerExplosion = 5;
                    Image           = AssetManager.Grenada;
                    Scale           = Vector2.One * 0.1f;
                    break;

                case TankArmageddon.Action.eActions.SaintGrenada:
                    Radius          = 80;
                    Force           = 50;
                    BounceLimit     = 30;
                    _timerExplosion = 5;
                    Image           = AssetManager.SaintGrenada;
                    Scale           = Vector2.One * 0.08f;
                    break;

                default:
                    break;
                }
                Position   = pPosition;
                Velocity   = pVelocity;
                BulletType = pBulletType;
                Origin     = new Vector2(Image.Width / 2, Image.Height);
                #endregion

                #region Initialisation de la GUI
                Vector2 p = new Vector2(BoundingBox.Left, BoundingBox.Top - BoundingBox.Height);
                _textBox = new Textbox(p, AssetManager.MainFont, _timerExplosion.ToString());
                _textBox.ApplyColor(Color.Red, Color.White);
                #endregion

                #region Initialisation du timer d'explosion
                _timer         = new Timer(1000);
                _timer.Enabled = true;
                #endregion

                #region Abonnement aux évènements
                OnExplosion    += Sender.Parent.Parent.CreateExplosion;
                _timer.Elapsed += OnTimerExplosionElapsed;
                #endregion
            }
Beispiel #5
0
        /// <summary>
        /// Récupère le loot sous forme d'un tuple (Type de loot, Quantité).
        /// </summary>
        /// <returns>Retourne un tuple représentant (Type de loot, Quantité).</returns>
        public Tuple <Action.eActions, byte> GetLoot()
        {
            int index = utils.MathRnd(0, _lootBag.Count);

            Action.eActions action = _lootBag[index];
            _lootBag.RemoveAt(index);
            if (_lootBag.Count == 0)
            {
                FillLootBag();
            }
            byte qty = 0;

            switch (action)
            {
            case Action.eActions.GoldBullet:
            case Action.eActions.GoldBombshell:
                qty = 5;
                break;

            case Action.eActions.GrayMissile:
            case Action.eActions.GreenMissile:
                qty = 2;
                break;

            case Action.eActions.Grenada:
                qty = 3;
                break;

            case Action.eActions.SaintGrenada:
            case Action.eActions.HelicoTank:
            case Action.eActions.Drilling:
                qty = 1;
                break;

            default:
                break;
            }
            return(new Tuple <Action.eActions, byte> (action, qty));
        }
Beispiel #6
0
        public ButtonAction(Gameplay pParent, Action.eActions pActionType, Vector2 pPosition, Vector2 pOrigin, SpriteFont pFont, string pText, float pScale = 1f, bool pVisible = true) : base(pPosition, pOrigin, pScale, pVisible, pFont, pText)
        {
            Parent        = pParent;
            ActionType    = pActionType;
            Size          = new Vector2(30, 30);
            ImageDefault  = AssetManager.IconsSpriteSheet;
            ImageSelected = ImageDefault;
            switch (ActionType)
            {
            case Action.eActions.None:
                ImageDefault  = new Texture2D(MainGame.graphics.GraphicsDevice, (int)Size.X, (int)Size.Y);
                ImageSelected = ImageDefault;
                Size          = new Vector2(MainGame.Screen.Width, Parent.MapSize.Y);
                break;

            case Action.eActions.iGrayBullet:
                ImageBoxDefault  = new Rectangle(0, 0, 30, 30);
                ImageBoxSelected = new Rectangle(0, 30, 30, 30);

                /*Scale = 0.5f;
                 * ImageDefault = AssetManager.TanksSpriteSheet;
                 * ImageBoxDefault = AssetManager.TanksAtlas.Textures.Find(t => t.Name == "tank_bullet1.png").ImgBox;*/
                break;

            case Action.eActions.iGrayBombshell:
                ImageBoxDefault  = new Rectangle(30, 0, 30, 30);
                ImageBoxSelected = new Rectangle(30, 30, 30, 30);

                /*Scale = 0.5f;
                 * ImageDefault = AssetManager.TanksSpriteSheet;
                 * ImageBoxDefault = AssetManager.TanksAtlas.Textures.Find(t => t.Name == "tank_bullet2.png").ImgBox;*/
                break;

            case Action.eActions.GoldBullet:
                ImageBoxDefault  = new Rectangle(60, 0, 30, 30);
                ImageBoxSelected = new Rectangle(60, 30, 30, 30);

                /*Scale = 0.5f;
                 * ImageDefault = AssetManager.TanksSpriteSheet;
                 * ImageBoxDefault = AssetManager.TanksAtlas.Textures.Find(t => t.Name == "tank_bullet5.png").ImgBox;*/
                break;

            case Action.eActions.GoldBombshell:
                ImageBoxDefault  = new Rectangle(90, 0, 30, 30);
                ImageBoxSelected = new Rectangle(90, 30, 30, 30);

                /*Scale = 0.5f;
                 * ImageDefault = AssetManager.TanksSpriteSheet;
                 * ImageBoxDefault = AssetManager.TanksAtlas.Textures.Find(t => t.Name == "tank_bullet6.png").ImgBox;*/
                break;

            case Action.eActions.GrayMissile:
                ImageBoxDefault  = new Rectangle(120, 0, 30, 30);
                ImageBoxSelected = new Rectangle(120, 30, 30, 30);

                /*Scale = 0.5f;
                 * ImageDefault = AssetManager.TanksSpriteSheet;
                 * ImageBoxDefault = AssetManager.TanksAtlas.Textures.Find(t => t.Name == "tank_bullet4.png").ImgBox;*/
                break;

            case Action.eActions.GreenMissile:
                ImageBoxDefault  = new Rectangle(150, 0, 30, 30);
                ImageBoxSelected = new Rectangle(150, 30, 30, 30);

                /*Scale = 0.5f;
                 * ImageDefault = AssetManager.TanksSpriteSheet;
                 * ImageBoxDefault = AssetManager.TanksAtlas.Textures.Find(t => t.Name == "tank_bullet3.png").ImgBox;*/
                break;

            case Action.eActions.iMine:
                ImageBoxDefault  = new Rectangle(180, 0, 30, 30);
                ImageBoxSelected = new Rectangle(180, 30, 30, 30);

                /*Scale = 0.40f;
                 * ImageDefault = AssetManager.TanksSpriteSheet;
                 * ImageBoxDefault = AssetManager.TanksAtlas.Textures.Find(t => t.Name == "tanks_mineOn.png").ImgBox;*/
                break;

            case Action.eActions.Grenada:
                ImageBoxDefault  = new Rectangle(210, 0, 30, 30);
                ImageBoxSelected = new Rectangle(210, 30, 30, 30);

                /*Scale = 0.12f;
                 * ImageDefault = AssetManager.Grenada;*/
                break;

            case Action.eActions.SaintGrenada:
                ImageBoxDefault  = new Rectangle(240, 0, 30, 30);
                ImageBoxSelected = new Rectangle(240, 30, 30, 30);

                /*Scale = 0.07f;
                 * ImageDefault = AssetManager.SaintGrenada;*/
                break;

            //case Action.eActions.iTankBaseBall:
            //    break;
            case Action.eActions.HelicoTank:
                ImageBoxDefault  = new Rectangle(270, 0, 30, 30);
                ImageBoxSelected = new Rectangle(270, 30, 30, 30);
                break;

            case Action.eActions.Drilling:
                ImageBoxDefault  = new Rectangle(300, 0, 30, 30);
                ImageBoxSelected = new Rectangle(300, 30, 30, 30);
                break;

            case Action.eActions.DropHealth:
                ImageBoxDefault  = new Rectangle(330, 0, 30, 30);
                ImageBoxSelected = new Rectangle(330, 30, 30, 30);
                break;

            case Action.eActions.iDropFuel:
                ImageBoxDefault  = new Rectangle(360, 0, 30, 30);
                ImageBoxSelected = new Rectangle(360, 30, 30, 30);

                /*Scale = 0.25f;
                 * ImageDefault = AssetManager.TanksSpriteSheet;
                 * ImageBoxDefault = AssetManager.TanksAtlas.Textures.Find(t => t.Name == "tanks_barrelRed.png").ImgBox;*/
                break;

            default:
                break;
            }
            //ImageBoxHover = ImageBoxDefault;
            //ImageBoxPressed = ImageBoxDefault;
            //ImageBoxSelected = ImageBoxDefault;
            //Texture2D pImageHover, Texture2D pImagePressed
        }