Пример #1
0
        public void onInteract()
        {
            Character player1   = SceneManager.getInstance.getPlayer1();
            Vector2   playerPos = player1.Properties.getProperty <Vector2>("Position");

            SceneManager.getInstance.getMenuManager().setCurrentClickedButton(Name);
            string currentClickedButton = SceneManager.getInstance.getMenuManager().getCurrentClickedButton();

            AudioManager.getInstance.playSound(new Sound("Mainmenu click"), AudioManager.MAINMENU_CLICK);

            if (Name == "Start")
            {
                //Load level 1
                SceneManager.getInstance.loadLevel(ResourceManager.getInstance.getLevels()[0]);
                SceneManager.getInstance.setGameState(GameState.IN_GAME);
            }
            else if (Name == "Quit")
            {
                Renderer.getInstance.getGame().Exit();
            }
            else if (Name == "Highscores")
            {
            }
            else if (Name == "Options")
            {
            }
            else if (Name == "Map1")
            {
                SceneManager.getInstance.getMenuManager().findIndex("Map1Menu");
            }
            else if (Name == "StartGame")
            {
                //Load level 1
                SceneManager.getInstance.loadLevel(ResourceManager.getInstance.getLevels()[0]);
                SceneManager.getInstance.setGameState(GameState.IN_GAME);
            }
            else if (Name == "Continue")
            {
                SceneManager.getInstance.setGameState(GameState.IN_GAME);
            }
            else if (Name == "MainMenu")
            {
                SceneManager.getInstance.setGameState(GameState.IN_STARTMENU);
                SceneManager.getInstance.getMenuManager().findIndex("StartMenu");

                AudioManager.getInstance.stopSound(new Sound("Level 1 ingame"));
                AudioManager.getInstance.playSound(new Sound("Menu Music"), AudioManager.MAINMENU);
            }
            else if (Name == "StartMissions")
            {
                SceneManager.getInstance.setGameState(GameState.IN_GAME);

                SceneManager.getInstance.getFontManager().addFont(
                    new Font(EFontType.STATIC, 9, "FontQuestGained",
                             ResourceManager.getInstance.Font1, "New quest gained",
                             new Vector2(playerPos.X - 355, playerPos.Y + 240), Color.White, 2));

                LevelHandler.getInstance.startMissions();

                AudioManager.getInstance.playSound(new Sound("Convers end"), AudioManager.CONVERS_END);
                AudioManager.getInstance.playSound(new Sound("Quest gained"), AudioManager.QUEST_GAINED);
            }
            else if (Name == "LabMenuBack_Main")
            {
                SceneManager.getInstance.setGameState(GameState.IN_GAME);

                AudioManager.getInstance.stopSound(new Sound("Lab sounds"));
            }
            else if (Name == "BuyTechnologies")
            {
                SceneManager.getInstance.getMenuManager().findIndex("TechLabMenu");
            }
            else if (Name == "ShowInventory")
            {
                //SceneManager.getInstance.getMenuManager().findIndex("InventoryLabMenu");
            }
            else if (Name == "LabMenuBack_Tech")
            {
                SceneManager.getInstance.getMenuManager().findIndex("MainLabMenu");
            }
            else if (Name == "ItemBlock_FantasyTool")
            {
                SceneManager.getInstance.getMenuManager().setCurrentSelectedTechnology(Name);
            }
            else if (Name == "BuyTech") // && currentClickedButton == "ItemBlock" && nok ressurser
            {
                ResourceItem resource            = SceneManager.getInstance.getPlayer1().getInventory().getResources();
                string       currentSelectedTech = SceneManager.getInstance.getMenuManager().getCurrentSelectedTechnology();
                int          screws  = resource.getScrews();
                int          oilCans = resource.getOilCans();
                int          cement  = resource.getCement();
                Console.WriteLine(currentSelectedTech);
                //screws >= 8 && oilCans >= 6 && cement >= 8
                if (currentSelectedTech == "ItemBlock_FantasyTool" && screws >= 8 && oilCans >= 6 && cement >= 8) //&& enough resources for this technology
                // if (currentSelectedTech == "ItemBlock_FantasyTool" && screws >= 0 && oilCans >= 0 && cement >= 0) //&& enough resources for this technology
                {
                    Console.WriteLine("You bought the: " + currentSelectedTech);

                    MenuButton button = null;
                    int        index  = -1;

                    if (currentSelectedTech == "ItemBlock_FantasyTool")
                    {
                        button = SceneManager.getInstance.getMenuManager().getButtonByName("FantasyTool");
                        index  = SceneManager.getInstance.getMenuManager().getButtonIndexByName("ItemBlock_FantasyTool");

                        SceneManager.getInstance.getPlayer1().setFantasyTool(true);

                        if (AudioManager.getInstance.isStopped(new Sound("Buy tech")))
                        {
                            AudioManager.getInstance.playSound(new Sound("Buy tech"), AudioManager.BUY_TECH);
                        }

                        foreach (KeyValuePair <string, Texture2D> texture in ResourceManager.getInstance.getRuntimeTextures())
                        {
                            if (texture.Key == "HudFantasyTool")
                            {
                                SceneManager.getInstance.getHudManager().getInventoryHud().insertItem(new ItemHud(EItemType.TREEGUN, texture.Value, new Vector2(), 0.0f,
                                                                                                                  new Vector2(texture.Value.Width / 2, texture.Value.Height / 2), new Vector2(1, 1)), 1, ESlotType.MAIN);
                            }
                        }

                        foreach (KeyValuePair <string, Texture2D> texture in ResourceManager.getInstance.getRuntimeTextures())
                        {
                            if (texture.Key == "HudScrew")
                            {
                                SceneManager.getInstance.getHudManager().getInventoryHud().removeItem(new ItemHud(EItemType.SCREW, texture.Value, new Vector2(), 0.0f,
                                                                                                                  new Vector2(texture.Value.Width / 2, texture.Value.Height / 2), new Vector2(1, 1)), 8);
                            }
                        }
                        foreach (KeyValuePair <string, Texture2D> texture in ResourceManager.getInstance.getRuntimeTextures())
                        {
                            if (texture.Key == "HudOilCan")
                            {
                                SceneManager.getInstance.getHudManager().getInventoryHud().removeItem(new ItemHud(EItemType.OILCAN, texture.Value, new Vector2(), 0.0f,
                                                                                                                  new Vector2(texture.Value.Width / 2, texture.Value.Height / 2), new Vector2(1, 1)), 6);
                            }
                        }
                        foreach (KeyValuePair <string, Texture2D> texture in ResourceManager.getInstance.getRuntimeTextures())
                        {
                            if (texture.Key == "HudCement")
                            {
                                SceneManager.getInstance.getHudManager().getInventoryHud().removeItem(new ItemHud(EItemType.CEMENT, texture.Value, new Vector2(), 0.0f,
                                                                                                                  new Vector2(texture.Value.Width / 2, texture.Value.Height / 2), new Vector2(1, 1)), 8);
                            }
                        }

                        resource.decreaseResource("Screw", 8);
                        resource.decreaseResource("OilCan", 6);
                        resource.decreaseResource("Cement", 8);
                    }

                    if (button != null && index > -1)
                    {
                        Console.WriteLine(index);
                        Menu menu = SceneManager.getInstance.getMenuManager().getMenuByName("InventoryLabMenu");
                        menu.getMenuButtons().Add(button);
                    }
                }
            }
            else if (Name == "LabMenuBack_Inventory")
            {
                SceneManager.getInstance.getMenuManager().findIndex("MainLabMenu");
            }
            else if (Name == "ReturnToMenu")
            {
                SceneManager.getInstance.getMenuManager().findIndex("StartMenu");
            }
            else if (Name == "CurrentQuestsUnmarked")
            {
                SceneManager.getInstance.getPlayer1().setOpenCurrentQuests(true);
                SceneManager.getInstance.getPlayer1().setOpenFinishedQuests(false);

                foreach (KeyValuePair <string, Texture2D> texture in ResourceManager.getInstance.getRuntimeTextures())
                {
                    if (texture.Key == "CurrentQuestsMarked")
                    {
                        Properties.updateProperty <Texture2D>("Texture2D", texture.Value);
                        Name = texture.Key;
                    }
                }

                foreach (MenuButton button in SceneManager.getInstance.getHudManager().getQuestHud().getButtons())
                {
                    if (button.Name == "FinishedQuestsMarked")
                    {
                        foreach (KeyValuePair <string, Texture2D> texture in ResourceManager.getInstance.getRuntimeTextures())
                        {
                            if (texture.Key == "FinishedQuestsUnmarked")
                            {
                                button.Properties.updateProperty <Texture2D>("Texture2D", texture.Value);
                                button.Name = texture.Key;
                                break;
                            }
                        }
                        break;
                    }
                }
            }
            else if (Name == "FinishedQuestsUnmarked")
            {
                SceneManager.getInstance.getPlayer1().setOpenCurrentQuests(false);
                SceneManager.getInstance.getPlayer1().setOpenFinishedQuests(true);

                foreach (KeyValuePair <string, Texture2D> texture in ResourceManager.getInstance.getRuntimeTextures())
                {
                    if (texture.Key == "FinishedQuestsMarked")
                    {
                        Properties.updateProperty <Texture2D>("Texture2D", texture.Value);
                        Name = texture.Key;
                    }
                }

                foreach (MenuButton button in SceneManager.getInstance.getHudManager().getQuestHud().getButtons())
                {
                    if (button.Name == "CurrentQuestsMarked")
                    {
                        foreach (KeyValuePair <string, Texture2D> texture in ResourceManager.getInstance.getRuntimeTextures())
                        {
                            if (texture.Key == "CurrentQuestsUnmarked")
                            {
                                button.Properties.updateProperty <Texture2D>("Texture2D", texture.Value);
                                button.Name = texture.Key;
                                break;
                            }
                        }
                        break;
                    }
                }
            }
        }
Пример #2
0
 /*
  * Creates a new inventory with the specified things in the inventory
  * */
 public Inventory(ResourceItem resources)
 {
     this.resources = resources;
 }