fix: TakeCover is now more likely to find matching cover
This commit is contained in:
parent
a5bde58e57
commit
d7dadac070
|
@ -95,6 +95,7 @@ bool TakeCover::procedural_is_possible(goap::ActorWorldState *context) const {
|
||||||
for(NavMarker *marker : room->get_markers())
|
for(NavMarker *marker : room->get_markers())
|
||||||
if(TakeCover::is_marker_cover_from(marker, target_position, context_position))
|
if(TakeCover::is_marker_cover_from(marker, target_position, context_position))
|
||||||
return true;
|
return true;
|
||||||
|
gd::UtilityFunctions::print("!!! no cover marker found for ", context->get_path());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -128,8 +129,7 @@ bool TakeCover::is_marker_cover_from(NavMarker *marker, gd::Vector3 const &targe
|
||||||
gd::Vector3 const marker_position{marker->get_global_position()};
|
gd::Vector3 const marker_position{marker->get_global_position()};
|
||||||
float const distance_to_target{target_position.distance_to(context_position)};
|
float const distance_to_target{target_position.distance_to(context_position)};
|
||||||
return marker->get_marker_type() == MarkerType::Cover
|
return marker->get_marker_type() == MarkerType::Cover
|
||||||
&& marker->get_global_basis().get_column(2).dot(marker_position - target_position) < -2.f
|
&& marker->get_global_basis().get_column(2).dot(marker_position - target_position) < -2.f;
|
||||||
&& context_position.distance_to(marker_position) < (distance_to_target * 2.f);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
float TakeCover::score_cover_marker(class NavMarker* marker, const gd::Vector3& target_position, const gd::Vector3& context_position) const {
|
float TakeCover::score_cover_marker(class NavMarker* marker, const gd::Vector3& target_position, const gd::Vector3& context_position) const {
|
||||||
|
|
Loading…
Reference in a new issue