#include ".\enemyspawner.h"

EnemySpawner::EnemySpawner(void)
{
}

EnemySpawner::~EnemySpawner(void)
{
}

void EnemySpawner::spawnEnemies() {
	int mainX = characterManager->getMainCharacter()->getTile()->x;
	int mainY = characterManager->getMainCharacter()->getTile()->y;

	int numEnemies = rand() % 4;
	while ( numEnemies > 0 ) {
		int xOffset = ( rand() % 4 ) + 3;
		int yOffset = ( rand() % 4 ) + 3;

		if ( rand() % 2 ) {
			xOffset = -xOffset;
		}
		if ( rand() % 2 ) {
			yOffset = -yOffset;
		}

		xOffset += mainX;
		yOffset += mainY;

		TILE* aTile = new TILE();
		aTile->x = xOffset;
		aTile->y = yOffset;

		int textureId = screenManager->getTextureId( aTile );

		if ( aTile ) {
			delete aTile;
			aTile = NULL;
		}

		if ( screenManager->getWalkability( textureId, NULL, false ) ) {
			PinkOctopus* octopus = new PinkOctopus( characterManager,characterManager->getCollisionManager(), textManager, dialogueManager, xOffset, yOffset, -1 );
			characterManager->addCharacter( octopus );
		}

		numEnemies--;
	}
}

void EnemySpawner::init( CharacterManager* _characterManager, TextManager* _textManager, DialogueManager* _dialogueManager, ScreenManager* _screenManager ) {
	characterManager = _characterManager;
	textManager = _textManager;
	dialogueManager = _dialogueManager;
	screenManager = _screenManager;
}
