Ejemplo n.º 1
0
        private void OnApplyActionExecute()
        {
            var root = ViewModelManager.GetFirstOrDefaultInstance <MainWindowViewModel>();

            if (SelectedDish == null)
            {
                root.ChangePageWithDialog(new ShortMessageViewModel("Блюдо не выбрано!"), 999);
                return;
            }

            ActionsHelper actionsFilter = new ActionsHelper();
            string        message;
            var           bonus = new BonusAction
            {
                DishId      = SelectedDish.Id,
                ExcessSum   = DiscountValue,
                Name        = ActionName,
                Description = ActionInfo
            };

            if (!actionsFilter.CanAddAction(bonus, out message))
            {
                root.ChangePageWithDialog(new ShortMessageViewModel(message), 1300);
            }
            else
            {
                root.ChangePageWithDialog(new ShortMessageViewModel("Акция успешно добавлена!"), 1111);
                actionsFilter.SaveAction(bonus);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Simple constructor
        /// </summary>
        /// <param name="position">start position x</param>
        public Bonus(Vecteur2D position)
        {
            Position = position;

            int choice = Game.prob.Next(1, 4);

            if (choice == 1)
            {
                image       = space_invaders.Properties.Resources.bonus;
                imageWidth  = image.Width;
                imageHeight = image.Height;
                bonusName   = "BigMissile";
                action      = new BonusAction(Bonus1);
            }
            else if (choice == 2)
            {
                image       = space_invaders.Properties.Resources.bonus2;
                imageWidth  = image.Width;
                imageHeight = image.Height;
                bonusName   = "InstantKill";
                action      = new BonusAction(Bonus2);
            }
            else if (choice == 3)
            {
                image       = space_invaders.Properties.Resources.bonus3;
                imageWidth  = image.Width;
                imageHeight = image.Height;
                bonusName   = "DoublePoints";
                action      = new BonusAction(Bonus3);
            }
        }
Ejemplo n.º 3
0
 public void SetBonusAction(BonusAction bonusAction)
 {
     this.bonusAction = bonusAction;
     GetComponent <SpriteRenderer>().sprite = bonusAction.sprite;
     if (bonusAction is LineAction && ((LineAction)bonusAction).direction == Direction.Vertical)
     {
         Quaternion target = Quaternion.Euler(0, 0, 90);
         transform.rotation = target;
     }
 }
Ejemplo n.º 4
0
 public void OnBonusLost(BonusName name, BonusAction action)
 {
     if (onBonusOff.ContainsKey(name))
     {
         onBonusOff[name] += action;
     }
     else
     {
         onBonusOff[name] = action;
     }
 }
Ejemplo n.º 5
0
    public void GetBonusAction(BonusAction action, GameObject bonus)
    {
        switch (action)
        {
        case BonusAction.Heal:
            HealPlayer(bonus);
            break;

        case BonusAction.IncreaseFireRate:
            IncreaseFireRate(bonus);
            break;
        }
    }
Ejemplo n.º 6
0
 private void Init()
 {
     bonuses      = GetComponent <BonusBase>().GetBonuses();
     bonusStorage = new Queue <GameObject>();
     bonusesData  = new Dictionary <GameObject, BonusPrefabData>();
     bonusesLife  = new Dictionary <GameObject, Coroutine>();
     #region Pre-creating bonus pool
     for (int i = 0; i < poolSize; i++)
     {
         GameObject prefab = Instantiate(bonusPrefab, Vector3.zero, Quaternion.AngleAxis(90, Vector3.right));
         prefab.transform.parent = transform;
         BonusAction     script     = prefab.GetComponent <BonusAction>();
         SpriteRenderer  renderer   = prefab.GetComponent <SpriteRenderer>();
         BonusPrefabData prefabData = new BonusPrefabData(script, prefab.transform, renderer);
         bonusesData.Add(prefab, prefabData);
         prefab.SetActive(false);
         bonusStorage.Enqueue(prefab);
     }
     #endregion
     #region Pre-creating particles
     pickUpEffect    = Instantiate(particles);
     effectParticles = pickUpEffect.GetComponent <ParticleSystem>();
     #endregion
 }
Ejemplo n.º 7
0
 public void SetBonus(BonusAction bonusAction)
 {
     bonus.GetComponent <Bonus>().SetBonusAction(bonusAction);
 }
Ejemplo n.º 8
0
 public BonusPrefabData(BonusAction _script, Transform _transform, SpriteRenderer _spriteRenderer)
 {
     script         = _script;
     transform      = _transform;
     spriteRenderer = _spriteRenderer;
 }
Ejemplo n.º 9
0
 public void SetActionOnDestroy(BonusAction action)
 {
     _act = action;
 }
Ejemplo n.º 10
0
 public BonusOverlay(BonusAction action)
 {
     bonusEntryDirection = DisplayDirection.Enter;
     bonusEntryPosAdjustment = Vector2.Zero;
     bonusEntryTimeIn = AssaultWingCore.Instance.DataEngine.ArenaTotalTime;
     bonusActionData = action;
 }
Ejemplo n.º 11
0
        /// <summary>
        /// Draws the overlay graphics component using the guarantee that the
        /// graphics device's viewport is set to the exact area needed by the component.
        /// </summary>
        /// <param name="spriteBatch">The sprite batch to use. <c>Begin</c> is assumed
        /// to have been called and <c>End</c> is assumed to be called after this
        /// method returns.</param>
        private void DrawBonusBox(SpriteBatch spriteBatch, Vector2 bonusPos, BonusAction bonusAction)
        {
            // Draw bonus box background.
            Vector2 backgroundOrigin = new Vector2(0, _bonusBackgroundTexture.Height) / 2;
            spriteBatch.Draw(_bonusBackgroundTexture,
                bonusPos, null, Color.White, 0, backgroundOrigin, 1, SpriteEffects.None, 0);

            // Draw bonus icon.
            var iconPos = bonusPos - backgroundOrigin + new Vector2(133, 9);
            var icon = _player.Game.Content.Load<Texture2D>(bonusAction.BonusIconName);
            spriteBatch.Draw(icon, iconPos, null, _player.Color, 0, Vector2.Zero, 1, SpriteEffects.None, 0);

            // Draw bonus duration meter.
            var duration = (bonusAction.EndTime - _player.Game.DataEngine.ArenaTotalTime).Divide(bonusAction.Duration);
            int durationHeight = (int)Math.Round(duration * _bonusDurationTexture.Height);
            int durationY = _bonusDurationTexture.Height - durationHeight;
            var durationClip = new Rectangle(0, durationY, _bonusDurationTexture.Width, durationHeight);
            var durationPos = bonusPos - backgroundOrigin + new Vector2(14, 8 + durationY);
            spriteBatch.Draw(_bonusDurationTexture,
                durationPos, durationClip, Color.White, 0, Vector2.Zero, 1, SpriteEffects.None, 0);

            // Draw bonus text.
            // Round coordinates for beautiful text.
            var bonusText = bonusAction.BonusText;
            var textSize = _bonusFont.MeasureString(bonusText);
            var textPos = bonusPos - backgroundOrigin + new Vector2(32, 25.5f - textSize.Y / 2);
            spriteBatch.DrawString(_bonusFont, bonusText, textPos.Round(), Color.White);
        }