Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /////////////////////////////////////////////////////
- //==================================================
- //
- // Requiem of Scarlet Devil
- //
- // ( c ) 2011 - 2012
- //
- //
- //==================================================
- ////////////////////////////////////////////////////
- #TouhouDanmakufu
- #ScriptVersion[ 2 ]
- #Title[ Sanae -
- Nonspell 01 ]
- #Text[ Sanae -
- Simple Barrage of Sanae's Pattern ]
- ////////////////////////////////////////////////////
- ///////////////////////////////////////////////////
- script_enemy_main {
- ////////////////////////////////////////////////////
- ////////////////////////////////////////////////////
- #include_function".\UserShotCtC.dnh";
- #include_function".\IMAGE\CHAR\DOT\index.dnh";
- #include_function".\SOUND\SE\index.dnh";
- #include_function".\DATA\lib_anime_Reimu.dnh";
- #include_function".\INCLUDE\BOSS\Sanae.dnh";
- ////////////////////////////////////////////////////
- ///Declaring Extra Variables
- ////////////////////////////////////////////////////
- let CtCShot = GetCurrentScriptDirectory ~ "shot_All.dnh";
- ////////////////////////////////////////////////////
- ////////////////////////////////////////////////////
- @Initialize {
- LoadGraphic( CL_BOSS_SANAE );
- LoadSE( Shot01 );
- LoadSE( Shot02 );
- LoadSE( LaserShotA );
- SetMovePosition01( FLAN_CENTER_X, FLAN_CENTER_Y - REMILIA, 1.5 );
- SetLife( CL_LIFE_VALUE );
- SetTimer( CL_SANAE_TIMER );
- SetDamageRate( CL_DAMAGE_RATE_SHOT, CL_DAMAGE_RATE_BOMB );
- LoadUserShotData( CtCShot );
- SanaeTask;
- }
- /////////////////////////////////////////////////////
- /////////////////////////////////////////////////////
- @MainLoop {
- SetCollisionA( GetX, GetY, 32 );
- SetCollisionA( GetX, GetY, 16 );
- yield;
- }
- /////////////////////////////////////////////////////
- /////////////////////////////////////////////////////
- @DrawLoop {
- DrawBoss( CL_BOSS_SANAE );
- }
- //////////////////////////////////////////////////////
- //////////////////////////////////////////////////////
- @Finalize {
- DeleteGraphic( CL_BOSS_SANAE );
- }
- ///////////////////////////////////////////////////////
- ///////////////////////////////////////////////////////
- // MainTask RoSD
- ///////////////////////////////////////////////////////
- ///////////////////////////////////////////////////////
- task SanaeTask {
- Moriyashot;
- yield;
- }
- task Moriyashot {
- let _nFunction = 0;
- let _nPlus = 0;
- let _nRadius = 75;
- let _nAscent = 5;
- let _nAscentX = 2;
- let _nAdd = 19;
- let _nAddX = 4;
- let _nSide = 1;
- let _nAngle = GetAngleToPlayer + 45 * _nSide;
- let _nFlanX = GetX + _nRadius * cos( _nAngle );
- let _nFlanY = GetY + _nRadius * sin( _nAngle );
- let _nFunctionX = 0;
- let _nBulletTime = _nAscentX * _nAdd/_nAddX + 10;
- let _nSideX = 1;
- ascent( i in 0.._nAscent ){
- let nFlanX = GetX + _nRadius * cos( _nAngle );
- let nFlanY = GetX + _nRadius * sin( _nAngle );
- let nFlanXX = GetX + _nRadius * cos( _nAngle + 3/_nAscent*360 );
- let nFlanYY = GetY + _nRadius * sin( _nAngle + 3/_nAscent*360 );
- let _nRemi = ((nFlanXX - nFlanX )^2+( nFlanYY - nFlanY)^2)^0.5;
- let _nRFunction = atan2( nFlanYY - nFlanY, nFlanXX - nFlanX );
- ascent( z in 0..5 ){
- PlaySE( Shot01 );
- SetAction( ACT_SHOT_A, 30 );
- CreateShotA( 0, nFlanX, nFlanY, 10 );
- SetShotDataA( 0, 0, 0, -_nAngle+z*360/5, 0, 0, 0, US_BALL_S_BLUE );
- SetShotDataA( 0, _nBulletTime, 5, NULL, 0, -5/45, 0, NULL );
- SetShotDataA( 0, _nBulletTime+60, 0, NULL, _nFunction, 0, 0, NULL );
- SetShotDataA( 0, _nBulletTime+61, 0, NULL, 0, 2/45, 2, NULL );
- FireShot( 0 );
- _nFunction+=18;
- _nFunction%=360;
- }
- }
- }
- let _nAngle = GetAngleToPlayer + 10;
- let _nFlanX = GetX;
- let _nFlanY = GetY;
- loop {
- ascent( i in 0..100 ){
- CreateShot01( _nFlanX, _nFlanY, 1.8, _nAngle+i*10-20, US_BALL_M_GREEN, 10 );
- PlaySE( Shot02 );
- SetAction( ACT_SHOT_A, 30 );
- wait( 180 );
- }
- }
- }
- SetMovePosition01( FLAN_CENTER_X - REMILIA, FLAN_CENTER_Y + REMILIA, 1.5 );
- Wait( 120 );
- SetMovePosition01( FLAN_CENTER_X + 50, FLAN_CENTER_Y - 50, 1.5 );
- wait( 240 );
- SetMovePosition01( FLAN_CENTER_X + FLAN_DEFAULT_X, FLAN_CENTER_Y + 25, 1.5 );
- Wait( 360 );
- SetMovePosition01( FLAN_CENTER_X, FLAN_CENTER_Y - REMILIA, 1.5 );
- Wait( 480 );
- }
- }
- function wait( w ){
- loop( w ) { yield; }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment