Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- task createEnemy(class,spawnX,spawnY,TRUEorFALSE,moveX,moveY){
- let enemy = ObjEnemy_Create(OBJ_ENEMY);
- ObjEnemy_Regist(enemy);
- ObjMove_SetPosition(enemy,spawnX,spawnY);
- if(TRUEorFALSE == 1){ObjMove_SetDestAtSpeed(enemy,moveX,moveY,2);}
- let RenderSheet = GetCurrentScriptDirectory ~ "./img/ThirdSpellAllClasses.png";
- ObjPrim_SetTexture(enemy,RenderSheet);
- // SCOUT
- if(class == 1){
- ObjSprite2D_SetSourceRect(enemy,0,0,95,109);
- ObjSprite2D_SetDestCenter(enemy);
- let spinangle = 0;
- let scoutX;
- let scoutY;
- while(ObjMove_GetX(enemy) < GetStgFrameWidth+30 && ObjMove_GetX(enemy) > -15 && ObjEnemy_GetInfo(bossObj,INFO_LIFE) > 0){
- ObjRender_SetAngleZ(enemy,spinangle);
- scoutX = ObjMove_GetX(enemy);
- scoutY = ObjMove_GetY(enemy);
- CreateShotA1(scoutX,scoutY,2,spinangle,1,0);
- CreateShotA1(scoutX,scoutY,2,spinangle+90,1,0);
- CreateShotA1(scoutX,scoutY,2,spinangle+180,1,0);
- CreateShotA1(scoutX,scoutY,2,spinangle+270,1,0);
- spinangle = spinangle+32;
- wait(3);
- yield;
- }
- }
- // SOLDIER
- else if(class == 2){
- ObjSprite2D_SetSourceRect(enemy,93,0,176,108);
- ObjSprite2D_SetDestCenter(enemy);
- let bazookaX = ObjMove_GetX(enemy)-20;
- let fireframe = 30;
- while(ObjMove_GetX(enemy) < GetStgFrameWidth+30 && ObjMove_GetX(enemy) > -15 && ObjEnemy_GetInfo(bossObj,INFO_LIFE) > 0){
- if(GetPlayerX <= ObjMove_GetX(enemy)){ObjRender_SetAngleXYZ(enemy,0,0,0); bazookaX = ObjMove_GetX(enemy)-20;}
- else if(GetPlayerX > ObjMove_GetX(enemy)){ObjRender_SetAngleXYZ(enemy,0,180,0); bazookaX = ObjMove_GetX(enemy)+20;}
- fireframe++;
- if(fireframe == 80){
- let missile = CreateShotA2(bazookaX,ObjMove_GetY(enemy)-25,1,0,0.1,3,308,0);
- ObjMove_SetAngle(missile,atan2(GetPlayerY-ObjMove_GetY(missile),GetPlayerX-ObjMove_GetX(missile)));
- SoldierMissileBurst(missile);
- fireframe = 0;
- }
- yield;
- }
- }
- // PYRO
- else if(class == 3){
- ObjSprite2D_SetSourceRect(enemy,177,0,240,109);
- ObjSprite2D_SetDestCenter(enemy);
- let fireblasterX = ObjMove_GetX(enemy)-25;
- let fireframe = 60;
- let fireballspeed = 1;
- let fireballangle = 16;
- while(ObjMove_GetX(enemy) < GetStgFrameWidth+30 && ObjMove_GetX(enemy) > -15 && ObjEnemy_GetInfo(bossObj,INFO_LIFE) > 0){
- if(GetPlayerX <= ObjMove_GetX(enemy)){ObjRender_SetAngleXYZ(enemy,0,0,0); fireblasterX = ObjMove_GetX(enemy)-25;}
- else if(GetPlayerX > ObjMove_GetX(enemy)){ObjRender_SetAngleXYZ(enemy,0,180,0); fireblasterX = ObjMove_GetX(enemy)+25;}
- if(fireframe >= 80 && fireframe < 96){
- loop(2){
- let fireball = CreateShotA1(fireblasterX,ObjMove_GetY(enemy),1+fireballspeed*sin(2),0,338,0);
- ObjMove_SetAngle(fireball,atan2(GetPlayerY-ObjMove_GetY(fireball),GetPlayerX-ObjMove_GetX(fireball))+rand(fireballangle*-1,fireballangle));
- ObjRender_SetBlendType(fireball,BLEND_ADD_RGB);
- }
- fireballspeed++;
- fireballangle=fireballangle-1;
- if(fireframe == 95){fireframe = 0; fireballspeed = 1; fireballangle = 16;}
- }
- fireframe++;
- yield;
- }
- }
- // DEMOMAN
- else if(class == 4){
- ObjSprite2D_SetSourceRect(enemy,254,0,319,111);
- ObjSprite2D_SetDestCenter(enemy);
- let grenadelauncherX = ObjMove_GetX(enemy)-20;
- let fireframe = 20;
- while(ObjMove_GetX(enemy) < GetStgFrameWidth+30 && ObjMove_GetX(enemy) > -15 && ObjEnemy_GetInfo(bossObj,INFO_LIFE) > 0){
- if(GetPlayerX <= ObjMove_GetX(enemy)){ObjRender_SetAngleXYZ(enemy,0,0,0); grenadelauncherX = ObjMove_GetX(enemy)-20;}
- else if(GetPlayerX > ObjMove_GetX(enemy)){ObjRender_SetAngleXYZ(enemy,0,180,0); grenadelauncherX = ObjMove_GetX(enemy)+20}
- if(fireframe == 75){
- let angle = atan2(GetPlayerY-ObjMove_GetY(enemy)+50,GetPlayerX-grenadelauncherX);
- let grenade = CreateShotA1(grenadelauncherX,ObjMove_GetY(enemy)+50,3,atan2(GetPlayerY-ObjMove_GetY(enemy),GetPlayerX-ObjMove_GetX(enemy),307,0);
- //ObjMove_SetAngle(grenade,atan2(GetPlayerY-ObjMove_GetY(grenade),GetPlayerX-ObjMove_GetX(grenade)));
- //if(grenadelauncherX == ObjMove_GetX(enemy)-20){ObjMove_SetAngularVelocity(grenade,-0.5);}
- //else if(grenadelauncherX == ObjMove_GetX(enemy)+20){ObjMove_SetAngularVelocity(grenade,0.5);}
- DemoGrenade(grenade);
- fireframe=0;
- }
- fireframe++;
- yield;
- }
- }
- Obj_Delete(enemy);
- }
- task SoldierMissileBurst(id){
- wait(60);
- if(ObjMove_GetX(id) > GetStgFrameWidth) {Obj_Delete(id);}
- let angle = rand(1,360);
- if(!Obj_IsDeleted(id)){
- ascent(i in 0..30){
- CreateShotA2(ObjMove_GetX(id),ObjMove_GetY(id),0,i+angle,0.01,2,47,0);
- CreateShotA2(ObjMove_GetX(id),ObjMove_GetY(id),0,i+angle+90,0.01,2,47,0);
- CreateShotA2(ObjMove_GetX(id),ObjMove_GetY(id),0,i+angle+180,0.01,2,47,0);
- CreateShotA2(ObjMove_GetX(id),ObjMove_GetY(id),0,i+angle+270,0.01,2,47,0);
- }
- }
- Obj_Delete(id);
- }
- task DemoGrenade(id){
- CheckBounce(id);
- }
- task CheckBounce (let objshot) {
- let alreadybounced = 0;
- while(!Obj_IsDeleted(objshot)) {
- if(alreadybounced >= 1) {break;}
- if(ObjMove_GetAngle(objshot) > 85 && ObjMove_GetAngle(objshot) < 95){ObjMove_SetAngularVelocity(objshot,0);}
- if(ObjMove_GetX(objshot) > GetStgFrameWidth)
- {
- ObjMove_SetAngle(objshot, 180-ObjMove_GetAngle(objshot));
- ObjMove_SetX(objshot, GetStgFrameWidth*2-ObjMove_GetX(objshot));
- }
- else if(ObjMove_GetX(objshot) < 0)
- {
- ObjMove_SetAngle(objshot, 180-ObjMove_GetAngle(objshot));
- ObjMove_SetX(objshot, -ObjMove_GetX(objshot));
- }
- else if(ObjMove_GetY(objshot) < 0)
- {
- ObjMove_SetAngle(objshot, -ObjMove_GetAngle(objshot));
- ObjMove_SetY(objshot, -ObjMove_GetY(objshot));
- }
- else if(ObjMove_GetY(objshot) > GetStgFrameHeight)
- {
- ObjMove_SetAngle(objshot, -ObjMove_GetAngle(objshot));
- ObjMove_SetY(objshot, GetStgFrameHeight*2-ObjMove_GetY(objshot));
- alreadybounced++;
- }
- yield;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement