public void RefreshActionButtonSelection(Action.eActions action) { GUIGroupButtons.CurrentSelection = GUIGroupButtons.Elements.FindIndex(delegate(Element elm) { return(((ButtonAction)elm).ActionType == action); }); }
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; }
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); }
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 }
/// <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)); }
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 }