예제 #1
0
        private void CommandButton_RightMouseDown(object sender, MouseButtonEventArgs e)
        {
            var senderButton = sender as Button;

            if (senderButton == null)
            {
                return;
            }

            var buttonIndex = int.Parse(senderButton.Name.Substring(7));
            var abilityId   =
                LegacyMemoryReader.ReadInt16(_abilityOffset + (0xE38 * _creatureIndex) + (2 * buttonIndex));

            ShowButtonBox(senderButton, abilityId.ToString("X2"));
        }
예제 #2
0
        public void RefreshAbilities(int characterIndex)
        {
            if (Dressphere.SelectedIndex == 0)
            {
                return;
            }
            _char       = characterIndex;
            _baseOffset = (int)OffsetType.AbilityBase + characterIndex * 0x6A0;
            var dressInfo = Dresspheres.GetDresspheres().FirstOrDefault(ds => ds.ID == Dressphere.SelectedIndex);

            if (dressInfo == null)
            {
                return;
            }

            var abilities = dressInfo.Abilities;

            for (int a = 0; a < 16; a++)
            {
                var button = (Button)this.FindName($"Ability{a}");
                if (button == null)
                {
                    continue;
                }

                button.Content   = string.Empty;
                button.IsEnabled = false;

                if (a >= abilities.Length)
                {
                    continue;
                }

                var abil = abilities[a];

                int currentAP = 0;

                if (abil.Offset != -1)
                {
                    currentAP = LegacyMemoryReader.ReadInt16(_baseOffset + abil.Offset);
                }

                values[a] = currentAP;

                string apText;

                if (currentAP >= abil.MasteredAP || abil.MasteredAP == 0)
                {
                    apText = " [***]";
                }
                else
                {
                    apText = $" {currentAP} / {abil.MasteredAP}";
                }

                button.Content = $"{abil.Name} {apText}";

                if (abil.ReadOnly == false)
                {
                    button.IsEnabled = true;
                }
            }
        }
예제 #3
0
        public void RefreshAbilities()
        {
            var selectedId = (int)((Dressphere.SelectedItem as ComboBoxItem)?.Tag ?? 0);

            if (selectedId == 0)
            {
                return;
            }

            var dressInfo = Dresspheres.GetDresspheres().FirstOrDefault(ds => ds.ID == selectedId);

            if (dressInfo == null)
            {
                return;
            }

            // Special dresspheres always fall under Yuna's offset
            _baseOffset = (int)OffsetType.AbilityBase + (dressInfo.Special == -1 ? SelectedIndex * 0x6A0 : 0);

            var abilities = dressInfo.Abilities;

            for (int a = 0; a < 16; a++)
            {
                var button = (Button)this.FindName($"Ability{a}");
                if (button == null)
                {
                    continue;
                }

                button.Content   = string.Empty;
                button.IsEnabled = false;

                if (a >= abilities.Length)
                {
                    continue;
                }

                var abil = abilities[a];

                int currentAP = 0;

                if (abil.Offset != -1)
                {
                    currentAP = LegacyMemoryReader.ReadInt16(_baseOffset + abil.Offset);
                }

                values[a] = currentAP;

                string apText;

                if (currentAP >= abil.MasteredAP || abil.MasteredAP == 0)
                {
                    apText = " [***]";
                }
                else
                {
                    apText = $" {currentAP} / {abil.MasteredAP}";
                }

                button.Content = $"{abil.Name} {apText}";

                if (abil.ReadOnly == false)
                {
                    button.IsEnabled = true;
                }
            }
        }