#include ".\ActivateTown.h"

ActivateTown::ActivateTown(int id) : Event( id )
{
	//aChar = NULL;
}

ActivateTown::~ActivateTown(void)
{
}

void ActivateTown::init( CharacterManager* newCharMgr, TextManager* textMgr, DialogueManager* diaMgr, TriggerManager* trgMgr, SoundManager* _sndMgr ) {
	characterManager = newCharMgr;
	textManager = textMgr;
	dialogueManager = diaMgr;
	triggerManager = trgMgr;
    soundManager = _sndMgr;
}

void ActivateTown::activate( int triggerId, int option ) {
    characterManager->removeEnemies();
	
    Queen* queen;
	Guard* aGuard;
	Soldier* aSoldier;
	Secretary* aSecretary;
	Elf* anElf;

	( ( MainCharacter* ) characterManager->getMainCharacter() )->setLocation( MainCharacter::LOCATION::TOWN );

	switch( option ) {
		case FORDEAS:
			soundManager->stopCurrentBackground();
			soundManager->playSound( 3, true );
			// Activate fordeas peeps
			queen = new Queen( characterManager,characterManager->getCollisionManager(), textManager, dialogueManager, 86, 508, 4 );
			characterManager->addCharacter( queen );

			aSoldier = new Soldier( characterManager,characterManager->getCollisionManager(), textManager, dialogueManager, 59, 487, 2 );
			characterManager->addCharacter( aSoldier );

			aGuard = new Guard( characterManager,characterManager->getCollisionManager(), textManager, dialogueManager, 80, 437, 5 );
			characterManager->addCharacter( aGuard );

			aGuard = new Guard( characterManager,characterManager->getCollisionManager(), textManager, dialogueManager, 105, 486, 6 );
			characterManager->addCharacter( aGuard );

			aSecretary = new Secretary( characterManager,characterManager->getCollisionManager(), textManager, dialogueManager, 82, 488, 0 );
			characterManager->addCharacter( aSecretary );

			anElf = new Elf( characterManager,characterManager->getCollisionManager(), textManager, dialogueManager, 88, 469, 1 );
			characterManager->addCharacter( anElf );
			break;
		case OASIS:
			soundManager->stopCurrentBackground();
			soundManager->playSound( 2, true );
			characterManager->getMainCharacter()->setHP( characterManager->getMainCharacter()->getHP_MAX() );
            characterManager->getMainCharacter()->setMP( characterManager->getMainCharacter()->getMP_MAX() );
			break;
	}
	
}

void ActivateTown::deactivate() {
    soundManager->stopCurrentBackground();
	soundManager->playSound( 4, true );
	characterManager->removeTownpeople();
	triggerManager->makeReady( eventId );
	( ( MainCharacter* ) characterManager->getMainCharacter() )->setLocation( MainCharacter::LOCATION::WORLD );
}

