<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
<object>
  <spriteName>sQueenHead1</spriteName>
  <solid>0</solid>
  <visible>-1</visible>
  <depth>-15</depth>
  <persistent>0</persistent>
  <parentName>&lt;undefined&gt;</parentName>
  <maskName>&lt;undefined&gt;</maskName>
  <events>
    <event eventtype="0" enumb="0">
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>//starthealth = 600 + global.mtanks * 10;
starthealth = global.mod_queenHstart + (global.mtanks * 10);
//starthealthcorridors = 200 + global.mtanks * 5;
starthealthcorridors = global.mod_queenHcorridors + (global.mtanks * 5);
//starthealthbigroom = 400 + global.mtanks * 10;
starthealthbigroom = global.mod_queenHbigroom  + (global.mtanks * 10);
//starthealthlast = 300;
starthealthlast = global.mod_queenHlast;
// DEBUG SECTION
/*starthealth = 1;
starthealthcorridors = 1;
starthealthbigroom = 1;
starthealthlast = 1;*/
// END DEBUG SECTION
myhealth = starthealth;
flashing = 0;
shaking = 0;
stunned = 0;
fxtimer = 0;
canbehit = 1;
glowfx = 0;
glowalpha = 0;
jawglowalpha = 0;
hpush = 7;
vpush = -3;
//damage = 90 + global.etanks * 10;
damage = global.mod_queenDhead + (global.etanks * 10);
push = 0;
canhit = 1;
surf = surface_create(128, 256);
surf_x = 40;
surf_y = 80;
head_spr = sQueenHead1;
head_frame = 0;
head_damage = 0;
image_angle = 0;
head_angle_max = 30;
head_target_angle = 0;
ujaw_angle = 0;
ljaw_angle = 0;
jaw_target_angle = 0;
ja_off = 0;
eyes_frame = -1;
eyes_close = 0;
neck_base_x = 0;
neck_base_y = 0;
neck_segments = 8;
i = 0;
repeat (neck_segments) {
    neck_x[i] = x;
    neck_y[i] = y;
}
jaw1_obj = instance_create(x, y, oQueenHeadTop);
jaw2_obj = instance_create(x, y, oQueenHeadBottom);
grab_obj = -4;
jaws_shake = 0;
player_x = x;
player_y = y;
state = 0;
statetime = 0;
numproj = 0;
projdelay = 0;
speedmulti = 1;
attackdelay = 120;
</string>
          </argument>
        </arguments>
      </action>
    </event>
    <event eventtype="2" enumb="10">
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>repeat (10) {
    expl = instance_create(x + random_range(-20, 80), y + random_range(-20, 20), oFXAnimSpark);
    expl.image_speed = 0.5 + random(0.5);
    expl.additive = 0;
    expl.sprite_index = sExpl1;
    expl.direction = random(360);
    expl.speed = 2 + random(1);
}
make_explosion4(x, y);
sfx_play(sndMissileExpl);
with (jaw1_obj) instance_destroy();
with (jaw2_obj) instance_destroy();
instance_destroy();
</string>
          </argument>
        </arguments>
      </action>
    </event>
    <event eventtype="2" enumb="9">
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>expl = instance_create(x + random_range(-20, 80), y + random_range(-20, 20), oFXAnimSpark);
expl.image_speed = 0.5;
expl.additive = 0;
expl.sprite_index = sExpl1;
expl.image_xscale = 0.5;
expl.image_yscale = 0.5;
expl.depth = -50;
alarm[9] = 4;
</string>
          </argument>
        </arguments>
      </action>
    </event>
    <event eventtype="2" enumb="2">
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>var prj;
var xx = x + lengthdir_x(-1, image_angle) - lengthdir_y(-6, image_angle);
var yy = y + lengthdir_y(-1, image_angle) + lengthdir_x(-6, image_angle);
prj = instance_create(xx, yy, oMZetaProj);
prj.speed = 5.5;
prj.gravity = 0.1;
prj.gravity_direction = 270;
prj.direction = image_angle + irandom_range(-15, 15);
//prj.damage = 80;
prj.damage = global.mod_queenDacid;
prj.alarm[0] = 315;
if (state == 6 &amp;&amp; statetime &lt; 135) alarm[2] = 1;
</string>
          </argument>
        </arguments>
      </action>
    </event>
    <event eventtype="2" enumb="1">
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>if (state == 3 &amp;&amp; statetime &lt; 270) {
    instance_create(x + 5, y + 10, oQueenChargeParticle);
    alarm[1] = 5;
}
</string>
          </argument>
        </arguments>
      </action>
    </event>
    <event eventtype="2" enumb="0">
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>if (numproj &gt; 0) {
    instance_create(x + 10, y, oQueenProj);
    sfx_play(sndFireball);
    numproj -= 1;
    alarm[0] = projdelay;
}
</string>
          </argument>
        </arguments>
      </action>
    </event>
    <event eventtype="3" enumb="2">
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>event_user(10);
jaw1_obj.x = x;
jaw1_obj.y = y;
jaw1_obj.image_angle = image_angle + ujaw_angle;
jaw1_obj.canbehit = canbehit;
jaw1_obj.canhit = canhit;
jaw2_obj.x = x;
jaw2_obj.y = y;
jaw2_obj.image_angle = image_angle + ljaw_angle;
jaw2_obj.canbehit = canbehit;
jaw2_obj.canhit = canhit;
if (instance_exists(grab_obj)) {
    grab_obj.x = x + 55;
    grab_obj.y = y - 25;
}
player_x = lengthdir_x(65, image_angle + ljaw_angle - 15);
player_y = lengthdir_y(65, image_angle + ljaw_angle - 15);
instance_activate_object(oSolid);
</string>
          </argument>
        </arguments>
      </action>
    </event>
    <event eventtype="3" enumb="0">
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>var neck_dist, neck_seglen, neck_basedir, i;
if (state == 0) {
    if (statetime == 0) {
        head_frame = 0;
        jaw_target_angle = 0;
    }
}
if (state == 1) {
    if (statetime == 0) {
        head_frame = 0;
        jaw_target_angle = 30;
        sfx_play(sndQueenIntro);
    }
    if (statetime == 180) jaw_target_angle = 0;
    if (statetime == 240) {
        state = 0;
        statetime = -1;
    }
}
if (state == 2) {
    if (statetime == 0) {
        head_frame = 0;
        jaw_target_angle = 30;
        stunned = 0;
        numproj = 3;
        projdelay = 20;
        if (myhealth &lt;= starthealth / 4 * 3) {
            numproj = 4;
            projdelay = 15;
        }
        if (myhealth &lt;= starthealth / 4 * 2) {
            numproj = 5;
            projdelay = 12;
        }
        if (myhealth &lt;= starthealth / 4) {
            numproj = 6;
            projdelay = 10;
        }
    }
    if (statetime == 40) alarm[0] = 1;
    if (statetime == 180) jaw_target_angle = 0;
    if (statetime == 200) {
        state = 0;
        statetime = -1;
    }
} // if (state == 2)
if (state == 3) {
    if (statetime == 0) {
        head_frame = 0;
        jaw_target_angle = 30;
        stunned = 0;
        canbehit = 0;
        alarm[1] = 60;
    }
    if (statetime &gt; 60 &amp;&amp; statetime &lt; 120) {
        if (jawglowalpha &lt; 1) jawglowalpha += 0.01;
    }
    if (statetime == 70) sfx_play(sndQueenCharge);
    if (statetime == 300) {
        proj = instance_create(x + 20, y + 10, oQueenFireball);
        sfx_play(sndQueenBigFire);
        
        if (oMusicV2.useMultistageMusic)
        {
            switch (oQueen.phase)
            {
                case 0:
                    with (oMusicV2) alarm[6] = 5;
                    break;
                case 2:
                    with (oMusicV2) alarm[7] = 5;
                    break;
            }
        }
        
        switch (oQueen.phase) {
            case 1:
                proj.targetx = 880;
                proj.targety = 120;
                break;
            case 2:
                proj.targetx = 1200;
                proj.targety = 112;
                break;
            case 3:
                proj.targetx = 1840;
                proj.targety = 112;
                break;
            case 4:
                proj.targetx = 2160;
                proj.targety = 160;
                break;
        }
    }
    if (statetime &gt; 300) {
        if (jawglowalpha &gt; 0) jawglowalpha -= 0.05;
    }
    if (statetime == 320) jaw_target_angle = 0;
    if (statetime == 360) {
        canbehit = 1;
        state = 0;
        statetime = -1;
    }
} // if (state == 3)
if (state == 4) {
    if (statetime == 0) {
        head_frame = 0;
        jaw_target_angle = 10;
        sfx_play(sndQueenRoarShort);
    }
    if (statetime == 50) jaw_target_angle = 0;
    if (statetime &lt; attackdelay * 0.8) {
        head_target_angle = point_direction(x, y, oCharacter.x, oCharacter.y - 32);
        if (oQueen.phase == 1 || oQueen.phase == 2) head_target_angle = 0;
    }
    if (statetime == attackdelay) {
        state = 5;
        statetime = 0;
    }
}
if (state == 5) {
    if (statetime == 0) {
        head_frame = 0;
        jaw_target_angle = 0;
        direction = image_angle;
        speed = 3;
        sfx_play(sndQueenAttack);
    }
    if (speed &lt; 8) speed += 0.5 * speedmulti;
    if (collision_line(x, y, x + lengthdir_x(74, image_angle - 12), y + lengthdir_y(74, image_angle - 12), oSolid, true, true) &gt; 0) {
        state = 0;
        statetime = -1;
        screen_shake(10, 4);
        speed = 0;
        sfx_play(sndQueenImpact);
    }
    if (statetime == 200) {
        state = 0;
        statetime = -1;
    }
}

if (state == 6) {
    if (statetime == 0) {
        head_frame = 0;
        jaw_target_angle = 0;
        stunned = 0;
        alarm[2] = 75;
    }
    if (statetime == 60) jaw_target_angle = 30; 
    if (statetime &lt; 75) head_target_angle = -60;
    if (statetime == 75) sfx_play(sndMZetaAcid);
    if (statetime &gt;= 75 &amp;&amp; statetime &lt; 135) head_target_angle = -60+(statetime-75);
    if (statetime == 150) {
        state = 0;
        statetime = -1;
    }
} // if (state == 6)

if (state == 10) {
    if (statetime == 0) {
        head_frame = 0;
        jaw_target_angle = 25;
        jaw1_obj.canhit = 0;
        jaw2_obj.canhit = 0;
        grab_obj = instance_create(x + 65, y - 30, oQueenGrab);
    }
    if (oCharacter.state == 53 || oCharacter.state == 54) {
        oCharacter.x = x + player_x;
        oCharacter.y = y + player_y;
        jaws_shake = 1;
        head_target_angle = -3;
    }
    if (oCharacter.state == 54) {
        jaw_target_angle = 5;
        head_target_angle = 3;
    }
    if (oCharacter.state == 55) {
        jaw_target_angle = 2;
        head_target_angle = 8;
        jaws_shake = 0;
    }
}
if (state == 11) {
    if (statetime == 0) {
        head_frame = 0;
        jaw_target_angle = 0;
        jaw1_obj.canhit = 0;
        jaw2_obj.canhit = 0;
        canhit = 0;
        jaws_shake = 0;
        with (oCharacter) {
            state = 39;
            statetime = 0;
            xVel = 5;
            image_index = 0;
            statetime = 0;
            sfx_play(sndHurt);
            invincible = 30;
            ctrl_vibrate(1, 1, 15);
            queen_drain = 0;
            if (global.currentsuit == 0) global.playerhealth -= 400 * oControl.mod_diffmult; //((global.difficulty == 2) + 1) * oControl.mod_fusion;
            if (global.currentsuit == 1) global.playerhealth -= ceil(200) * oControl.mod_diffmult; //((global.difficulty == 2) + 1) * oControl.mod_fusion;
            //if (global.currentsuit == 2) global.playerhealth -= ceil(100) * oControl.mod_diffmult; //((global.difficulty == 2) + 1) * oControl.mod_fusion;
            if (global.currentsuit == 2) {                                                      
                if(global.item[5] == 0) 
                    global.playerhealth -= ceil(200) * oControl.mod_diffmult;
                else                   
                    global.playerhealth -= ceil(100) * oControl.mod_diffmult;
            }  //added
            
            if (global.playerhealth &lt;= 0 &amp;&amp; state != DEFEATED) {
                alarm[0] = 6;
                state = DEFEATED;
            }
        }
        sfx_play(sndGFTrooperHit);
    } // if (statetime == 0)
    if (statetime == 120) {
        state = 0;
        statetime = -1;
    }
} // if (state == 11)
if (state == 50) {
    if (statetime == 0) {
        head_frame = 0;
        head_target_angle = 0;
        jaw_target_angle = 0;
        ujaw_angle = 0;
        ljaw_angle = 0;
        sfx_play(sndQueenHit2);
        stunned = 30;
        speed = 0;
        bld = instance_create(x + 42, y - 8, oFXAnimSpark);
        bld.sprite_index = sMGammaBlood1;
        bld.image_speed = 0.5;
        bld.image_alpha = 0.6;
        bld.image_xscale = -1;
        bld.depth = -100;
        bld = instance_create(x + 60, y + 8, oFXAnimSpark);
        bld.sprite_index = sMGammaBlood1;
        bld.image_speed = 0.5;
        bld.image_alpha = 0.6;
        bld.image_xscale = -1;
        bld.image_yscale = -1;
        bld.depth = -100;
    }
    if (statetime == 50) {
        state = 0;
        statetime = -1;
    }
} // if (state == 50)
if (state == 100) {
    if (statetime == 0) {
        head_frame = 0;
        jaw_target_angle = 10;
        image_angle = 20;
        oCharacter.queen_drain = 0;
        if (instance_exists(grab_obj)) with (grab_obj) instance_destroy();
    }
    if (image_angle &gt; -20) image_angle -= 0.5;
}
if (eyes_close &gt; 0) eyes_close -= 1;
if (eyes_close == 0) {
    if (eyes_frame &gt; -1) eyes_frame -= 0.25;
} else if (eyes_frame &lt; 5) eyes_frame += 1;
neck_base_x = oQueen.x + oQueen.neck_x;
neck_base_y = oQueen.y + oQueen.neck_y;
neck_dist = point_distance(neck_base_x, neck_base_y, x, y);
neck_seglen = neck_dist / neck_segments;
neck_basedir = point_direction(neck_base_x, neck_base_y, x, y);
neck_x[0] = neck_base_x + lengthdir_x(neck_seglen, neck_basedir);
neck_y[0] = neck_base_y + lengthdir_y(neck_seglen, neck_basedir);
neck_yoff[0] = sin(pi - neck_dist / (neck_dist - neck_seglen * -1)) * 20;
i = 1;
repeat (neck_segments - 1) {
    neck_x[i] = neck_x[i - 1] + lengthdir_x(neck_seglen, neck_basedir);
    neck_y[i] = neck_y[i - 1] + lengthdir_y(neck_seglen, neck_basedir);
    neck_yoff[i] = sin(pi - neck_dist / (neck_dist - neck_seglen * (i - 1))) * 20;
    i += 1;
}
if (ujaw_angle != jaw_target_angle) {
    ujaw_angle = lerp(ujaw_angle, jaw_target_angle, 0.1);
    ljaw_angle = lerp(ljaw_angle, -jaw_target_angle, 0.1);
}
if (head_target_angle &gt; 180) head_target_angle -= 360;
if (image_angle != head_target_angle) image_angle = lerp(image_angle, head_target_angle, 0.1);
if (stunned &gt; 0) {
    if (stunned &gt; 25 &amp;&amp; stunned &lt;= 30) head_frame = 1;
    if (stunned &gt; 12 &amp;&amp; stunned &lt;= 25) head_frame = 2;
    if (stunned &lt;= 12) head_frame = 1;
} else head_frame = 0;
statetime += 1;
if (flashing &gt; 0) flashing -= 1;
if (fxtimer &lt; 5) {
    fxtimer += 1;
} else fxtimer = 0;
if (shaking &gt; 0) shaking -= 1;
if (stunned &gt; 0) stunned -= 1;
glowfx += 1;
if (glowfx &gt; 10) glowfx = 0;
if (canbehit == 0) {
    if (glowalpha &lt; 1) glowalpha += 0.1;
} else if (glowalpha &gt; 0) glowalpha -= 0.05;
</string>
          </argument>
        </arguments>
      </action>
    </event>
    <event eventtype="4" ename="oBomb2">
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>if (state != 100) with (other) event_user(0);
</string>
          </argument>
        </arguments>
      </action>
    </event>
    <event eventtype="4" ename="oMissile">
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>if (canbehit &amp;&amp; state != 100) {
    if (other.smissile == 0) {
        event_user(1);
    } else event_user(2);
    with (other) event_user(0);
} else with (other) event_user(1);
</string>
          </argument>
        </arguments>
      </action>
    </event>
    <event eventtype="4" ename="oBeam">
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>if (state != 100) with (other) {
    event_user(1);
    instance_destroy();
}
</string>
          </argument>
        </arguments>
      </action>
    </event>
    <event eventtype="4" ename="oPBombExpl">
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>eyes_close = 20;
if (oQueen.state == 10 &amp;&amp; flashing == 0) event_user(3);
</string>
          </argument>
        </arguments>
      </action>
    </event>
    <event eventtype="4" ename="oCharacter">
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>if (canhit == 1) {
    if (other.state != 52 &amp;&amp; other.state != 39 &amp;&amp; other.state != 40) {
        if (push == 0) {
            damage_player(damage, hpush, vpush, 0, 0);
        } else damage_player_push(damage, 1, 90, 0, 4);
    }
}
</string>
          </argument>
        </arguments>
      </action>
    </event>
    <event eventtype="7" enumb="20">
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>var ja_off;
ja_off = 0;
if (jaws_shake) ja_off = random_range(-1, 1);
if (surface_exists(surf)) {
    surface_set_target(surf);
    draw_clear_alpha(c_blue, 0);
    if (head_frame == 0) {
        draw_sprite_ext(sQueenHeadBack, head_damage, surf_x, surf_y, 1, 1, image_angle, -1, 1);
        draw_sprite_ext(sQueenHeadDown, head_damage, surf_x, surf_y, 1, 1, image_angle + ljaw_angle + ja_off, -1, 1);
        draw_sprite_ext(sQueenHeadUp, head_damage, surf_x, surf_y, 1, 1, image_angle + ujaw_angle + ja_off, -1, 1);
        mask_index = sQueenHeadBack;
        if (eyes_frame &gt;= 0) draw_sprite_ext(sQueenEyes, eyes_frame, surf_x, surf_y, 1, 1, image_angle, -1, 1);
    }
    if (head_frame == 1) {
        draw_sprite_ext(sQueenHead1, head_damage, surf_x, surf_y, 1, 1, image_angle, -1, 1);
        mask_index = sQueenHead1;
    }
    if (head_frame == 2) {
        draw_sprite_ext(sQueenHead2, head_damage, surf_x, surf_y, 1, 1, image_angle, -1, 1);
        mask_index = sQueenHead2;
    }
    surface_reset_target();
}
</string>
          </argument>
        </arguments>
      </action>
    </event>
    <event eventtype="7" enumb="14">
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>if (state != 100) {
    dmg = 8;
    flashtime = 4;
    shaking = 6;
    event_user(0);
    sfx_stop(sndQueenHit1);
    sfx_play(sndQueenHit1);
}
</string>
          </argument>
        </arguments>
      </action>
    </event>
    <event eventtype="7" enumb="13">
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>if (state != 100) {
    dmg = 40;
    flashtime = 20;
    eyes_close = 20;
    shaking = 24;
    event_user(0);
    jaw_target_angle = 30;
    sfx_stop(sndQueenHit2);
    sfx_play(sndQueenHit2);
}
</string>
          </argument>
        </arguments>
      </action>
    </event>
    <event eventtype="7" enumb="12">
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>if (state != 100) {
    dmg = 50;
    flashtime = 20;
    eyes_close = 20;
    shaking = 24;
    if (state == 5 &amp;&amp; statetime &gt; 6) {
        state = 0;
        statetime = -1;
        speed = 0;
        ujaw_angle = 0;
    }
    if (ujaw_angle == 0) {
        stunned = 30;
    } else if (state != 5) image_angle += 10;
    event_user(0);
    sfx_stop(sndQueenHit2);
    sfx_play(sndQueenHit2);
}
</string>
          </argument>
        </arguments>
      </action>
    </event>
    <event eventtype="7" enumb="11">
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>if (state != 100) {
    dmg = 10;
    flashtime = 8;
    shaking = 10;
    event_user(0);
    sfx_stop(sndQueenHit1);
    sfx_play(sndQueenHit1);
}
</string>
          </argument>
        </arguments>
      </action>
    </event>
    <event eventtype="7" enumb="10">
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>if !(oCharacter.state == oCharacter.GRABBEDQUEENBELLY &amp;&amp; instance_exists(oPBomb)) myhealth -= dmg;
flashing = flashtime;
if (myhealth &lt;= 0 &amp;&amp; state != 100 &amp;&amp; state != 50) {
    if (oQueen.phase &lt; 3) head_damage = 1;
    if (oQueen.phase == 3) head_damage = 2;
    if (oQueen.phase &lt; 5) {
        state = 50;
        statetime = 0;
        myhealth = 999999;
        with (oQueen) {
            state = 6;
            statetime = 0;
        }
    }
    if (oQueen.phase == 5) {
        with (oQueen) {
            state = 100;
            statetime = 0;
        }
        state = 100;
    }
}
</string>
          </argument>
        </arguments>
      </action>
    </event>
    <event eventtype="8" enumb="0">
      <action>
        <libid>1</libid>
        <id>603</id>
        <kind>7</kind>
        <userelative>0</userelative>
        <isquestion>0</isquestion>
        <useapplyto>-1</useapplyto>
        <exetype>2</exetype>
        <functionname></functionname>
        <codestring></codestring>
        <whoName>self</whoName>
        <relative>0</relative>
        <isnot>0</isnot>
        <arguments>
          <argument>
            <kind>1</kind>
            <string>
if(oControl.mod_fusion == 1 || oControl.MonsterPalettesFusionOnly == 0) {
    pal_swap_set(oControl.QueenPalette, 1, false);
}

var i, soff_x, soff_y;
draw_set_blend_mode(bm_add);
draw_sprite_ext(sQueenMouthGlow, -1, x, y, 1, 1, 0, -1, jawglowalpha);
draw_set_blend_mode(bm_normal);
i = 0;
repeat (neck_segments - 1) {
    if (!flashing) {
        draw_sprite_ext(sQueenNeck, -1, neck_x[i], neck_y[i] + neck_yoff[i], 1, 1, 0, image_blend, 1);
    } else {
        draw_sprite_ext(sQueenNeck, -1, neck_x[i], neck_y[i] + neck_yoff[i], 1, 1, 0, make_color_rgb(255 - fxtimer * 63, 255 - fxtimer * 63, 255 - fxtimer * 63), 1);
        draw_set_blend_mode(bm_add);
        repeat (2) draw_sprite_ext(sQueenNeck, -1, neck_x[i], neck_y[i] + neck_yoff[i], 1, 1, 0, -1, 1 - fxtimer * 0.25);
        draw_set_blend_mode(bm_normal);
    }
    i += 1;
}
soff_x = 0;
soff_y = 0;
if (shaking) {
    soff_x = choose(-1, 0, 1);
    soff_y = choose(-1, 0, 1);
}
if (surface_exists(surf)) {
    if (!flashing) {
        draw_surface_ext(surf, x - surf_x + soff_x, y - surf_y + soff_y, 1, 1, 0, image_blend, 1);
    } else {
        draw_surface_ext(surf, x - surf_x + soff_x, y - surf_y + soff_y, 1, 1, 0, make_color_rgb(255 - fxtimer * 63, 255 - fxtimer * 63, 255 - fxtimer * 63), 1);
        draw_set_blend_mode(bm_add);
        repeat (2) draw_surface_ext(surf, x - surf_x + soff_x, y - surf_y + soff_y, 1, 1, 0, -1, 1 - fxtimer * 0.25);
        draw_set_blend_mode(bm_normal);
    }
} else {
    surface_free(surf);
    surf = surface_create(200, 200);
    event_user(10);
}
if (head_frame == 0) {
    draw_set_blend_mode(bm_add);
    if (head_damage &lt; 2) {
        draw_sprite_ext(sQueenGlow, 0, x, y, 1, 1, image_angle + ujaw_angle + ja_off, -1, glowalpha * (1 - glowfx * 0.1));
    } else draw_sprite_ext(sQueenGlow, 1, x, y, 1, 1, image_angle + ujaw_angle + ja_off, -1, glowalpha * (1 - glowfx * 0.1));
    if (ujaw_angle + ja_off &lt; 20) {
        draw_sprite_ext(sQueenGlow2, 0, x, y, 1, 1, image_angle, -1, glowalpha * (1 - glowfx * 0.1));
    } else draw_sprite_ext(sQueenGlow2, 1, x, y, 1, 1, image_angle, -1, glowalpha * (1 - glowfx * 0.1));
    draw_set_blend_mode(bm_normal);
}
draw_set_blend_mode(bm_add);
draw_sprite_ext(sQueenJawGlow, head_damage, x, y, 1, 1, 0, -1, jawglowalpha);
draw_set_blend_mode(bm_normal);

shader_reset();
</string>
          </argument>
        </arguments>
      </action>
    </event>
  </events>
  <PhysicsObject>0</PhysicsObject>
  <PhysicsObjectSensor>0</PhysicsObjectSensor>
  <PhysicsObjectShape>0</PhysicsObjectShape>
  <PhysicsObjectDensity>0.5</PhysicsObjectDensity>
  <PhysicsObjectRestitution>0.100000001490116</PhysicsObjectRestitution>
  <PhysicsObjectGroup>0</PhysicsObjectGroup>
  <PhysicsObjectLinearDamping>0.100000001490116</PhysicsObjectLinearDamping>
  <PhysicsObjectAngularDamping>0.100000001490116</PhysicsObjectAngularDamping>
  <PhysicsObjectFriction>0.200000002980232</PhysicsObjectFriction>
  <PhysicsObjectAwake>-1</PhysicsObjectAwake>
  <PhysicsObjectKinematic>-1</PhysicsObjectKinematic>
  <PhysicsShapePoints/>
</object>
