
task Powor	//power̒lω^XNBoAP񕜁B
{
let CollTimeAttenuate=1;
loop
{

if(CoolTime>0)
{
	if(OnBomb)
	{
	CollTimeAttenuate=0.5;
	}
}
else
{
	CollTimeAttenuate=1.0;
}

if(OnEvent==false)
{
	if(CardPower<3000)
	{
	CardPowerReCharge+=0.1*(1+0.05*ItemCollectLevel)*CollTimeAttenuate;
	}
	else if(CardPower<4000)
	{
	CardPowerReCharge+=0.1*(1+0.05*ItemCollectLevel)*CollTimeAttenuate*0.7;
	}
	else if(CardPower<5000)
	{
	CardPowerReCharge+=0.1*(1+0.05*ItemCollectLevel)*CollTimeAttenuate*0.5;
	}
}

if(CardPower<3000)
{
CardPower+=CardPowerReCharge*(1+0.05*ItemCollectLevel)*CollTimeAttenuate;
}
else if(CardPower<4000)
{
CardPower+=CardPowerReCharge*0.7*(1+0.05*ItemCollectLevel)*CollTimeAttenuate;
}
else if(CardPower<5000)
{
CardPower+=CardPowerReCharge*0.5*(1+0.05*ItemCollectLevel)*CollTimeAttenuate;
}
CardPowerReCharge=0;
if(length(CardDeck)>=5)
{
if(CardPower>5000){CardPower=5000;}
}
else
{
if(CardPower>length(CardDeck)*1000){CardPower=length(CardDeck)*1000;}
}
	if(GetKeyState(VK_USER)==KEY_PUSH && CardPower/1000>=2)
	{
		let FrontCard=CardDeck[0..floor(CardPower/1000)];
		let BihindCard=CardDeck[floor(CardPower/1000)..length(CardDeck)];
		let FrontTopCard;
		FrontTopCard=FrontCard[0];
		FrontCard=erase(FrontCard,0);
		FrontCard=FrontCard~[FrontTopCard];
		CardDeck=FrontCard~BihindCard;

	}

if(miss<GetMissCount)
{//~XƂɈs
	let SaveCardPower=CardPower;
	while(MissTime>0){yield;}
	CardPower=0;
	CardPower+=SaveCardPower*(0.4+0.1*PennySaved);
	miss+=1;
	SetPlayerInvincibility(180);
	OnMissAttack=false;
	CardSettingTask;

	ShotLevel=0;
	GrazeLevel=0;
	BorderLevel=0;
	ItemCollectLevel=0;
	SpeedLevel=0;;
	CardEffectLevel=0;
	HeavenlyDropsCount=0;
	CoolTime=0;
}

yield;
}
}
///////////////////////////////////////////////////////////////////////
task GrazeCheck
{
	let GrazeInCrease=5;
	let OldGraze=0;
	loop
	{
		let Graze=GetGraze-OldGraze;
		if(Graze> 0)
		{
			loop(Graze)
			{
				CardPowerReCharge+=GrazeInCrease;
				if(GrazeInCrease>0.5)
				{
				GrazeInCrease-=0.05;
				}
			}
		}
		OldGraze=GetGraze;
		if(Graze<0)
		{
			OldGraze=0;
		}
		if(GrazeInCrease<5)
		{
			GrazeInCrease+=0.01;
		}
		if(GrazeInCrease>5)
		{
			GrazeInCrease=5;
		}
	yield;
	}
}

//////////////////////////////////////////////
task EnemyCheck
{
let CardPlus=10;
loop
{
	ascent(enemy in EnumEnemyBegin..EnumEnemyEnd)
	{
		let enemyID = EnumEnemyGetID(enemy);
		let ex=GetEnemyInfoDefault(enemyID, ENEMY_X,224);
		let ey=GetEnemyInfoDefault(enemyID, ENEMY_Y,240);
		let enemyLife =GetEnemyInfoDefault(enemyID, ENEMY_LIFE,-1);
		if(enemyLife==0)
		{
			CardPowerReCharge+=CardPlus;
			if(CardPlus>0.1)
			{
				CardPlus-=0.2;
			}
		}
	}
	if(CardPlus<10)
	{
	CardPlus+=0.1;
	}
yield;
}
}

/////////////////////////////////////////////////////////////////////////////

