You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
AM2R-TimeTrials/objects/oQueenHead.object.gmx

1059 lines
30 KiB

<!--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>