void FixedUpdate()
 {
     if (_actionTimer != null)
     {
         _actionTimer.update();
     }
     else if (_initialized && !this.MenuBounds.Running)
     {
         if (next())
         {
             _currentMenu.HighlightNext();
             highlight();
         }
         else if (prev())
         {
             _currentMenu.HighlightPrev();
             highlight();
         }
         else if (MenuInput.Confirm)
         {
             Menu.Action action = _currentMenu.SelectCurrent();
             if (action.Type == Menu.ActionType.Custom)
             {
                 handleAction(this.ElementVisuals[_currentHighlight].HandleCustomAction(action));
             }
             else
             {
                 handleAction(action);
             }
         }
         else if (MenuInput.Cancel)
         {
             if (_pastMenuStack.Count > 0)
             {
                 configureForState(_pastMenuStack.Pop());
             }
             else
             {
                 handleAction(this.CancelAction);
             }
         }
         else if (_currentMenu.CurrentElementAllowsCycling())
         {
             if (cycleNext())
             {
                 cycleCurrent(1);
             }
             else if (cyclePrev())
             {
                 cycleCurrent(-1);
             }
         }
     }
 }
 private void cycleCurrent(int dir)
 {
     Menu.Action action = _currentMenu.SelectCurrent();
     if (action.Type == Menu.ActionType.Custom)
     {
         handleAction(this.ElementVisuals[_currentHighlight].HandleCustomAction(action, dir), dir);
     }
     else
     {
         handleAction(action, dir);
     }
 }
    private void handleAction(Menu.Action action, int dir = 1)
    {
        switch (action.Type)
        {
        default:
        case Menu.ActionType.None:
            break;

        case Menu.ActionType.OpenMenu:
            _pastMenuStack.Add(_currentMenu.Name);
            configureForState(action.Param);
            break;

        case Menu.ActionType.SceneTransition:
            this.Hide();
            _actionTimer   = new Timer(this.SceneTransitionDelay, false, true, onDelayedAction);
            _timerParam    = action.Param;
            _changingScene = true;

            LocalEventNotifier.Event e = new LocalEventNotifier.Event();
            e.Name = this.EndSceneEvent;
            GlobalEvents.Notifier.SendEvent(e);
            break;

        case Menu.ActionType.CloseMenuWithEvent:
            this.Hide();
            _actionTimer = new Timer(this.EventSendDelay, false, true, onDelayedAction);
            _timerParam  = action.Param;
            break;

        case Menu.ActionType.ChangeValue:
            OptionsValues.ChangeValue(action.Param, dir);
            refreshState();
            break;

        case Menu.ActionType.Reload:
            for (int i = 0; i < _pastMenuStack.Count; ++i)
            {
                menuByStateName(_pastMenuStack[i]).Reload();
            }
            _currentMenu.Reload();
            refreshState();
            break;
        }
    }
Esempio n. 4
0
 public abstract Menu.Action HandleCustomAction(Menu.Action action, int dir = 0);
Esempio n. 5
0
        public static void Updates()
        {
            bool end = false;

            while (!end)
            {
                Menu.Action nextact = Menu.GetNextAction();

                switch (nextact)
                {
                case Menu.Action.FIGHT:
                    //debut combat

                    Menu.Fight fight = Menu.GetFight();

                    Combat combat;
                    if (fight == Menu.Fight.WILD)
                    {
                        Trainer wild = new Trainer("Wild pokemon", 0);
                        wild.CatchAPokemon(_index.GetRandomPokemon());
                        combat = new Combat(Trainer, wild, true);
                    }
                    else
                    {
                        combat = new Combat(MyGame.Trainer, MyGame.Opponent, false);
                    }

                    //combatmusic();

                    bool isWon = combat.CombatLoop();

                    //fin combat et retour au menu
                    //music();
                    if (!isWon)
                    {
                        Console.WriteLine("{0} scurried to a pokemon center, \nprotecting the exhausted and fainted pokemon from further harm", Trainer.Name);
                        Trainer.Heal();
                    }
                    break;

                case Menu.Action.SHOP:
                    //storemusic();
                    Menu.Shop myshop = Menu.Getshop();

                    switch (myshop)
                    {
                    case Menu.Shop.SHOP:
                        Console.ReadLine();
                        // music();
                        break;

                    case Menu.Shop.POKECENTER:
                        _trainer.Heal();
                        Console.WriteLine("Your pokemons have been healed");
                        Console.ReadLine();
                        // music();
                        break;

                    case Menu.Shop.HOMEPAGE:
                        //music();
                        Menu.GetNextAction();
                        break;
                    }

                    break;

                case Menu.Action.SHOW:

                    Menu.Stat mystat = Menu.GetStat();
                    switch (mystat)
                    {
                    case Menu.Stat.MYPOKEMON:
                        _trainer.MyPokemon();
                        Console.ReadLine();
                        Menu.GetStat();
                        break;

                    case Menu.Stat.MYID:
                        _trainer.WhoAmI();
                        _trainer.Describe();
                        Console.ReadLine();
                        Menu.GetStat();

                        break;

                    case Menu.Stat.HOMEPAGE:
                        Menu.GetNextAction();
                        break;

                    default:
                        Menu.GetStat();
                        break;
                    }

                    break;

                case Menu.Action.OPTION:
                    Menu.Option nextoption = Menu.GetOption();
                    switch (nextoption)
                    {
                    case Menu.Option.QUIT:
                        end = true;
                        Console.WriteLine("goodbye my friend");
                        break;

                    case Menu.Option.PAUSE:
                        Console.Clear();
                        Console.WriteLine();
                        Console.WriteLine("                 ****************************************************************");
                        Console.WriteLine("                 *                                                              *");
                        Console.WriteLine("                 *                         *GAME PAUSED*                        *");
                        Console.WriteLine("                 *                                                              *");
                        Console.WriteLine("                 *                                                              *");
                        Console.WriteLine("                 ****************************************************************");
                        Console.WriteLine();
                        Console.WriteLine("                                                  <-/");
                        Console.ReadLine();

                        break;

                    case Menu.Option.RESTART:
                        Console.Clear();
                        Welcome();
                        Getmyfirstpokemon();
                        break;

                    case Menu.Option.HOMEPAGE:
                        Menu.GetNextAction();
                        break;

                    default:
                        Menu.GetOption();
                        break;
                    }

                    break;

                default:
                    Menu.GetNextAction();
                    break;
                }
            }
        }
 public override Menu.Action HandleCustomAction(Menu.Action action, int dir = 0)
 {
     return(new Menu.Action());
 }