Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #TouhouDanmakufu[Single]
- #ScriptVersion[3]
- #Title["spellcard4"]
- #Text["Attaque8"]
- #include"script/default_system/Default_ShotConst.txt"
- #include"script/default_system/Default_Effect.txt"
- #include"script/Team_9/fonc_predef/timeout.txt"
- #include"script/Team_9/fonc_predef/draw_circle_boss.txt"
- let objEnemy;
- let frame=-120;
- let shot1="script/default_system/se/shot1.wav";
- let exp_item="script/default_system/se/exp_item.wav";
- let laser4="script/default_system/se/laser4.wav";
- let charge="script/default_system/se/charge.wav";
- let vit_circle=0;
- let deploi_circle=1;
- // pattern spell 2
- let angle_balaie;
- let angle_sauv;
- let compte_balaie=0;
- let varV=5;
- let varVB=2.1;
- let delaie=25;
- let feu_lib=0;
- let objScene = GetEnemyBossSceneObjectID();
- @Event {
- alternative(GetEventType())
- case(EV_REQUEST_LIFE){
- SetScriptResult(8000);
- }
- case(EV_REQUEST_TIMER) {
- SetScriptResult(90);
- }
- case(EV_REQUEST_SPELL_SCORE){
- SetScriptResult(1000000);
- }
- }
- @Initialize {
- objEnemy = ObjEnemy_Create(OBJ_ENEMY_BOSS);
- ObjEnemy_Regist(objEnemy);
- //demarre la spellcard
- ObjEnemyBossScene_StartSpell(objScene);
- ObjEnemyBossScene_SetSpellTimer(objEnemy,90);
- Tafficher_boss;
- //Ce qui suit ajoute le spellcard bonus au score.
- if(ObjEnemyBossScene_GetInfo(objScene, INFO_PLAYER_SHOOTDOWN_COUNT)+ObjEnemyBossScene_GetInfo(objScene, INFO_PLAYER_SPELL_COUNT) == 0){
- AddScore(ObjEnemyBossScene_GetInfo(objScene, INFO_SPELL_SCORE));
- }
- LoadSound(shot1);
- }
- @MainLoop {
- if(frame==-60){
- ObjMove_SetDestAtWeight(objEnemy, GetStgFrameWidth()/2, 80, 15,25); // FAIRE DEPLACEMENT
- }
- let angleToPlayer = atan2(GetPlayerY() - ObjMove_GetY(objEnemy), GetPlayerX() - ObjMove_GetX(objEnemy));
- if(frame>=0 && feu_lib>=40){
- ObjEnemy_SetIntersectionCircleToShot(objEnemy, ObjMove_GetX(objEnemy), ObjMove_GetY(objEnemy), 32);
- ObjEnemy_SetIntersectionCircleToPlayer(objEnemy, ObjMove_GetX(objEnemy), ObjMove_GetY(objEnemy), 24);
- }
- if(ObjEnemy_GetInfo(objEnemy, INFO_LIFE)>=500){
- if((frame>=30 && frame%2==0 && compte_balaie%12==0) || frame%2==0 && (compte_balaie%12>=1 && compte_balaie%12<=5 )){
- PlaySE(shot1);
- }
- if(frame==30){
- if(compte_balaie%12==0){
- angle_balaie=angleToPlayer-rand(73,77);
- ascent(j in 0..14){
- loop(60){
- //////////////////////////////
- //ASPIRE(papillon,varV,varVB,angle_balaie,j,delaie);
- Bullet(ObjMove_GetX(objEnemy), ObjMove_GetY(objEnemy),varV-varVB , angle_balaie+ 2*modc(j,2),delaie);
- //////////////////////////////
- varV=varV-0.03;
- delaie=delaie+5;
- angle_balaie=angle_balaie+6;
- }
- varV=5;
- delaie=25;
- varVB=varVB+0.25;
- }
- varVB=2.1;
- }
- }
- }
- // En dessous , tire random
- if(compte_balaie%12<=9 && compte_balaie%12>=8 && frame%3==0){
- if(feu_lib>=40){
- CreateShotA2(ObjMove_GetX(objEnemy), ObjMove_GetY(objEnemy),0.5, angleToPlayer+rand(-32,32),0.1,4,277,5);
- }
- feu_lib++;
- }
- if(frame==60){
- compte_balaie++;
- frame=0;
- }
- vit_circle++;
- draw_circle_boss(3,objEnemy,vit_circle/2,2.5/((cos(vit_circle)+2) +sin(vit_circle)+2),(vit_circle/2-30)^1.5);
- Timeout;
- frame++;
- TEnd;
- }
- ////////////////////////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////////////////////////
- task Tafficher_boss{
- let imgboss = "script/default_system/img/boss.png";
- ObjPrim_SetTexture(objEnemy, imgboss);
- ObjSprite2D_SetSourceRect(objEnemy, 80, 0, 113, 64);
- ObjSprite2D_SetDestCenter(objEnemy);
- ObjMove_SetDestAtFrame(objEnemy, GetStgFrameWidth()/2, 140, 1);
- }
- task TEnd{
- if(ObjEnemy_GetInfo(objEnemy, INFO_LIFE) <= 0){
- Obj_Delete(objEnemy);
- Obj_Delete(circle);
- //DeleteShotAll(TYPE_ALL, TYPE_ITEM);
- //CloseScript(GetOwnScriptID());
- return;
- }
- }
- /*
- task ASPIRE(papillon,varV,varVB,angle_balaie,j,delaie){
- let savX=-5*sin(angle_balaie+ 2*modc(j,2));
- let savY=-5*cos(angle_balaie+ 2*modc(j,2));
- while(ObjEnemy_GetInfo(objEnemy, INFO_LIFE)>1000){
- savX=savX+(varV-varVB)*sin(angle_balaie+ 2*modc(j,2));
- savY=savY+(varV-varVB)*cos(angle_balaie+ 2*modc(j,2));
- yield;
- }
- CreateShotA1(ObjMove_GetX(objEnemy)+20*savX,ObjMove_GetY(objEnemy)+20*savY,-2,ObjMove_GetAngle(papillon),105,5);
- }
- */
- task Bullet(x, y, v, angle,delaie) {
- let papillon=CreateShotA1(x,y,v,angle,107,delaie);
- ObjShot_SetSpellResist(papillon, true);
- ObjShot_SetAutoDelete(papillon,false);
- change(papillon);
- }
- task change(papillon){
- while(ObjEnemy_GetInfo(objEnemy, INFO_LIFE)>=500){
- yield;
- }
- ObjMove_SetSpeed(papillon, 3);
- ObjMove_SetAngle(papillon, ObjMove_GetAngle(papillon) + 180);
- //while ((absolute(GetStgFrameWidth()/2-ObjMove_GetX(papillon))>=60) && (absolute(80-ObjMove_GetX(papillon))>=60)){
- // yield;
- //}
- //ObjShot_SetAutoDelete(papillon,true);
- //Obj_Delete(papillon);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement