#TouhouDanmakufu[Single]
#ScriptVersion[3]
#Title["Last Word: Reimu"]
#Text["Last Word: Reimu"]
#System["script/thdcs/functions/function_system.txt"]

#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"
#include "script/thdcs/functions/function_cutin.txt"

@Initialize {
	SetCommonData("spellScriptID",GetOwnScriptID);
	
	renderBoss(31);
	setAura(bossObj, 255, 64, 64);
	SetCommonData("bossAttackType", 2);
	SetCommonData("bossCircleType", 0);
	SetCommonData("bossBgType", 0);
	if(GetAreaCommonData("system", "gameLang", 0) == 0) { SetCommonData("cardName","uReimuv"); }
	if(GetAreaCommonData("system", "gameLang", 0) == 1) { SetCommonData("cardName"," Reimu"); }
	setInvulnerableTime(bossObj, 120);

	concenEffect(bossObj, 60, 1, 255, 64, 128);
	cutin(BYAKUREN,cutImgReimu, 0, 0, 1024, 1024, 0.4);

	ObjMove_SetDestAtSpeed(bossObj, 192, 120, 5);

	SetShotAutoDeleteClip(16, 16, 16, 16);
	SetAutoDeleteObject(true);
	mainTask;
} 

@Event { 
	alternative(GetEventType()) 
	case(EV_REQUEST_LIFE) { 
		SetScriptResult(340);
	}
	case(EV_REQUEST_TIMER) { 
		SetScriptResult(61);
	}
	case(EV_REQUEST_SPELL_SCORE) {
	    let spellCardBonus = calculateAndGetSpellCardBonus();
		SetScriptResult(spellCardBonus);
	}	
	case(EV_USER+9999) {
		SetCommonData("spellcardID", "last1");
	}
}

@MainLoop { yield; } 
@Finalize { }  

task mainTask {
	yield;
	scriptEnding;
}

task scriptEnding {
	let allEnemyIDs = []; 
	while(ObjEnemy_GetInfo(bossObj, INFO_LIFE) > 0) {
		yield;
	}
	DeleteShotAll(TYPE_ALL, TYPE_ITEM);
	allEnemyIDs = GetAllEnemyID;
	ascent(i in 0..length(GetAllEnemyID)) {
		Obj_Delete(allEnemyIDs[i]);
	}
	Obj_Delete(bossObj);
	CloseScript(GetOwnScriptID());
}



