36 lines
1.2 KiB
C++
36 lines
1.2 KiB
C++
#ifndef CREATURELIB_CREATECREATURE_HPP
|
|
#define CREATURELIB_CREATECREATURE_HPP
|
|
|
|
#include "../../Library/DataLibrary.hpp"
|
|
#include "Creature.hpp"
|
|
|
|
namespace CreatureLib::Battling {
|
|
class CreateCreature {
|
|
const BattleLibrary* _library;
|
|
std::string _species;
|
|
std::string _variant = "default";
|
|
uint8_t _level;
|
|
std::string _nickname = "";
|
|
|
|
std::string _talent = "";
|
|
Library::Gender _gender = static_cast<Library::Gender>(-1);
|
|
uint8_t _coloring = 0;
|
|
std::string _heldItem = "";
|
|
uint32_t _identifier = 0;
|
|
std::vector<std::tuple<const Library::AttackData*, AttackLearnMethod>> _attacks = {};
|
|
|
|
public:
|
|
CreateCreature(const BattleLibrary* library, std::string species, uint8_t level)
|
|
: _library(library), _species(std::move(species)), _level(level) {}
|
|
|
|
CreateCreature* WithVariant(std::string variant);
|
|
CreateCreature* WithNickname(std::string nickname);
|
|
CreateCreature* WithGender(Library::Gender gender);
|
|
CreateCreature* WithAttack(const std::string& attackName, AttackLearnMethod learnMethod);
|
|
|
|
Creature* Create();
|
|
};
|
|
}
|
|
|
|
#endif // CREATURELIB_CREATECREATURE_HPP
|