add noClip to bonus.hpp

This commit is contained in:
Askou
2021-06-14 16:33:42 +02:00
parent 0a412ce7ad
commit be48b46b7a
3 changed files with 21 additions and 1 deletions
@@ -24,6 +24,8 @@ namespace BBM
std::chrono::nanoseconds rangeBonusRate = 10s;
//! @brief The number of nanosecond before the expiration of a range bonus.
std::chrono::nanoseconds nextRangeBonusRate = rangeBonusRate;
//! @brief Tell if the bonus no clip is on
bool isNoClipOn = false;
//! @inherit
WAL::Component *clone(WAL::Entity &entity) const override;
+12
View File
@@ -45,6 +45,18 @@ namespace BBM {
playerBonus->nextSpeedBonusRate = playerBonus->speedBonusRate;
}
void Bonus::NoClipBonus(WAL::Entity &player, const WAL::Entity &bonus, CollisionComponent::CollidedAxis axis)
{
if (bonus.shouldDelete() || axis != 7)
return;
auto *playerBonus = player.tryGetComponent<PlayerBonusComponent>();
if (!playerBonus)
return;
static void SpeedUSpeedUpBonuspBonus(WAL::Entity &player, const WAL::Entity &bonus, CollisionComponent::CollidedAxis axis);
static void SpeedUpBonus(WAL::Entity &player, const WAL::Entity &bonus, CollisionComponent::CollidedAxis axis);
playerBonus->isNoClipOn = true
}
Bonus::BonusType Bonus::getRandomBonusType()
{
double rnd = static_cast<double>(std::rand()) / RAND_MAX;
+7 -1
View File
@@ -30,11 +30,17 @@ namespace BBM {
//! @brief Apply bonus effect that allows to run faster
static void SpeedUpBonus(WAL::Entity &player, const WAL::Entity &bonus, CollisionComponent::CollidedAxis axis);
//! @param bonus bonus
//! @param player the entity on which the effect will be applied
//! @brief Apply bonus effect that allows to pass trough breakbable walls
static void NoClipBonus(WAL::Entity &player, const WAL::Entity &bonus, CollisionComponent::CollidedAxis axis);
enum BonusType {
NOTHING,
BOMBSTOCK,
SPEEDUP,
EXPLOSIONINC
EXPLOSIONINC,
NOCLIP
};
static BonusType getRandomBonusType();