85 lines
1.4 KiB
C++
85 lines
1.4 KiB
C++
#include "pch.h"
|
|
#include "Monster.h"
|
|
|
|
#include "GameInstance.h"
|
|
#include "Core/Subsystems/GameInputSystem.h"
|
|
#include "Game/Characters/Player/Player.h"
|
|
|
|
Monster::Monster(MonsterStatData&& Desc) :
|
|
MonsterData(std::move(Desc))
|
|
{
|
|
OriginalData = MonsterData;
|
|
}
|
|
|
|
Monster::~Monster()
|
|
{
|
|
Release();
|
|
}
|
|
|
|
void Monster::Attack(class Player* Target)
|
|
{
|
|
GInput << MonsterData.Name << "이 공격했다! \n";
|
|
system("pause");
|
|
|
|
std::string TargetName = Target->GetName();
|
|
int TargetDefence = Target->GetDefence();
|
|
int Damage = 0;
|
|
|
|
Damage = (MonsterData.Attack - TargetDefence) < 0 ? 1 : (MonsterData.Attack - TargetDefence);
|
|
GInput << TargetName << "에게 " << Damage << " 데미지!" << "\n";
|
|
GInput << TargetName << " HP: " << Target->GetHP() << " -> ";
|
|
Target->TakeDamage(Damage);
|
|
GInput << Target->GetHP() << "\n";
|
|
system("pause");
|
|
}
|
|
|
|
void Monster::Release()
|
|
{
|
|
|
|
}
|
|
|
|
void Monster::TakeDamage(int Amount)
|
|
{
|
|
MonsterData.HP -= Amount;
|
|
}
|
|
|
|
bool Monster::IsDead()
|
|
{
|
|
return MonsterData.HP < 0;
|
|
}
|
|
|
|
void Monster::Reset()
|
|
{
|
|
MonsterData = OriginalData;
|
|
}
|
|
|
|
std::string Monster::GetName() const
|
|
{
|
|
return MonsterData.Name;
|
|
}
|
|
|
|
std::string Monster::GetDropItemName() const
|
|
{
|
|
return MonsterData.DropItemName;
|
|
}
|
|
|
|
int Monster::GetDropItemPrice() const
|
|
{
|
|
return MonsterData.DropItemPrice;
|
|
}
|
|
|
|
int Monster::GetHP() const
|
|
{
|
|
return MonsterData.HP;
|
|
}
|
|
|
|
int Monster::GetAttack() const
|
|
{
|
|
return MonsterData.Attack;
|
|
}
|
|
|
|
int Monster::GetDefence() const
|
|
{
|
|
return MonsterData.Defence;
|
|
}
|