Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "./../default_system/SE_ShotConst.dnh"
- task CreateStageEnemyA1(x, y, life, speed, angle, startVelocty, velocity, endVelocity, shotType, deleteTime){
- let objImage = GetModuleDirectory() ~ "script/img/enemy/enemFairy.png";
- let counter = 0;
- let xMin = -32;
- let xMax = GetStgFrameWidth + 32;
- let yMin = -32;
- let yMax = GetStgFrameHeight + 0;
- let objEnemy;
- let enemyX;
- let enemyY;
- TInitialize();
- task TInitialize(){
- objEnemy = ObjEnemy_Create(OBJ_ENEMY);
- ObjEnemy_Regist(objEnemy);
- ObjEnemy_SetLife(objEnemy, life);
- SetDamageRateAtFrame(objEnemy, 30, 100, 100);
- ObjMove_SetPosition(objEnemy, x, y);
- ObjMove_SetAngle(objEnemy, angle);
- ObjMove_SetSpeed(objEnemy, speed);
- ObjMove_AddPatternA2(objEnemy, startVelocty, NO_CHANGE, NO_CHANGE, 0, velocity,0);
- ObjMove_AddPatternA2(objEnemy, endVelocity, NO_CHANGE, NO_CHANGE, 0, 0, 0);
- TMainLoop();
- TDraw();
- TMainTask();
- }
- task TMainLoop(){
- while(deleteTime >= counter && ObjEnemy_GetInfo(objEnemy, INFO_LIFE) > 0 && (ObjMove_GetX(objEnemy) > xMin && ObjMove_GetX(objEnemy) < xMax && ObjMove_GetY(objEnemy) > yMin && ObjMove_GetY(objEnemy) < yMax)){
- ObjEnemy_SetIntersectionCircleToShot(objEnemy, ObjMove_GetX(objEnemy), ObjMove_GetY(objEnemy), 12);
- ObjEnemy_SetIntersectionCircleToPlayer(objEnemy, ObjMove_GetX(objEnemy), ObjMove_GetY(objEnemy) - 2, 8);
- enemyX = ObjMove_GetX(objEnemy);
- enemyY = ObjMove_GetY(objEnemy);
- counter++;
- yield;
- }
- TFinalize();
- }
- task TMainTask(){
- if(shotType == "1"){
- while(!Obj_IsDeleted(objEnemy)){
- CreateCircleRing(enemyX, enemyY, 2, 45, 20, 15, 12);
- loop(30){yield;}
- yield;
- }
- task CreateCircleRing(x, y, speed, angle, graphic, delay, amt){
- let angleT = angle;
- loop(amt){
- CreateShotA1(x, y, speed, angleT, graphic, delay);
- angleT += 360/amt;
- }
- }
- }
- }
- task TDraw(){
- ObjPrim_SetTexture(objEnemy, objImage);
- Obj_SetRenderPriorityI(objEnemy, 25);
- ObjRender_SetBlendType(objEnemy, BLEND_ALPHA);
- ObjRender_SetAngleXYZ(objEnemy, 0, 0, 0);
- ObjRender_SetScaleXYZ(objEnemy, 0.55, 0.55, 0);
- ObjRender_SetAlpha(objEnemy, 255);
- ObjSprite2D_SetSourceRect(objEnemy, 0, 0, 96, 64); //96, 96
- ObjSprite2D_SetDestCenter(objEnemy);
- let left = 96; let top = 64; let right = 96; let bottom = 64;
- let animFrame = 0; let animFrame2 = 0;
- while(!Obj_IsDeleted(objEnemy)){
- //ObjRender_SetPosition(objEnemy, GetPlayerX, GetPlayerY, 0);
- if(speed == 0 || ((angle == 90 || angle == 270) && velocity == 0)){
- if(animFrame < 15) { ObjSprite2D_SetSourceRect(objEnemy,left*0, top*0, right*1, bottom*1); }
- if(animFrame >= 15 && animFrame < 30) { ObjSprite2D_SetSourceRect(objEnemy,left*1, top*0, right*2, bottom*1); }
- if(animFrame >= 30 && animFrame < 45) { ObjSprite2D_SetSourceRect(objEnemy,left*2, top*0, right*3, bottom*1); }
- if(animFrame >= 45) { ObjSprite2D_SetSourceRect(objEnemy,left*3, top*0, right*4, bottom*1); }
- ObjRender_SetAngleXYZ(objEnemy, 0, 0, 0);
- }
- else if(cos(angle) < 0 && speed > 0){ //left
- ObjRender_SetAngleY(objEnemy, 180);
- if(animFrame2 < 15) { ObjSprite2D_SetSourceRect(objEnemy,left*0, top*1, right*1, bottom*2); }
- if(animFrame2 >= 15 && animFrame2 < 30) { ObjSprite2D_SetSourceRect(objEnemy,left*1, top*1, right*2, bottom*2); }
- if(animFrame2 >= 30 && animFrame2 < 45) { ObjSprite2D_SetSourceRect(objEnemy,left*2, top*1, right*3, bottom*2); }
- if(animFrame2 >= 45 && animFrame2 < 60) { ObjSprite2D_SetSourceRect(objEnemy,left*3, top*1, right*4, bottom*2); }
- if(animFrame2 >= 60 && animFrame2 < 75) { ObjSprite2D_SetSourceRect(objEnemy,left*0, top*2, right*1, bottom*3); }
- if(animFrame2 >= 75 && animFrame2 < 90) { ObjSprite2D_SetSourceRect(objEnemy,left*1, top*2, right*2, bottom*3); }
- if(animFrame2 >= 90 && animFrame2 < 105) { ObjSprite2D_SetSourceRect(objEnemy,left*2, top*2, right*3, bottom*3); }
- if(animFrame2 >= 105) { ObjSprite2D_SetSourceRect(objEnemy,left*3, top*2, right*4, bottom*3); }
- ObjRender_SetAngleXYZ(objEnemy, 0, 0, 0);
- }
- else if(cos(angle) > 0 && speed > 0){ //right
- if(animFrame2 < 15) { ObjSprite2D_SetSourceRect(objEnemy,left*0, top*1, right*1, bottom*2); }
- if(animFrame2 >= 15 && animFrame2 < 30) { ObjSprite2D_SetSourceRect(objEnemy,left*1, top*1, right*2, bottom*2); }
- if(animFrame2 >= 30 && animFrame2 < 45) { ObjSprite2D_SetSourceRect(objEnemy,left*2, top*1, right*3, bottom*2); }
- if(animFrame2 >= 45) { ObjSprite2D_SetSourceRect(objEnemy,left*3, top*1, right*4, bottom*2); }
- if(animFrame2 >= 60 && animFrame2 < 75) { ObjSprite2D_SetSourceRect(objEnemy,left*0, top*2, right*1, bottom*3); }
- if(animFrame2 >= 75 && animFrame2 < 90) { ObjSprite2D_SetSourceRect(objEnemy,left*1, top*2, right*2, bottom*3); }
- if(animFrame2 >= 90 && animFrame2 < 105) { ObjSprite2D_SetSourceRect(objEnemy,left*2, top*2, right*3, bottom*3); }
- if(animFrame2 >= 105) { ObjSprite2D_SetSourceRect(objEnemy,left*3, top*2, right*4, bottom*3); }
- ObjRender_SetAngleXYZ(objEnemy, 0, 0, 0);
- }
- if(animFrame > 60) { animFrame = 0; }
- if(animFrame2 > 120) { animFrame2 = 60; }
- animFrame += 3.5;
- animFrame2 += 3;
- yield;
- }
- }
- task TFinalize(){
- //if(ObjEnemy_GetInfo(objEnemy, INFO_LIFE) == 0){
- //deathCircle(enemyX, enemyY, 0, 153, 255);
- //deathCircle2(enemyX, enemyY, 0, 153, 255);
- //deathCircle2(enemyX, enemyY, 0, 153, 255);
- //}
- Obj_Delete(objEnemy);
- }
- task SetDamageRateAtFrame(obj, frame, shot, spell){
- ObjEnemy_SetDamageRate(obj, 0, 0);
- loop(frame){yield;}
- ObjEnemy_SetDamageRate(obj, 100, 100);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement