X-Git-Url: http://git.localhorst.tv/?p=blobs.git;a=blobdiff_plain;f=src%2Fworld%2Fworld.cpp;h=1b2e058f90d666dfd79d52474ad12ad0fe652686;hp=dd7d28d3d06d34c92095df1a4c126ba8a44e2bd5;hb=475f28f06c9e14912bab8119264e247ef466513d;hpb=e99964b46daba40b1fad1224a42f5ea9f18d1642 diff --git a/src/world/world.cpp b/src/world/world.cpp index dd7d28d..1b2e058 100644 --- a/src/world/world.cpp +++ b/src/world/world.cpp @@ -9,6 +9,7 @@ #include "TileType.hpp" #include "../app/Assets.hpp" +#include "../creature/Composition.hpp" #include "../creature/Creature.hpp" #include "../graphics/Viewport.hpp" #include "../math/const.hpp" @@ -574,5 +575,18 @@ std::vector::const_iterator TileType::FindResource(int r) const return yield; } +std::vector::const_iterator TileType::FindBestResource(const creature::Composition &comp) const { + auto best = resources.cend(); + double best_value = 0.0; + for (auto yield = resources.cbegin(); yield != resources.cend(); ++yield) { + double value = comp.Get(yield->resource); + if (value > best_value) { + best = yield; + best_value = value; + } + } + return best; +} + } }