<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
<object>
  <spriteName>sGenesisRoar</spriteName>
  <solid>0</solid>
  <visible>-1</visible>
  <depth>0</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>canbeX = 1;
makeActive();
setCollisionBounds(-4, -12, 4, 0);
state = 0;
statetime = 0;
//hp = 250;
hp = global.mod_genesisHealth;
flashing = 0;
fxtimer = 0;
facing = 0;
ceiling = 0;
dark = 1;
col = 0;
hpush = 5;
vpush = -4;
//damage = 80;
damage = global.mod_genesisDamage;
turning = 0;
turnframe = 0;
scan_log(38, get_text("ScanEvents", "ScanBioform"), 180, 0);
</string>
          </argument>
        </arguments>
      </action>
    </event>
    <event eventtype="2" 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>repeat (8) {
    expl = instance_create(x - 16 + random(32), y - random(80), oFXAnimSpark);
    expl.image_speed = 0.3 + random(0.5);
    expl.additive = 0;
    expl.sprite_index = sExpl1;
}
instance_create(x, y, oScreenFlash);
sfx_play(sndMissileExpl);
make_explosion4(x, y);

if(oControl.mod_fusion == 0) {
    with (oDoor) event_user(3);
    spawn_many_powerups(x - 40, y - 64, 80, 64);
    mus_current_fadein();
    with (oA8RedLightFX) fadeout = 1;
} 
else {
    core = instance_create(mean(bbox_left, bbox_right), mean(bbox_top, bbox_bottom), oCoreX);
    core.lastBossX = x;
    core.lastBossY = y;
    core.lastBossSprite = sprite_index;
    core.lastBossFrame = image_index;
    core.lastBossAngle = image_angle;
    core.lastBossFacing = facing;
    core.lastYscale = image_yscale;
    core.lastBossDepth = depth;
}

instance_destroy();
</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>expl = instance_create(x - 16 + random(32), y - random(16), oFXAnimSpark);
expl.image_speed = 0.5;
expl.additive = 0;
expl.sprite_index = sExpl1;
expl.image_xscale = 0.5;
expl.image_yscale = 0.5;
alarm[10] = 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 (state == 3 &amp;&amp; statetime &lt; 70) {
    prj = instance_create(x + 20 * facing, y - 22, oGenesisAcid);
    prj.hspeed = (6 + random(3)) * facing;
    prj.vspeed = 1 - random(3);
    alarm[0] = 2;
}
</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>


if (state == 0) {
    if (statetime == 0) {
        image_yscale = -1;
        facing = -1;
        x = 512;
        y = 64;
        hspeed = -2;
        ceiling = 1;
        dark = 1;
        sprite_index = sGenesisWalk;
        image_speed = 0.25;
    }
    if (statetime == 150) {
        mus_play(musGenesis);
        oMusicV2.bossbgm = musGenesis;
    }
    if (statetime &gt; 0 &amp;&amp; x &lt;= 210) {
        hspeed = 0;
        sprite_index = sGenesisStand;
        image_speed = 0.2;
    }
    if (statetime == 250) sfx_play(sndGenesisGrowl);
    if (statetime == 300) {
        state = 1;
        statetime = 0;
    }
} // if (state == 0)
if (state == 1) {
    if (statetime == 0) {
        sprite_index = sGenesisLeap;
        image_speed = 0;
        image_index = 0;
        image_yscale = 1;
        y += 30;
        ceiling = 0;
        speed = 0;
        dark = 0;
        event_user(0);
        
        sfx_play(sndGenesisJump);
    }
    if (statetime &lt; 5) {
        xVel = lengthdir_x(4, point_direction(x, y, oCharacter.x, oCharacter.y));
        yVel = lengthdir_y(4, point_direction(x, y, oCharacter.x, oCharacter.y));
    } else yVel += 0.1;
    if (image_index &lt; 2) image_index += 0.25;
    if (isCollisionBottom(1)) {
        state = 2;
        statetime = 0;
    }
}
if (state == 2) {
    if (statetime == 0) {
        sprite_index = sGenesisStand;
        image_speed = 0.2;
        yVel = 0;
    }
    xVel *= 0.6;
    if (point_distance(x, y, oCharacter.x, oCharacter.y) &lt; 60 &amp;&amp; statetime == 10) {
        state = 6;
        statetime = 0;
    }
    if (statetime == 50) {
        state = 3;
        statetime = 0;
    }
}
if (state == 3) {
    if (statetime == 0) {
        sprite_index = sGenesisRoar;
        image_speed = 0;
        image_index = 0;
        event_user(0);
        sfx_play(sndGenesisSpit);
    }
    if (statetime == 12) image_index = 1;
    if (statetime == 20) alarm[0] = 1;
    if (statetime == 80) {
        state = 4;
        statetime = 0;
    }
}
if (state == 4) {
    if (statetime == 0) sprite_index = sGenesisCrouch;
    if (statetime == 10) {
        sprite_index = sGenesisLeap;
        image_speed = 0;
        image_index = 0;
        yVel = -8;
        sfx_play(sndGenesisJump);
    }
    if (statetime &gt; 10) {
        if (yVel &lt; -4) yVel += 0.2;
    }
    if (isCollisionTop(1)) {
        state = 5;
        statetime = 0;
    }
}
if (state == 5) {
    if (statetime == 0) {
        sprite_index = sGenesisWalk;
        image_speed = 0.25;
        image_yscale = -1;
        ceiling = 1;
        xVel = 0;
        yVel = 0;
        y = 64;
        event_user(0);
        hspeed = 2 * facing;
    }
    if (statetime == 60) sfx_play(sndGenesisGrowl);
    if (statetime == 120 || collision_line(x + 30 * facing, y + 1, x + 30 * facing, y + 8, oSolid, true, true)) {
        state = 1;
        statetime = -1;
        speed = 0;
    }
}
if (state == 6) {
    if (statetime == 0) {
        sprite_index = sGenesisSlash;
        image_speed = 0;
        image_index = 0;
        event_user(0);
    }
    if (statetime == 10) {
        prj = instance_create(x + 20 * facing, y, oGenesisSlashProj);
        prj.hspeed = 2 * facing;
        prj.image_xscale = facing;
        image_index = 1;
        sfx_play(sndGenesisSwing);
    }
    if (statetime == 30) {
        state = 4;
        statetime = -1;
    }
}
if (state == 100) {
    if (statetime == 0) {
        sprite_index = sGenesisCrouch;
        speed = 0;
        yVel = 0;
        xVel = 0;
        sfx_play(sndGenesisDeath);
        if (ceiling) {
            sprite_index = sGenesisLeap;
            image_speed = 0;
            image_index = 0;
            image_yscale = 1;
            y += 30;
            ceiling = 0;
            speed = 0;
            dark = 0;
        }
    }
    if (!isCollisionBottom(1)) {
        yVel += 0.1;
    } else {
        sprite_index = sGenesisCrouch;
        yVel = 0;
    }
} // if (state == 100)
if (ceiling == 0) moveTo(xVel, yVel);
if (dark == 1) {
    if (col &gt; 0) {
        col -= 10;
    } else col = 0;
} else {
    if (col &lt; 255) {
        col += 10;
    } else col = 255;
    if (col &gt; 255) col = 255;
}
image_blend = make_color_rgb(col, col, col);
if (fxtimer &lt; 5) {
    fxtimer += 1;
} else fxtimer = 0;
if (flashing &gt; 0) flashing -= 1;
if (turning) {
    turnframe += 0.25;
    if (turnframe &gt;= 2) {
        turning = 0;
        turnframe = 0;
    }
}
statetime += 1;
</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 (dark == 0 &amp;&amp; flashing == 0 &amp;&amp; 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 (dark == 0 &amp;&amp; flashing == 0 &amp;&amp; state != 100) {
    hp -= 10 * (1 + other.smissile * 2);
    flashing = 30;
    with (other) event_user(0);
    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 (dark == 0 &amp;&amp; flashing == 0 &amp;&amp; state != 100) {
    hp -= 5;
    flashing = 30;
    with (other) event_user(0);
    if (other.pbeam == 0) with (other) instance_destroy();
    event_user(1);
}
</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>if (dark == 0 &amp;&amp; flashing == 0 &amp;&amp; state != 100) {
    hp -= 25;
    flashing = 180;
    event_user(1);
}
</string>
          </argument>
        </arguments>
      </action>
    </event>
    <event eventtype="4" ename="oBombExpl">
      <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 (dark == 0 &amp;&amp; flashing == 0 &amp;&amp; state != 100) {
    hp -= 10;
    flashing = 60;
    event_user(1);
}
</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 (dark == 0 &amp;&amp; state != 100) damage_player(damage, hpush, vpush, 0, 0);
</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 (hp &lt;= 0) {
    state = 100;
    statetime = 0;
    alarm[10] = 1;
    alarm[11] = 300;
    if(oControl.mod_fusion == 0) {
        mus_fadeout(musGenesis);
        oMusicV2.bossbgm = sndJump;
    }
    global.event[307] = 1;
} else sfx_play(sndGenesisHit);
</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>var t = 0

if (oCharacter.x &lt;= x &amp;&amp; facing == 1 || x + (sprite_width / 2) &gt;= 912) {
    facing = -1;
    if (state != 1) {
        turning = 1;
        turnframe = 0;
        t = 1
    }
    
}


if (oCharacter.x &gt;= x &amp;&amp; facing == -1 &amp;&amp; t == 0) {
    facing = 1;
    if (state != 1) {
        turning = 1;
        turnframe = 0;
    }
}

//if (x &gt;= 912 - sprite_width) { x--; }
</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 (!flashing) {
    if (turning == 0) {
        draw_sprite_ext(sprite_index, -1, x, y, facing, image_yscale, 0, image_blend, image_alpha);
    } else draw_sprite_ext(sGenesisTurn, turnframe, x, y, facing, image_yscale, 0, image_blend, image_alpha);
}
if (flashing) {
    if (turning == 0) {
        draw_sprite_ext(sprite_index, -1, x, y, facing, image_yscale, 0, make_color_rgb(80, 80, 80), image_alpha);
    } else draw_sprite_ext(sGenesisTurn, turnframe, x, y, facing, image_yscale, 0, make_color_rgb(80, 80, 80), image_alpha);
    draw_set_blend_mode(bm_add);
    repeat (3) {
        if (turning == 0) {
            draw_sprite_ext(sprite_index, -1, x, y, facing, image_yscale, 0, image_blend, image_alpha - fxtimer * 0.25);
        } else draw_sprite_ext(sGenesisTurn, turnframe, x, y, facing, image_yscale, 0, image_blend, image_alpha - fxtimer * 0.25);
    }
    draw_set_blend_mode(bm_normal);
}
</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>
