Setup Items, item categories, and item scripts, and all associated configuration files for them.
@ -72,6 +72,14 @@ Crawler::Crawler()
|
|||||||
std::string THEMES_CONFIG = CONFIG_PATH + "themes_config"_S;
|
std::string THEMES_CONFIG = CONFIG_PATH + "themes_config"_S;
|
||||||
utils::datafile::Read(DATA,THEMES_CONFIG);
|
utils::datafile::Read(DATA,THEMES_CONFIG);
|
||||||
|
|
||||||
|
std::string ITEM_CONFIG = CONFIG_PATH + "item_config"_S;
|
||||||
|
utils::datafile::Read(DATA,ITEM_CONFIG);
|
||||||
|
|
||||||
|
for(auto&key:DATA.GetProperty("ItemConfiguration").GetKeys()){
|
||||||
|
std::string config = DATA["ItemConfiguration"][key.first].GetString();
|
||||||
|
utils::datafile::Read(DATA,CONFIG_PATH + "item_directory"_S + config);
|
||||||
|
}
|
||||||
|
|
||||||
DEBUG_PATHFINDING="debug_pathfinding"_I;
|
DEBUG_PATHFINDING="debug_pathfinding"_I;
|
||||||
|
|
||||||
for(std::string&cl:DATA.GetProperty("class_list").GetValues()){
|
for(std::string&cl:DATA.GetProperty("class_list").GetValues()){
|
||||||
|
@ -272,6 +272,8 @@
|
|||||||
<ClInclude Include="Effect.h" />
|
<ClInclude Include="Effect.h" />
|
||||||
<ClInclude Include="Emitter.h" />
|
<ClInclude Include="Emitter.h" />
|
||||||
<ClInclude Include="GameState.h" />
|
<ClInclude Include="GameState.h" />
|
||||||
|
<ClInclude Include="Item.h" />
|
||||||
|
<ClInclude Include="ItemComponent.h" />
|
||||||
<ClInclude Include="MenuIconButton.h" />
|
<ClInclude Include="MenuIconButton.h" />
|
||||||
<ClInclude Include="MenuLabel.h" />
|
<ClInclude Include="MenuLabel.h" />
|
||||||
<ClInclude Include="MenuType.h" />
|
<ClInclude Include="MenuType.h" />
|
||||||
@ -314,6 +316,7 @@
|
|||||||
<ClCompile Include="FallingDebris.h" />
|
<ClCompile Include="FallingDebris.h" />
|
||||||
<ClCompile Include="FireBolt.cpp" />
|
<ClCompile Include="FireBolt.cpp" />
|
||||||
<ClCompile Include="GameState.cpp" />
|
<ClCompile Include="GameState.cpp" />
|
||||||
|
<ClCompile Include="Item.cpp" />
|
||||||
<ClCompile Include="Key.cpp" />
|
<ClCompile Include="Key.cpp" />
|
||||||
<ClCompile Include="LightningBolt.cpp" />
|
<ClCompile Include="LightningBolt.cpp" />
|
||||||
<ClCompile Include="LightningBoltEmitter.cpp" />
|
<ClCompile Include="LightningBoltEmitter.cpp" />
|
||||||
@ -359,6 +362,10 @@
|
|||||||
<Text Include="assets\config\configuration.txt" />
|
<Text Include="assets\config\configuration.txt" />
|
||||||
<Text Include="assets\config\gfx\gfx.txt" />
|
<Text Include="assets\config\gfx\gfx.txt" />
|
||||||
<Text Include="assets\config\gfx\themes.txt" />
|
<Text Include="assets\config\gfx\themes.txt" />
|
||||||
|
<Text Include="assets\config\items\ItemCategory.txt" />
|
||||||
|
<Text Include="assets\config\items\ItemDatabase.txt" />
|
||||||
|
<Text Include="assets\config\items\items.txt" />
|
||||||
|
<Text Include="assets\config\items\ItemScript.txt" />
|
||||||
<Text Include="assets\config\levels.txt" />
|
<Text Include="assets\config\levels.txt" />
|
||||||
<Text Include="assets\config\Monsters.txt" />
|
<Text Include="assets\config\Monsters.txt" />
|
||||||
<Text Include="assets\config\MonsterStrategies.txt" />
|
<Text Include="assets\config\MonsterStrategies.txt" />
|
||||||
|
@ -52,6 +52,9 @@
|
|||||||
<Filter Include="Source Files\Game States">
|
<Filter Include="Source Files\Game States">
|
||||||
<UniqueIdentifier>{f36af2ba-e884-4e50-b7bd-7e6aa9a8528c}</UniqueIdentifier>
|
<UniqueIdentifier>{f36af2ba-e884-4e50-b7bd-7e6aa9a8528c}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
|
<Filter Include="Configurations\Items">
|
||||||
|
<UniqueIdentifier>{09fc0cbe-06f7-4fdf-944c-9833066bb9c8}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClInclude Include="olcPixelGameEngine.h">
|
<ClInclude Include="olcPixelGameEngine.h">
|
||||||
@ -177,6 +180,12 @@
|
|||||||
<ClInclude Include="GameState.h">
|
<ClInclude Include="GameState.h">
|
||||||
<Filter>Header Files\Game States</Filter>
|
<Filter>Header Files\Game States</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="ItemComponent.h">
|
||||||
|
<Filter>Header Files\Interface</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="Item.h">
|
||||||
|
<Filter>Configurations</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="Player.cpp">
|
<ClCompile Include="Player.cpp">
|
||||||
@ -308,6 +317,9 @@
|
|||||||
<ClCompile Include="State_MainMenu.cpp">
|
<ClCompile Include="State_MainMenu.cpp">
|
||||||
<Filter>Source Files\Game States</Filter>
|
<Filter>Source Files\Game States</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="Item.cpp">
|
||||||
|
<Filter>Source Files</Filter>
|
||||||
|
</ClCompile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="cpp.hint" />
|
<None Include="cpp.hint" />
|
||||||
@ -362,6 +374,18 @@
|
|||||||
<Text Include="assets\config\gfx\themes.txt">
|
<Text Include="assets\config\gfx\themes.txt">
|
||||||
<Filter>Configurations\GFX</Filter>
|
<Filter>Configurations\GFX</Filter>
|
||||||
</Text>
|
</Text>
|
||||||
|
<Text Include="assets\config\items\ItemDatabase.txt">
|
||||||
|
<Filter>Configurations\Items</Filter>
|
||||||
|
</Text>
|
||||||
|
<Text Include="assets\config\items\ItemScript.txt">
|
||||||
|
<Filter>Configurations\Items</Filter>
|
||||||
|
</Text>
|
||||||
|
<Text Include="assets\config\items\ItemCategory.txt">
|
||||||
|
<Filter>Configurations\Items</Filter>
|
||||||
|
</Text>
|
||||||
|
<Text Include="assets\config\items\items.txt">
|
||||||
|
<Filter>Configurations\Items</Filter>
|
||||||
|
</Text>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Image Include="assets\heart.ico">
|
<Image Include="assets\heart.ico">
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
#define INCLUDE_STRATEGY_ID_DATA extern safemap<std::string,int>STRATEGY_ID_DATA;
|
#define INCLUDE_STRATEGY_ID_DATA extern safemap<std::string,int>STRATEGY_ID_DATA;
|
||||||
#define INCLUDE_TILE_ANIMATION_DATA extern std::map<int,std::vector<std::pair<int,float>>>TILE_ANIMATION_DATA;
|
#define INCLUDE_TILE_ANIMATION_DATA extern std::map<int,std::vector<std::pair<int,float>>>TILE_ANIMATION_DATA;
|
||||||
#define INCLUDE_GFX extern safemap<std::string,Renderable>GFX;
|
#define INCLUDE_GFX extern safemap<std::string,Renderable>GFX;
|
||||||
|
#define INCLUDE_ITEM_DATA extern safemap<Item::ItemName,ItemInfo>ITEM_DATA;
|
||||||
|
|
||||||
#define ACCESS_PLAYER Player*p=game->GetPlayer();
|
#define ACCESS_PLAYER Player*p=game->GetPlayer();
|
||||||
|
|
||||||
|
38
Crawler/Item.cpp
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "Item.h"
|
||||||
|
#include "safemap.h"
|
||||||
|
#include "DEFINES.h"
|
||||||
|
#include "Crawler.h"
|
||||||
|
|
||||||
|
INCLUDE_game
|
||||||
|
INCLUDE_DATA
|
||||||
|
|
||||||
|
safemap<std::string,ItemInfo>ITEM_DATA;
|
||||||
|
|
||||||
|
typedef std::string IT;
|
||||||
|
|
||||||
|
void ItemInfo::InitializeItems(){
|
||||||
|
for(auto&key:DATA["ItemDatabase"].GetKeys()){
|
||||||
|
std::cout<<key.first<<std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
ITEM_DATA.SetInitialized();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Inventory::AddItem(IT it,int amt){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void Inventory::GetItemCount(IT it){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void Inventory::UseItem(IT it,int amt)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void Inventory::RemoveItem(IT it,int amt)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
39
Crawler/Item.h
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include <functional>
|
||||||
|
#include <map>
|
||||||
|
#include "olcPixelGameEngine.h"
|
||||||
|
|
||||||
|
class Crawler;
|
||||||
|
class ItemInfo;
|
||||||
|
|
||||||
|
class Item{
|
||||||
|
private:
|
||||||
|
int amt;
|
||||||
|
ItemInfo*it;
|
||||||
|
};
|
||||||
|
|
||||||
|
class Inventory{
|
||||||
|
public:
|
||||||
|
void AddItem(std::string it,int amt=1);
|
||||||
|
void GetItemCount(std::string it);
|
||||||
|
void UseItem(std::string it,int amt=1);
|
||||||
|
void RemoveItem(std::string it,int amt=1);
|
||||||
|
private:
|
||||||
|
static std::map<std::string,Item>inventory;
|
||||||
|
};
|
||||||
|
|
||||||
|
class ItemInfo{
|
||||||
|
std::string name;
|
||||||
|
std::string displayName;
|
||||||
|
Decal*img;
|
||||||
|
//Returns true if the item can be used, false otherwise
|
||||||
|
std::function<bool(Crawler*)>useFunc;
|
||||||
|
public:
|
||||||
|
static void InitializeItems();
|
||||||
|
/*
|
||||||
|
For the useFunc, return true if the item can be used, false otherwise.
|
||||||
|
*/
|
||||||
|
ItemInfo(std::string name,std::string displayName,Decal*img,std::function<bool(Crawler*)>useFunc);
|
||||||
|
};
|
19
Crawler/ItemComponent.h
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
#pragma once
|
||||||
|
#include "MenuIconButton.h"
|
||||||
|
#include "Item.h"
|
||||||
|
|
||||||
|
INCLUDE_game
|
||||||
|
|
||||||
|
class ItemComponent:public MenuIconButton{
|
||||||
|
Item::ItemName item;
|
||||||
|
public:
|
||||||
|
inline ItemComponent(geom2d::rect<float>rect,Item::ItemName*item,MenuFunc onClick)
|
||||||
|
:MenuIconButton(rect,,onClick){}
|
||||||
|
protected:
|
||||||
|
virtual void inline Update(Crawler*game)override{
|
||||||
|
MenuIconButton::Update(game);
|
||||||
|
}
|
||||||
|
virtual void inline Draw(Crawler*game,vf2d parentPos,bool focused)override{
|
||||||
|
MenuIconButton::Draw(game,parentPos,focused);
|
||||||
|
}
|
||||||
|
};
|
@ -45,6 +45,23 @@ void Menu::AddComponent(std::string key,MenuComponent*button){
|
|||||||
components[key]=button;
|
components[key]=button;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Menu::CheckClickAndPerformMenuSelect(Crawler*game){
|
||||||
|
if(game->GetMouse(Mouse::LEFT).bReleased||game->GetKey(SPACE).bReleased||game->GetKey(ENTER).bReleased){
|
||||||
|
MenuSelect(game);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Menu::HoverMenuSelect(Crawler*game){
|
||||||
|
if(selection==vi2d{-1,-1})return;
|
||||||
|
if(buttons[selection.y][selection.x]->draggable)
|
||||||
|
if(buttonHoldTime<0.3)CheckClickAndPerformMenuSelect(game);
|
||||||
|
else{
|
||||||
|
draggingComponent=buttons[selection.y][selection.x];
|
||||||
|
buttons[selection.y].erase(buttons[selection.y].begin()+selection.x);
|
||||||
|
}
|
||||||
|
else CheckClickAndPerformMenuSelect(game);
|
||||||
|
}
|
||||||
|
|
||||||
void Menu::MenuSelect(Crawler*game){
|
void Menu::MenuSelect(Crawler*game){
|
||||||
if(selection==vi2d{-1,-1})return;
|
if(selection==vi2d{-1,-1})return;
|
||||||
buttons[selection.y][selection.x]->onClick(*this,game);
|
buttons[selection.y][selection.x]->onClick(*this,game);
|
||||||
@ -60,6 +77,10 @@ void Menu::MenuSelect(Crawler*game){
|
|||||||
|
|
||||||
void Menu::Update(Crawler*game){
|
void Menu::Update(Crawler*game){
|
||||||
|
|
||||||
|
buttonHoldTime+=game->GetElapsedTime();
|
||||||
|
|
||||||
|
HoverMenuSelect(game);
|
||||||
|
|
||||||
for(auto&key:buttons){
|
for(auto&key:buttons){
|
||||||
for(auto&button:key.second){
|
for(auto&button:key.second){
|
||||||
button->hovered=false;
|
button->hovered=false;
|
||||||
@ -207,7 +228,7 @@ void Menu::KeyboardButtonNavigation(Crawler*game,vf2d menuPos){
|
|||||||
if(game->GetMouse(0).bPressed||game->GetKey(ENTER).bPressed||game->GetKey(SPACE).bPressed){
|
if(game->GetMouse(0).bPressed||game->GetKey(ENTER).bPressed||game->GetKey(SPACE).bPressed){
|
||||||
MOUSE_NAVIGATION=game->GetMouse(0).bPressed; //If a click occurs we use mouse controls.
|
MOUSE_NAVIGATION=game->GetMouse(0).bPressed; //If a click occurs we use mouse controls.
|
||||||
if(!MOUSE_NAVIGATION){
|
if(!MOUSE_NAVIGATION){
|
||||||
MenuSelect(game);
|
buttonHoldTime=0;
|
||||||
//Key presses automatically highlight the first button if it's not highlighted.
|
//Key presses automatically highlight the first button if it's not highlighted.
|
||||||
if(selection==vi2d{-1,-1}&&buttons.size()>0){
|
if(selection==vi2d{-1,-1}&&buttons.size()>0){
|
||||||
//Find the first possible button entry in the map...
|
//Find the first possible button entry in the map...
|
||||||
@ -234,7 +255,7 @@ void Menu::KeyboardButtonNavigation(Crawler*game,vf2d menuPos){
|
|||||||
index++;
|
index++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
MenuSelect(game);
|
buttonHoldTime=0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,12 +14,16 @@ class Menu:IAttributable{
|
|||||||
static bool MOUSE_NAVIGATION;
|
static bool MOUSE_NAVIGATION;
|
||||||
static std::map<MenuType,Menu>menus;
|
static std::map<MenuType,Menu>menus;
|
||||||
|
|
||||||
|
float buttonHoldTime=0;
|
||||||
std::map<int/*Y*/,std::vector<MenuComponent*>>buttons; //Buttons are stored in rows followed by their column order.
|
std::map<int/*Y*/,std::vector<MenuComponent*>>buttons; //Buttons are stored in rows followed by their column order.
|
||||||
|
std::map<int/*Y*/,std::vector<MenuComponent*>>newButtonArrangement; //The new setup that the buttons will be at if a drag operation completes.
|
||||||
std::vector<MenuComponent*>displayComponents; //Components that are only for displaying purposes.
|
std::vector<MenuComponent*>displayComponents; //Components that are only for displaying purposes.
|
||||||
safemap<std::string,MenuComponent*>components; //A friendly way to interrogate any component we are interested in.
|
safemap<std::string,MenuComponent*>components; //A friendly way to interrogate any component we are interested in.
|
||||||
vi2d selection={-1,-1};
|
vi2d selection={-1,-1};
|
||||||
vf2d pos; //Specify the upper-left corner of the window. Using CENTERED will always put this where the upper-left corner would center the window.
|
vf2d pos; //Specify the upper-left corner of the window. Using CENTERED will always put this where the upper-left corner would center the window.
|
||||||
vf2d size; //Size in tiles (24x24), every menu will be tile-based
|
vf2d size; //Size in tiles (24x24), every menu will be tile-based
|
||||||
|
|
||||||
|
MenuComponent*draggingComponent=nullptr;
|
||||||
public:
|
public:
|
||||||
Menu();
|
Menu();
|
||||||
Menu(vf2d pos,vf2d size);
|
Menu(vf2d pos,vf2d size);
|
||||||
@ -33,7 +37,9 @@ public:
|
|||||||
static safeunorderedmap<std::string,Theme>themes;
|
static safeunorderedmap<std::string,Theme>themes;
|
||||||
static const vf2d CENTERED;
|
static const vf2d CENTERED;
|
||||||
private:
|
private:
|
||||||
|
void HoverMenuSelect(Crawler*game);
|
||||||
void MenuSelect(Crawler*game);
|
void MenuSelect(Crawler*game);
|
||||||
|
void CheckClickAndPerformMenuSelect(Crawler*game);
|
||||||
static const Menu InitializeTestMenu();
|
static const Menu InitializeTestMenu();
|
||||||
static const Menu InitializeTestSubMenu();
|
static const Menu InitializeTestSubMenu();
|
||||||
//X (0-3), Y (0-2) for specific 9-patch tile (tiled version).
|
//X (0-3), Y (0-2) for specific 9-patch tile (tiled version).
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
#define VERSION_MAJOR 0
|
#define VERSION_MAJOR 0
|
||||||
#define VERSION_MINOR 2
|
#define VERSION_MINOR 2
|
||||||
#define VERSION_PATCH 0
|
#define VERSION_PATCH 0
|
||||||
#define VERSION_BUILD 1782
|
#define VERSION_BUILD 1796
|
||||||
|
|
||||||
#define stringify(a) stringify_(a)
|
#define stringify(a) stringify_(a)
|
||||||
#define stringify_(a) #a
|
#define stringify_(a) #a
|
||||||
|
@ -39,6 +39,12 @@ class_directory = classes/
|
|||||||
# Class list to be loaded into the game.
|
# Class list to be loaded into the game.
|
||||||
class_list = Warrior, Thief, Ranger, Trapper, Wizard, Witch
|
class_list = Warrior, Thief, Ranger, Trapper, Wizard, Witch
|
||||||
|
|
||||||
|
# Items Config
|
||||||
|
item_config = items/items.txt
|
||||||
|
|
||||||
|
# Path to items configuration
|
||||||
|
item_directory = items/
|
||||||
|
|
||||||
# Whether or not to show individual data accesses from config data structure.
|
# Whether or not to show individual data accesses from config data structure.
|
||||||
debug_access_options = 0
|
debug_access_options = 0
|
||||||
|
|
||||||
|
@ -4,6 +4,8 @@ ThemeGlobal
|
|||||||
HighlightTime = 0.2
|
HighlightTime = 0.2
|
||||||
# How much the R,G,B color components of a menu are multiplied to unfocused windows.
|
# How much the R,G,B color components of a menu are multiplied to unfocused windows.
|
||||||
MenuUnfocusedColorMult = 0.4
|
MenuUnfocusedColorMult = 0.4
|
||||||
|
# Amount of time to hold down an element before a press becomes a drag.
|
||||||
|
MenuHoldTime = 0.3
|
||||||
}
|
}
|
||||||
|
|
||||||
Themes
|
Themes
|
||||||
|
19
Crawler/assets/config/items/ItemCategory.txt
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
ItemCategory
|
||||||
|
{
|
||||||
|
Consumables
|
||||||
|
{
|
||||||
|
Description = Items that will be consumed after a single use.
|
||||||
|
}
|
||||||
|
Equipment
|
||||||
|
{
|
||||||
|
Description = Gear that can be placed onto a player.
|
||||||
|
}
|
||||||
|
Accesories
|
||||||
|
{
|
||||||
|
Description = Items worn as extra items on the player.
|
||||||
|
}
|
||||||
|
Materials
|
||||||
|
{
|
||||||
|
Description = Items used as crafting materials for the forge.
|
||||||
|
}
|
||||||
|
}
|
67
Crawler/assets/config/items/ItemDatabase.txt
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
ItemDatabase
|
||||||
|
{
|
||||||
|
Small Health Potion
|
||||||
|
{
|
||||||
|
ItemScript = Restore
|
||||||
|
Description = Restores 40 health points.
|
||||||
|
HP Restore = 40
|
||||||
|
ItemCategory = Consumables
|
||||||
|
}
|
||||||
|
Medium Health Potion
|
||||||
|
{
|
||||||
|
ItemScript = Restore
|
||||||
|
Description = Restores 100 health points.
|
||||||
|
HP Restore = 100
|
||||||
|
ItemCategory = Consumables
|
||||||
|
}
|
||||||
|
Large Health Potion
|
||||||
|
{
|
||||||
|
ItemScript = Restore
|
||||||
|
Description = Restores 320 health points.
|
||||||
|
HP Restore = 320
|
||||||
|
ItemCategory = Consumables
|
||||||
|
}
|
||||||
|
Small Mana Potion
|
||||||
|
{
|
||||||
|
ItemScript = Restore
|
||||||
|
Description = Restores 40 mana points.
|
||||||
|
MP Restore = 40
|
||||||
|
ItemCategory = Consumables
|
||||||
|
}
|
||||||
|
Medium Mana Potion
|
||||||
|
{
|
||||||
|
ItemScript = Restore
|
||||||
|
Description = Restores 100 mana points.
|
||||||
|
MP Restore = 100
|
||||||
|
ItemCategory = Consumables
|
||||||
|
}
|
||||||
|
Large Mana Potion
|
||||||
|
{
|
||||||
|
ItemScript = Restore
|
||||||
|
Description = Restores 320 mana points.
|
||||||
|
MP Restore = 320
|
||||||
|
ItemCategory = Consumables
|
||||||
|
}
|
||||||
|
Bandages
|
||||||
|
{
|
||||||
|
ItemScript = Restore
|
||||||
|
Description = Restores 10% health points.
|
||||||
|
HP % Restore = 10%
|
||||||
|
ItemCategory = Consumables
|
||||||
|
}
|
||||||
|
Green Slime Remains
|
||||||
|
{
|
||||||
|
Description = The remains of a green slime. It stares at you intently.
|
||||||
|
ItemCategory = Materials
|
||||||
|
}
|
||||||
|
Blue Slime Remains
|
||||||
|
{
|
||||||
|
Description = The remains of a blue slime. It stares at you intently.
|
||||||
|
ItemCategory = Materials
|
||||||
|
}
|
||||||
|
Red Slime Remains
|
||||||
|
{
|
||||||
|
Description = The remains of a red slime. It stares at you intently.
|
||||||
|
ItemCategory = Materials
|
||||||
|
}
|
||||||
|
}
|
14
Crawler/assets/config/items/ItemScript.txt
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
ItemScript
|
||||||
|
{
|
||||||
|
# Used with the Item Database.
|
||||||
|
# Any of these properties can be overwritten by specifying them in the main item.
|
||||||
|
|
||||||
|
# Restores stats.
|
||||||
|
Restore
|
||||||
|
{
|
||||||
|
HP Restore = 0
|
||||||
|
HP % Restore = 0
|
||||||
|
MP Restore = 0
|
||||||
|
MP % Restore = 0
|
||||||
|
}
|
||||||
|
}
|
6
Crawler/assets/config/items/items.txt
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
ItemConfiguration
|
||||||
|
{
|
||||||
|
Item Database = "ItemDatabase.txt"
|
||||||
|
Item Scripts = "ItemScript.txt"
|
||||||
|
Item Categories = "ItemCategory.txt"
|
||||||
|
}
|
BIN
Crawler/assets/items/Bandages.png
Normal file
After Width: | Height: | Size: 942 B |
BIN
Crawler/assets/items/Blue Slime Remains.png
Normal file
After Width: | Height: | Size: 682 B |
BIN
Crawler/assets/items/Green Slime Remains.png
Normal file
After Width: | Height: | Size: 677 B |
BIN
Crawler/assets/items/Large Health Potion.png
Normal file
After Width: | Height: | Size: 8.2 KiB |
BIN
Crawler/assets/items/Large Mana Potion.png
Normal file
After Width: | Height: | Size: 8.2 KiB |
BIN
Crawler/assets/items/Medium Health Potion.png
Normal file
After Width: | Height: | Size: 821 B |
BIN
Crawler/assets/items/Medium Mana Potion.png
Normal file
After Width: | Height: | Size: 8.1 KiB |
BIN
Crawler/assets/items/Red Slime Remains.png
Normal file
After Width: | Height: | Size: 687 B |
BIN
Crawler/assets/items/Small Health Potion.png
Normal file
After Width: | Height: | Size: 789 B |
BIN
Crawler/assets/items/Small Mana Potion.png
Normal file
After Width: | Height: | Size: 798 B |
@ -1,5 +1,4 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include "olcPixelGameEngine.h"
|
|
||||||
|
|
||||||
//A class that has an initialization lock so that when the lock is activated, any further gets that are missing items in it will report themselves for easier debugging detection.
|
//A class that has an initialization lock so that when the lock is activated, any further gets that are missing items in it will report themselves for easier debugging detection.
|
||||||
template<typename T,typename O>
|
template<typename T,typename O>
|
||||||
|