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")); }
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; } } }
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; } } }