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);
    }
Example #3
0
 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;
 }
Example #4
0
    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(); });
        }
    }
Example #5
0
        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();
        }
Example #6
0
        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();
        }
Example #9
0
        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));
        }
Example #10
0
        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();
        }
Example #11
0
        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();
            }
        }
Example #12
0
        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);
                    }
                }
            }
        }
Example #13
0
        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;
        }