예제 #1
0
        public static async Task <bool> UseItem(PawsItem item)
        {
            if (item == null || Me.HasAura(SpellBook.Prowl) || Me.Mounted || Me.IsInTravelForm() || Me.IsDead)
            {
                return(false);
            }

            if (item.Conditions.Any(condition => !condition.Instance.Satisfied()))
            {
                return(false);
            }

            var theItem = Me.BagItems
                          .SingleOrDefault(o => o.Entry == item.Entry);

            if (theItem == null || theItem.CooldownTimeLeft.TotalMilliseconds != 0)
            {
                return(false);
            }
            theItem.Use();

            Log.Equipment(string.Format("Item [{0}] used.", theItem.Name));

            await CommonCoroutines.SleepForLagDuration();

            return(true);
        }
예제 #2
0
        /// <summary>
        ///     Adds a list view item to the items list view.
        /// </summary>
        private void AddItemToItemList(PawsItem item)
        {
            var lvItem = new ListViewItem(item.Name);

            lvItem.UseItemStyleForSubItems = false;
            lvItem.SubItems.Add(item.Enabled ? Properties.Resources.SettingsForm_itemsEnableCheckedItemsButton_Click_Enabled : Properties.Resources.SettingsForm_itemsDisableCheckedItemsButton_Click_Disabled, Color.White,
                                item.Enabled ? Color.DarkGreen : Color.DarkRed, new Font("Arial", 9.0f, FontStyle.Bold));
            lvItem.SubItems.Add(item.MyState.ToString());
            lvItem.SubItems.Add(item.GetConditionsDescription());
            lvItem.Tag = item;

            itemsListView.Items.Add(lvItem);
        }
예제 #3
0
        public static List <PawsItem> CreateItemsSampleList()
        {
            // Create a default items list...
            var sampleItems = new List <PawsItem>();

            // Item sample 1: Oralius' Whispering Crystal
            var oraliusWhisperingCrystal = new PawsItem
            {
                Name    = "Oralius' Whispering Crystal",
                Entry   = 118922,
                MyState = MyState.NotInCombat,
                Enabled = false
            };

            oraliusWhisperingCrystal.Conditions.Add(new ItemCondition
            {
                Instance = new TargetDoesNotHaveNamedAuraCondition(TargetType.Me, "Whispers of Insanity")
            });

            // Item sample 2: Draenic Agility Potion
            var draenicAgilityPotion = new PawsItem
            {
                Name    = "Draenic Agility Potion",
                Entry   = 109217,
                MyState = MyState.InCombat,
                Enabled = false
            };

            draenicAgilityPotion.Conditions.Add(new ItemCondition {
                Instance = new MeIsInCatFormCondition()
            });
            draenicAgilityPotion.Conditions.Add(new ItemCondition
            {
                Instance = new TargetHasNamedAuraCondition(TargetType.Me, "Berserk")
            });
            draenicAgilityPotion.Conditions.Add(new ItemCondition {
                Instance = new MyTargetIsWithinMeleeRangeCondition()
            });

            sampleItems.Add(oraliusWhisperingCrystal);
            sampleItems.Add(draenicAgilityPotion);

            return(sampleItems);
        }
예제 #4
0
        public AddNewItemForm(PawsItem item)
        {
            InitializeComponent();

            PawsItem = item;
            itemEntryTextBox.Text         = PawsItem.Entry.ToString();
            itemNameTextBox.Text          = PawsItem.Name;
            myStateComboBox.SelectedIndex = (int)PawsItem.MyState;

            foreach (
                var conditionItem in
                PawsItem.Conditions.Select(condition => new ListViewItem(condition.ToString())
            {
                Tag = condition
            }))
            {
                conditionsListView.Items.Add(conditionItem);
            }
        }
예제 #5
0
        public static async Task<bool> UseItem(PawsItem item)
        {
            if (item == null || Me.HasAura(SpellBook.Prowl) || Me.Mounted || Me.IsInTravelForm() || Me.IsDead)
                return false;

            if (item.Conditions.Any(condition => !condition.Instance.Satisfied()))
            {
                return false;
            }

            var theItem = Me.BagItems
                .SingleOrDefault(o => o.Entry == item.Entry);

            if (theItem == null || theItem.CooldownTimeLeft.TotalMilliseconds != 0) return false;
            theItem.Use();

            Log.Equipment(string.Format("Item [{0}] used.", theItem.Name));

            await CommonCoroutines.SleepForLagDuration();

            return true;
        }
예제 #6
0
        public static List<PawsItem> CreateItemsSampleList()
        {
            // Create a default items list...
            var sampleItems = new List<PawsItem>();

            // Item sample 1: Oralius' Whispering Crystal
            var oraliusWhisperingCrystal = new PawsItem
            {
                Name = "Oralius' Whispering Crystal",
                Entry = 118922,
                MyState = MyState.NotInCombat,
                Enabled = false
            };
            oraliusWhisperingCrystal.Conditions.Add(new ItemCondition
            {
                Instance = new TargetDoesNotHaveNamedAuraCondition(TargetType.Me, "Whispers of Insanity")
            });

            // Item sample 2: Draenic Agility Potion
            var draenicAgilityPotion = new PawsItem
            {
                Name = "Draenic Agility Potion",
                Entry = 109217,
                MyState = MyState.InCombat,
                Enabled = false
            };
            draenicAgilityPotion.Conditions.Add(new ItemCondition {Instance = new MeIsInCatFormCondition()});
            draenicAgilityPotion.Conditions.Add(new ItemCondition
            {
                Instance = new TargetHasNamedAuraCondition(TargetType.Me, "Berserk")
            });
            draenicAgilityPotion.Conditions.Add(new ItemCondition {Instance = new MyTargetIsWithinMeleeRangeCondition()});

            sampleItems.Add(oraliusWhisperingCrystal);
            sampleItems.Add(draenicAgilityPotion);

            return sampleItems;
        }
예제 #7
0
        private void saveButton_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(itemEntryTextBox.Text))
            {
                MessageBox.Show(
                    Properties.Resources.AddNewItemForm_saveButton_Click_You_must_enter_an_item_id_to_continue_,
                    Properties.Resources.AddNewItemForm_saveButton_Click_Notice, MessageBoxButtons.OK,
                    MessageBoxIcon.Information);
                return;
            }

            if (string.IsNullOrEmpty(itemNameTextBox.Text))
            {
                MessageBox.Show(
                    Properties.Resources.AddNewItemForm_saveButton_Click_You_must_enter_an_item_name_to_continue_,
                    Properties.Resources.AddNewItemForm_saveButton_Click_Notice, MessageBoxButtons.OK,
                    MessageBoxIcon.Information);
                return;
            }

            PawsItem = new PawsItem
            {
                Name       = itemNameTextBox.Text,
                Entry      = Convert.ToInt32(itemEntryTextBox.Text),
                Enabled    = true,
                MyState    = (MyState)myStateComboBox.SelectedIndex,
                Conditions = new List <ItemCondition>()
            };

            foreach (ListViewItem conditionListItem in conditionsListView.Items)
            {
                var theCondition = conditionListItem.Tag as ItemCondition;
                PawsItem.Conditions.Add(theCondition);
            }

            DialogResult = DialogResult.OK;
        }