The Snivy Video Game Is Complete
This commit is contained in:
49
src/window/stats.cpp
Normal file
49
src/window/stats.cpp
Normal file
@@ -0,0 +1,49 @@
|
||||
#include "stats.h"
|
||||
#include <format>
|
||||
|
||||
using namespace game::resource;
|
||||
|
||||
namespace game::window
|
||||
{
|
||||
void Stats::update(Resources& resources, GameData& gameData, Play& play, Character& character)
|
||||
{
|
||||
ImGui::PushFont(resources.font.get(), Font::BIG);
|
||||
ImGui::Text("Snivy");
|
||||
ImGui::PopFont();
|
||||
|
||||
ImGui::Separator();
|
||||
|
||||
auto& system = gameData.measurementSystem;
|
||||
auto weight = character.weight_get(system);
|
||||
auto weightUnit = system == MeasurementSystem::IMPERIAL ? "lbs" : "kg";
|
||||
|
||||
ImGui::Text("Weight: %0.2f %s (Stage: %i)", weight, weightUnit, character.weightStage + 1);
|
||||
ImGui::Text("Capacity: %0.0f (Max: %0.0f)", character.capacity, character.max_capacity());
|
||||
ImGui::Text("Digestion Rate: %0.2f%%/sec", character.digestion_rate_second_get());
|
||||
ImGui::Text("Eating Speed: %0.2fx", character.eatSpeedMultiplier);
|
||||
|
||||
ImGui::SeparatorText("Totals");
|
||||
|
||||
ImGui::Text("Total Calories Consumed: %0.0f", character.totalCaloriesConsumed);
|
||||
|
||||
ImGui::Text("Total Weight Gained: %0.2f %s",
|
||||
system == MeasurementSystem::IMPERIAL ? character.totalWeightGained * KG_TO_LB
|
||||
: character.totalWeightGained,
|
||||
weightUnit);
|
||||
ImGui::Text("Food Items Eaten: %i", character.foodItemsEaten);
|
||||
|
||||
ImGui::SeparatorText("Play");
|
||||
|
||||
ImGui::Text("Best: %i pts (%ix)", play.highScore, play.comboBest);
|
||||
ImGui::Text("Total Plays: %i", play.totalPlays);
|
||||
|
||||
for (int i = 0; i < Play::GRADE_COUNT; i++)
|
||||
{
|
||||
auto& value = play.gradeCounts[(Play::Grade)i];
|
||||
auto string = std::format("{}", Play::GRADE_STATS_STRINGS[i]);
|
||||
ImGui::Text("%s: %i", string.c_str(), value);
|
||||
}
|
||||
|
||||
ImGui::Text("Score: %0.2f%%", play.accuracy_score_get());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user