67 lines
1.4 KiB
C++
67 lines
1.4 KiB
C++
#include "precompile.h"
|
|
|
|
#include "hero.h"
|
|
#include "collider.h"
|
|
#include "human.h"
|
|
|
|
Hero::Hero(): Entity()
|
|
{
|
|
entity_type = ET_Hero;
|
|
}
|
|
|
|
Hero::~Hero()
|
|
{
|
|
|
|
}
|
|
|
|
void Hero::Initialize()
|
|
{
|
|
Entity::Initialize();
|
|
RecalcSelfCollider();
|
|
}
|
|
|
|
void Hero::RecalcSelfCollider()
|
|
{
|
|
if (!self_collider_) {
|
|
self_collider_ = new CircleCollider();
|
|
self_collider_->owner = this;
|
|
colliders.push_back(self_collider_);
|
|
}
|
|
self_collider_->pos = Vector2D();
|
|
self_collider_->rad = master->GetRadius();
|
|
}
|
|
|
|
void Hero::FillMFObjectPart(cs::MFObjectPart* part_data)
|
|
{
|
|
part_data->set_object_type(entity_type);
|
|
cs::MFHeroPart* p = part_data->mutable_union_obj_10();
|
|
p->set_obj_uniid(entity_uniid);
|
|
pos.ToPB(p->mutable_pos());
|
|
attack_dir.ToPB(p->mutable_dir());
|
|
}
|
|
|
|
void Hero::FillMFObjectFull(cs::MFObjectFull* full_data)
|
|
{
|
|
full_data->set_object_type(entity_type);
|
|
cs::MFHeroFull* p = full_data->mutable_union_obj_10();
|
|
p->set_obj_uniid(entity_uniid);
|
|
pos.ToPB(p->mutable_pos());
|
|
attack_dir.ToPB(p->mutable_dir());
|
|
|
|
p->set_skin(skin);
|
|
p->set_backpack(backpack);
|
|
p->set_helmet(helmet);
|
|
p->set_chest(chest);
|
|
weapon.ToPB(p->mutable_weapon());
|
|
p->set_energy_shield(energy_shield);
|
|
}
|
|
|
|
ColliderComponent* Hero::GetBoxBound()
|
|
{
|
|
CircleCollider* collider = new CircleCollider();
|
|
collider->owner = this;
|
|
collider->pos = Vector2D();
|
|
collider->rad = master->GetRadius();
|
|
return collider;
|
|
}
|