feat: add mob tooltip

This commit is contained in:
2021-11-04 19:41:47 +01:00
parent 46828263c9
commit 5e2986e298
5 changed files with 60 additions and 0 deletions

View File

@@ -84,6 +84,7 @@ void WorldRenderer::render() {
renderTowers();
renderTileSelect();
detectClick();
renderMobTooltip();
renderPopups();
}
@@ -154,6 +155,33 @@ void WorldRenderer::detectClick() {
}
}
void WorldRenderer::renderMobTooltip() const {
glm::vec2 cursorWorldPos = getCursorWorldPos();
for (game::MobPtr mob : m_World->getMobList()) {
// mob size is currently 1x1 for all mobs
float mobCenterX = mob->getX();
float mobCenterY = mob->getY();
if (cursorWorldPos.x > mobCenterX - 0.5f && cursorWorldPos.x < mobCenterX + 0.5f
&& cursorWorldPos.y > mobCenterY - 0.5f && cursorWorldPos.y < mobCenterY + 0.5f) {
ImGui::BeginTooltip();
ImGui::Text("Sender : %s", m_Client->getPlayerById(mob->getSender()).getName().c_str());
ImGui::Text("Mob HP : %.1f/%i", mob->getHealth(), mob->getStats()->getMaxLife());
ImGui::Text("Mob Type : %s", game::MobFactory::getMobName(mob->getType()).c_str());
ImGui::Text("Mob Level : %i", mob->getLevel());
ImGui::NewLine();
ImGui::Text("Mob Stats :");
ImGui::Text("\tMax health : %i", mob->getStats()->getMaxLife());
ImGui::Text("\tSpeed : %.1f", mob->getStats()->getMovementSpeed());
ImGui::Text("\tDamage : %.1f", mob->getStats()->getDamage());
ImGui::Text("\tMoney cost : %i", mob->getStats()->getMoneyCost());
ImGui::Text("\tEXP cost : %i", mob->getStats()->getExpCost());
ImGui::Text("\tEXP reward : %i", mob->getStats()->getExpReward());
ImGui::EndTooltip();
break;
}
}
}
void WorldRenderer::addTower(game::TowerPtr tower) {
const WorldLoader::RenderData& renderData = WorldLoader::loadTowerModel(tower);
m_TowersCache.addData(tower->getID(), renderData.positions, renderData.colors);