public void UpdateView(AllMonsterSkills skills, PatcherLib.Datatypes.Context context) { dataGridView.DataSource = null; foreach (DataGridViewComboBoxColumn col in new DataGridViewComboBoxColumn[] { Ability1, Ability2, Ability3, Beastmaster }) { col.Items.Clear(); col.Items.AddRange(AllAbilities.GetDummyAbilities(context)); col.ValueType = typeof(Ability); } dataGridView.DataSource = skills.MonsterSkills; }
public static BaseAbilityEffect GetAbilityEffect(AllAbilities enumKey) { InitializeFactory(); if (AbilityDictionary.ContainsKey(enumKey)) { Type type = AbilityDictionary[enumKey]; var effect = Activator.CreateInstance(type) as BaseAbilityEffect; return(effect); } return(null); }
public void UpdateView(AllAbilities allAbilities) { if (ourContext != FFTPatch.Context) { ourContext = FFTPatch.Context; cbAbility = null; } abilitiesListBox.SelectedIndexChanged -= abilitiesListBox_SelectedIndexChanged; abilitiesListBox.DataSource = allAbilities.Abilities; abilitiesListBox.SelectedIndexChanged += abilitiesListBox_SelectedIndexChanged; abilitiesListBox.SelectedIndex = 0; abilityEditor.Ability = abilitiesListBox.SelectedItem as Ability; }
void InitializeCards(RectTransform panel, List <Ability> abilities) { foreach (Ability _ability in abilities) { if (!AllAbilities.Contains(_ability)) { AllAbilities.Add(_ability); } AbilityCard newCard = Instantiate(abilityCard, panel); newCard.InitializeCard(_ability); newCard.cardButton.onClick.AddListener(delegate { AddToSelectedAbilities(_ability); }); newCard.cardButton.onClick.AddListener(delegate { OnLoadoutEdited(); }); } }
public static void RepointSpecificInflictStatus(AllItems items, AllAbilities abilities, AllInflictStatuses allInflictStatuses, byte oldID, byte newID) { for (int itemIndex = 0; itemIndex < items.Items.Count; itemIndex++) { Item item = items.Items[itemIndex]; if (item is Weapon) { Weapon weapon = (Weapon)item; if ((weapon.Formula.Value != 2) && (weapon.InflictStatus == oldID)) { weapon.InflictStatus = newID; weapon.OldInflictStatus = newID; allInflictStatuses.InflictStatuses[newID].ReferencingItemIndexes.Add(itemIndex); } } else if (item is ChemistItem) { ChemistItem chemistItem = (ChemistItem)item; if ((chemistItem.Formula != 2) && (chemistItem.InflictStatus == oldID)) { chemistItem.InflictStatus = newID; chemistItem.OldInflictStatus = newID; allInflictStatuses.InflictStatuses[newID].ReferencingItemIndexes.Add(itemIndex); } } } for (int abilityIndex = 0; abilityIndex < abilities.Abilities.Length; abilityIndex++) { Ability ability = abilities.Abilities[abilityIndex]; if (!ability.IsNormal) { continue; } AbilityAttributes abilityAttrs = ability.Attributes; if ((abilityAttrs.Formula.Value != 2) && (abilityAttrs.InflictStatus == oldID)) { abilityAttrs.InflictStatus = newID; abilityAttrs.OldInflictStatus = newID; allInflictStatuses.InflictStatuses[newID].ReferencingAbilityIDs.Add(abilityIndex); } } allInflictStatuses.InflictStatuses[oldID].ReferencingItemIndexes.Clear(); allInflictStatuses.InflictStatuses[oldID].ReferencingAbilityIDs.Clear(); }
public void BuildItemNameLists(Context context) { IList <string> abilityNames = AllAbilities.GetNames(context); weaponCastSpellItems = new List <string>(256); for (int i = 0; i < 256; i++) { weaponCastSpellItems.Add(string.Format("{0:X2} - {1}", i, abilityNames[i])); } itemFormulaItems = new List <string>(256); List <AbilityFormula> abilityFormulaList = (context == Context.US_PSP) ? AbilityFormula.PSPAbilityFormulas : AbilityFormula.PSXAbilityFormulas; for (int index = 0; index < 256; index++) { itemFormulaItems.Add(abilityFormulaList[index].ToString()); } /* * itemFormulaItems = new List<string>( 256 ); * Dictionary<int, string> t = new Dictionary<int, string>( 5 ); * t.Add( 0x38, "Remove status" ); * t.Add( 0x48, "Restore 10*X HP" ); * t.Add( 0x49, "Restore 10*X MP" ); * t.Add( 0x4A, "Restore all HP/MP" ); * t.Add( 0x4B, "Remove status and restore (1..(X-1)) HP" ); * for( int i = 0; i < 256; i++ ) * { * if( t.ContainsKey( i ) ) * { * itemFormulaItems.Add( t[i] ); * } * else * { * itemFormulaItems.Add( string.Format( "{0:X2}", i ) ); * } * } */ }
public void UpdateView(Context context) { this.ignoreChanges = true; this.SuspendLayout(); actionGroupBox.SuspendLayout(); theRestGroupBox.SuspendLayout(); if (ourContext != context) { ourContext = context; foreach (ComboBoxWithDefault actionComboBox in actionComboBoxes) { actionComboBox.Items.Clear(); actionComboBox.Items.AddRange(AllAbilities.GetDummyAbilities(context)); actionComboBox.SelectedIndexChanged += actionComboBox_SelectedIndexChanged; } foreach (ComboBoxWithDefault theRestComboBox in theRestComboBoxes) { theRestComboBox.Items.Clear(); theRestComboBox.Items.AddRange(AllAbilities.GetDummyAbilities(context)); theRestComboBox.SelectedIndexChanged += theRestComboBox_SelectedIndexChanged; } } for (int i = 0; i < 16; i++) { actionComboBoxes[i].SetValueAndDefault(skillSet.Actions[i], skillSet.Default.Actions[i], toolTip); } for (int i = 0; i < 6; i++) { theRestComboBoxes[i].SetValueAndDefault(skillSet.TheRest[i], skillSet.Default.TheRest[i], toolTip); } theRestGroupBox.ResumeLayout(); actionGroupBox.ResumeLayout(); this.ResumeLayout(); this.ignoreChanges = false; }
public void UpdateView(AllAbilities allAbilities, AllInflictStatuses allInflictStatuses, Context context) { if (ourContext != context) { ourContext = context; cbAbility = null; } inflictStatuses = allInflictStatuses; abilitiesListBox.SelectedIndexChanged -= abilitiesListBox_SelectedIndexChanged; abilitiesListBox.DataSource = allAbilities.Abilities; abilitiesListBox.SelectedIndexChanged += abilitiesListBox_SelectedIndexChanged; abilitiesListBox.SelectedIndex = 0; //abilityEditor.UpdateView(context); Ability ability = abilitiesListBox.SelectedItem as Ability; //abilityEditor.Ability = ability; abilityEditor.SetAbility(ability, context); abilitiesListBox.SetChangedColors(); }
private void UpdateDataSources() { foreach (ComboBoxWithDefault itemComboBox in new ComboBoxWithDefault[] { rightHandComboBox, leftHandComboBox, headComboBox, bodyComboBox, accessoryComboBox, warTrophyComboBox }) { itemComboBox.BindingContext = new BindingContext(); itemComboBox.DataSource = Item.GetEventItems(ourContext); } primarySkillComboBox.BindingContext = new BindingContext(); primarySkillComboBox.DataSource = new List <SkillSet>(SkillSet.GetEventSkillSets(ourContext).Values); secondaryActionComboBox.BindingContext = new BindingContext(); secondaryActionComboBox.DataSource = new List <SkillSet>(SkillSet.GetEventSkillSets(ourContext).Values); foreach (ComboBoxWithDefault abilityComboBox in new ComboBoxWithDefault[] { reactionComboBox, supportComboBox, movementComboBox }) { abilityComboBox.BindingContext = new BindingContext(); abilityComboBox.DataSource = AllAbilities.GetEventAbilities(ourContext); } faithComboBox.BindingContext = new BindingContext(); faithComboBox.DataSource = zeroTo100; braveryComboBox.BindingContext = new BindingContext(); braveryComboBox.DataSource = zeroTo100; dayComboBox.DataSource = zeroTo31; levelComboBox.DataSource = levelStrings; experienceComboBox.DataSource = byteNumberWithRandom; spriteSetComboBox.DataSource = SpriteSet.GetSpriteSets(ourContext); specialNameComboBox.DataSource = SpecialName.GetSpecialNames(ourContext); jobComboBox.DataSource = AllJobs.GetDummyJobs(ourContext); monthComboBox.DataSource = Enum.GetValues(typeof(Month)); teamColorComboBox.DataSource = Enum.GetValues(typeof(TeamColor)); facingDirectionComboBox.DataSource = Enum.GetValues(typeof(Facing)); preRequisiteJobComboBox.DataSource = Enum.GetValues(typeof(PreRequisiteJob)); }
public void UpdateView(Context context) { ignoreChanges = true; this.SuspendLayout(); absorbElementsEditor.SuspendLayout(); cancelElementsEditor.SuspendLayout(); halfElementsEditor.SuspendLayout(); weakElementsEditor.SuspendLayout(); equipmentEditor.SuspendLayout(); innateStatusesEditor.SuspendLayout(); statusImmunityEditor.SuspendLayout(); startingStatusesEditor.SuspendLayout(); if (ourContext != context) { ourContext = context; skillsetComboBox.Items.Clear(); skillsetComboBox.Items.AddRange(SkillSet.GetDummySkillSets(context)); foreach (ComboBoxWithDefault cb in new ComboBoxWithDefault[] { innateAComboBox, innateBComboBox, innateCComboBox, innateDComboBox }) { cb.Items.Clear(); cb.Items.AddRange(AllAbilities.GetDummyAbilities(context)); } cmb_MPortrait.Items.Clear(); cmb_MType.Items.Clear(); System.Collections.Generic.IList <string> spriteNames = (ourContext == Context.US_PSX) ? PSXResources.Lists.SpriteFiles : PSPResources.Lists.SpriteFiles; int spriteNameCount = spriteNames.Count; cmb_MPortrait.Items.Add("00"); cmb_MType.Items.Add("00"); for (int index = 1; index < spriteNameCount; index++) { string spriteName = spriteNames[index]; cmb_MPortrait.Items.Add(String.Format("{0} {1}", (index).ToString("X2"), spriteName)); if ((index >= 0x86) && (index <= 0x9A)) { cmb_MType.Items.Add(String.Format("{0} {1}", (index - 0x85).ToString("X2"), spriteName)); } } for (int index = cmb_MType.Items.Count; index <= spriteNameCount; index++) { cmb_MType.Items.Add(index.ToString("X2")); } for (int index = (spriteNameCount + 1); index < 0x100; index++) { cmb_MPortrait.Items.Add(index.ToString("X2")); cmb_MType.Items.Add(index.ToString("X2")); } } skillsetComboBox.SetValueAndDefault(job.SkillSet, job.Default.SkillSet, toolTip); foreach (NumericUpDownWithDefault s in spinners) { // TODO Update Default s.SetValueAndDefault( ReflectionHelpers.GetFieldOrProperty <byte>(job, s.Tag.ToString()), ReflectionHelpers.GetFieldOrProperty <byte>(job.Default, s.Tag.ToString()), toolTip); } innateAComboBox.SetValueAndDefault(job.InnateA, job.Default.InnateA, toolTip); innateBComboBox.SetValueAndDefault(job.InnateB, job.Default.InnateB, toolTip); innateCComboBox.SetValueAndDefault(job.InnateC, job.Default.InnateC, toolTip); innateDComboBox.SetValueAndDefault(job.InnateD, job.Default.InnateD, toolTip); cmb_MPortrait.SetValueAndDefault(cmb_MPortrait.Items[job.MPortrait], cmb_MPortrait.Items[job.Default.MPortrait], toolTip); cmb_MType.SetValueAndDefault(cmb_MType.Items[job.MGraphic], cmb_MPortrait.Items[job.Default.MGraphic], toolTip); absorbElementsEditor.SetValueAndDefaults(job.AbsorbElement, job.Default.AbsorbElement); halfElementsEditor.SetValueAndDefaults(job.HalfElement, job.Default.HalfElement); cancelElementsEditor.SetValueAndDefaults(job.CancelElement, job.Default.CancelElement); weakElementsEditor.SetValueAndDefaults(job.WeakElement, job.Default.WeakElement); equipmentEditor.Equipment = null; //equipmentEditor.Equipment = job.Equipment; equipmentEditor.SetEquipment(job.Equipment, context); innateStatusesEditor.Statuses = null; statusImmunityEditor.Statuses = null; startingStatusesEditor.Statuses = null; //innateStatusesEditor.Statuses = job.PermanentStatus; //statusImmunityEditor.Statuses = job.StatusImmunity; //startingStatusesEditor.Statuses = job.StartingStatus; innateStatusesEditor.SetStatuses(job.PermanentStatus, context); statusImmunityEditor.SetStatuses(job.StatusImmunity, context); startingStatusesEditor.SetStatuses(job.StartingStatus, context); pnl_FormationSprites.Visible = (job.Value < 0x4A); ignoreChanges = false; absorbElementsEditor.ResumeLayout(); cancelElementsEditor.ResumeLayout(); halfElementsEditor.ResumeLayout(); weakElementsEditor.ResumeLayout(); equipmentEditor.ResumeLayout(); innateStatusesEditor.ResumeLayout(); statusImmunityEditor.ResumeLayout(); startingStatusesEditor.ResumeLayout(); this.ResumeLayout(); }
public static void RepointInflictStatus(AllItems items, AllAbilities abilities, AllInflictStatuses allInflictStatuses) { Dictionary <int, int> repointMap = GetRepointMap <InflictStatus>(allInflictStatuses.InflictStatuses); for (int itemIndex = 0; itemIndex < items.Items.Count; itemIndex++) { Item item = items.Items[itemIndex]; if (item is Weapon) { Weapon weapon = (Weapon)item; if (weapon.Formula.Value != 2) { int newID = 0; if (repointMap.TryGetValue(weapon.InflictStatus, out newID)) { weapon.InflictStatus = (byte)newID; weapon.OldInflictStatus = (byte)newID; allInflictStatuses.InflictStatuses[newID].ReferencingItemIndexes.Add(itemIndex); } } } else if (item is ChemistItem) { ChemistItem chemistItem = (ChemistItem)item; if (chemistItem.Formula != 2) { int newID = 0; if (repointMap.TryGetValue(chemistItem.InflictStatus, out newID)) { chemistItem.InflictStatus = (byte)newID; chemistItem.OldInflictStatus = (byte)newID; allInflictStatuses.InflictStatuses[newID].ReferencingItemIndexes.Add(itemIndex); } } } } for (int abilityIndex = 0; abilityIndex < abilities.Abilities.Length; abilityIndex++) { Ability ability = abilities.Abilities[abilityIndex]; if (!ability.IsNormal) { continue; } AbilityAttributes abilityAttrs = ability.Attributes; if (abilityAttrs.Formula.Value != 2) { int newID = 0; if (repointMap.TryGetValue(abilityAttrs.InflictStatus, out newID)) { abilityAttrs.InflictStatus = (byte)newID; abilityAttrs.OldInflictStatus = (byte)newID; allInflictStatuses.InflictStatuses[newID].ReferencingAbilityIDs.Add(abilityIndex); } } } foreach (int index in repointMap.Keys) { InflictStatus inflictStatus = allInflictStatuses.InflictStatuses[index]; inflictStatus.ReferencingItemIndexes.Clear(); inflictStatus.ReferencingAbilityIDs.Clear(); } }
public static void BuildReferenceList(AllItemAttributes itemAttributes, AllInflictStatuses inflictStatuses, AllAbilities abilities, AllItems items) { foreach (ItemAttributes itemAttr in itemAttributes.ItemAttributes) { itemAttr.ReferencingItemIndexes.Clear(); } foreach (InflictStatus inflictStatus in inflictStatuses.InflictStatuses) { inflictStatus.ReferencingAbilityIDs.Clear(); inflictStatus.ReferencingItemIndexes.Clear(); } for (int index = 0; index < items.Items.Count; index++) { Item item = items.Items[index]; if (item.SIA < itemAttributes.ItemAttributes.Length) { itemAttributes.ItemAttributes[item.SIA].ReferencingItemIndexes.Add(index); } if (item is Weapon) { Weapon weapon = (Weapon)item; if (weapon.Formula.Value != 2) { if (weapon.InflictStatus < inflictStatuses.InflictStatuses.Length) { inflictStatuses.InflictStatuses[weapon.InflictStatus].ReferencingItemIndexes.Add(index); } } } else if (item is ChemistItem) { ChemistItem chemistItem = (ChemistItem)item; if (chemistItem.Formula != 2) { if (chemistItem.InflictStatus < inflictStatuses.InflictStatuses.Length) { inflictStatuses.InflictStatuses[chemistItem.InflictStatus].ReferencingItemIndexes.Add(index); } } } } for (int index = 0; index < abilities.Abilities.Length; index++) { Ability ability = abilities.Abilities[index]; if (ability.IsNormal) { if ((ability.Attributes.Formula.Value != 2) && (ability.Attributes.InflictStatus < inflictStatuses.InflictStatuses.Length)) { inflictStatuses.InflictStatuses[ability.Attributes.InflictStatus].ReferencingAbilityIDs.Add(index); } } } }
public void UpdateView(PatcherLib.Datatypes.Context context) { ignoreChanges = true; SuspendLayout(); flagsCheckedListBox.SuspendLayout(); inflictStatusesEditor.SuspendLayout(); ourContext = context; if (status.Default != null) { flagsCheckedListBox.SetValuesAndDefaults(ReflectionHelpers.GetFieldsOrProperties <bool>(status, flags), status.Default.ToBoolArray()); } if (status.IsInUse) { btnRepoint.Enabled = true; spinner_Repoint.Enabled = true; } else { btnRepoint.Enabled = false; spinner_Repoint.Enabled = false; } if (status.IsDuplicate) { spinner_Repoint.Value = status.DuplicateIndex; } else { spinner_Repoint.Value = status.Index; btnRepoint.Enabled = false; } spinner_Repoint.Maximum = 0x7f; int abilityReferenceCount = status.ReferencingAbilityIDs.Count; bool isAbilityUsagePanelVisible = (abilityReferenceCount > 0); pnl_AbilityUsage.Visible = isAbilityUsagePanelVisible; if (isAbilityUsagePanelVisible) { lbl_AbilityUsage_2.Text = abilityReferenceCount.ToString(); lbl_AbilityUsage_3.Text = (abilityReferenceCount == 0) ? "abilities" : ((abilityReferenceCount == 1) ? "ability: " : "abilities, e.g. "); int abilityIndex = GetFirstReferencingAbilityIndex(); lbl_AbilityUsage_4.Text = String.Format("{0:X2} {1}", abilityIndex, AllAbilities.GetNames(context)[abilityIndex]); } int itemReferenceCount = status.ReferencingItemIndexes.Count; bool isItemUsagePanelVisible = (itemReferenceCount > 0); pnl_ItemUsage.Visible = isItemUsagePanelVisible; if (isItemUsagePanelVisible) { lbl_ItemUsage_2.Text = itemReferenceCount.ToString(); lbl_ItemUsage_3.Text = (itemReferenceCount == 0) ? "items" : ((itemReferenceCount == 1) ? "item: " : "items, e.g. "); int itemIndex = GetFirstReferencingItemIndex(); int itemID = (itemIndex > 0xFD) ? (itemIndex + 2) : itemIndex; lbl_ItemUsage_4.Text = String.Format("{0:X2} {1}", itemID, Item.GetItemNames(context)[itemID]); } //inflictStatusesEditor.Statuses = status.Statuses; inflictStatusesEditor.SetStatuses(status.Statuses, context); inflictStatusesEditor.UpdateView(context); inflictStatusesEditor.ResumeLayout(); flagsCheckedListBox.ResumeLayout(); ResumeLayout(); ignoreChanges = false; }