Ejemplo n.º 1
0
            public override bool Inputs_OKAY()
            {
                base.Inputs_OKAY();
                switch ((Items)CURSOR_SELECT)
                {
                case Items.Junction:
                case Items.Magic:
                case Items.Status:
                    IGM.SetMode(Mode.ChooseChar);
                    return(true);

                case Items.Item:
                    Module_main_menu_debug.State = Module_main_menu_debug.MainMenuStates.IGM_Items;
                    IGM_Items.Refresh();
                    return(true);

                case Items.Battle:
                    BattleMenus.CameFrom();
                    //Module_main_menu_debug.State = Module_main_menu_debug.MainMenuStates.BattleMenu;
                    Memory.module = MODULE.BATTLE_DEBUG;
                    BattleMenus.Refresh();
                    FadeIn();
                    return(true);
                }
                return(false);
            }
Ejemplo n.º 2
0
        public override bool SetMode(Enum mode)
        {
            if (mode.GetType() == typeof(Mode))
            {
                switch ((Mode)mode)
                {
                case Mode.AP:
                    Data[Mode.Exp].Hide();
                    Data[Mode.Items].Hide();
                    Data[Mode.AP].Show();
                    Data[Mode.AP].Refresh();
                    break;

                case Mode.Exp:
                    Data[Mode.Exp].Show();
                    Data[Mode.Items].Hide();
                    Data[Mode.AP].Hide();
                    Data[Mode.Exp].Refresh();
                    break;

                case Mode.Items:
                    Data[Mode.Exp].Hide();
                    Data[Mode.Items].Show();
                    Data[Mode.AP].Hide();
                    Data[Mode.Items].Refresh();
                    break;

                default:
                    BattleMenus.ReturnTo();
                    break;
                }
                return(base.SetMode((Mode)mode));
            }
            return(false);
        }
Ejemplo n.º 3
0
 private bool Command06_DRAW()
 {
     Neededvaribles(out IGMData_TargetEnemies i, out Enemy e, out Characters vc, out Characters fromvc, out bool enemytarget);
     //draw
     //spawn a 1 page 4 row pool of the magic/gfs that the selected enemy has.
     BattleMenus.DrawMagic(e.DrawList);
     return(true);
 }
Ejemplo n.º 4
0
            public override bool Inputs_OKAY()
            {
                base.Inputs_OKAY();
                // ReSharper disable once SwitchStatementHandlesSomeKnownEnumValuesWithDefault
                switch ((Items)CURSOR_SELECT)
                {
                case Items.Junction:
                case Items.Magic:
                case Items.Status:
                    IGM.SetMode(Mode.ChooseChar);
                    return(true);

                case Items.Item:
                    Menu.Module.State = MenuModule.Mode.IGM_Items;
                    IGMItems.Refresh();
                    return(true);

                case Items.Battle:
                    BattleMenus.CameFrom();
                    //Menu.Module.State = MenuModule.MainMenuStates.BattleMenu;
                    ModuleBattleDebug.ResetState();
                    Memory.Module = OpenVIII.Module.BattleDebug;
                    BattleMenus.Refresh();
                    FadeIn();
                    return(true);

                case Items.GF:
                    break;

                case Items.Ability:
                    break;

                case Items.Switch:
                    break;

                case Items.Card:
                    break;

                case Items.Config:
                    break;

                case Items.Tutorial:
                    break;

                case Items.Save:
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
                return(false);
            }
Ejemplo n.º 5
0
            protected override void Init()
            {
                if (CommandFunc == null)
                {
                    CommandFunc = new Dictionary <int, Func <bool> >
                    {
                        //{0,Command00 },
                        { 1, Command01_ATTACK },
                        { 2, Command02_MAGIC },
                        //{3,Command03_GF },
                        { 4, Command04_ITEM },
                        { 5, Command05_RENZOKUKEN },
                        { 6, Command06_DRAW },
                        { 7, Command07_DEVOUR },
                        //{8,Command08_UNNAMED },
                        //{9,Command09_CAST },
                        //{10,Command10_STOCK },
                        { 11, Command11_DUEL },
                        { 12, Command12_MUG },
                        //{13,Command13_NOMSG },
                        { 14, Command14_SHOT },
                        { 15, Command15_BLUE_MAGIC },
                        //{16,Command16_SLOT },
                        { 17, Command17_FIRE_CROSS_NO_MERCY },
                        { 18, Command18_SORCERY_ICE_STRIKE },
                        { 19, Command19_COMBINE },
                        { 20, Command20_DESPERADO },
                        { 21, Command21_BLOOD_PAIN },
                        { 22, Command22_MASSIVE_ANCHOR },
                        //{23,Command23_DEFEND },
                        { 24, Command24_MADRUSH },
                        { 25, Command25_TREATMENT },
                        { 26, Command26_RECOVERY },
                        { 27, Command27_REVIVE },
                        { 28, Command28_DARKSIDE },
                        { 29, Command29_CARD },
                        { 30, Command30_DOOM },
                        { 31, Command31_KAMIKAZI },
                        { 32, Command32_ABSORB },
                        { 33, Command33_LVL_DOWN },
                        { 34, Command34_LVL_UP },
                        { 35, Command35_SINGLE },
                        { 36, Command36_DOUBLE },
                        { 37, Command37_TRIPLE },
                        { 38, Command38_MINIMOG },
                    }
                }
                ;
                base.Init();

                //bool Command00() => throw new NotImplementedException();

                bool Command01_ATTACK()
                {
                    Neededvaribles(out Damageable[] d, out Characters fromvc);
                    Damageable.EndTurn();
                    return(true);
                }

                bool Command02_MAGIC()
                {
                    Neededvaribles(out Damageable[] d, out Characters fromvc);
                    Debug.WriteLine($"{Memory.Strings.GetName(fromvc)} casts {Magic.Name}({Magic.ID}) spell on { DebugMessageSuffix(d) }");
                    Damageable.EndTurn();
                    return(true);
                }

                //bool Command03_GF() => throw new NotImplementedException();

                bool Command04_ITEM()
                {
                    Neededvaribles(out Damageable[] d, out Characters fromvc);
                    Debug.WriteLine($"{Memory.Strings.GetName(fromvc)} uses {Item.Name}({Item.ID}) item on { DebugMessageSuffix(d) }");
                    Damageable.EndTurn();
                    return(true);
                }

                bool Command05_RENZOKUKEN()
                {
                    Neededvaribles(out Damageable[] d, out Characters fromvc);
                    if (d.First().GetType() == typeof(Enemy))
                    {
                        //Renzokuken
                        byte w    = Memory.State[fromvc].WeaponID;
                        int  hits = 0;
                        if (Memory.State[fromvc].CurrentCrisisLevel > 0)
                        {
                            hits = Memory.State[fromvc].CurrentCrisisLevel < Renzokuken_hits.Length ? Renzokuken_hits[Memory.State[fromvc].CurrentCrisisLevel] : Renzokuken_hits.Last();
                        }
                        //else return false;
                        else
                        {
                            hits = Renzokuken_hits.First();
                        }
                        int  finisherchance = (Memory.State[fromvc].CurrentCrisisLevel + 1) * 60;
                        bool willfinish     = Memory.Random.Next(byte.MaxValue + 1) <= finisherchance;
                        int  choosefinish   = Memory.Random.Next(3 + 1);
                        Kernel_bin.Weapons_Data        wd = Kernel_bin.WeaponsData[w];
                        Kernel_bin.Renzokeken_Finisher r  = wd.Renzokuken;
                        if (r == 0)
                        {
                            willfinish = false;
                        }

                        //per wiki the chance of which finisher is 25% each and the highest value finisher get the remaining of 100 percent.
                        //so rough divide is 100% when you only only have that
                        //when you unlock 2 one is 75% chance
                        //when you onlock 3 last one is 50%
                        //when you unlock all 4 it's 25% each.

                        //finishers each have their own target
                        BattleMenus.GetCurrentBattleMenu().Renzokeken.Reset(hits);
                        BattleMenus.GetCurrentBattleMenu().Renzokeken.Show();
                        if (willfinish)
                        {
                            List <Kernel_bin.Renzokeken_Finisher> flags = Enum.GetValues(typeof(Kernel_bin.Renzokeken_Finisher))
                                                                          .Cast <Kernel_bin.Renzokeken_Finisher>()
                                                                          .Where(f => (f & r) != 0)
                                                                          .ToList();
                            Kernel_bin.Renzokeken_Finisher finisher = choosefinish >= flags.Count ? flags.Last() : flags[choosefinish];
                            Debug.WriteLine($"{Memory.Strings.GetName(fromvc)} hits {hits} times with {Command.Name}({Command.ID}) then uses {Kernel_bin.RenzokukenFinishersData[finisher].Name}.");
                        }
                        else
                        {
                            Debug.WriteLine($"{Memory.Strings.GetName(fromvc)} hits {hits} times with {Command.Name}({Command.ID}) then fails to use a finisher.");
                        }
                    }
                    return(true);
                }

                bool Command06_DRAW()
                {
                    Neededvaribles(out Damageable[] d, out Characters fromvc);
                    //draw
                    //spawn a 1 page 4 row pool of the magic/gfs that the selected enemy has.
                    if (d.First().GetType() == typeof(Enemy))
                    {
                        var e = (Enemy)d.First();
                        DrawMagic(e.DrawList);
                        Draw_Pool.Refresh(e.DrawList);
                        Draw_Pool.Show();
                    }
                    return(true);
                }

                bool Command07_DEVOUR()
                {
                    Neededvaribles(out Damageable[] d, out Characters fromvc);
                    //TODO add devour commands
                    Debug.WriteLine($"{Memory.Strings.GetName(fromvc)} used {Command.Name}({Command.ID}) on { DebugMessageSuffix(d) }");
                    Damageable.EndTurn();

                    return(true);
                }

                //bool Command08_UNNAMED() => throw new NotImplementedException();

                //bool Command09_CAST() => throw new NotImplementedException();

                //bool Command10_STOCK() => throw new NotImplementedException();

                bool Command11_DUEL()
                {
                    Neededvaribles(out Damageable[] d, out Characters fromvc);

                    Debug.WriteLine($"{Memory.Strings.GetName(fromvc)} used {Command.Name}({Command.ID}) on { DebugMessageSuffix(d) }");
                    Damageable.EndTurn();

                    return(true);
                }

                bool Command12_MUG()
                {
                    Neededvaribles(out Damageable[] d, out Characters fromvc);
                    if (d.First().GetType() == typeof(Enemy))
                    {
                        var e = (Enemy)d.First();
                        //unsure if party member being ejected or if they need to be in the party for rare item to work
                        Saves.Item i = e.Mug(Memory.State[fromvc].SPD, Memory.State.PartyHasAbility(Kernel_bin.Abilities.RareItem));
                        Debug.WriteLine($"{Memory.Strings.GetName(fromvc)} stole {i.DATA?.Name}({i.ID}) x {i.QTY} from { DebugMessageSuffix(d) }");
                    }
                    Damageable.EndTurn();
                    return(true);
                }

                //bool Command13_NOMSG() => throw new NotImplementedException();

                bool Command14_SHOT()
                {
                    Neededvaribles(out Damageable[] d, out Characters fromvc);

                    Debug.WriteLine($"{Memory.Strings.GetName(fromvc)} used {Command.Name}({Command.ID}) on { DebugMessageSuffix(d) }");
                    Damageable.EndTurn();

                    return(true);
                }

                bool Command15_BLUE_MAGIC()
                {
                    Neededvaribles(out Damageable[] d, out Characters fromvc);
                    Debug.WriteLine($"{Memory.Strings.GetName(fromvc)} casts {BlueMagic.Name}({BlueMagic.ID}) spell on { DebugMessageSuffix(d) }");
                    Damageable.EndTurn();
                    return(false);
                }

                //bool Command16_SLOT() => throw new NotImplementedException();

                bool Command17_FIRE_CROSS_NO_MERCY()
                {
                    Neededvaribles(out Damageable[] d, out Characters fromvc);

                    Debug.WriteLine($"{Memory.Strings.GetName(fromvc)} used {Command.Name}({Command.ID}) on { DebugMessageSuffix(d) }");
                    Damageable.EndTurn();

                    return(true);
                }

                bool Command18_SORCERY_ICE_STRIKE()
                {
                    Neededvaribles(out Damageable[] d, out Characters fromvc);

                    Debug.WriteLine($"{Memory.Strings.GetName(fromvc)} used {Command.Name}({Command.ID}) on { DebugMessageSuffix(d) }");
                    Damageable.EndTurn();

                    return(true);
                }

                bool Command19_COMBINE()
                {
                    //perform angelo attack unless angel wing is unlocked and chosen in menu.
                    Neededvaribles(out Damageable[] d, out Characters fromvc);

                    Debug.WriteLine($"{Memory.Strings.GetName(fromvc)} used {Command.Name}({Command.ID}) on { DebugMessageSuffix(d) }");
                    Damageable.EndTurn();

                    return(true);
                }

                bool Command20_DESPERADO()
                {
                    Neededvaribles(out Damageable[] d, out Characters fromvc);

                    Debug.WriteLine($"{Memory.Strings.GetName(fromvc)} used {Command.Name}({Command.ID}) on { DebugMessageSuffix(d) }");
                    Damageable.EndTurn();

                    return(true);
                }

                bool Command21_BLOOD_PAIN()
                {
                    Neededvaribles(out Damageable[] d, out Characters fromvc);

                    Debug.WriteLine($"{Memory.Strings.GetName(fromvc)} used {Command.Name}({Command.ID}) on { DebugMessageSuffix(d) }");
                    Damageable.EndTurn();

                    return(true);
                }

                bool Command22_MASSIVE_ANCHOR()
                {
                    Neededvaribles(out Damageable[] d, out Characters fromvc);

                    Debug.WriteLine($"{Memory.Strings.GetName(fromvc)} used {Command.Name}({Command.ID}) on { DebugMessageSuffix(d) }");
                    Damageable.EndTurn();

                    return(true);
                }

                //bool Command23_DEFEND() => throw new NotImplementedException();

                bool Command24_MADRUSH()
                {
                    Neededvaribles(out Damageable[] d, out Characters fromvc);

                    Debug.WriteLine($"{Memory.Strings.GetName(fromvc)} used {Command.Name}({Command.ID}) on { DebugMessageSuffix(d) }");
                    Damageable.EndTurn();

                    return(true);
                }

                bool Command25_TREATMENT()
                {
                    Neededvaribles(out Damageable[] d, out Characters fromvc);

                    Debug.WriteLine($"{Memory.Strings.GetName(fromvc)} used {Command.Name}({Command.ID}) on { DebugMessageSuffix(d) }");
                    Damageable.EndTurn();

                    return(true);
                }

                bool Command26_RECOVERY()
                {
                    Neededvaribles(out Damageable[] d, out Characters fromvc);

                    Debug.WriteLine($"{Memory.Strings.GetName(fromvc)} used {Command.Name}({Command.ID}) on { DebugMessageSuffix(d) }");
                    Damageable.EndTurn();

                    return(true);
                }

                bool Command27_REVIVE()
                {
                    Neededvaribles(out Damageable[] d, out Characters fromvc);

                    Debug.WriteLine($"{Memory.Strings.GetName(fromvc)} used {Command.Name}({Command.ID}) on { DebugMessageSuffix(d) }");
                    Damageable.EndTurn();

                    return(true);
                }

                bool Command28_DARKSIDE()
                {
                    Neededvaribles(out Damageable[] d, out Characters fromvc);
                    Damageable.EndTurn();
                    return(true);
                }

                bool Command29_CARD()
                {
                    Neededvaribles(out Damageable[] d, out Characters fromvc);
                    if (d.First().GetType() == typeof(Enemy))
                    {
                        var      e = (Enemy)d.First();
                        Cards.ID c = e.Card();
                        if (c == Cards.ID.Fail)
                        {
                            Debug.WriteLine($"{Memory.Strings.GetName(fromvc)} Failed to use {Command.Name}({Command.ID}) on { DebugMessageSuffix(d) }");
                        }
                        else if (c == Cards.ID.Immune)
                        {
                            Debug.WriteLine($"{Memory.Strings.GetName(fromvc)} Failed to use {Command.Name}({Command.ID}) on { DebugMessageSuffix(d) } because they are immune!");
                        }
                        else
                        {
                            Debug.WriteLine($"{Memory.Strings.GetName(fromvc)} used {Command.Name}({Command.ID}) on { DebugMessageSuffix(d) } and got a {c} card");
                        }
                        Damageable.EndTurn();
                    }
                    return(true);
                }

                bool Command30_DOOM()
                {
                    Neededvaribles(out Damageable[] d, out Characters fromvc);
                    Damageable.EndTurn();
                    return(true);
                }

                bool Command31_KAMIKAZI()
                {
                    Neededvaribles(out Damageable[] d, out Characters fromvc);

                    Debug.WriteLine($"{Memory.Strings.GetName(fromvc)} used {Command.Name}({Command.ID}) on { DebugMessageSuffix(d) }");
                    Damageable.EndTurn();

                    return(true);
                }

                bool Command32_ABSORB()
                {
                    Neededvaribles(out Damageable[] d, out Characters fromvc);

                    Debug.WriteLine($"{Memory.Strings.GetName(fromvc)} used {Command.Name}({Command.ID}) on { DebugMessageSuffix(d) }");
                    Damageable.EndTurn();

                    return(true);
                }

                bool Command33_LVL_DOWN()
                {
                    Neededvaribles(out Damageable[] d, out Characters fromvc);

                    Debug.WriteLine($"{Memory.Strings.GetName(fromvc)} used {Command.Name}({Command.ID}) on { DebugMessageSuffix(d) }");
                    Damageable.EndTurn();

                    return(true);
                }

                bool Command34_LVL_UP()
                {
                    Neededvaribles(out Damageable[] d, out Characters fromvc);

                    Debug.WriteLine($"{Memory.Strings.GetName(fromvc)} used {Command.Name}({Command.ID}) on { DebugMessageSuffix(d) }");
                    Damageable.EndTurn();

                    return(true);
                }

                bool Command35_SINGLE() => Command02_MAGIC();

                bool Command36_DOUBLE()
                {
                    // CHOOSE 2X TARGETS
                    throw new NotImplementedException();
                }

                bool Command37_TRIPLE()
                {
                    // CHOOSE 3X TARGETS
                    throw new NotImplementedException();
                }

                bool Command38_MINIMOG()
                {
                    Neededvaribles(out Damageable[] d, out Characters fromvc);

                    Debug.WriteLine($"{Memory.Strings.GetName(fromvc)} used {Command.Name}({Command.ID}) on { DebugMessageSuffix(d) }");
                    Damageable.EndTurn();

                    return(true);
                }
            }