PlayerBonus system & component made (containing timer)

This commit is contained in:
HENRY Benjamin
2021-06-09 12:05:33 +02:00
parent 97b7a7d259
commit 5c357af61d
9 changed files with 163 additions and 14 deletions
+12 -3
View File
@@ -4,6 +4,7 @@
#include <Component/Collision/CollisionComponent.hpp>
#include <Component/Controllable/ControllableComponent.hpp>
#include <Component/Bonus/PlayerBonusComponent.hpp>
#include "Component/Movable/MovableComponent.hpp"
#include "Bonus.hpp"
#include "Component/BombHolder/BombHolderComponent.hpp"
@@ -25,7 +26,9 @@ namespace BBM {
return;
if (player.hasComponent<BombHolderComponent>()) {
auto &bombHolder = player.getComponent<BombHolderComponent>();
bombHolder.damage++;
auto &playerBonus = player.getComponent<PlayerBonusComponent>();
bombHolder.damage = 2;
playerBonus.nextDamageBonusRate = playerBonus.damageBonusRate;
}
}
@@ -35,7 +38,10 @@ namespace BBM {
return;
if (player.hasComponent<BombHolderComponent>()) {
auto &bombHolder = player.getComponent<BombHolderComponent>();
bombHolder.explosionRadius++;
auto &playerBonus = player.getComponent<PlayerBonusComponent>();
if (bombHolder.explosionRadius <= 6)
bombHolder.explosionRadius++;
playerBonus.nextRangeBonusRate = playerBonus.rangeBonusRate;
}
}
@@ -46,8 +52,9 @@ namespace BBM {
if (!player.hasComponent<MovableComponent>())
return;
auto &controllable = player.getComponent<ControllableComponent>();
auto &playerBonus = player.getComponent<PlayerBonusComponent>();
controllable.speed = 0.35f;
controllable.nextSpeedBonusRate = controllable.speedBonusRate;
playerBonus.nextSpeedBonusRate = playerBonus.speedBonusRate;
}
void Bonus::IgnoreWallsBonus(WAL::Entity &player, const WAL::Entity &bonus, CollisionComponent::CollidedAxis axis)
@@ -55,7 +62,9 @@ namespace BBM {
if (bonus.shouldDelete())
return;
if (player.hasComponent<BombHolderComponent>()) {
auto &playerBonus = player.getComponent<PlayerBonusComponent>();
auto &bombHolder = player.getComponent<BombHolderComponent>();
playerBonus.nextIgnoreWallsBonusRate = playerBonus.ignoreWallsBonusRate;
std::cout << "Explosion is supposed to pass through walls here" << std::endl;
//bombHolder.ignoreWalls = true;
}