+void Creature::Cache() noexcept {
+ double dex_fact = DexertyFactor();
+ perception_range = 3.0 * dex_fact + size;
+ perception_range_squared = perception_range * perception_range;
+ perception_omni_range = 0.5 * dex_fact + size;
+ perception_omni_range_squared = perception_omni_range * perception_omni_range;
+ // this is the cosine of half the angle, so 1.0 is none, -1.0 is perfect
+ perception_field = 0.8 - dex_fact;
+}
+