This commit is contained in:
aozhiwei 2021-05-14 16:14:14 +08:00
parent ab2f33eafd
commit bb0cbc1c0b
2 changed files with 26 additions and 0 deletions

View File

@ -1,6 +1,7 @@
#include "precompile.h"
#include "car.h"
#include "collider.h"
#include "human.h"
#include "room.h"
#include "metamgr.h"
@ -249,4 +250,28 @@ void Car::BeKill(int killer_id, const std::string& killer_name, int weapon_id)
BroadcastDeleteState(room);
RemoveFromAroundPlayers(room);
room->grid_service->RemoveCreature(this);
room->RemoveObjectLater(this);
for (Human* passenger : passengers_) {
if (meta->i->buffid()) {
passenger->RemoveBuffById(meta->i->buffid());
passenger->RecalcSelfCollider();
}
passenger->SetCar(nullptr);
passenger->SetSeat(0);
passenger->second_weapon = Weapon();
passenger->CancelAction();
passenger->RemoveBuffByEffectId(kBET_Driver);
passenger->RemoveBuffByEffectId(kBET_Passenger);
room->frame_event.AddCarChg(passenger);
}
}
void Car::GetAabbBox(AabbCollider& aabb_box)
{
aabb_box.active = true;
aabb_box.owner = this;
aabb_box._min.x = -hero_meta_->i->radius();
aabb_box._min.y = -hero_meta_->i->radius();
aabb_box._max.x = hero_meta_->i->radius();
aabb_box._max.y = hero_meta_->i->radius();
}

View File

@ -25,6 +25,7 @@ class Car : public Creature
virtual void FillMFObjectPart(Room* room, Human* hum, cs::MFObjectPart* part_data) override;
virtual void FillMFObjectFull(Room* room, Human* hum, cs::MFObjectFull* full_data) override;
virtual void OnBulletHit(Bullet* bullet) override;
virtual void GetAabbBox(AabbCollider& aabb_box) override;
bool IsDriver(Human* hum) { return driver_ == hum && driver_; }
void GetDown(Human* passenger);