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.
525 lines
14 KiB
525 lines
14 KiB
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
|
|
<object>
|
|
<spriteName>sTankCannon</spriteName>
|
|
<solid>0</solid>
|
|
<visible>-1</visible>
|
|
<depth>-4</depth>
|
|
<persistent>0</persistent>
|
|
<parentName><undefined></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>canbeX = 0;
|
|
//myhealth = 100;
|
|
myhealth = global.mod_tankHcannon;
|
|
image_speed = 0.15;
|
|
shaking = 0;
|
|
flashing = 0;
|
|
offx = 0;
|
|
offy = 0;
|
|
damaged = 0;
|
|
charge_frame = 0;
|
|
alarm[1] = 120;
|
|
canfire = 1;
|
|
cooldown = 0;
|
|
shots = 0;
|
|
knockback = 0;
|
|
|
|
//1.4.4
|
|
charge = 0;
|
|
chargeType = sTankCannonCharge;
|
|
beamIndex = 0;
|
|
beamType = "PLASMA";
|
|
</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>if (shots > 0 && damaged == 0) {
|
|
event_user(2);
|
|
shots -= 1;
|
|
knockback = 5;
|
|
alarm[2] = 20;
|
|
} else with (oTank) tgt_aangle = 0;
|
|
</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>canfire = 1;
|
|
charge_frame = 0;
|
|
</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>gravity_direction = 270;
|
|
gravity = 0.12;
|
|
vspeed = -1;
|
|
with (oTankArm) event_user(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 (beamIndex == 1) {
|
|
oTank.iceOff = 1;
|
|
} else {
|
|
oTank.iceOff = 0;
|
|
}
|
|
if (damaged == 0) {
|
|
image_angle = direction;
|
|
if (canfire && cooldown == 0) {
|
|
if (charge_frame < 22) {
|
|
charge_frame += 0.25;
|
|
} else {
|
|
shots = 3 - beamIndex;
|
|
alarm[2] = 30;
|
|
cooldown = 230;
|
|
with (oTank) tgt_aangle = 20;
|
|
}
|
|
}
|
|
if (cooldown > 0) {
|
|
cooldown -= 1;
|
|
if (charge_frame > 0 && shots == 0) {
|
|
charge_frame -= 1;
|
|
}
|
|
if (cooldown == 100) {
|
|
//charge_frame = 0;
|
|
if (beamIndex < 2) {
|
|
beamIndex += 1;
|
|
} else {
|
|
beamIndex = 0;
|
|
}
|
|
// determine types/sprites
|
|
switch beamIndex {
|
|
case 0: chargeType = sTankCannonCharge; beamType = "PLASMA"; break;
|
|
case 1: chargeType = sTankCannonCharge2; beamType = "ICE"; break;
|
|
case 2: chargeType = sTankCannonCharge3; beamType = "WAVE"; break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (shaking > 0) {
|
|
shaking -= 1;
|
|
offx = random_range(-1, 1);
|
|
offy = random_range(-1, 1);
|
|
} else {
|
|
offx = 0;
|
|
offy = 0;
|
|
}
|
|
if (flashing > 0) flashing -= 1;
|
|
if (knockback > 0) {
|
|
knockback -= 1;
|
|
with (oTank) aangle -= 5;
|
|
}
|
|
if (damaged) {
|
|
if (image_angle > 180) image_angle -= 360;
|
|
if (image_angle > 0) image_angle -= 1;
|
|
if (image_angle < 0) image_angle += 1;
|
|
}
|
|
|
|
// 1.4.4
|
|
charge = charge_frame/22;
|
|
if (!damaged) image_speed = max(0, (charge_frame/22)/1.8);
|
|
</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>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 (damaged == 0) {
|
|
myhealth -= 10 * (1 + other.smissile * 2);
|
|
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 (damaged == 0 && flashing < 3) {
|
|
myhealth -= 1;
|
|
event_user(0);
|
|
with (other) {
|
|
event_user(0);
|
|
if (!pbeam) 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>if (damaged == 0 && !flashing) {
|
|
myhealth -= 2;
|
|
event_user(0);
|
|
}
|
|
</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 (damaged == 0 && !flashing) {
|
|
myhealth -= 1;
|
|
event_user(0);
|
|
}
|
|
</string>
|
|
</argument>
|
|
</arguments>
|
|
</action>
|
|
</event>
|
|
<event eventtype="4" ename="oSolid">
|
|
<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 (gravity != 0) {
|
|
repeat (10) {
|
|
var boom = make_explosion1(x + irandom_range(-19, 64), y + irandom_range(-14, 17));
|
|
boom.depth = depth - 1;
|
|
}
|
|
sprite_index = sTankCannonDest;
|
|
}
|
|
gravity = 0;
|
|
speed = 0;
|
|
</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>var projx, projy, proj;
|
|
projx = x + lengthdir_x(60, direction);
|
|
projy = y + lengthdir_y(60, direction);
|
|
proj = instance_create(projx, projy, oTankProjectile);
|
|
proj.direction = direction;
|
|
proj.image_angle = direction;
|
|
proj.speed = 4;
|
|
proj.type = beamType;
|
|
if (beamType == "ICE") {
|
|
proj.sprite_index = sTankProj2;
|
|
} else if (beamType == "WAVE") {
|
|
proj.depth = -200;
|
|
proj.sprite_index = sTankProj3;
|
|
}
|
|
sfx_play(sndAutrackFire);
|
|
</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 (damaged == 0) {
|
|
damaged = 1;
|
|
with (oTankArm) {
|
|
event_user(1);
|
|
}
|
|
image_speed = 0;
|
|
//alarm[0] = 60;
|
|
alarm[0] = 15;
|
|
sfx_play(sndRobotExpl);
|
|
repeat (3) {
|
|
var boom = make_explosion1(x + irandom_range(10, -10), y + irandom_range(10, -10));
|
|
boom.depth = depth - 1;
|
|
}
|
|
}
|
|
</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 (damaged == 0) {
|
|
shaking = 8;
|
|
flashing = 5;
|
|
if (myhealth > 60) with (oTankArm) sprite_index = sTankShoulder;
|
|
if (myhealth <= 60) with (oTankArm) sprite_index = sTankShoulder1;
|
|
if (myhealth <= 30) with (oTankArm) sprite_index = sTankShoulder2;
|
|
if (myhealth <= 0) event_user(1);
|
|
sfx_stop(sndRobotHit2);
|
|
sfx_play(sndRobotHit2);
|
|
}
|
|
</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>draw_sprite_ext(sprite_index, -1, x + offx, y + offy, 1, 1, image_angle, -1, 1);
|
|
if (!damaged) draw_sprite_ext(chargeType, image_index, x + offx, y + offy, 1, 1, image_angle, -1, charge);
|
|
if (flashing && damaged == 0) {
|
|
draw_set_blend_mode(bm_add);
|
|
repeat (2) draw_sprite_ext(sprite_index, -1, x + offx, y + offy, 1, 1, image_angle, -1, flashing / 5);
|
|
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>
|