diff --git a/src/Entities/Pawn.cpp b/src/Entities/Pawn.cpp index 9045f8595..126947d3e 100644 --- a/src/Entities/Pawn.cpp +++ b/src/Entities/Pawn.cpp @@ -70,6 +70,21 @@ bool cPawn::IsFireproof(void) const +void cPawn::HandleAir(void) +{ + if (IsSubmerged() && HasEntityEffect(cEntityEffect::effWaterBreathing)) + { + // Prevent the oxygen from decreasing + return; + } + + super::HandleAir(); +} + + + + + void cPawn::AddEntityEffect(cEntityEffect::eType a_EffectType, int a_Duration, short a_Intensity, double a_DistanceModifier) { // Check if the plugins allow the addition: diff --git a/src/Entities/Pawn.h b/src/Entities/Pawn.h index 40ce9b2dd..67878f699 100644 --- a/src/Entities/Pawn.h +++ b/src/Entities/Pawn.h @@ -24,6 +24,7 @@ public: virtual void KilledBy(TakeDamageInfo & a_TDI) override; virtual bool IsFireproof(void) const override; + virtual void HandleAir(void) override; // tolua_begin