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-The-Horde-Multitroid/objects/oMultiHitbox.object.gmx

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>&lt;undefined&gt;</spriteName>
<solid>0</solid>
<visible>-1</visible>
<depth>0</depth>
<persistent>0</persistent>
<parentName>&lt;undefined&gt;</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 &gt;= 0){
if(ds_list_size(oClient.roomListData) &gt; 0){
for(var i=0; i&lt;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 &amp;&amp; (arrState == SUPERJUMP || arrState == SJSTART || arrState == SJEND || arrState == BRAKING)) mask_index = sMask4;
if (instance_exists(oCharacter) &amp;&amp; distance_to_object(oCharacter) &lt;= 500 &amp;&amp; arrState == RUNNING &amp;&amp; (abs(arrImage) &gt;= 4 &amp;&amp; abs(arrImage) &lt; 4.9 || abs(arrImage) &gt;= 9 &amp;&amp; abs(arrImage) &lt; 9.9) &amp;&amp; arrSAX) PlayFootstepSAX(get_floor_material());
if(arrSprite == sCoreXSAX){
if(place_meeting(x, y, oCharacter) &amp;&amp; arrInvincible == 0 &amp;&amp; !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 &gt; 2 &amp;&amp; !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 &gt; 0) {
image_xscale -= 0.0225;
image_yscale -= 0.0225;
}
if(image_xscale &lt;= 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>