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); } }
/// <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); } }
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; } }
public void OnBonusLost(BonusName name, BonusAction action) { if (onBonusOff.ContainsKey(name)) { onBonusOff[name] += action; } else { onBonusOff[name] = action; } }
public void GetBonusAction(BonusAction action, GameObject bonus) { switch (action) { case BonusAction.Heal: HealPlayer(bonus); break; case BonusAction.IncreaseFireRate: IncreaseFireRate(bonus); break; } }
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 }
public void SetBonus(BonusAction bonusAction) { bonus.GetComponent <Bonus>().SetBonusAction(bonusAction); }
public BonusPrefabData(BonusAction _script, Transform _transform, SpriteRenderer _spriteRenderer) { script = _script; transform = _transform; spriteRenderer = _spriteRenderer; }
public void SetActionOnDestroy(BonusAction action) { _act = action; }
public BonusOverlay(BonusAction action) { bonusEntryDirection = DisplayDirection.Enter; bonusEntryPosAdjustment = Vector2.Zero; bonusEntryTimeIn = AssaultWingCore.Instance.DataEngine.ArenaTotalTime; bonusActionData = action; }
/// <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); }