#TouhouDanmakufu[Single]
#ScriptVersion[3]
#Title["Afro Dialogue 01"]
#Text["Afro Dialogue 01"]

#include "script/thdcs/system/shotlibrary.txt"
#include "script/thdcs/functions/function_common.txt"
#include "script/thdcs/functions/function_global.txt"
#include "script/thdcs/functions/function_bosseff.txt"

@Initialize {
	renderBoss(2);
	SetCommonData("isDialogue",true);
	SetCommonData("bossAttackType",0);
	SetCommonData("bossCircleType",0);
	ObjMove_SetPosition(bossObj,-128,-128);
	SetAutoDeleteObject(true);
	mainTask;
} 

@Event { 
	alternative(GetEventType()) 
	case(EV_REQUEST_LIFE) { 
		SetScriptResult(0);
	}
} 

@MainLoop { yield; } 
@Finalize { } 

task mainTask { 
	yield;
	eventListener; 
	let path = "script/thdcs/functions/function_dialogue.txt";
	let id = LoadScript(path);
	StartScript(id);
	let dialogueScriptID = GetCommonData("dialogueScriptID",0);
	NotifyEvent(dialogueScriptID,EV_USER,7);
	while(!IsCloseScript(id)) {
		yield;
	}	
	
	scriptEnding;
} 

task eventListener {
	let trigEv = 0;
	while(!Obj_IsDeleted(bossObj)) {
		if(GetCommonData("diagEvent",0) == 1 && trigEv == 0) { ObjMove_SetDestAtWeight(bossObj,GetCenterX,100,20,30); trigEv++; }
		if(GetCommonData("diagEvent",0) == 2 && trigEv == 1) { ObjMove_SetDestAtSpeed(bossObj,GetCenterX,-256,5); trigEv++; }
		if(GetCommonData("diagEvent",0) == 3 && trigEv == 2) { StopMusic(GetAreaCommonData("sound","song",0)); PlayMusic(BGM_BOSS02); trigEv++; }
		yield;
	}	
}	

task scriptEnding {
	ObjEnemy_SetLife(bossObj,-1);
	DeleteShotAll(TYPE_ALL, TYPE_ITEM);
	Obj_Delete(bossObj);

	CloseScript(GetOwnScriptID);
}
 