diff --git a/Crawler/Crawler.vcxproj b/Crawler/Crawler.vcxproj
index c957ffa2..b707914c 100644
--- a/Crawler/Crawler.vcxproj
+++ b/Crawler/Crawler.vcxproj
@@ -415,6 +415,7 @@
+
diff --git a/Crawler/Crawler.vcxproj.filters b/Crawler/Crawler.vcxproj.filters
index bd4a52f1..99f3878e 100644
--- a/Crawler/Crawler.vcxproj.filters
+++ b/Crawler/Crawler.vcxproj.filters
@@ -497,6 +497,9 @@
Configurations\Items
+
+ Documentation
+
diff --git a/Crawler/Crawler_System_Overview.txt b/Crawler/Crawler_System_Overview.txt
new file mode 100644
index 00000000..31277a57
--- /dev/null
+++ b/Crawler/Crawler_System_Overview.txt
@@ -0,0 +1,48 @@
+Systems:
+
+Game Loop:
+After Every Dungeon. you get set in the hub. In the hub there is an npc that brings you to the world Map.
+on The world map you can choose a stage.
+Could be a normal Stage or a Story Stage where you only encounter the story, maybe not even free movement there.
+(Will be marked as story and can be skipped, Maybe just some text to read like a book depending how much ressources we want to put into the story.)
+In a normal Dungeon you can leave by dieing, finishing the stage or leave it in the esc menu.
+Monster Kills in a Stage needs to be tracked. Exiting a Stage, independed what made you exit it, gives loot for killed monster. A finished stage gives a stage specific bonus.
+
+Gear:
+- Weapon and Armor Crafting
+- Weapon and Armor enhancing (+0-+10)
+- Armor Set Bonuses
+- Accessory dropps from bosses with randomized stats inside of a specific range (z.B. a ring that can roll between 10 and 20 Atk)
+- Stat max rolls of Accessorys should be displayed in a different color to showcase that its a max roll.
+- Legendary Modifiers on Accessorys in Post game (Depending on what modify it could be some baseline stuff like +MoveSPd or something that modifies a skill)
+- Consumabels (Hp Pots, Mp Pots, short duration buffs)
+ => Consumable Loadout needs to be set up before entering a dungeon.
+ => Amount of Consumables you can bring will be lower then the amount you can overall have.
+
+Chapter Specific Unlock
+- Every Story Chapter has 1 side boss that unlocks something new.
+- Chapter 1 in addition unlocks the Blacksmith after 1-2
+- Chapter 1 side boss unlocks an npc to craft consumables
+- Chapter 2 unlocks a Jeweler
+ => you can melt accesories to get ressources to "repair" your acceosries = you increase the stat rolls
+ => cant exceed max roll this way. Just a way to grind your way up if you are unlucky with stat rolls
+- Chapter 3 ??? (Maybe the Legendary Modifier mechanic from Post game gear will be used here instead if i dont find another idea i like)
+- Chapter 4 "Hero Soul Infusion" (Name may change later)
+ => Allows you to unlock a 4th skill from the other class that uses the same weapon type.
+ => Maybe locked behind a second boss fight where you fight a shadow of that class.
+ Would mean 6 additional boss fights though of which you only encounter one of them in a normal playthrough.
+ So that idea may gets dropped.
+ => Skill will be exchangeable at an NPC in Town.
+- Chapter 5 - Randomized arena
+ => You fight waves of enemies from all chapters.
+ => Each wave a buff stacks up that increases the strengt of the enemies.
+ => earn a special currency that allows you to buy small upgrades for specific biomes. (Buff is active outside of this endless survival arena aswell)
+ => there are 5 arenas of the biomes of the 5 chapters which randomly change (or stay the same) every 5 waves.
+ (Therefore you cant snipe a specific Biome where you got the biggest buffs for)
+
+Hub
+- Hub will have an NPC to bring you to the Stage select Map / World Map
+- Hub will have additional NPCs for all the Additional Chapter specific Unlocks
+- There will be traveling merchants that sell consumables or over priced Materials from Monster dropps.
+ What get offered will change around at random after every stage
+- Money can only be received by Selling dropps to the merchants.
\ No newline at end of file
diff --git a/Crawler/LevelCompleteWindow.cpp b/Crawler/LevelCompleteWindow.cpp
index e1c54fd9..9ac4758c 100644
--- a/Crawler/LevelCompleteWindow.cpp
+++ b/Crawler/LevelCompleteWindow.cpp
@@ -1,10 +1,72 @@
+/*
+License (OLC-3)
+~~~~~~~~~~~~~~~
+
+Copyright 2018 - 2023 OneLoneCoder.com
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+1. Redistributions or derivations of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+
+2. Redistributions or derivative works in binary form must reproduce the above
+copyright notice. This list of conditions and the following disclaimer must be
+reproduced in the documentation and/or other materials provided with the distribution.
+
+3. Neither the name of the copyright holder nor the names of its contributors may
+be used to endorse or promote products derived from this software without specific
+prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
+SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+*/
#include "Menu.h"
#include "Crawler.h"
+#include "MenuLabel.h"
+#include "MenuComponent.h"
+#include "InventoryScrollableWindowComponent.h"
INCLUDE_game
void Menu::InitializeLevelCompleteWindow(){
- Menu*levelCompleteWindow=Menu::CreateMenu(LEVEL_COMPLETE,{28,28},game->GetScreenSize()-vf2d{56,56});
+ geom2d::rectwindowSize={{28,28},game->GetScreenSize()-vf2d{56,56}};
+
+ Menu*levelCompleteWindow=Menu::CreateMenu(LEVEL_COMPLETE,windowSize.pos,windowSize.size);
+
+ MenuLabel*stageCompleteLabel=NEW MenuLabel(LEVEL_COMPLETE,{{0,4},{windowSize.size.x-1.f,20}},"Stage Completed",2,ComponentAttr::OUTLINE|ComponentAttr::BACKGROUND|ComponentAttr::SHADOW);
+
+ levelCompleteWindow->AddComponent("Stage Complete Label",stageCompleteLabel);
+
+ MenuComponent*monsterLootOutline=NEW MenuComponent(LEVEL_COMPLETE,{{0,32},{windowSize.size.x-80.f,72}},"",DO_NOTHING,ButtonAttr::UNSELECTABLE);
+ MenuLabel*monsterLootLabel=NEW MenuLabel(LEVEL_COMPLETE,{{0,32},{windowSize.size.x-80.f,12}},"Monster Loot",1,ComponentAttr::LEFT_ALIGN|ComponentAttr::SHADOW|ComponentAttr::OUTLINE);
+ InventoryScrollableWindowComponent*monsterLootWindow=NEW InventoryScrollableWindowComponent(LEVEL_COMPLETE,{{0,44},{windowSize.size.x-80.f,60}},"Monster Loot");
+
+ levelCompleteWindow->AddComponent("Monster Loot Outline",monsterLootOutline);
+ levelCompleteWindow->AddComponent("Monster Loot Label",monsterLootLabel);
+ levelCompleteWindow->AddComponent("Monster Loot Window",monsterLootWindow);
+
+ MenuComponent*stageLootOutline=NEW MenuComponent(LEVEL_COMPLETE,{{0,108},{windowSize.size.x-80.f,72}},"",DO_NOTHING,ButtonAttr::UNSELECTABLE);
+ MenuLabel*stageLootLabel=NEW MenuLabel(LEVEL_COMPLETE,{{0,108},{windowSize.size.x-80.f,12}},"Stage Loot",1,ComponentAttr::LEFT_ALIGN|ComponentAttr::SHADOW|ComponentAttr::OUTLINE);
+ InventoryScrollableWindowComponent*stageLootWindow=NEW InventoryScrollableWindowComponent(LEVEL_COMPLETE,{{0,120},{windowSize.size.x-80.f,60}},"Stage Loot");
+ levelCompleteWindow->AddComponent("Stage Loot Outline",stageLootOutline);
+ levelCompleteWindow->AddComponent("Stage Loot Label",stageLootLabel);
+ levelCompleteWindow->AddComponent("Stage Loot Window",stageLootWindow);
+
+ MenuComponent*detailsOutline=NEW MenuComponent(LEVEL_COMPLETE,{{windowSize.size.x-72.f,32},{71,72}},"",DO_NOTHING,ButtonAttr::UNSELECTABLE);
+ MenuLabel*detailsExpGain=NEW MenuLabel(LEVEL_COMPLETE,{{windowSize.size.x-72.f,104},{71,36}},"+ Exp",1,ComponentAttr::SHADOW|ComponentAttr::OUTLINE|ComponentAttr::BACKGROUND);
+ MenuComponent*nextButton=NEW MenuComponent(LEVEL_COMPLETE,{{windowSize.size.x-72.f,144},{71,32}},"Next",DO_NOTHING);
+ levelCompleteWindow->AddComponent("Level Details Outline",detailsOutline);
+ levelCompleteWindow->AddComponent("Level EXP Gain Outline",detailsExpGain);
+ levelCompleteWindow->AddComponent("Next Button",nextButton);
}
\ No newline at end of file
diff --git a/Crawler/Version.h b/Crawler/Version.h
index 867b9e0c..1f9f5a4b 100644
--- a/Crawler/Version.h
+++ b/Crawler/Version.h
@@ -33,7 +33,7 @@ SUCH DAMAGE.
#define VERSION_MAJOR 0
#define VERSION_MINOR 2
#define VERSION_PATCH 1
-#define VERSION_BUILD 2938
+#define VERSION_BUILD 2954
#define stringify(a) stringify_(a)
#define stringify_(a) #a
diff --git a/Crawler/assets/config/items/ItemCategory.txt b/Crawler/assets/config/items/ItemCategory.txt
index 1ee1fe60..dfc605d0 100644
--- a/Crawler/assets/config/items/ItemCategory.txt
+++ b/Crawler/assets/config/items/ItemCategory.txt
@@ -5,4 +5,6 @@ ItemCategory
Equipment = Gear that can be placed onto a player.
Accessories = Items worn as extra items on the player.
Materials = Items used as crafting materials for the forge.
+ Monster Loot = Monster drops obtained while navigating a level.
+ Stage Loot = Stage drops obtained while navigating a level.
}
\ No newline at end of file