Пример #1
0
        public ItemForm()
        {
            InitializeComponent();

            this.AddressList.OwnerDraw(ListBoxEx.DrawItemAndText, DrawMode.OwnerDrawFixed);

            if (PatchUtil.SearchClassType() == PatchUtil.class_type_enum.SkillSystems_Rework)
            {//SkillSystemsによる 特効リワーク
                this.CLASS_LISTBOX.OwnerDraw(ListBoxEx.DrawClassTypeAndText, DrawMode.OwnerDrawFixed);
            }
            else
            {
                this.CLASS_LISTBOX.OwnerDraw(ListBoxEx.DrawClassAndText, DrawMode.OwnerDrawFixed);
                this.CLASS_LISTBOX.ItemListToJumpForm("CLASS");
            }


            this.InputFormRef = Init(this);
            this.InputFormRef.UseWriteProtectionID00 = true; //ID:0x00を書き込み禁止
            this.InputFormRef.MakeGeneralAddressListContextMenu(true);

            InputFormRef.LoadComboResource(L_30_COMBO, U.ConfigDataFilename("item_staff_use_effect_"));
            InputFormRef.LoadComboResource(L_31_COMBO, U.ConfigDataFilename("item_weapon_effect_"));

            InputFormRef.markupJumpLabel(JumpToITEMEFFECT);
        }
Пример #2
0
        //全データの取得
        public static void MakeAllDataLength(List <Address> list)
        {
            {
                InputFormRef InputFormRef = Init(null);
                FEBuilderGBA.Address.AddAddress(list, InputFormRef, "Item", new uint[] { 12, 16 });

                //SkillSystemsによる 特効リワーク
                PatchUtil.class_type_enum effectivenesRework = PatchUtil.SearchClassType();
                //grows mod
                PatchUtil.growth_mod_enum growthmod = PatchUtil.SearchGrowsMod();

                uint addr = InputFormRef.BaseAddress;
                for (int i = 0; i < InputFormRef.DataCount; i++, addr += InputFormRef.BlockSize)
                {
                    uint itemStatBonuses = Program.ROM.p32(addr + 12);
                    if (itemStatBonuses > 0)
                    {
                        uint vennoExtends    = Program.ROM.u8(addr + 34);
                        uint statBonusesSize = 12; //バニラは12バイト
                        if (growthmod == PatchUtil.growth_mod_enum.Vennou && vennoExtends == 1)
                        {
                            statBonusesSize = 16; //vennou拡張は16バイト
                        }
                        else if (growthmod == PatchUtil.growth_mod_enum.SkillSystems && vennoExtends == 1)
                        {
                            statBonusesSize = 20; //SkillSystemsは20バイト
                        }

                        FEBuilderGBA.Address.AddAddress(list, itemStatBonuses
                                                        , statBonusesSize
                                                        , addr + 12
                                                        , "StatBooster " + U.To0xHexString(i)
                                                        , FEBuilderGBA.Address.DataTypeEnum.BIN);
                    }

                    uint itemEffectiveness = Program.ROM.p32(addr + 16);
                    if (itemEffectiveness > 0)
                    {
                        if (effectivenesRework == FEBuilderGBA.PatchUtil.class_type_enum.SkillSystems_Rework)
                        {
                            List <U.AddrResult> arlist = ItemEffectivenessSkillSystemsReworkForm.MakeCriticalClassList((uint)itemEffectiveness);
                            FEBuilderGBA.Address.AddAddress(list, itemEffectiveness
                                                            , (uint)(arlist.Count + 1) * 4
                                                            , addr + 16
                                                            , "ItemEffectiveness " + U.To0xHexString(i)
                                                            , FEBuilderGBA.Address.DataTypeEnum.BIN);
                        }
                        else
                        {
                            List <U.AddrResult> arlist = ItemEffectivenessForm.MakeCriticalClassList((uint)itemEffectiveness);
                            FEBuilderGBA.Address.AddAddress(list, itemEffectiveness
                                                            , (uint)(arlist.Count + 1)
                                                            , addr + 16
                                                            , "ItemEffectiveness " + U.To0xHexString(i)
                                                            , FEBuilderGBA.Address.DataTypeEnum.BIN);
                        }
                    }
                }
            }
        }
Пример #3
0
 void InitFE8ClassType(List <Control> controls)
 {
     //SkillSystemsによる 特効リワーク
     if (PatchUtil.SearchClassType() == PatchUtil.class_type_enum.SkillSystems_Rework)
     {
         J_80.Text = R._("ClassType");
         InputFormRef.makeJumpEventHandler(D80, J_80, "CLASSTYPE", new string[] { });
         InputFormRef.makeLinkEventHandler("", controls, D80, X_CLASSTYPE, 80, "CLASSTYPE", new string[] { });
         X_CLASSTYPE.Show();
     }
 }
Пример #4
0
 private void ItemCriticalButton_Click(object sender, EventArgs e)
 {
     if (PatchUtil.SearchClassType() == PatchUtil.class_type_enum.SkillSystems_Rework)
     {//SkillSystemsによる 特効リワーク
         InputFormRef.JumpForm <ItemEffectivenessSkillSystemsReworkForm>();
     }
     else
     {
         InputFormRef.JumpForm <ItemEffectivenessForm>();
     }
 }
Пример #5
0
        public ItemForm()
        {
            InitializeComponent();

            this.AddressList.OwnerDraw(ListBoxEx.DrawItemAndText, DrawMode.OwnerDrawFixed);

            if (PatchUtil.SearchClassType() == PatchUtil.class_type_enum.SkillSystems_Rework)
            {//SkillSystemsによる 特効リワーク
                this.CLASS_LISTBOX.OwnerDraw(ListBoxEx.DrawClassTypeAndText, DrawMode.OwnerDrawFixed);
            }
            else
            {
                this.CLASS_LISTBOX.OwnerDraw(ListBoxEx.DrawClassAndText, DrawMode.OwnerDrawFixed);
                this.CLASS_LISTBOX.ItemListToJumpForm("CLASS");
            }

            PatchUtil.ItemUsingExtends itemUsingExtends = PatchUtil.ItemUsingExtendsPatch();
            if (itemUsingExtends == PatchUtil.ItemUsingExtends.IER)
            {
                J_34.Text = "IER Byte";
                J_34.AccessibleDescription = R._("IERによって参照される値です。\r\nアイテムに応じて役割が変わります。");
                X_34_Info.Show();
            }
            else
            {
                //growth mod
                PatchUtil.growth_mod_enum growthmod = PatchUtil.SearchGrowsMod();
                if (growthmod == PatchUtil.growth_mod_enum.SkillSystems ||
                    growthmod == PatchUtil.growth_mod_enum.Vennou)
                {
                    J_34.Text = "Growth_Mod";
                    J_34.AccessibleDescription = "この拡張は、通常のstatboosterよりも大きいデータを必要とします。\r\nこの拡張フラグを1に設定した後で、statbooster領域を確保してください。\r\n既に確保している場合は、statboosterアドレスを0に設定して再確保してください。";
                }
            }

            if (PatchUtil.SearchSkillSystem() == PatchUtil.skill_system_enum.SkillSystem)
            {
                J_33.Text = "Debuff";
                J_34.AccessibleDescription = "SkillSystemsのDebuffsの値を設定します。\r\n0の場合はDebuffsはありません。\r\n1以降の場合、利用したいDebuffsTableの値を設定します。\r\nDebuffsTableの値はPatchから設定可能です。";
                InputFormRef.markupJumpLabel(J_33);
            }

            this.InputFormRef = Init(this);
            this.InputFormRef.UseWriteProtectionID00 = true; //ID:0x00を書き込み禁止
            this.InputFormRef.MakeGeneralAddressListContextMenu(true);

            InputFormRef.LoadComboResource(L_30_COMBO, g_item_staff_use_effect_List);
            InputFormRef.LoadComboResource(L_31_COMBO, g_item_weapon_effect_List);

            InputFormRef.markupJumpLabel(JumpToITEMEFFECT);
            InputFormRef.markupJumpLabel(HardCodingWarningLabel);
        }
Пример #6
0
        private void AddressList_SelectedIndexChanged(object sender, EventArgs e)
        {
            U.ForceUpdate(X_SIM, GrowSimulator.ClassMaxLevel((uint)this.AddressList.SelectedIndex));

            X_SIM_ValueChanged(null, null);
            SkillUtil.MakeClassSkillButtons(X_SkillType, (uint)this.AddressList.SelectedIndex, this.X_SkillButtons, this.X_Tooltip);

            //SkillSystemsによる 特効リワーク
            if (PatchUtil.SearchClassType() == PatchUtil.class_type_enum.SkillSystems_Rework)
            {
                X_CLASSTYPE.Text = ClassForm.GetClassType((uint)this.D80.Value);
            }
        }
Пример #7
0
 private void P16_ValueChanged(object sender, EventArgs e)
 {
     if (PatchUtil.SearchClassType() == PatchUtil.class_type_enum.SkillSystems_Rework)
     {//SkillSystemsによる 特効リワーク
         List <U.AddrResult> arlist = ItemEffectivenessSkillSystemsReworkForm.MakeCriticalClassList((uint)P16.Value);
         U.ConvertListBox(arlist, ref CLASS_LISTBOX);
     }
     else
     {
         List <U.AddrResult> arlist = ItemEffectivenessForm.MakeCriticalClassList((uint)P16.Value);
         U.ConvertListBox(arlist, ref CLASS_LISTBOX);
     }
 }