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

#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);
	if(GetAreaCommonData("game","fightIku",false)) { 
		renderBoss2(20);
		ObjMove_SetPosition(boss2Obj,-128,-128);
	}
	SetCommonData("bossAttackType",0);
	SetCommonData("bossCircleType",0);
	SetAutoDeleteObject(true);
	mainTask;
} 

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

@MainLoop { yield; } 
@Finalize { } 

task mainTask { 
	yield;
	if(GetAreaCommonData("game","fightIku",false)) { 
		SetCommonData("isDialogue",true);
		eventListener; 
		let path = "script/thdcs/functions/function_dialogue.txt";
		let id = LoadScript(path);
		StartScript(id);
		let dialogueScriptID = GetCommonData("dialogueScriptID",0);
		NotifyEvent(dialogueScriptID,EV_USER,8);
		while(!IsCloseScript(id)) {
			yield;
		}	
	}
	scriptEnding;
} 

task eventListener {
	let trigEv = 0;
	while(!Obj_IsDeleted(bossObj)) {
		if(GetCommonData("diagEvent",0) == 1 && trigEv == 0) { ObjMove_SetDestAtWeight(boss2Obj,GetCenterX-64,100,20,30); trigEv++; }
		yield;
	}	
}	

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

	CloseScript(GetOwnScriptID);
}