]> git.localhorst.tv Git - blobs.git/blobdiff - src/world/world.cpp
overhaul need system
[blobs.git] / src / world / world.cpp
index dd7d28d3d06d34c92095df1a4c126ba8a44e2bd5..1b2e058f90d666dfd79d52474ad12ad0fe652686 100644 (file)
@@ -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<TileType::Yield>::const_iterator TileType::FindResource(int r) const
        return yield;
 }
 
+std::vector<TileType::Yield>::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;
+}
+
 }
 }