From a29df8b9546cc75c228d57c66a5d585ede896e29 Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Wed, 22 Nov 2023 01:12:09 -0600 Subject: [PATCH] Monster Drop Data reading from configuration implemented. --- Crawler/Crawler.vcxproj.filters | 6 +++--- Crawler/Monster.h | 8 ++++++-- Crawler/MonsterData.cpp | 23 +++++++++++++++++++++-- Crawler/Version.h | 2 +- 4 files changed, 31 insertions(+), 8 deletions(-) diff --git a/Crawler/Crawler.vcxproj.filters b/Crawler/Crawler.vcxproj.filters index 9ac70e6c..087d0ecc 100644 --- a/Crawler/Crawler.vcxproj.filters +++ b/Crawler/Crawler.vcxproj.filters @@ -177,9 +177,6 @@ Header Files\Game States - - Configurations - Header Files\Interface @@ -258,6 +255,9 @@ Header Files\Interface + + Header Files + diff --git a/Crawler/Monster.h b/Crawler/Monster.h index e7cf2494..7f16b31a 100644 --- a/Crawler/Monster.h +++ b/Crawler/Monster.h @@ -40,6 +40,8 @@ SUCH DAMAGE. #include "DamageNumber.h" #include "DEFINES.h" #include "Attributable.h" +#include "Item.h" +#include "safemap.h" INCLUDE_ITEM_DATA @@ -61,7 +63,7 @@ struct MonsterDropData{ int minQty=1; int maxQty=1; MonsterDropData(std::string itemName,float dropChance,int minQty=1,int maxQty=1) - :item(ITEM_DATA.at(itemName)),dropChance(dropChance),minQty(minQty),maxQty(maxQty){} + :item(&ITEM_DATA.at(itemName)),dropChance(dropChance),minQty(minQty),maxQty(maxQty){} }; struct MonsterData{ @@ -78,9 +80,10 @@ struct MonsterData{ std::string jumpAnimation="WARRIOR_IDLE_S"; std::string shootAnimation="WARRIOR_IDLE_S"; std::string deathAnimation="WARRIOR_IDLE_S"; + std::vector dropData; public: MonsterData(); - MonsterData(int id,std::string name,int hp,int atk,std::vectoranimations,float moveSpd=1.0f,float size=1.0f,int strategy=0,int collisionDmg=0); + MonsterData(int id,std::string name,int hp,int atk,std::vectoranimations,std::vectordrops,float moveSpd=1.0f,float size=1.0f,int strategy=0,int collisionDmg=0); int GetHealth(); int GetAttack(); float GetMoveSpdMult(); @@ -95,6 +98,7 @@ struct MonsterData{ std::vectorGetAnimations(){ return animations; } + const std::vector&GetDropData(); std::string GetDisplayName(); static void InitializeMonsterData(); static std::mapimgs; diff --git a/Crawler/MonsterData.cpp b/Crawler/MonsterData.cpp index f37b372e..8ce11679 100644 --- a/Crawler/MonsterData.cpp +++ b/Crawler/MonsterData.cpp @@ -37,18 +37,20 @@ SUCH DAMAGE. #include "config.h" #include "DEFINES.h" #include "safemap.h" +#include "Item.h" INCLUDE_DATA INCLUDE_STRATEGY_DATA INCLUDE_ANIMATION_DATA +INCLUDE_ITEM_DATA std::mapMONSTER_DATA; safemapMONSTER_NAME_DATA; MonsterData::MonsterData() :atk(0),collisionDmg(0),hp(0),id(0),moveSpd(0),size(0),strategy(0){} -MonsterData::MonsterData(int id,std::string name,int hp,int atk,std::vectoranimations,float moveSpd,float size,int strategy,int collisionDmg): - id(id),name(name),hp(hp),atk(atk),moveSpd(moveSpd),size(size),strategy(strategy),animations(animations),collisionDmg(collisionDmg){} +MonsterData::MonsterData(int id,std::string name,int hp,int atk,std::vectoranimations,std::vectordrops,float moveSpd,float size,int strategy,int collisionDmg): + id(id),name(name),hp(hp),atk(atk),moveSpd(moveSpd),size(size),strategy(strategy),animations(animations),dropData(drops),collisionDmg(collisionDmg){} void MonsterData::InitializeMonsterData(){ int id=0; @@ -119,12 +121,26 @@ void MonsterData::InitializeMonsterData(){ animationCounter++; } + std::vectordrops; + + //Add drop items to monster data from the config. + int dropDataCounter=0; + while(DATA["Monsters"][std::to_string(id)].HasProperty("DROP["+std::to_string(dropDataCounter)+"]")){ + datafile drop=DATA["Monsters"][std::to_string(id)]["DROP["+std::to_string(dropDataCounter)+"]"]; + if(!ITEM_DATA.count(drop.GetString(0))){ + ERR("Could not add drop "<&MonsterData::GetDropData(){ + return dropData; +} \ No newline at end of file diff --git a/Crawler/Version.h b/Crawler/Version.h index 00bc6463..f9f19365 100644 --- a/Crawler/Version.h +++ b/Crawler/Version.h @@ -35,7 +35,7 @@ SUCH DAMAGE. #define VERSION_MAJOR 0 #define VERSION_MINOR 2 #define VERSION_PATCH 1 -#define VERSION_BUILD 2992 +#define VERSION_BUILD 2998 #define stringify(a) stringify_(a) #define stringify_(a) #a