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.
370 lines
9.9 KiB
370 lines
9.9 KiB
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
|
<object>
|
|
<spriteName>sBlobThrowerWater</spriteName>
|
|
<solid>0</solid>
|
|
<visible>-1</visible>
|
|
<depth>-4</depth>
|
|
<persistent>0</persistent>
|
|
<parentName>oEnemy</parentName>
|
|
<maskName><undefined></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>action_inherited();
|
|
myhealth = 20;
|
|
freezehp = 220;
|
|
damage = 75;
|
|
hitsound = sndEHit1;
|
|
deathsound = sndEDeath2;
|
|
frozenspr = sBlobThrowerWaterFrozen;
|
|
canfreeze = 1
|
|
hitmissileexpl = 0;
|
|
target = 0;
|
|
canattack = 1;
|
|
state = 0;
|
|
image_speed = 0;
|
|
sprite_index = sBlobThrowerWaterClosed;
|
|
freezefall = 0;
|
|
canhit = 1;
|
|
statetime = 100;
|
|
platyoffset = 0;
|
|
|
|
|
|
blobsolid = instance_create(x-4,y-36,oBlobSolid);
|
|
blobsolid.image_yscale = 2.75;
|
|
blobsolid.image_xscale = 0.5;
|
|
</string>
|
|
</argument>
|
|
</arguments>
|
|
</action>
|
|
</event>
|
|
<event eventtype="1" 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>with (blobsolid) instance_destroy();
|
|
repeat (2) {
|
|
make_explosion1(x + irandom_range(-16, 16), y - 8);
|
|
make_explosion1(x + irandom_range(-16, 16), y - 24);
|
|
make_explosion1(x + irandom_range(-16, 16), y - 40);
|
|
if(frozen > 0) {
|
|
sfx_stop(deathsound);
|
|
PlaySoundMono(sndIceShatter);
|
|
instance_create(x + irandom_range(-16, 16), y - 48, oIceShard);
|
|
instance_create(x + irandom_range(-16, 16), y - 32, oIceShard);
|
|
instance_create(x + irandom_range(-16, 16), y - 40, oIceShard);
|
|
instance_create(x + irandom_range(-16, 16), y - 16, oIceShard);
|
|
instance_create(x + irandom_range(-16, 16), y - 24, oIceShard);
|
|
instance_create(x + irandom_range(-16, 16), y - 8, oIceShard);
|
|
}
|
|
}
|
|
</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>event_inherited();
|
|
enemy_active_check(40);
|
|
enemy_target_check(90, 1);
|
|
//if(instance_exists(boostblock)) boostblock.visible = 0;
|
|
if (active == 1 && frozen == 0) {
|
|
if (state == 0) {
|
|
image_index += 0.1;
|
|
if (target && statetime > 150) {
|
|
state = 1;
|
|
statetime = 0;
|
|
image_index = 0;
|
|
sprite_index = sBlobThrowerWater;
|
|
frozenspr = sBlobThrowerWaterFrozen;
|
|
}
|
|
}
|
|
if (state == 1) {
|
|
if (image_index < 6) {
|
|
image_index += 0.15;
|
|
}
|
|
if (image_index >= 6)
|
|
{
|
|
state = 2;
|
|
statetime = 0;
|
|
sprite_index = sBlobThrowerWaterIdle;
|
|
frozenspr = sBlobThrowerWaterIdleFrozen;
|
|
}
|
|
}
|
|
if (state == 2)
|
|
{
|
|
image_index += 0.1;
|
|
if ((image_index >= 4.99) && (image_index <= 5.01)) {
|
|
if(instance_number(oBlobWater) < 30)
|
|
{
|
|
repeat(irandom_range(3,6)) instance_create(x,y-40,oBlobWater);
|
|
}
|
|
}
|
|
if(statetime > 100 && image_index >= 6)
|
|
{
|
|
state = 3;
|
|
statetime = 0;
|
|
sprite_index = sBlobThrowerWater;
|
|
frozenspr = sBlobThrowerWaterFrozen;
|
|
image_index = 6;
|
|
}
|
|
}
|
|
if (state == 3)
|
|
{
|
|
if (image_index > 0) image_index -= 0.2;
|
|
if (image_index <= 0 && statetime > 10) //changed
|
|
{
|
|
state = 0;
|
|
statetime = 0;
|
|
sprite_index = sBlobThrowerWaterClosed;
|
|
frozenspr = sBlobThrowerWaterClosedFrozen;
|
|
}
|
|
}
|
|
}
|
|
if (state == 100) {
|
|
enemy_death();
|
|
}
|
|
//if (!instance_exists(blobsolid)) enemy_death();
|
|
</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 (frozen == 0) {
|
|
with (other) event_user(1);
|
|
} else {
|
|
event_user(0);
|
|
with (other) event_user(0);
|
|
}
|
|
</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(other.ibeam)
|
|
{
|
|
frozen = 300;
|
|
PlaySoundMono(sndFreezeHit);
|
|
with (other)
|
|
{
|
|
event_user(0);
|
|
if(!pbeam) instance_destroy();
|
|
}
|
|
}
|
|
else if(other.pbeam) {
|
|
with (other) event_user(1);
|
|
}
|
|
else
|
|
{
|
|
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>///Blank code; do nothing
|
|
|
|
</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>with (other) {
|
|
damage = 0;
|
|
}
|
|
</string>
|
|
</argument>
|
|
</arguments>
|
|
</action>
|
|
</event>
|
|
<event eventtype="4" ename="oScrewAttack">
|
|
<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 (hitscrewattack) {
|
|
if (frozen == 0)
|
|
{
|
|
damage_player(damage, hpush, vpush, 0, 0);
|
|
}
|
|
}
|
|
</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 (hitpseudoscrew == 1)
|
|
if(other.state == other.JUMPING && other.vjump == 0 && frozen == 0)
|
|
{
|
|
other.chargebeam = 0;
|
|
other.nofire = 20;
|
|
damage_player(damage, hpush, vpush, 0, 0);
|
|
}
|
|
else if (frozen == 0) event_inherited();
|
|
</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>0</PhysicsObjectKinematic>
|
|
<PhysicsShapePoints/>
|
|
</object>
|