#TouhouDanmakufu[Single]
#ScriptVersion[3]
#Title["Rival Dialogue 02"]
#Text["Rival 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 {
	if(GetAreaCommonData("game","team",0) == 0) { renderBoss(33); renderBoss2(34); } 
	if(GetAreaCommonData("game","team",0) == 1) { renderBoss(31); renderBoss2(32); }
	ObjMove_SetPosition(bossObj,-128,-128);
	ObjMove_SetPosition(boss2Obj,GetClipMaxX+128,-128);
	SetCommonData("isDialogue",true);
	SetCommonData("bossAttackType",0);
	SetCommonData("bossCircleType",0);
	SetAutoDeleteObject(true);
	mainTask;
} 

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

@MainLoop {
    boss2X = ObjMove_GetX(boss2Obj);
    boss2Y = ObjMove_GetY(boss2Obj);
    SetCommonData("boss2X", boss2X);
    SetCommonData("boss2Y", boss2Y);
    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,12);
	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-72,100,20,30); 
			ObjMove_SetDestAtWeight(boss2Obj,GetCenterX+72,100,20,30); 
			trigEv++; 
		}
		yield;
	}	
}	

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

	CloseScript(GetOwnScriptID);
}
 