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.
253 lines
7.8 KiB
253 lines
7.8 KiB
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
|
<object>
|
|
<spriteName><undefined></spriteName>
|
|
<solid>0</solid>
|
|
<visible>-1</visible>
|
|
<depth>0</depth>
|
|
<persistent>0</persistent>
|
|
<parentName><undefined></parentName>
|
|
<maskName>sMask1</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>myid = 0;
|
|
sax = global.sax;
|
|
spectator = 0;
|
|
|
|
STANDING = 10;
|
|
RUNNING = 11;
|
|
DUCKING = 12;
|
|
LOOKING_UP = 13;
|
|
JUMPING = 15;
|
|
FALLING = 16;
|
|
DYING = 17;
|
|
LEFT = 18;
|
|
RIGHT = 19;
|
|
ON_GROUND = 20;
|
|
IN_AIR = 21;
|
|
ON_LADDER = 22;
|
|
BALL = 23;
|
|
AIRBALL = 24;
|
|
GRIP = 25;
|
|
CLIMBING = 26;
|
|
SPIDERBALL = 27;
|
|
BRAKING = 28;
|
|
SJSTART = 29;
|
|
SUPERJUMP = 30;
|
|
SJEND = 31;
|
|
HURT = 32;
|
|
IDLE = 33;
|
|
SAVING = 34;
|
|
SAVINGFX = 35;
|
|
SAVINGSHIP = 36;
|
|
SAVINGSHIPFX = 37;
|
|
GRABBEDGAMMA = 38;
|
|
KNOCKBACK1 = 39;
|
|
KNOCKBACK1_LAND = 40;
|
|
KNOCKBACK2 = 41;
|
|
KNOCKBACK2_LAND = 42;
|
|
A4EXPL = 43;
|
|
ELEVATOR = 44;
|
|
RECOVER = 45;
|
|
GRABBED = 49;
|
|
WATERJET = 50;
|
|
GFELEVATOR = 51;
|
|
GRABBEDOMEGA = 52;
|
|
GRABBEDQUEEN = 53;
|
|
GRABBEDQUEENMORPH = 54;
|
|
GRABBEDQUEENBELLY = 55;
|
|
LOCKEDBALL = 60;
|
|
DEFEATED = 100;
|
|
|
|
screwattackpickupframe = irandom(4);
|
|
screwattackpickupangle = irandom(359);
|
|
|
|
absorb = false;
|
|
absorbDone = false;
|
|
time = 0;
|
|
</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(instance_exists(oClient)){
|
|
var findID = ds_list_find_index(global.hitboxList, myid);
|
|
if(findID >= 0){
|
|
if(ds_list_size(oClient.roomListData) > 0){
|
|
for(var i=0; i<ds_list_size(oClient.roomListData); i++){
|
|
var arrDraw = oClient.roomListData[| i];
|
|
var arrID = arrDraw[0];
|
|
var arrX = arrDraw[1];
|
|
var arrY = arrDraw[2];
|
|
var arrSprite = arrDraw[3];
|
|
var arrImage = arrDraw[4];
|
|
var arrState = arrDraw[19];
|
|
var arrSAX = arrDraw[20];
|
|
var arrSJBall = arrDraw[22];
|
|
var arrInvincible = arrDraw[27];
|
|
if(arrID == myid){
|
|
if(!absorb) x = arrX;
|
|
if(!absorb) y = arrY;
|
|
sax = arrSAX;
|
|
spectator = arrDraw[26];
|
|
}
|
|
|
|
mask_index = sMask1;
|
|
if (arrState == DUCKING) mask_index = sMask3;
|
|
if (arrState == BALL || arrState == AIRBALL || arrState == SPIDERBALL || arrState == WATERJET) mask_index = sMask4;
|
|
if (arrSJBall == 1 && (arrState == SUPERJUMP || arrState == SJSTART || arrState == SJEND || arrState == BRAKING)) mask_index = sMask4;
|
|
if (instance_exists(oCharacter) && distance_to_object(oCharacter) <= 500 && arrState == RUNNING && (abs(arrImage) >= 4 && abs(arrImage) < 4.9 || abs(arrImage) >= 9 && abs(arrImage) < 9.9) && arrSAX) PlayFootstepSAX(get_floor_material());
|
|
if(arrSprite == sCoreXSAX){
|
|
if(place_meeting(x, y, oCharacter) && arrInvincible == 0 && !global.spectator){
|
|
if(!absorb){
|
|
PlaySoundMono(sndAbsorbX);
|
|
with(instance_create(oCharacter.x,oCharacter.y-oCharacter.sprite_height/2,oAbsorbX)) core = true;
|
|
|
|
relativeX = x - oCharacter.x;
|
|
relativeY = y - (oCharacter.y-oCharacter.sprite_height/2);
|
|
screwattackpickupfx = oCharacter.fxtimer;
|
|
|
|
absorb = true;
|
|
|
|
global.otherAbsorbID = myid;
|
|
global.otherAbsorbRelativeX = oCharacter.x;
|
|
global.otherAbsorbRelativeY = oCharacter.y;
|
|
global.otherAbsorbSpriteHeight = oCharacter.sprite_height/2;
|
|
with(oClient) event_user(4);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
instance_destroy();
|
|
}
|
|
} else {
|
|
instance_destroy();
|
|
}
|
|
|
|
if(absorb){
|
|
if(time == 1){
|
|
global.enablecontrol = 0;
|
|
with (oCharacter) {
|
|
fxtimer = other.screwattackpickupfx;
|
|
speedmultiplier = 0;
|
|
speedmultiresettimer = 10000;
|
|
kLeft = 0;
|
|
kRight = 0;
|
|
kUp = 0;
|
|
kDown = 0;
|
|
kJump = 0;
|
|
kJumpPressed = 0;
|
|
kRun = 0;
|
|
kAim = 0;
|
|
kFire = 0;
|
|
kMissile = 0;
|
|
charge = 0;
|
|
Mute_Loops();
|
|
}
|
|
with(oFXTrail) {
|
|
if(sprite_index == sScrewSpark) visible = false;
|
|
}
|
|
}
|
|
if(time == 2) {
|
|
image_xscale = 1;
|
|
image_xscale = 1;
|
|
with (oCharacter) {
|
|
speedmultiplier = 0;
|
|
speedmultiresettimer = 10000;
|
|
sfx_stop(sndCoreXIdle);
|
|
}
|
|
}
|
|
|
|
if(time > 2 && !absorbDone){
|
|
x = oCharacter.x + relativeX;
|
|
y = (oCharacter.y-oCharacter.sprite_height/2) + relativeY;
|
|
|
|
relativeX = lerp(relativeX, 0, 0.1);
|
|
relativeY = lerp(relativeY, 0, 0.1);
|
|
|
|
if(image_xscale > 0) {
|
|
image_xscale -= 0.0225;
|
|
image_yscale -= 0.0225;
|
|
}
|
|
|
|
if(image_xscale <= 0) {
|
|
absorbDone = true;
|
|
with (oCharacter) speedmultiresettimer = 0;
|
|
global.enablecontrol = 1;
|
|
if(global.item[11] == 0){
|
|
global.item[11] = 1;
|
|
global.ibeam = 1;
|
|
}
|
|
with(instance_find(oFXTrail, instance_number(oFXTrail) - 1)) {
|
|
if(sprite_index == sScrewSpark) {
|
|
visible = true;
|
|
sprite_index = sScrewAttack;
|
|
image_index = other.screwattackpickupframe;
|
|
image_alpha = 1;
|
|
image_angle = other.screwattackpickupangle;
|
|
image_blend = c_white;
|
|
image_xscale = 1;
|
|
image_yscale = 1;
|
|
}
|
|
}
|
|
//instance_destroy();
|
|
}
|
|
}
|
|
|
|
time++;
|
|
}
|
|
|
|
</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>
|