public override bool HandleKeyPress(char choice)
        {
            if (menu.HandleKeyPress(choice))
            {
                return(true);
            }
            else if (choice == (char)32)
            {
                if (menu.GetCurrent() == NEW_GAME)
                {
                    GameController.Instance().SetRoom(RoomsRepository.Instance().Get("eliot_house"));
                    GameController.Instance().SetPlayer(new Point(3, 6));
                    GameController.Instance().SetDialog(new WakeUpDialog(0));

                    this.context.SetState(new PlayState());
                }
                else if (menu.GetCurrent() == LOAD_GAME)
                {
                    this.context.SetState(new LoadState(this));
                }
                else if (menu.GetCurrent() == END_GAME)
                {
                    Console.Clear();
                    Environment.Exit(0);
                }

                return(true);
            }

            return(false);
        }
 public static RoomsRepository Instance()
 {
     if (instance == null)
     {
         instance = new RoomsRepository();
     }
     return(instance);
 }
 public void Interact()
 {
     if (Open == true)
     {
         GameController.Instance().SetPlayer(new Point(27, 14));
         GameController.Instance().SetRoom(RoomsRepository.Instance().Get("servers"));
     }
     else
     {
         GameController.Instance().SetDialog(new ServersDoorDialog());
     }
 }
예제 #4
0
        public bool HandleKeyPress(char choice)
        {
            if (menu.HandleKeyPress(choice))
            {
                return(true);
            }
            else if (choice == ( char )32)
            {
                if (menu.GetCurrent() == LEAVE)
                {
                    GameController.Instance().SetDialog(null);
                }
                else if (menu.GetCurrent() == OPEN)
                {
                    state = 1;
                    CodesMenu();
                }
                else if (menu.GetCurrent() == CORRECT || menu.GetCurrent() == TRY_CARD)
                {
                    state = 3;
                    menu  = new Menu(new List <string>()
                    {
                        COME_IN, LEAVE
                    });

                    ServersDoor door = (ServersDoor)InteractablesRepository.Instance().Get("servers_door");
                    door.Open = true;
                }
                else if (menu.GetCurrent() == COME_IN)
                {
                    GameController.Instance().SetPlayer(new Point(27, 14));
                    GameController.Instance().SetRoom(RoomsRepository.Instance().Get("servers"));
                    GameController.Instance().SetDialog(null);
                }
                else if (menu.GetCurrent() == FAILED)
                {
                    GameController.Instance().GameOver();
                }
                else
                {
                    ServersDoor door = (ServersDoor)InteractablesRepository.Instance().Get("servers_door");
                    door.Throttle -= 1;

                    if (door.Throttle > 0)
                    {
                        state = 2;
                        CodesMenu();
                    }
                    else
                    {
                        menu = new Menu(new List <string>()
                        {
                            FAILED
                        });
                        state = 10;
                    }
                }

                return(true);
            }

            return(false);
        }
예제 #5
0
 public Door(string slug, Point pos)
 {
     destination = RoomsRepository.Instance().Get(slug);
     position    = pos;
 }
예제 #6
0
 public static void OnBackdoorPicklocked()
 {
     GameController.Instance().SetRoom(RoomsRepository.Instance().Get("corridor_i"));
     GameController.Instance().SetPlayer(new Point(0, 12));
     MainQuest.OnGetInSteelMountain();
 }
예제 #7
0
 public static void OnBillDestroyed()
 {
     GameController.Instance().SetRoom(RoomsRepository.Instance().Get("corridor_iii"));
     GameController.Instance().SetPlayer(new Point(15, 6));
     MainQuest.OnGetInSteelMountain();
 }
예제 #8
0
 public static void OnActionBegin()
 {
     GameController.Instance().SetRoom(RoomsRepository.Instance().Get("parking"));
     GameController.Instance().SetPlayer(new Point(7, 11));
     GameController.Instance().SetQuestMessage("Omów szczegóły planu z Mr. Robotem.");
 }
예제 #9
0
 public static void OnConeyIslandTransition()
 {
     GameController.Instance().SetRoom(RoomsRepository.Instance().Get("coney_island"));
     GameController.Instance().SetPlayer(new Point(3, 9));
     GameController.Instance().SetQuestMessage("Podejdź do zespołu, który stoi przy aucie.");
 }