From f4832349efdf06d8a1a410c636045f505efb52f1 Mon Sep 17 00:00:00 2001 From: "chirs241097@gmail.com" Date: Tue, 11 Mar 2014 09:44:43 +0000 Subject: Complete and fix Supernova, add several interfaces. --- levels.h | 54 +++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 43 insertions(+), 11 deletions(-) (limited to 'levels.h') diff --git a/levels.h b/levels.h index cb98b8e..ad4ec17 100644 --- a/levels.h +++ b/levels.h @@ -3191,28 +3191,59 @@ void Levelm1Part12() vector2d snextarg; int snexcnt,snexstep; Target snexTarg; -void Levelm1Part13()//Additive blending +void Levelm1Part13()//"Supernova" { - frameleft=AMinute*2; + frameleft=AMinute*2;PlayerSplit=false; ++bgbrk;if (LOWFPS)bgbrk+=16; if (bgbrk<30)return; - bgbrk=0; + bgbrk=0;towcnt=0; if (!LOWFPS) DBGColor=ColorTransfer(DBGColor,0xFF000000); else for (int i=1;i<=17;++i)DBGColor=ColorTransfer(DBGColor,0xFF000000); if (DBGColor==0xFF000000) { - frameleft=AMinute,++part; - bgdbbrk=re.NextInt(5,20),bgbrk=0; - avabrk=2.0f;avacurbrk=0;snexTarg.Init(0.001,vector2d(400,300)); + snexTarg.Init(0.001,vector2d(400,300)); + ++part;avabrk=12.0f;avacurbrk=0;tbrk=0; snexstep=0;snexcnt=10;snexTarg.TargShow(); } } +void snCircCreator(vector2d p,int cnt,TColors col,bool mode) +{ + if(mode) + for (int i=0;iTimer_GetDelta(); + tbrk+=hge->Timer_GetDelta(); + if((AMinute*2-frameleft)0.016) + { + tbrk=0; + snCircCreator(vector2d(400,300),60,(TColors)re.NextInt(0,7),true); + } + } + else + { + if(tbrk>0.5) + { + tbrk=0; + snCircCreator(vector2d(400,300),27,(TColors)re.NextInt(0,7),false); + } + } switch (snexstep) { case 0: @@ -3223,9 +3254,9 @@ void Levelm1Part14() if(GetDist(snexTarg.targpos,snextarg)<0.01) { snexstep=2; - avabrk=0; - avacurbrk=0.05; - snexcnt=100-(frameleft/(double)(AMinute*2))*50; + avabrk=(frameleft/(double)(AMinute*2))*0.01666+0.01667; + avacurbrk=0; + snexcnt=40-(frameleft/(double)(AMinute*2))*20; } break; case 2: @@ -3233,10 +3264,11 @@ void Levelm1Part14() { if(--snexcnt>0) { - avabrk=0; + avacurbrk=0; + for(int i=0;i<10;++i) bullet[CreateBullet2(snexTarg.targpos.x,snexTarg.targpos.y,2,re.NextDouble(-pi,pi),true)].addblend=true; } - else snexstep=0,avabrk=2,avacurbrk=0; + else snexstep=0,avabrk=(frameleft/(double)(AMinute*2))*1+1.5f,avacurbrk=0; } break; } -- cgit v1.2.3