From d164e3d407956e9f07abdb0866df6596149a02ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Le=20Bihan?= Date: Mon, 14 Jun 2021 18:07:41 +0200 Subject: [PATCH 1/6] fixing bomb stopper entity generation --- sources/Map/Map.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/Map/Map.cpp b/sources/Map/Map.cpp index ed646dd2..f0333198 100644 --- a/sources/Map/Map.cpp +++ b/sources/Map/Map.cpp @@ -135,7 +135,7 @@ namespace BBM static const std::string unbreakableObj = unbreakableWallPath + objExtension; static const std::string unbreakablePnj = unbreakableWallPath + imageExtension; - for (int i = 0; i < height; i++) { + for (int i = 0; i < height + 1; i++) { scene->addEntity("Bomb stopper") .addComponent(-1, 0, i) .addComponent>(); @@ -143,7 +143,7 @@ namespace BBM .addComponent(width + 1, 0, i) .addComponent>(); } - for (int i = 0; i < width; i++) { + for (int i = 0; i < width + 1; i++) { scene->addEntity("Bomb stopper") .addComponent(i, 0, -1) .addComponent>(); From 2b70d4883fc40a285b001ef8489e5f02d505b752 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Le=20Bihan?= Date: Tue, 15 Jun 2021 00:30:47 +0200 Subject: [PATCH 2/6] bombs are exploding in chain successfully adding BlowablePass tag --- sources/Component/Tag/TagComponent.hpp | 3 +++ sources/System/BombHolder/BombHolderSystem.cpp | 16 +++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/sources/Component/Tag/TagComponent.hpp b/sources/Component/Tag/TagComponent.hpp index 00fa27d5..c4b3b9c1 100644 --- a/sources/Component/Tag/TagComponent.hpp +++ b/sources/Component/Tag/TagComponent.hpp @@ -50,5 +50,8 @@ namespace BBM TagComponent &operator=(const TagComponent &) = delete; }; + // interact with bombs & stop the explosion constexpr const char Blowable[] = "Blowable"; + // interact with bombs (getting damage etc) but doesn't stop explosion + constexpr const char BlowablePass[] = "BlowablePass"; } diff --git a/sources/System/BombHolder/BombHolderSystem.cpp b/sources/System/BombHolder/BombHolderSystem.cpp index 6fe1055d..16e9d62b 100644 --- a/sources/System/BombHolder/BombHolderSystem.cpp +++ b/sources/System/BombHolder/BombHolderSystem.cpp @@ -44,7 +44,7 @@ namespace BBM return; wal.getScene()->scheduleNewEntity("explosion") .addComponent(position) - .addComponent(1s, [](WAL::Entity &explosion, WAL::Wal &wal) { + .addComponent(500ms, [](WAL::Entity &explosion, WAL::Wal &wal) { explosion.scheduleDeletion(); }) .addComponent("assets/bombs/explosion/explosion.glb", false, @@ -60,6 +60,12 @@ namespace BBM return; } } + for (auto &[entity, pos, _] : wal.getScene()->view>()) { + if (pos.position.round() == position) { + if (auto *health = entity.tryGetComponent()) + health->takeDmg(1); + } + } if (expansionDirections & ExpansionDirection::FRONT) { _dispatchExplosion(position + Vector3f{1, 0, 0}, wal, size - 1, ExpansionDirection::FRONT); } @@ -87,6 +93,14 @@ namespace BBM { this->_wal.getScene()->scheduleNewEntity("Bomb") .addComponent(position.round()) + .addComponent(1, [](WAL::Entity &entity, WAL::Wal &wal) { + // the bomb explode when hit + entity.scheduleDeletion(); + auto &pos = entity.getComponent(); + auto &bombDetails = entity.getComponent(); + BombHolderSystem::_dispatchExplosion(pos.position, wal, bombDetails.explosionRadius); + }) + .addComponent>() .addComponent(holder.damage, holder.explosionRadius, id) .addComponent(BombHolderSystem::explosionTimer, &BombHolderSystem::_bombExplosion) .addComponent( From e1fb1298d0dadb3a3282a5665e0b4f11a24eed6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Le=20Bihan?= Date: Tue, 15 Jun 2021 00:32:22 +0200 Subject: [PATCH 3/6] setting blowablePass on bonuses & player --- sources/Map/Map.cpp | 2 +- sources/Runner/GameScene.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sources/Map/Map.cpp b/sources/Map/Map.cpp index f0333198..2330b34b 100644 --- a/sources/Map/Map.cpp +++ b/sources/Map/Map.cpp @@ -80,7 +80,7 @@ namespace BBM return; wal.getScene()->scheduleNewEntity("Bonus") .addComponent(position) - .addComponent>() + .addComponent>() .addComponent() .addComponent(1, [](WAL::Entity &entity, WAL::Wal &wal) { entity.scheduleDeletion(); diff --git a/sources/Runner/GameScene.cpp b/sources/Runner/GameScene.cpp index 7668a043..96478a8f 100644 --- a/sources/Runner/GameScene.cpp +++ b/sources/Runner/GameScene.cpp @@ -50,7 +50,7 @@ namespace BBM .addComponent() .addComponent() .addComponent("assets/shaders/glsl330/predator.fs") - .addComponent>() + .addComponent>() //.addComponent(0) .addComponent(RAY::ModelAnimations("assets/player/player.iqm"), 3) .addComponent(BBM::Vector3f{0.25, 0, 0.25}, BBM::Vector3f{.75, 2, .75}) From 135216c53be67f12c5da7fe3b5e7b8412dc2a200 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Le=20Bihan?= Date: Tue, 15 Jun 2021 00:43:48 +0200 Subject: [PATCH 4/6] indent fixes --- sources/System/BombHolder/BombHolderSystem.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/sources/System/BombHolder/BombHolderSystem.cpp b/sources/System/BombHolder/BombHolderSystem.cpp index 16e9d62b..d67f16c7 100644 --- a/sources/System/BombHolder/BombHolderSystem.cpp +++ b/sources/System/BombHolder/BombHolderSystem.cpp @@ -93,14 +93,14 @@ namespace BBM { this->_wal.getScene()->scheduleNewEntity("Bomb") .addComponent(position.round()) - .addComponent(1, [](WAL::Entity &entity, WAL::Wal &wal) { - // the bomb explode when hit - entity.scheduleDeletion(); - auto &pos = entity.getComponent(); - auto &bombDetails = entity.getComponent(); - BombHolderSystem::_dispatchExplosion(pos.position, wal, bombDetails.explosionRadius); - }) - .addComponent>() + .addComponent(1, [](WAL::Entity &entity, WAL::Wal &wal) { + // the bomb explode when hit + entity.scheduleDeletion(); + auto &pos = entity.getComponent(); + auto &bombDetails = entity.getComponent(); + BombHolderSystem::_dispatchExplosion(pos.position, wal, bombDetails.explosionRadius); + }) + .addComponent>() .addComponent(holder.damage, holder.explosionRadius, id) .addComponent(BombHolderSystem::explosionTimer, &BombHolderSystem::_bombExplosion) .addComponent( From bb7fb53f3182df7430eeabb7d07ad5872ef4132f Mon Sep 17 00:00:00 2001 From: Askou Date: Tue, 15 Jun 2021 09:39:21 +0200 Subject: [PATCH 5/6] fix invisible collision for the 10th in a row --- sources/Map/Map.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sources/Map/Map.cpp b/sources/Map/Map.cpp index f0333198..d00bc90c 100644 --- a/sources/Map/Map.cpp +++ b/sources/Map/Map.cpp @@ -450,14 +450,16 @@ namespace BBM int floor = 2; for (int i = 0; i < width + 1; i++) { - if (map[std::make_tuple(i, 0, height)] == NOTHING && map[std::make_tuple(i, 0, 0)] == NOTHING) { + if (map[std::make_tuple(i, 0, 0)] != UPPERFLOOR && map[std::make_tuple(i, 0, 0)] != HOLE + && map[std::make_tuple(i, 0, 0)] != BUMPER) { floor -= 1; break; } } for (int i = width / 2 - width / 4; i < width / 2 + width / 4 + 1; i++) { for (int j = height / 2 - height / 4; j < height / 2 + height / 4 + 1; j++) { - if (map[std::make_tuple(i, 0, i)] == NOTHING) { + if (map[std::make_tuple(i, 0, j)] != UPPERFLOOR && map[std::make_tuple(i, 0, j)] != HOLE + && map[std::make_tuple(i, 0, j)] != BUMPER) { floor -= 1; break; } From 8f33ec9489dbd8ce6b664df381df870991b369dd Mon Sep 17 00:00:00 2001 From: "arthur.jamet" Date: Tue, 15 Jun 2021 12:51:03 +0200 Subject: [PATCH 6/6] credits: add assets mention + move raylib position --- sources/Runner/CreditScene.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sources/Runner/CreditScene.cpp b/sources/Runner/CreditScene.cpp index d87e47be..fa77c9ff 100644 --- a/sources/Runner/CreditScene.cpp +++ b/sources/Runner/CreditScene.cpp @@ -33,7 +33,7 @@ namespace BBM .addComponent(sounds); auto &raylibLogo = scene->addEntity("raylib logo") - .addComponent(1920 / 4, 1080 / 1.75, 0) + .addComponent(1920 / 3.5, 1080 / 1.75, 0) .addComponent("assets/raylib.png"); auto &raylibText = scene->addEntity("raylib text") .addComponent(1920 / 4, 1080 / 2, 0) @@ -42,8 +42,8 @@ namespace BBM .addComponent(1920 / 4, 1080 / 4, 0) .addComponent("Many Thanks to:", 35, RAY::Vector2(), BLACK); auto &BriansRepo = scene->addEntity("thx brian") - .addComponent(1920 / 3.5, 1080 / 3.5, 0) - .addComponent("Brian Guitteny (and his team)", 35, RAY::Vector2(), BLACK); + .addComponent(1920 / 3.5, 1080 / 3.25, 0) + .addComponent("Brian Guitteny (and his team)\nAssets used by their permission", 35, RAY::Vector2(), BLACK); auto &team = scene->addEntity("team") .addComponent(1920 / 1.5, 1080 / 3.5, 0) .addComponent("Team:\n Zoe Roux\n Clément Le Bihan\n Arthur Jamet\n Louis Auzuret\n Benjamin Henry\n Tom Augier", 35, RAY::Vector2(), BLACK);