allow custom orbit rotations directions

This commit is contained in:
2026-06-17 20:36:11 +02:00
parent 1324a320e2
commit 0cf3d64983
8 changed files with 139 additions and 56 deletions

View File

@@ -5,7 +5,6 @@
#include "EntityAdmin.h"
#include "ModuleOwnerComponent.h"
#include "MovementIntentComponent.h"
#include "OrbitMath.h"
#include "PositionComponent.h"
#include "SelectedBehaviorComponent.h"
#include "tracing.h"
@@ -26,14 +25,14 @@ void AttackExecutor::execute(EntityAdmin& admin)
if (!attack.currentTarget) { return; }
const entt::entity t = *attack.currentTarget;
QVector2D dest = pos.value;
QVector2D center = pos.value;
float radius = 0.0f;
if (admin.isValid(t) && admin.hasAll<PositionComponent>(t))
{
const QVector2D targetPos = admin.get<PositionComponent>(t).value;
dest = OrbitMath::computeOrbitDestination(pos.value, targetPos,
attack.orbitRadius_tiles);
center = admin.get<PositionComponent>(t).value;
radius = attack.orbitRadius_tiles;
}
intent = MovementIntentComponent{true, dest};
intent = MovementIntentComponent{true, center, radius};
});
// Weapons: assign the behavior target only if it is within this weapon's range.