This commit is contained in:
aozhiwei 2021-06-09 19:11:19 +08:00
parent 6139504fb2
commit 957d78e532
3 changed files with 6 additions and 4 deletions

View File

@ -14,6 +14,7 @@ namespace metatable
} }
class Room; class Room;
class Creature;
class Human; class Human;
class Building; class Building;
class CircleCollider; class CircleCollider;
@ -41,7 +42,8 @@ class Obstacle : public Entity
virtual void OnPreCollision(Room* room) override; virtual void OnPreCollision(Room* room) override;
virtual void OnBulletHit(Bullet* bullet) override; virtual void OnBulletHit(Bullet* bullet) override;
virtual bool IsTerminatorAirDropBox(Room* room) { return false; } virtual bool IsTerminatorAirDropBox(Room* room) { return false; }
virtual bool CanThroughable(Human* num) { return false; } virtual bool CanThroughable(Creature* c) { return false; }
virtual bool CanThroughable(Bullet* bullet) { return false; }
void Explosion(Bullet* bullet); void Explosion(Bullet* bullet);
void SetDoorInfo(Building* building, int door_id_x); void SetDoorInfo(Building* building, int door_id_x);
bool IsDoor(); bool IsDoor();

View File

@ -92,10 +92,10 @@ void RoomObstacle::RecalcSelfCollider()
} }
} }
bool RoomObstacle::CanThroughable(Human* hum) bool RoomObstacle::CanThroughable(Creature* c)
{ {
if (master.Get()) { if (master.Get()) {
return master.Get()->team_id == hum->team_id && temp_through_; return master.Get()->team_id == c->team_id && temp_through_;
} else { } else {
return temp_through_; return temp_through_;
} }

View File

@ -17,7 +17,7 @@ class RoomObstacle : public Obstacle
virtual void Initialize() override; virtual void Initialize() override;
virtual void RecalcSelfCollider() override; virtual void RecalcSelfCollider() override;
virtual bool IsTerminatorAirDropBox(Room* room) override { return is_terminator_airdrop_box; } virtual bool IsTerminatorAirDropBox(Room* room) override { return is_terminator_airdrop_box; }
virtual bool CanThroughable(Human* hum) override; virtual bool CanThroughable(Creature* c) override;
void ActiveTimerFunc(); void ActiveTimerFunc();
void UpdateTimerFunc(); void UpdateTimerFunc();
void Active(); void Active();