MonsterFactory::CreateMonster(MONSTERTYPE eMonsterType) { switch (eMonsterType) { case MONSTERTYPE::Slime: return make_shared("슬라임", 50, 10, make_shared()); case MONSTERTYPE::Orc: return make_shared("오크", 70, 20, make_shared()); case MONSTERTYPE::Dragon: return make_shared("드래곤", 80, 30, make_shared()); default: return nullptr; } }"> MonsterFactory::CreateMonster(MONSTERTYPE eMonsterType) { switch (eMonsterType) { case MONSTERTYPE::Slime: return make_shared("슬라임", 50, 10, make_shared()); case MONSTERTYPE::Orc: return make_shared("오크", 70, 20, make_shared()); case MONSTERTYPE::Dragon: return make_shared("드래곤", 80, 30, make_shared()); default: return nullptr; } }"> MonsterFactory::CreateMonster(MONSTERTYPE eMonsterType) { switch (eMonsterType) { case MONSTERTYPE::Slime: return make_shared("슬라임", 50, 10, make_shared()); case MONSTERTYPE::Orc: return make_shared("오크", 70, 20, make_shared()); case MONSTERTYPE::Dragon: return make_shared("드래곤", 80, 30, make_shared()); default: return nullptr; } }">
#include "MonsterFactory.h"
#include "NormalAttack.h"
#include "StrongAttack.h"

shared_ptr<Monster> MonsterFactory::CreateMonster(MONSTERTYPE eMonsterType)
{
    switch (eMonsterType)
    {
    case MONSTERTYPE::Slime:
        return make_shared<Monster>("슬라임", 50, 10, make_shared<NormalAttack>());
    case MONSTERTYPE::Orc:
        return make_shared<Monster>("오크", 70, 20, make_shared<StrongAttack>());
    case MONSTERTYPE::Dragon:
        return make_shared<Monster>("드래곤", 80, 30, make_shared<StrongAttack>());
    default:
        return nullptr;
    }
}