This commit is contained in:
aozhiwei 2022-12-29 15:25:35 +08:00
parent d935629cac
commit 498f7350d9

View File

@ -92,34 +92,37 @@ void SprintBuff::CoCollisionCheck()
void SprintBuff::Check(Position& pre_pos, std::map<int, long long>& hited_objects)
{
if (pre_pos.ManhattanDistance2D(owner->GetPos()) < 2) {
pre_pos = owner->GetPos();
return;
}
std::set<Creature*> enemys;
Position old_pos = owner->GetPos();
if (pre_pos.ManhattanDistance2D(owner->GetPos()) > 2) {
a8::Vec2 dir = owner->GetPos().CalcDir2D(pre_pos);
dir.Normalize();
float distance = owner->GetPos().Distance2D2(pre_pos);
for (int i = 0; i < (distance + 6); i += 5) {
// 999
a8::Vec2 dir = owner->GetPos().CalcDir2D(pre_pos);
dir.Normalize();
float distance = owner->GetPos().Distance2D2(pre_pos);
for (int i = 0; i < (distance + 6); i += 5) {
// 999
#if 1
#else
owner->MutablePos.FromVec2((pre_pos) + (dir * i));
owner->MutablePos.FromVec2((pre_pos) + (dir * i));
#endif
owner->GetHitEnemys(enemys, meta->_param4);
for (auto& enemy : enemys) {
if (enemy->IsEntityType(ET_Car)) {
owner->GetHitEnemys(enemys, meta->_param4);
for (auto& enemy : enemys) {
if (enemy->IsEntityType(ET_Car)) {
continue;
}
auto itr = hited_objects.find(enemy->GetUniId());
if (itr != hited_objects.end()) {
if ((owner->room->GetFrameNo() - itr->second) * FRAME_RATE_MS <
meta->_int_param5) {
continue;
}
auto itr = hited_objects.find(enemy->GetUniId());
if (itr != hited_objects.end()) {
if ((owner->room->GetFrameNo() - itr->second) * FRAME_RATE_MS <
meta->_int_param5) {
continue;
}
}
hited_objects[enemy->GetUniId()] = owner->room->GetFrameNo();
OnEnemyHit(enemy);
}
hited_objects[enemy->GetUniId()] = owner->room->GetFrameNo();
OnEnemyHit(enemy);
}
}