添加壁垒逻辑

This commit is contained in:
aozhiwei 2021-07-19 11:33:44 +00:00
parent 58b2c78184
commit 8dc0473d4d
3 changed files with 3 additions and 1 deletions

View File

@ -89,6 +89,7 @@ class Creature : public MoveableEntity
virtual void RemoveOutObjects(Entity* entity) {};
virtual bool Attackable(Room* room) override;
virtual bool ReceiveExplosionDmg(Explosion* explosion) override;
virtual bool IsCreature(Room* room) override { return true;};
bool HasBuffEffect(int buff_effect_id);
Buff* GetBuffByEffectId(int effect_id);
Buff* GetBuffById(int buff_id);

View File

@ -30,6 +30,7 @@ class Entity
virtual float GetHitRadius() { return GetRadius();};
virtual void GetCircleBox(CircleCollider& circle_box);
virtual bool IsDead(Room* room) { return false;};
virtual bool IsCreature(Room* room) { return false;};
virtual long long GetDeadFrameNo(Room* room) { return 0;};
virtual void OnPreCollision(Room* room) {};
virtual void RecalcSelfCollider() {};

View File

@ -116,7 +116,7 @@ void Explosion::InternalAttack()
}
);
for (auto& target : objects) {
if (target->HasBuffEffect(kBET_BulletThrough)) {
if (target->IsCreature(room_) && ((Creature*)target)->HasBuffEffect(kBET_BulletThrough)) {
continue;
}
target->OnExplosionHit(this);