#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(-1); uint8_t _coloring = 0; std::string _heldItem = ""; uint32_t _identifier = 0; std::vector> _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