1
This commit is contained in:
parent
3e3d375bd0
commit
86b9092ecf
@ -1166,13 +1166,14 @@ void Human::AddBuff(MetaData::Buff* buff_meta)
|
|||||||
if ((int)buff_meta->param1== kHAT_Hp) {
|
if ((int)buff_meta->param1== kHAT_Hp) {
|
||||||
if ((int)buff_meta->param2 == 1) {
|
if ((int)buff_meta->param2 == 1) {
|
||||||
//绝对值
|
//绝对值
|
||||||
ability.hp += buff_meta->param2;
|
ability.hp += buff_meta->param3;
|
||||||
ability.hp = std::min(ability.max_hp, ability.hp);
|
ability.hp = std::min(ability.max_hp, ability.hp);
|
||||||
} else if ((int)buff_meta->param2 == 2) {
|
} else if ((int)buff_meta->param2 == 2) {
|
||||||
//百分比
|
//百分比
|
||||||
ability.hp *= 1 + buff_meta->param2;
|
ability.hp *= 1 + buff_meta->param3;
|
||||||
ability.hp = std::min(ability.max_hp, ability.hp);
|
ability.hp = std::min(ability.max_hp, ability.hp);
|
||||||
}
|
}
|
||||||
|
SyncAroundPlayers();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Buff* buff = &a8::FastAppend(buff_list_);
|
Buff* buff = &a8::FastAppend(buff_list_);
|
||||||
@ -1436,6 +1437,7 @@ void Human::CheckSpecObject()
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case kET_Obstacle:
|
case kET_Obstacle:
|
||||||
|
case kET_Building:
|
||||||
{
|
{
|
||||||
if (TestCollision((ColliderComponent*)collider)) {
|
if (TestCollision((ColliderComponent*)collider)) {
|
||||||
in_grass = true;
|
in_grass = true;
|
||||||
@ -1618,11 +1620,11 @@ void Human::_UpdateAssaultMove()
|
|||||||
hum->DecHP(finally_dmg, entity_uniid, name, 0);
|
hum->DecHP(finally_dmg, entity_uniid, name, 0);
|
||||||
target_list.insert(hum);
|
target_list.insert(hum);
|
||||||
}
|
}
|
||||||
a8::Vec2 pull_dir = skill_dir;
|
a8::Vec2 push_dir = skill_dir;
|
||||||
if (std::abs(pull_dir.x) > FLT_EPSILON ||
|
if (std::abs(push_dir.x) > FLT_EPSILON ||
|
||||||
std::abs(pull_dir.y) > FLT_EPSILON) {
|
std::abs(push_dir.y) > FLT_EPSILON) {
|
||||||
pull_dir.Normalize();
|
push_dir.Normalize();
|
||||||
hum->PullHuman(pull_dir, phase->param2.GetDouble());
|
hum->PushHuman(push_dir, phase->param2.GetDouble());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1636,11 +1638,11 @@ void Human::_UpdateAssaultMove()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Human::PullHuman(const a8::Vec2& pull_dir, float distance)
|
void Human::PushHuman(const a8::Vec2& push_dir, float distance)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < distance; ++i) {
|
for (int i = 0; i < distance; ++i) {
|
||||||
a8::Vec2 old_pos = pos;
|
a8::Vec2 old_pos = pos;
|
||||||
pos = pos + pull_dir;
|
pos = pos + push_dir;
|
||||||
if (IsCollisionInMapService()) {
|
if (IsCollisionInMapService()) {
|
||||||
pos = old_pos;
|
pos = old_pos;
|
||||||
break;
|
break;
|
||||||
|
@ -204,7 +204,7 @@ class Human : public Entity
|
|||||||
protected:
|
protected:
|
||||||
void _UpdateMove(int speed);
|
void _UpdateMove(int speed);
|
||||||
void _UpdateAssaultMove();
|
void _UpdateAssaultMove();
|
||||||
void PullHuman(const a8::Vec2& pull_dir, float distance);
|
void PushHuman(const a8::Vec2& push_dir, float distance);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void ClearFrameData();
|
void ClearFrameData();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user