コード例 #1
0
 public void UpdateView(AllInflictStatuses statuses)
 {
     offsetListBox.SelectedIndexChanged -= offsetListBox_SelectedIndexChanged;
     offsetListBox.DataSource            = statuses.InflictStatuses;
     offsetListBox.SelectedIndexChanged += offsetListBox_SelectedIndexChanged;
     offsetListBox.SelectedIndex         = 0;
     inflictStatusEditor.InflictStatus   = offsetListBox.SelectedItem as InflictStatus;
 }
コード例 #2
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);
                    }
                }
            }
        }
コード例 #3
0
 public void UpdateView(AllInflictStatuses statuses, PatcherLib.Datatypes.Context context)
 {
     ourContext = context;
     offsetListBox.SelectedIndexChanged -= offsetListBox_SelectedIndexChanged;
     offsetListBox.DataSource            = statuses.InflictStatuses;
     offsetListBox.SelectedIndexChanged += offsetListBox_SelectedIndexChanged;
     offsetListBox.SelectedIndex         = 0;
     PatchUtility.CheckDuplicates <InflictStatus>(statuses.InflictStatuses);
     offsetListBox.SetChangedColors <InflictStatus>();
     //inflictStatusEditor.InflictStatus = offsetListBox.SelectedItem as InflictStatus;
     inflictStatusEditor.SetInflictStatus(offsetListBox.SelectedItem as InflictStatus, context);
 }
コード例 #4
0
        public void UpdateView(AllItems items, AllStoreInventories storeInventories, AllInflictStatuses inflictStatuses, AllItemAttributes itemAttributes, Context context)
        {
            ourContext           = context;
            this.inflictStatuses = inflictStatuses;
            this.itemAttributes  = itemAttributes;

            itemListBox.SelectedIndexChanged -= itemListBox_SelectedIndexChanged;
            itemListBox.DataSource            = items.Items;
            itemListBox.SelectedIndexChanged += itemListBox_SelectedIndexChanged;
            itemListBox.SelectedIndex         = 0;
            itemEditor.BuildItemNameLists(context);
            itemEditor.StoreInventories = storeInventories;
            //itemEditor.Item = itemListBox.SelectedItem as Item;
            itemEditor.SetItem(itemListBox.SelectedItem as Item, context);
            itemListBox.SetChangedColors();
        }
コード例 #5
0
        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();
        }
コード例 #6
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();
            }
        }
コード例 #7
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();
        }