#include "NtOverbuildServer.h"
#include "EntityManager.h"
#include "ePlayerFlag.h"

void NtOverbuildServer::SetVariables(Entity* self) {
	self->SetVar<float_t>(m_SpyProximityVariable, 30.0f);

	self->SetVar<SpyData>(m_SpyDataVariable, {
			ePlayerFlag::NT_FACTION_SPY_OVERBUILD, 13891, 1320
		});

	self->SetVar<std::vector<SpyDialogue>>(m_SpyDialogueTableVariable, {
			{ "OVERBUILD_NT_CONVO_1", 0 },
			{ "OVERBUILD_NT_CONVO_2", 1 },
			{ "OVERBUILD_NT_CONVO_3", 0 },
			{ "OVERBUILD_NT_CONVO_4", 1 },
			{ "OVERBUILD_NT_CONVO_5", 0 },
			{ "OVERBUILD_NT_CONVO_6", 1 },
			{ "OVERBUILD_NT_CONVO_7", 0 },
		});

	// Find the second object Dr. Overbuild interacts with
	LWOOBJID otherConvoObjectID = LWOOBJID_EMPTY;
	for (auto* otherConvoObject : Game::entityManager->GetEntitiesInGroup(GeneralUtils::UTF16ToWTF8(self->GetVar<std::u16string>(m_OtherEntitiesGroupVariable)))) {
		otherConvoObjectID = otherConvoObject->GetObjectID();
		break;
	}

	// If there's an alternating conversation, indices should be provided using the conversationID variables
	self->SetVar<std::vector<LWOOBJID>>(m_SpyCinematicObjectsVariable, { self->GetObjectID(), otherConvoObjectID });
}