Added weapon sync and started on ice missiles

pull/28/head
milesthenerd 5 years ago
parent 7a556943df
commit 8cd8a1a60a

@ -4580,6 +4580,11 @@
<sprite>sprites\sPalSpiderball</sprite>
<sprite>sprites\sPalMultitroidBaby</sprite>
<sprite>sprites\sMultitroidMapIcon</sprite>
<sprite>sprites\sIceMissile</sprite>
<sprite>sprites\sIceMissileFlame</sprite>
<sprite>sprites\sIceMissileTrail</sprite>
<sprite>sprites\sIMPickup</sprite>
<sprite>sprites\sGUIIceMissile</sprite>
</sprites>
</sprites>
<backgrounds name="background">
@ -5522,6 +5527,8 @@
<script>scripts\draw_character_ext.gml</script>
<script>scripts\reset_dmap.gml</script>
<script>scripts\popup_seed.gml</script>
<script>scripts\shoot_beam_receive.gml</script>
<script>scripts\shoot_missile_receive.gml</script>
</scripts>
<scripts name="Misc">
<script>scripts\pal_swap_get_color_count.gml</script>
@ -6595,6 +6602,9 @@
<object>objects\oOptionsMod</object>
<object>objects\oOptionLRMod</object>
<object>objects\oPopupTextSeed</object>
<object>objects\oMflashMulti</object>
<object>objects\oBombMulti</object>
<object>objects\oPBombMulti</object>
</objects>
</objects>
<timelines name="timelines">

@ -25,7 +25,7 @@
<option_android_build_version>2</option_android_build_version>
<option_android_color_depth>1</option_android_color_depth>
<option_android_compile_sdk_version>28</option_android_compile_sdk_version>
<option_android_display_name>Multitroid 1.2.1</option_android_display_name>
<option_android_display_name>Multitroid 1.3 Testing</option_android_display_name>
<option_android_facebook_app_display_name></option_android_facebook_app_display_name>
<option_android_facebook_appid></option_android_facebook_appid>
<option_android_facebook_enable>0</option_android_facebook_enable>
@ -220,7 +220,7 @@
<option_changeresolution>false</option_changeresolution>
<option_closeesc>true</option_closeesc>
<option_colordepth>0</option_colordepth>
<option_display_name>AM2R Multitroid 1.2.1</option_display_name>
<option_display_name>AM2R Multitroid 1.3 Testing</option_display_name>
<option_displayerrors>True</option_displayerrors>
<option_ecma>0</option_ecma>
<option_facebook_app_display_name></option_facebook_app_display_name>
@ -362,7 +362,7 @@
<option_ios_texture_page>1024</option_ios_texture_page>
<option_ios_use_test_ads>false</option_ios_use_test_ads>
<option_lastchanged></option_lastchanged>
<option_linux_display_name>AM2R Multitroid 1.2.1</option_linux_display_name>
<option_linux_display_name>AM2R Multitroid 1.3 Testing</option_linux_display_name>
<option_linux_enable_steam>0</option_linux_enable_steam>
<option_linux_fullscreen>0</option_linux_fullscreen>
<option_linux_homepage>https://www.reddit.com/r/AM2R/</option_linux_homepage>

@ -262,28 +262,35 @@ if (random(2) &lt; 0.2) instance_create(x, y, oDebris);
<arguments>
<argument>
<kind>1</kind>
<string>if (frozen) {
myspr = frozenspr;
} else myspr = sprite_index;
<string>action_inherited();
fangspr = sAutoadFang;
clawspr = sAutoadClaw;
if (frozen) {
fangspr = sAutoadFangFrozen;
clawspr = sAutoadClawFrozen;
} else {
fangspr = sAutoadFang;
clawspr = sAutoadClaw;
}
if (!flashing) {
draw_sprite_ext(sAutoadFang, -1, x, y + fangy, image_xscale, 1, image_angle, -1, image_alpha);
draw_sprite_ext(sAutoadClaw, -1, x - clawx, y + clawy, -1, 1, 360 - clawangle, -1, image_alpha);
draw_sprite_ext(sAutoadClaw, -1, x + clawx, y + clawy, 1, 1, clawangle, -1, image_alpha);
draw_sprite_ext(fangspr, -1, x, y + fangy, image_xscale, 1, image_angle, -1, image_alpha);
draw_sprite_ext(clawspr, -1, x - clawx, y + clawy, -1, 1, 360 - clawangle, -1, image_alpha);
draw_sprite_ext(clawspr, -1, x + clawx, y + clawy, 1, 1, clawangle, -1, image_alpha);
draw_sprite_ext(myspr, -1, x, y, image_xscale, 1, image_angle, -1, image_alpha);
} else if (flashing) {
draw_sprite_ext(sAutoadFang, -1, x, y + fangy, image_xscale, 1, image_angle, make_color_rgb(80, 80, 80), image_alpha);
draw_sprite_ext(fangspr, -1, x, y + fangy, image_xscale, 1, image_angle, make_color_rgb(80, 80, 80), image_alpha);
draw_set_blend_mode(bm_add);
repeat (3) draw_sprite_ext(sAutoadFang, -1, x, y + fangy, image_xscale, 1, image_angle, -1, 1 - fxtimer * 0.25);
repeat (3) draw_sprite_ext(fangspr, -1, x, y + fangy, image_xscale, 1, image_angle, -1, 1 - fxtimer * 0.25);
draw_set_blend_mode(bm_normal);
draw_sprite_ext(sAutoadClaw, -1, x - clawx, y + clawy, -1, 1, 360 - clawangle, make_color_rgb(80, 80, 80), image_alpha);
draw_sprite_ext(clawspr, -1, x - clawx, y + clawy, -1, 1, 360 - clawangle, make_color_rgb(80, 80, 80), image_alpha);
draw_set_blend_mode(bm_add);
draw_sprite_ext(sAutoadClaw, -1, x - clawx, y + clawy, -1, 1, 360 - clawangle, -1, 1 - fxtimer * 0.25);
draw_sprite_ext(clawspr, -1, x - clawx, y + clawy, -1, 1, 360 - clawangle, -1, 1 - fxtimer * 0.25);
draw_set_blend_mode(bm_normal);
draw_sprite_ext(sAutoadClaw, -1, x + clawx, y + clawy, 1, 1, clawangle, make_color_rgb(80, 80, 80), image_alpha);
draw_sprite_ext(clawspr, -1, x + clawx, y + clawy, 1, 1, clawangle, make_color_rgb(80, 80, 80), image_alpha);
draw_set_blend_mode(bm_add);
draw_sprite_ext(sAutoadClaw, -1, x + clawx, y + clawy, 1, 1, clawangle, -1, 1 - fxtimer * 0.25);
draw_sprite_ext(clawspr, -1, x + clawx, y + clawy, 1, 1, clawangle, -1, 1 - fxtimer * 0.25);
draw_set_blend_mode(bm_normal);
draw_sprite_ext(myspr, -1, x, y, image_xscale, 1, image_angle, make_color_rgb(80, 80, 80), image_alpha);

@ -150,7 +150,13 @@ if (wiggle &gt; 0) {
<kind>1</kind>
<string>if (frozen == 0) {
wiggle = 45;
with (other) event_user(1);
if(global.icemissiles &amp;&amp; !other.smissile){
with (other) event_user(0);
frozen = 300;
PlaySoundMono(sndFreezeHit);
} else {
with (other) event_user(1);
}
} else {
event_user(0);
with (other) event_user(0);

@ -200,7 +200,15 @@ if (y &gt; global.waterlevel &amp;&amp; global.waterlevel != 0) {
if (inwater == 1) instance_create(x, global.waterlevel, oSmallSplash);
inwater = 0;
}
if (x &lt; view_xview[0] - 48 - (oControl.widescreen_space/2) || x &gt; view_xview[0] + view_wview[0] + 48 + (oControl.widescreen_space/2) || y &lt; view_yview[0] - 48 || y &gt; view_yview[0] + view_hview[0] + 48) instance_destroy();
if(instance_exists(oClient)){
if(ds_list_size(oClient.roomListData) &gt; 0){
if (x &gt; room_width + 200 || x &lt; -200 || y &gt; room_height + 200 || y &lt; -200) instance_destroy();
} else {
if (x &lt; view_xview[0] - 48 - (oControl.widescreen_space/2) || x &gt; view_xview[0] + view_wview[0] + 48 + (oControl.widescreen_space/2) || y &lt; view_yview[0] - 48 || y &gt; view_yview[0] + view_hview[0] + 48) instance_destroy();
}
} else {
if (x &lt; view_xview[0] - 48 - (oControl.widescreen_space/2) || x &gt; view_xview[0] + view_wview[0] + 48 + (oControl.widescreen_space/2) || y &lt; view_yview[0] - 48 || y &gt; view_yview[0] + view_hview[0] + 48) instance_destroy();
}
</string>
</argument>
</arguments>
@ -224,6 +232,7 @@ if (x &lt; view_xview[0] - 48 - (oControl.widescreen_space/2) || x &gt; view_xvi
<argument>
<kind>1</kind>
<string>///NULL
</string>
</argument>
</arguments>
@ -247,6 +256,7 @@ if (x &lt; view_xview[0] - 48 - (oControl.widescreen_space/2) || x &gt; view_xvi
<argument>
<kind>1</kind>
<string>///NULL
</string>
</argument>
</arguments>

@ -53,6 +53,7 @@ direction = 0;
speed = 4;
alarm[0] = 1;
col_edge = 0;
ispeed = image_speed;
</string>
</argument>
</arguments>
@ -99,6 +100,71 @@ col_edge = 0;
<argument>
<kind>1</kind>
<string>event_inherited();
if (frozen == 0){
image_speed = ispeed;
speed = 4;
if (state == 0) {
col_edge = 0;
if (direction == 0) {
if (collision_line(x + 8, y - 4, x + 8, y + 4, oSolid, true, true)) {
if (facing == 1) {
direction = 270;
} else direction = 90;
x = xprevious;
y = yprevious;
} else if (turnedges) {
if (facing == 1) {
if (!collision_line(x - 8, y + 12, x + 8, y + 12, oSolid, true, true)) direction = 270;
} else if (!collision_line(x - 8, y - 12, x + 8, y - 12, oSolid, true, true)) direction = 90;
}
} else if (direction == 90) {
if (collision_line(x - 4, y - 8, x + 4, y - 8, oSolid, true, true)) {
if (facing == 1) {
direction = 0;
} else direction = 180;
x = xprevious;
y = yprevious;
} else if (turnedges) {
if (facing == 1) {
if (!collision_line(x + 12, y - 8, x + 12, y + 8, oSolid, true, true)) direction = 0;
} else if (!collision_line(x - 12, y - 8, x - 12, y + 8, oSolid, true, true)) direction = 180;
}
} else if (direction == 180) {
if (collision_line(x - 8, y - 4, x - 8, y + 4, oSolid, true, true)) {
if (facing == 1) {
direction = 90;
} else direction = 270;
x = xprevious;
y = yprevious;
} else if (turnedges) {
if (facing == 1) {
if (!collision_line(x - 8, y - 12, x + 8, y - 12, oSolid, true, true)) direction = 90;
} else if (!collision_line(x - 8, y + 12, x + 8, y + 12, oSolid, true, true)) direction = 270;
}
} else if (direction == 270) {
if (collision_line(x - 4, y + 8, x + 4, y + 8, oSolid, true, true)) {
if (facing == 1) {
direction = 180;
} else direction = 0;
x = xprevious;
y = yprevious;
} else if (turnedges) {
if (facing == 1) {
if (!collision_line(x - 12, y - 8, x - 12, y + 8, oSolid, true, true)) direction = 180;
} else if (!collision_line(x + 12, y - 8, x + 12, y + 8, oSolid, true, true)) direction = 0;
}
} // if (direction == 0) else
if (turnedges &amp;&amp; !collision_rectangle(x - 12, y - 12, x + 12, y + 12, oSolid, true, true)) turnedges = 0;
if (facing != 1) image_xscale = -1;
image_angle -= 20;
if (image_angle &lt; -360) image_angle += 360;
} // if (state == 0)
if (state == 100) {
enemy_death2();
repeat (20) instance_create(x, y, oDebris);
}
} else speed = 0;
/*
if (state == 0) {
col_edge = 0;
if (direction == 0) {
@ -159,6 +225,7 @@ if (state == 100) {
enemy_death2();
repeat (20) instance_create(x, y, oDebris);
}
*/
</string>
</argument>
</arguments>
@ -205,7 +272,7 @@ if (state == 100) {
<argument>
<kind>1</kind>
<string>event_inherited();
draw_sprite(sBladeBotEye, -1, x, y);
if(frozen == 0) draw_sprite(sBladeBotEye, -1, x, y);
</string>
</argument>
</arguments>

@ -29,6 +29,30 @@
alarm[0] = 32;
alarm[1] = 8;
alarm[2] = 16;
if(instance_exists(oClient)){
if(ds_list_size(oClient.roomListData) &gt; 0){
var size, type, alignment;
size = 1024;
type = buffer_grow;
alignment = 1;
bombBuffer = buffer_create(size, type, alignment);
buffer_seek(bombBuffer, buffer_seek_start, 0);
buffer_write(bombBuffer, buffer_u8, 22);
buffer_write(bombBuffer, buffer_u8, global.clientID);
buffer_write(bombBuffer, buffer_s16, x);
buffer_write(bombBuffer, buffer_s16, y);
var bufferSize = buffer_tell(bombBuffer);
buffer_seek(bombBuffer, buffer_seek_start, 0);
buffer_write(bombBuffer, buffer_s32, bufferSize);
buffer_write(bombBuffer, buffer_u8, 22);
buffer_write(bombBuffer, buffer_u8, global.clientID);
buffer_write(bombBuffer, buffer_s16, x);
buffer_write(bombBuffer, buffer_s16, y);
var result = network_send_packet(oClient.socket, bombBuffer, buffer_tell(bombBuffer));
buffer_delete(bombBuffer);
}
}
</string>
</argument>
</arguments>

@ -0,0 +1,202 @@
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
<object>
<spriteName>sBomb</spriteName>
<solid>0</solid>
<visible>-1</visible>
<depth>-110</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>image_speed = 0.25;
alarm[0] = 32;
alarm[1] = 8;
alarm[2] = 16;
</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>image_speed = 0.75;
</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>image_speed = 0.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>event_user(0);
</string>
</argument>
</arguments>
</action>
</event>
<event eventtype="4" ename="oMissileExpl">
<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_user(0);
</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>instance_create(round(x), round(y), oBombExpl);
PlaySoundMono(sndBombExpl);
light = instance_create(x, y, oFadeLight32);
light.fadespeed = 0.1;
light.alarm[0] = 10;
if (y &gt; global.waterlevel + global.wateroffset &amp;&amp; global.waterlevel != 0) {
repeat (4 + floor(random(4))) {
bubble = instance_create(x, y, oLBubble);
if (instance_exists(bubble)) {
bubble.hspeed = 2 - random(4);
bubble.vspeed = -0.1 - random(1);
}
}
}
instance_destroy();
</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, image_index, round(x), round(y), image_xscale, image_yscale, image_angle, image_blend, image_alpha);
</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>

@ -333,6 +333,7 @@ if (state == 100) {
mus_fadeout(musAncientGuardian);
oMusicV2.bossbgm = sndJump;
mus_current_fadein();
dead = true;
}
if (statetime == 250) {
repeat (10) {

@ -185,6 +185,8 @@ posY = 3;
time = 60;
trail = 0;
global.icemissiles = 1;
</string>
</argument>
</arguments>
@ -361,6 +363,8 @@ alarm[11] = 20;
buffer_write(buffer, buffer_s16, oCharacter.image_blend);
buffer_write(buffer, buffer_s8, oCharacter.fxtimer);
buffer_write(buffer, buffer_s16, global.roomPrev);
buffer_write(buffer, buffer_s8, oCharacter.state);
buffer_write(buffer, buffer_s8, oCharacter.speedboost);
var bufferSize = buffer_tell(buffer);
buffer_seek(buffer, buffer_seek_start, 0);
buffer_write(buffer, buffer_s32, bufferSize);
@ -384,6 +388,8 @@ alarm[11] = 20;
buffer_write(buffer, buffer_s16, oCharacter.image_blend);
buffer_write(buffer, buffer_s8, oCharacter.fxtimer);
buffer_write(buffer, buffer_s16, global.roomPrev);
buffer_write(buffer, buffer_s8, oCharacter.state);
buffer_write(buffer, buffer_s8, oCharacter.speedboost);
var result = network_send_packet(socket, buffer, buffer_tell(buffer));
if(global.roomPrev != room){
global.roomPrev = room;
@ -2314,6 +2320,80 @@ switch(type_event){
var time = buffer_read(_buffer, buffer_s32);
global.gametime = time;
break;
case 21:
var clientID = buffer_read(_buffer, buffer_u8);
var dir = buffer_read(_buffer, buffer_s16);
var sprX = buffer_read(_buffer, buffer_s16);
var sprY = buffer_read(_buffer, buffer_s16);
var charge = buffer_read(_buffer, buffer_u8);
if(ds_list_size(roomListData) &gt; 0 &amp;&amp; clientID != global.clientID){
for(var i=0; i&lt;ds_list_size(roomListData); i++){
var arrDraw = roomListData[| i];
var arrID = arrDraw[0];
if(clientID == arrID){
if(instance_exists(oCharacter)){
with(oCharacter){
shoot_beam_receive(sprX, sprY, dir, charge);
}
}
}
}
}
break;
case 22:
var clientID = buffer_read(_buffer, buffer_u8);
var bombX = buffer_read(_buffer, buffer_s16);
var bombY = buffer_read(_buffer, buffer_s16);
if(ds_list_size(roomListData) &gt; 0 &amp;&amp; clientID != global.clientID){
for(var i=0; i&lt;ds_list_size(roomListData); i++){
var arrDraw = roomListData[| i];
var arrID = arrDraw[0];
if(clientID == arrID){
if(instance_exists(oCharacter)){
instance_create(bombX, bombY, oBombMulti);
sfx_play(sndBombSet);
}
}
}
}
break;
case 23:
var clientID = buffer_read(_buffer, buffer_u8);
var currentWeapon = buffer_read(_buffer, buffer_u8);
var dir = buffer_read(_buffer, buffer_s16);
var missileX = buffer_read(_buffer, buffer_s16);
var missileY = buffer_read(_buffer, buffer_s16);
if(ds_list_size(roomListData) &gt; 0 &amp;&amp; clientID != global.clientID){
for(var i=0; i&lt;ds_list_size(roomListData); i++){
var arrDraw = roomListData[| i];
var arrID = arrDraw[0];
if(clientID == arrID){
if(instance_exists(oCharacter)){
with(oCharacter){
shoot_missile_receive(dir, currentWeapon, missileX, missileY);
show_debug_message("x = " + string(missileX) + " y = " + string(missileY));
}
}
}
}
}
break;
case 24:
var clientID = buffer_read(_buffer, buffer_u8);
var pbombX = buffer_read(_buffer, buffer_s16);
var pbombY = buffer_read(_buffer, buffer_s16);
if(ds_list_size(roomListData) &gt; 0 &amp;&amp; clientID != global.clientID){
for(var i=0; i&lt;ds_list_size(roomListData); i++){
var arrDraw = roomListData[| i];
var arrID = arrDraw[0];
if(clientID == arrID){
if(instance_exists(oCharacter)){
instance_create(pbombX, pbombY, oPBombMulti);
}
}
}
}
break;
case 50:
var resend = false;
for(var i=0; i&lt;array_length_1d(global.item); i++){
@ -2565,72 +2645,74 @@ switch(type_event){
if(floor(receivedEvent) &gt; floor(global.event[i]) &amp;&amp; i != 102){
global.event[i] = receivedEvent;
global.eventPrev[i] = global.event[i];
if(receivedEvent == 1){
if(instance_exists(oCharacter)){
with(oCharacter){
facing = 0;
if (global.currentsuit == 0) sprite_index = scr_suit_sprites(sFront,sFront_fusion);
if (global.currentsuit == 1) sprite_index = scr_suit_sprites(sVFront,sFront_fusion);
if (global.currentsuit == 2) sprite_index = scr_suit_sprites(sGFront,sFront_fusion);
global.enablecontrol = 0;
canbehit = 0;
oControl.displaygui = 0;
xVel = 0;
yVel = 0;
xAcc = 0;
yAcc = 0;
if(i == 308){
if(receivedEvent == 1){
if(instance_exists(oCharacter)){
with(oCharacter){
facing = 0;
if (global.currentsuit == 0) sprite_index = scr_suit_sprites(sFront,sFront_fusion);
if (global.currentsuit == 1) sprite_index = scr_suit_sprites(sVFront,sFront_fusion);
if (global.currentsuit == 2) sprite_index = scr_suit_sprites(sGFront,sFront_fusion);
global.enablecontrol = 0;
canbehit = 0;
oControl.displaygui = 0;
xVel = 0;
yVel = 0;
xAcc = 0;
yAcc = 0;
}
}
popup_text_ext("Ship reached", 120);
}
popup_text_ext("Ship reached", 120);
}
if(receivedEvent == 2){
oControl.displaygui = 0;
global.enablecontrol = 0;
if(instance_exists(oCharacter)){
with(oCharacter){
xVel = 0;
yVel = 0;
xAcc = 0;
yAcc = 0;
if(receivedEvent == 2){
oControl.displaygui = 0;
global.enablecontrol = 0;
if(instance_exists(oCharacter)){
with(oCharacter){
xVel = 0;
yVel = 0;
xAcc = 0;
yAcc = 0;
}
}
}
}
if(receivedEvent == 3){
instance_create(0, 0, oFinalFadeout);
mus_fadeout(musHatchling);
global.enablecontrol = 0;
if(instance_exists(oCharacter)){
with(oCharacter){
xVel = 0;
yVel = 0;
xAcc = 0;
yAcc = 0;
if(receivedEvent == 3){
instance_create(0, 0, oFinalFadeout);
mus_fadeout(musHatchling);
global.enablecontrol = 0;
if(instance_exists(oCharacter)){
with(oCharacter){
xVel = 0;
yVel = 0;
xAcc = 0;
yAcc = 0;
}
}
}
}
if(receivedEvent == 4){
if(instance_exists(oCharacter)){
with(oCharacter){
xVel = 0;
yVel = 0;
xAcc = 0;
yAcc = 0;
canbehit = 1;
if(receivedEvent == 4){
if(instance_exists(oCharacter)){
with(oCharacter){
xVel = 0;
yVel = 0;
xAcc = 0;
yAcc = 0;
canbehit = 1;
}
}
remove_persistent_objects();
sfx_stop_all();
global.vibL = 0;
global.vibR = 0;
global.ingame = 0;
global.darkness = 0;
global.gotolog = -1;
global.enablecontrol = 1;
global.transitiontype = 0;
oControl.displaygui = 1;
room_goto(rm_credits);
mus_stop_all();
mus_play_once(musCredits);
}
remove_persistent_objects();
sfx_stop_all();
global.vibL = 0;
global.vibR = 0;
global.ingame = 0;
global.darkness = 0;
global.gotolog = -1;
global.enablecontrol = 1;
global.transitiontype = 0;
oControl.displaygui = 1;
room_goto(rm_credits);
mus_stop_all();
mus_play_once(musCredits);
}
} else if(floor(receivedEvent) &lt; floor(global.event[i]) &amp;&amp; i != 102){
resend = true;

@ -321,7 +321,7 @@ global.fontVersion = font_add_sprite_ext(sVersionFont, "V.0123456789", true, 1);
global.am2r_version = "V1.5.2"; // no longer dynamic, not worth the effort to maintain - mostly because of Android oddities.
global.multitroid_version = "V1.2.1";
global.multitroid_version = "V1.3";
// Android
global.gamestarted = 0;
@ -484,6 +484,7 @@ if(!file_exists(working_directory + "\dictionary.json")){
file_text_close(file);
}
global.icemissiles = 1;
</string>
</argument>
</arguments>

@ -323,7 +323,7 @@ if (flashing &gt; 0) flashing -= 1;
<arguments>
<argument>
<kind>1</kind>
<string>if (canbehit) {
<string>if (canbehit &amp;&amp; !(!other.smissile &amp;&amp; global.icemissiles)) {
if (stun == 0 &amp;&amp; hitmissileexpl) event_user(0);
if (myhealth &lt;= 0 &amp;&amp; frozen == 0) state = 100;
if (myhealth &lt;= 0 &amp;&amp; frozen) {
@ -629,7 +629,21 @@ instance_destroy();
<arguments>
<argument>
<kind>1</kind>
<string>dmg = other.damage;
<string>if((other.object_index == oMissile || other.object_index == oMissileExpl) &amp;&amp; global.icemissiles &amp;&amp; !other.smissile){
if(canfreeze){
frozen = 180;
if(other.damage &gt; myhealth || ceil(other.damage / 2) &gt; myhealth){
dmg = 0;
myhealth = 1;
} else {
dmg = other.damage;
}
} else {
dmg = other.damage;
}
} else {
dmg = other.damage;
}
if (global.difficulty == 2) dmg = ceil(dmg / 2);
if (justfrozen == 0) myhealth -= dmg;
if (myhealth &lt;= 0 &amp;&amp; justfrozen == 0 &amp;&amp; state != 100) {
@ -696,7 +710,7 @@ if (frozen) {
<string>if (flipx) {
image_xscale = facing;
} else image_xscale = 1;
if (frozen) {
if (frozen &gt; 0) {
myspr = frozenspr;
} else myspr = sprite_index;
if (!flashing) {

@ -223,7 +223,9 @@ with (other) event_user(0);
<arguments>
<argument>
<kind>1</kind>
<string>event_user(0);
<string>if(!(!other.smissile &amp;&amp; global.icemissiles)){
event_user(0);
}
</string>
</argument>
</arguments>

@ -564,6 +564,7 @@ if(global.event[261] &gt; 0 &amp;&amp; !dead){
state = 100;
statetime = -1;
dead = true;
sfx_stop_loops();
}
</string>
</argument>

@ -135,7 +135,8 @@ if (state == 100) enemy_death();
<arguments>
<argument>
<kind>1</kind>
<string>draw_sprite_ext(sprite_index, image_index, x, y + sin(x/10), facing, image_yscale, image_angle, image_blend, image_alpha);
<string>action_inherited();
draw_sprite_ext(sprite_index, image_index, x, y + sin(x/10), facing, image_yscale, image_angle, image_blend, image_alpha);
</string>
</argument>
</arguments>

@ -141,6 +141,67 @@ if (state == 2) alarm[0] = 7;
<string>event_inherited();
enemy_active_check(20);
enemy_target_check(90, 1);
if (frozen == 0){
switch (phase) {
case 0: vaccel = 0.3; break;
case 1: vaccel = 0.5; break;
case 2: vaccel = 0.7; break;
}
if (state == 1) {
if (facing == 1) {
targetx = oCharacter.x - 120;
} else targetx = oCharacter.x + 120;
targety = oCharacter.y - (sprite_get_height(oCharacter.mask_index)/2); // 1.5.1 fix
if (aoffset &gt; 0) aoffset -= 0.2;
if (x &gt; targetx) xVel -= haccel;
if (x &lt; targetx) xVel += haccel;
if (y &gt; targety) yVel -= vaccel;
if (y &lt; targety) yVel += vaccel;
if (xVel &gt; 2) xVel = 2;
if (xVel &lt; -2) xVel = -2;
if (yVel &gt; 4) yVel = 4;
if (yVel &lt; -4) yVel = -4;
if (oCharacter.x &gt; x &amp;&amp; facing == -1 &amp;&amp; turning == 0) turning = 4;
if (oCharacter.x &lt;= x &amp;&amp; facing == 1 &amp;&amp; turning == 0) turning = 4;
if (statetime &gt; 120) {
if (collision_line(x, y - 6, x + 160 * facing, y - 6, oCharacter, false, true)) {
state = 2;
statetime = 0;
}
}
}
if (state == 2) {
xVel *= 0.8;
yVel *= 0.8;
if (aoffset &lt; 2) aoffset += 0.2;
if (statetime == 0) { }
if (statetime == 60) alarm[0] = 1;
if (statetime == 90) {
state = 1;
statetime = -1;
}
}
if (stun == 0) moveTo(xVel, yVel);
if (state == 100) {
canbehit = 0;
alarm[1] = 0;
yVel += 0.1;
moveTo(xVel, yVel);
if (xVel &lt;= 0) image_angle += 0.6;
if (xVel &gt; 0) image_angle -= 0.6;
if (isCollisionLeft(1) || isCollisionRight(1)) xVel = 0;
if (isCollisionBottom(1) || statetime &gt; 240 || y &gt; view_yview[0] + 240) {
enemy_death2();
repeat (20) instance_create(x, y, oDebris);
}
}
if (turning == 2) facing *= -1;
if (turning &gt; 0) turning -= 1;
} else {
if (state == 2) state = 1;
}
/*
switch (phase) {
case 0: vaccel = 0.3; break;
case 1: vaccel = 0.5; break;
@ -196,6 +257,7 @@ if (state == 100) {
}
if (turning == 2) facing *= -1;
if (turning &gt; 0) turning -= 1;
*/
</string>
</argument>
</arguments>
@ -317,32 +379,40 @@ prevhealth = myhealth;
<arguments>
<argument>
<kind>1</kind>
<string>if (!flashing) {
<string>armor1 = sGunzooArmor1;
armor2 = sGunzooArmor2;
if (frozen) {
myspr = frozenspr;
} else {
myspr = sprite_index;
}
if (!flashing) {
if (turning == 0) {
draw_sprite_ext(sprite_index, -1, x, y, facing, 1, image_angle, -1, 1);
if (phase == 0) draw_sprite_ext(sGunzooArmor1, -1, x, y - aoffset, facing, 1, image_angle, -1, 1);
if (phase &lt;= 1) draw_sprite_ext(sGunzooArmor2, -1, x + aoffset, y, facing, 1, image_angle, -1, 1);
draw_sprite_ext(myspr, -1, x, y, facing, 1, image_angle, -1, 1);
if (phase == 0) draw_sprite_ext(armor1, -1, x, y - aoffset, facing, 1, image_angle, -1, 1);
if (phase &lt;= 1) draw_sprite_ext(armor2, -1, x + aoffset, y, facing, 1, image_angle, -1, 1);
}
if (turning &gt; 0) draw_sprite_ext(sGunzooTurn, -1, x, y, facing, 1, image_angle, -1, 1);
}
if (flashing) {
if (flashing || (frozen &gt; 0 &amp;&amp; frozen &lt; freezetime * 0.2)) {
if (turning == 0) {
draw_sprite_ext(sprite_index, -1, x, y, facing, 1, image_angle, make_color_rgb(80, 80, 80), 1);
if (phase == 0) draw_sprite_ext(sGunzooArmor1, -1, x, y - aoffset, facing, 1, image_angle, make_color_rgb(80, 80, 80), 1);
if (phase &lt;= 1) draw_sprite_ext(sGunzooArmor2, -1, x + aoffset, y, facing, 1, image_angle, make_color_rgb(80, 80, 80), 1);
draw_sprite_ext(myspr, -1, x, y, facing, 1, image_angle, make_color_rgb(80, 80, 80), 1);
if (phase == 0) draw_sprite_ext(armor1, -1, x, y - aoffset, facing, 1, image_angle, make_color_rgb(80, 80, 80), 1);
if (phase &lt;= 1) draw_sprite_ext(armor2, -1, x + aoffset, y, facing, 1, image_angle, make_color_rgb(80, 80, 80), 1);
}
if (turning &gt; 0) draw_sprite_ext(sGunzooTurn, -1, x, y, facing, 1, image_angle, make_color_rgb(80, 80, 80), 1);
draw_set_blend_mode(bm_add);
repeat (3) {
if (turning == 0) {
draw_sprite_ext(sprite_index, -1, x, y, facing, 1, image_angle, -1, 1 - fxtimer * 0.25);
if (phase == 0) draw_sprite_ext(sGunzooArmor1, -1, x, y - aoffset, facing, 1, image_angle, -1, 1 - fxtimer * 0.25);
if (phase &lt;= 1) draw_sprite_ext(sGunzooArmor2, -1, x + aoffset, y, facing, 1, image_angle, -1, 1 - fxtimer * 0.25);
draw_sprite_ext(myspr, -1, x, y, facing, 1, image_angle, -1, 1 - fxtimer * 0.25);
if (phase == 0) draw_sprite_ext(armor1, -1, x, y - aoffset, facing, 1, image_angle, -1, 1 - fxtimer * 0.25);
if (phase &lt;= 1) draw_sprite_ext(armor2, -1, x + aoffset, y, facing, 1, image_angle, -1, 1 - fxtimer * 0.25);
}
if (turning &gt; 0) draw_sprite_ext(sGunzooTurn, -1, x, y, facing, 1, image_angle, -1, 1 - fxtimer * 0.25);
}
draw_set_blend_mode(bm_normal);
}
</string>
</argument>
</arguments>

@ -8,6 +8,33 @@
<parentName>oPickup</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>event_inherited();
if(global.icemissiles){
sprite_index = sIMPickup;
image_speed = 0.2;
}
</string>
</argument>
</arguments>
</action>
</event>
<event eventtype="4" ename="oCharacter">
<action>
<libid>1</libid>

@ -0,0 +1,100 @@
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
<object>
<spriteName>sMflash</spriteName>
<solid>0</solid>
<visible>-1</visible>
<depth>-10</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>sprite_index = sMflash;
if (global.wbeam) sprite_index = sWMflash;
if (global.pbeam) sprite_index = sPMflash;
if (global.ibeam) sprite_index = sIMflash;
image_speed = 0.5;
</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(oCharacter)) {
if (oCharacter.x != oCharacter.xprevious &amp;&amp; image_index &gt; 0) x += oCharacter.x - oCharacter.xprevious;
if (oCharacter.y != oCharacter.yprevious &amp;&amp; image_index &gt; 0) y += oCharacter.y - oCharacter.yprevious;
}
</string>
</argument>
</arguments>
</action>
</event>
<event eventtype="7" enumb="7">
<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>instance_destroy();
</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>

@ -71,6 +71,7 @@ if (oControl.debug &gt; 0) {
flame = instance_create(x, y, oMissileFlame);
flame.image_angle = image_angle;
if (smissile) flame.sprite_index = sSMissileFlame;
if (global.icemissiles) flame.sprite_index = sIceMissileFlame;
</string>
</argument>
</arguments>
@ -128,11 +129,24 @@ if (y &gt; global.waterlevel &amp;&amp; global.waterlevel != 0) {
if (inwater == 1) instance_create(x, global.waterlevel, oSmallSplash);
inwater = 0;
}
if (x &lt; view_xview[0] - 48 - (oControl.widescreen_space/2)|| x &gt; view_xview[0] + view_wview[0] + 48 + (oControl.widescreen_space/2) || y &lt; view_yview[0] - 48 || y &gt; view_yview[0] + view_hview[0] + 48) {
instance_destroy();
trail.speed = speed;
trail.alarm[0] = 30;
with (flame) instance_destroy();
if(instance_exists(oClient)){
if(ds_list_size(oClient.roomListData) &gt; 0){
if (x &gt; room_width + 200 || x &lt; -200 || y &gt; room_height + 200 || y &lt; -200) instance_destroy();
} else {
if (x &lt; view_xview[0] - 48 - (oControl.widescreen_space/2)|| x &gt; view_xview[0] + view_wview[0] + 48 + (oControl.widescreen_space/2) || y &lt; view_yview[0] - 48 || y &gt; view_yview[0] + view_hview[0] + 48) {
instance_destroy();
trail.speed = speed;
trail.alarm[0] = 30;
with (flame) instance_destroy();
}
}
} else {
if (x &lt; view_xview[0] - 48 - (oControl.widescreen_space/2)|| x &gt; view_xview[0] + view_wview[0] + 48 + (oControl.widescreen_space/2) || y &lt; view_yview[0] - 48 || y &gt; view_yview[0] + view_hview[0] + 48) {
instance_destroy();
trail.speed = speed;
trail.alarm[0] = 30;
with (flame) instance_destroy();
}
}
trail.x = x;
trail.y = y;
@ -163,6 +177,7 @@ if (instance_exists(flame)) {
<argument>
<kind>1</kind>
<string>///NULL
</string>
</argument>
</arguments>
@ -186,6 +201,7 @@ if (instance_exists(flame)) {
<argument>
<kind>1</kind>
<string>///NULL
</string>
</argument>
</arguments>
@ -358,6 +374,7 @@ rspark.image_speed = 0.5;
rspark.depth = -120;
rmsl = instance_create(x, y, oRMissile);
if (smissile) rmsl.sprite_index = sSMissile;
if (!smissile &amp;&amp; global.icemissiles) rmsl.sprite_index = sIceMissile;
rmsl.direction = direction + 190 - random(20);
if (direction != 90) {
rmsl.speed = 2;
@ -400,10 +417,18 @@ if (smissile == 0) {
expl.image_yscale = 0.6;
expl.damage = 5;
expl.smissile = 0;
PlaySoundMono(sndMissileExpl);
if (!global.icemissiles) PlaySoundMono(sndMissileExpl);
light = instance_create(x, y, oFadeLight32);
light.fadespeed = 0.1;
light.alarm[0] = 10;
if (global.icemissiles){
expl.sprite_index = sTesterIceSpark;
expl.image_xscale = 1;
expl.image_yscale = 1;
expl.image_speed = 0.3;
PlaySoundMono(sndMissileExpl);
PlaySoundMono(sndIceBeamHit);
}
}
if (smissile) {
quake = instance_create(0, 0, oQuake);

@ -619,8 +619,14 @@ damagemissiles = global.mod_monstersDmissiles;
damagesupermissiles = global.mod_monstersDsuper;
if (state &gt;= 2) {
if (!other.smissile &amp;&amp; global.icemissiles) {
state = 5;
statetime = 0;
PlaySoundMono(sndFreezeHit);
with (other) event_user(0);
}
if (state != 5) {
with (other) event_user(1);
if (!global.icemissiles) with (other) event_user(1);
} else {
with (other) event_user(0);
if (other.smissile == 1) {

@ -277,12 +277,10 @@ if (active) {
key = (oControl.kMenu1 &gt; 0);
}
if ((oControl.kMenu1 &gt; 0 || keyboard_check_pressed(vk_enter)) &amp;&amp; oControl.kMenu1PushedSteps == 0) {
if (key &amp;&amp; oControl.kMenu1PushedSteps == 0) {
if (global.curropt == num_ip &amp;&amp; os_type != os_android) {
if(editing &amp;&amp; keyboard_check_pressed(vk_enter)){
editing = !editing;
op[num_ip].editing = editing;
}
editing = !editing;
op[num_ip].editing = editing;
if(editing){
keyboard_string = ip;
}
@ -296,10 +294,6 @@ if (active) {
op[num_ip].editing = editing;
}
if (global.curropt == num_port &amp;&amp; os_type != os_android) {
if(editing &amp;&amp; keyboard_check_pressed(vk_enter)){
editing = !editing;
op[num_port].editing = editing;
}
editing = !editing;
op[num_port].editing = editing;
if(editing){
@ -315,10 +309,6 @@ if (active) {
op[num_port].editing = editing;
}
if (global.curropt == num_name &amp;&amp; os_type != os_android) {
if(editing &amp;&amp; keyboard_check_pressed(vk_enter)){
editing = !editing;
op[num_name].editing = editing;
}
editing = !editing;
op[num_name].editing = editing;
if(editing){

@ -30,6 +30,30 @@ alarm[0] = 60;
alarm[1] = 30;
sfx_play(sndPBombSet);
special = 0;
if(instance_exists(oClient)){
if(ds_list_size(oClient.roomListData) &gt; 0){
var size, type, alignment;
size = 1024;
type = buffer_grow;
alignment = 1;
pbombBuffer = buffer_create(size, type, alignment);
buffer_seek(pbombBuffer, buffer_seek_start, 0);
buffer_write(pbombBuffer, buffer_u8, 24);
buffer_write(pbombBuffer, buffer_u8, global.clientID);
buffer_write(pbombBuffer, buffer_s16, x);
buffer_write(pbombBuffer, buffer_s16, y);
var bufferSize = buffer_tell(pbombBuffer);
buffer_seek(pbombBuffer, buffer_seek_start, 0);
buffer_write(pbombBuffer, buffer_s32, bufferSize);
buffer_write(pbombBuffer, buffer_u8, 24);
buffer_write(pbombBuffer, buffer_u8, global.clientID);
buffer_write(pbombBuffer, buffer_s16, x);
buffer_write(pbombBuffer, buffer_s16, y);
var result = network_send_packet(oClient.socket, pbombBuffer, buffer_tell(pbombBuffer));
buffer_delete(pbombBuffer);
}
}
</string>
</argument>
</arguments>

@ -0,0 +1,107 @@
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
<object>
<spriteName>sPBomb</spriteName>
<solid>0</solid>
<visible>-1</visible>
<depth>-10</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>image_speed = 0.25;
alarm[0] = 60;
alarm[1] = 30;
sfx_play(sndPBombSet);
special = 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>image_speed = 0.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 (special == 0) {
instance_create(x, y, oPBombExpl);
expl = instance_create(x, y, oPBombExpl);
expl.image_angle = 90;
expl = instance_create(x, y, oPBombExpl);
expl.image_angle = 180;
expl = instance_create(x, y, oPBombExpl);
expl.image_angle = 270;
sfx_play(sndPBombExpl);
} else instance_create(x, y, oQueenFinalExplosion);
instance_destroy();
</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>

@ -46,6 +46,7 @@ target = 0;
state = 0;
statetime = 0;
myobj = instance_create(x, y, oShielderShield);
myobj.frozen = 0;
movedir = 1;
alarm[0] = 60 + random(200);
firedelay = 200 + random(100);
@ -127,6 +128,11 @@ alarm[0] = 60 + random(200);
<string>action_inherited();
enemy_active_check(70);
enemy_target_check(firerange, 1);
if (frozen == 0){
myobj.frozen = 0;
} else {
myobj.frozen = 1;
}
if (active == 1 &amp;&amp; stun == 0 &amp;&amp; frozen == 0 &amp;&amp; state != 100) {
if (state == 0) {
if (statetime &gt;= firedelay) {

@ -58,18 +58,20 @@ center_y = 0;
<arguments>
<argument>
<kind>1</kind>
<string>image_angle = point_direction(x, y, oCharacter.x, oCharacter.y - 16);
if (shaking &gt; 0) {
shaking -= 1;
offx = random_range(-2, 2);
offy = random_range(-2, 2);
} else {
offx = 0;
offy = 0;
<string>if(!frozen){
image_angle = point_direction(x, y, oCharacter.x, oCharacter.y - 16);
if (shaking &gt; 0) {
shaking -= 1;
offx = random_range(-2, 2);
offy = random_range(-2, 2);
} else {
offx = 0;
offy = 0;
}
if (flashing &gt; 0) flashing -= 1;
center_x = x + lengthdir_x(20, image_angle);
center_y = y + lengthdir_y(20, image_angle);
}
if (flashing &gt; 0) flashing -= 1;
center_x = x + lengthdir_x(20, image_angle);
center_y = y + lengthdir_y(20, image_angle);
</string>
</argument>
</arguments>

@ -110,17 +110,20 @@ alarm[3] = 3;
<arguments>
<argument>
<kind>1</kind>
<string>if (oCharacter.y - 20 &gt; y) yVel = 3.5;
if (oCharacter.y - 20 &lt; y) yVel = -3.5;
if (oCharacter.x &gt; x) {
xVel = 4;
if (facing == -1) turning = 5;
}
if (oCharacter.x &lt; x) {
xVel = -4;
if (facing == 1) turning = 5;
<string>if(frozen &lt;= 0){
if (oCharacter.y - 20 &gt; y) yVel = 3.5;
if (oCharacter.y - 20 &lt; y) yVel = -3.5;
if (oCharacter.x &gt; x) {
xVel = 4;
if (facing == -1) turning = 5;
}
if (oCharacter.x &lt; x) {
xVel = -4;
if (facing == 1) turning = 5;
}
}
alarm[0] = 50;
</string>
</argument>
</arguments>
@ -358,7 +361,50 @@ if (random(2) &lt; 0.2) instance_create(x, y, oDebris);
<arguments>
<argument>
<kind>1</kind>
<string>image_xscale = facing;
<string>action_inherited();
image_xscale = facing;
if (frozen == 0){
image_speed = 0.5;
if (!flashing) {
if (turning == 0) {
draw_sprite_ext(sprite_index, -1, x, y, image_xscale, 1, image_angle, -1, image_alpha);
if (myhealth &gt; shell1hp) draw_sprite_ext(sShirkArmor1, -1, x, y, image_xscale, 1, image_angle, -1, image_alpha);
if (myhealth &gt; shell2hp) draw_sprite_ext(sShirkArmor2, -1, x, y, image_xscale, 1, image_angle, -1, image_alpha);
}
if (turning &gt; 0) {
draw_sprite_ext(sShirkTurn, -1, x, y, image_xscale, 1, image_angle, -1, image_alpha);
if (myhealth &gt; shell1hp) draw_sprite_ext(sShirkTurnArmor1, -1, x, y, image_xscale, 1, image_angle, -1, image_alpha);
if (myhealth &gt; shell2hp) draw_sprite_ext(sShirkTurnArmor2, -1, x, y, image_xscale, 1, image_angle, -1, image_alpha);
}
}
if (flashing) {
if (turning == 0) {
draw_sprite_ext(sprite_index, -1, x, y, image_xscale, 1, image_angle, make_color_rgb(80, 80, 80), 1);
if (myhealth &gt; shell1hp) draw_sprite_ext(sShirkArmor1, -1, x, y, image_xscale, 1, image_angle, make_color_rgb(80, 80, 80), 1);
if (myhealth &gt; shell2hp) draw_sprite_ext(sShirkArmor2, -1, x, y, image_xscale, 1, image_angle, make_color_rgb(80, 80, 80), 1);
draw_set_blend_mode(bm_add);
repeat (3) {
draw_sprite_ext(sprite_index, -1, x, y, image_xscale, 1, image_angle, -1, 1 - fxtimer * 0.25);
if (myhealth &gt; shell1hp) draw_sprite_ext(sShirkArmor1, -1, x, y, image_xscale, 1, image_angle, -1, 1 - fxtimer * 0.25);
if (myhealth &gt; shell2hp) draw_sprite_ext(sShirkArmor2, -1, x, y, image_xscale, 1, image_angle, -1, 1 - fxtimer * 0.25);
}
draw_set_blend_mode(bm_normal);
}
if (turning &gt; 0) {
draw_sprite_ext(sShirkTurn, -1, x, y, image_xscale, 1, image_angle, make_color_rgb(80, 80, 80), 1);
if (myhealth &gt; shell1hp) draw_sprite_ext(sShirkTurnArmor1, -1, x, y, image_xscale, 1, image_angle, make_color_rgb(80, 80, 80), 1);
if (myhealth &gt; shell2hp) draw_sprite_ext(sShirkTurnArmor2, -1, x, y, image_xscale, 1, image_angle, make_color_rgb(80, 80, 80), 1);
draw_set_blend_mode(bm_add);
repeat (3) {
draw_sprite_ext(sprite_index, -1, x, y, image_xscale, 1, image_angle, -1, 1 - fxtimer * 0.25);
if (myhealth &gt; shell1hp) draw_sprite_ext(sShirkTurnArmor1, -1, x, y, image_xscale, 1, image_angle, -1, 1 - fxtimer * 0.25);
if (myhealth &gt; shell2hp) draw_sprite_ext(sShirkTurnArmor2, -1, x, y, image_xscale, 1, image_angle, -1, 1 - fxtimer * 0.25);
}
draw_set_blend_mode(bm_normal);
}
} // if (flashing)
}
/*
if (!flashing) {
if (turning == 0) {
draw_sprite_ext(sprite_index, -1, x, y, image_xscale, 1, image_angle, -1, image_alpha);
@ -397,6 +443,7 @@ if (flashing) {
draw_set_blend_mode(bm_normal);
}
} // if (flashing)
*/
</string>
</argument>
</arguments>

@ -157,6 +157,30 @@ emp2.collisionBoundsOffsetLeftX = 3;
emp2.collisionBoundsOffsetTopY = 3;
emp2.collisionBoundsOffsetRightX = 3;
emp2.collisionBoundsOffsetBottomY = 3;
</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>action_inherited();
if(frozen &lt;= 0) image_speed = 0.5;
</string>
</argument>
</arguments>

@ -200,17 +200,19 @@ if (global.maxmissiles >= 100) {
draw_background(bgGUIMsl, xoff, 0);
} else draw_background(bgGUISmsl, xoff, 0);
draw_text(0 + xoff + 19, 7, string(global.missiles));
mslspr = sGUIMissile;
if (global.icemissiles) mslspr = sGUIIceMissile;
if (global.opmslstyle == 0) {
if (global.currentweapon != 1 || oCharacter.state == 23 || oCharacter.state == 24 || oCharacter.state == 27 || oCharacter.state == 54 || oCharacter.state == 55 || oCharacter.sjball) draw_sprite(sGUIMissile, 0, 0 + xoff + 1, 4);
if (global.currentweapon != 1 || oCharacter.state == 23 || oCharacter.state == 24 || oCharacter.state == 27 || oCharacter.state == 54 || oCharacter.state == 55 || oCharacter.sjball) draw_sprite(mslspr, 0, 0 + xoff + 1, 4);
if (global.currentweapon == 1 && oCharacter.state != 23 && oCharacter.state != 24 && oCharacter.state != 27 && oCharacter.state != 54 && oCharacter.state != 55 && oCharacter.sjball == 0) {
if (oCharacter.armmsl == 0) draw_sprite(sGUIMissile, 1, 0 + xoff + 1, 4);
if (oCharacter.armmsl == 1) draw_sprite(sGUIMissile, 2, 0 + xoff + 1, 4);
if (oCharacter.armmsl == 0) draw_sprite(mslspr, 1, 0 + xoff + 1, 4);
if (oCharacter.armmsl == 1) draw_sprite(mslspr, 2, 0 + xoff + 1, 4);
}
}
if (global.opmslstyle == 1) {
if (global.currentweapon == 1) {
draw_sprite(sGUIMissile, 1, 0 + xoff + 1, 4);
} else draw_sprite(sGUIMissile, 0, 0 + xoff + 1, 4);
draw_sprite(mslspr, 1, 0 + xoff + 1, 4);
} else draw_sprite(mslspr, 0, 0 + xoff + 1, 4);
}
if (global.maxmissiles >= 100) {
xoff += 45;

@ -1,4 +1,4 @@
/// popup_seed
with (oPopupTextSeed) instance_destroy();
var t = instance_create(0, 0, oPopupTextSeed);
t.text = argument0;
t.text = argument0;

@ -1,6 +1,8 @@
/// shoot_beam(direction)
if (chargebeam < 1) chargebeam = 0;
instance_create(x + aspr2x, y + aspr2y, oMflash);
var beamX = oMflash.x;
var beamY = oMflash.y;
beams = 1;
if (global.wbeam && !global.sbeam && chargebeam >= 1) beams = 2;
if (global.sbeam) beams = 3;
@ -241,3 +243,31 @@ if (global.ibeam == 1 && global.wbeam == 1 && global.pbeam == 1 && global.sbeam
if (chargebeam == 0) PlaySoundMono(sndFireBeamSWIP);
if (chargebeam >= 1) PlaySoundMono(sndFireBeamCSWIP);
}
if(instance_exists(oClient)){
if(ds_list_size(oClient.roomListData) > 0){
var size, type, alignment;
size = 1024;
type = buffer_grow;
alignment = 1;
beamBuffer = buffer_create(size, type, alignment);
buffer_seek(beamBuffer, buffer_seek_start, 0);
buffer_write(beamBuffer, buffer_u8, 21);
buffer_write(beamBuffer, buffer_u8, global.clientID);
buffer_write(beamBuffer, buffer_s16, argument0);
buffer_write(beamBuffer, buffer_s16, beamX);
buffer_write(beamBuffer, buffer_s16, beamY);
buffer_write(beamBuffer, buffer_u8, chargebeam);
var bufferSize = buffer_tell(beamBuffer);
buffer_seek(beamBuffer, buffer_seek_start, 0);
buffer_write(beamBuffer, buffer_s32, bufferSize);
buffer_write(beamBuffer, buffer_u8, 21);
buffer_write(beamBuffer, buffer_u8, global.clientID);
buffer_write(beamBuffer, buffer_s16, argument0);
buffer_write(beamBuffer, buffer_s16, beamX);
buffer_write(beamBuffer, buffer_s16, beamY);
buffer_write(beamBuffer, buffer_u8, chargebeam);
var result = network_send_packet(oClient.socket, beamBuffer, buffer_tell(beamBuffer));
buffer_delete(beamBuffer);
}
}

@ -0,0 +1,241 @@
/// shoot_beam_receive(aspr2x, aspr2y, direction, charge)
if (argument3 < 1) argument3 = 0;
instance_create(argument0, argument1, oMflashMulti);
beams = 1;
if (global.wbeam && !global.sbeam && argument3 >= 1) beams = 2;
if (global.sbeam) beams = 3;
i = 0;
repeat (beams) {
beam = instance_create(argument0, argument1, oBeam);
beam.ibeam = global.ibeam;
beam.wbeam = global.wbeam;
beam.pbeam = global.pbeam;
beam.sbeam = global.sbeam;
beam.beamid = i;
beam.direction = argument2;
beam.maindir = argument2;
beam.speed = 6.4;
beam.offset = 0;
beam.chargebeam = argument3;
if (global.wbeam) {
global.wbdir = !global.wbdir;
beam.wbeamdir = global.wbdir;
beam.speed = 9;
beam.depth = -1000;
}
if (global.ibeam) beam.alarm[0] = 1 + random(5);
if (global.pbeam) beam.alarm[1] = 1;
if (argument3 >= 1) beam.speed = 12;
beam.image_angle = argument2;
beam.fcolor = make_color_rgb(180, 180, 45);
if (global.wbeam) beam.fcolor = make_color_rgb(240, 150, 210);
if (global.pbeam) beam.fcolor = make_color_rgb(120, 250, 210);
if (global.ibeam) beam.fcolor = make_color_rgb(75, 220, 255);
beam.falpha = 0.4;
beam.fxscale = 0.6;
beam.fyscale = 0.6;
if (global.sbeam) beam.fxscale = 0.8;
if (argument3 >= 1) {
beam.fxscale = 1;
beam.fyscale = 1;
}
beam.damage = 5;
beam.chargebeam = 0;
if (global.wbeam) {
beam.damage *= 1.5;
}
if (global.ibeam) {
beam.damage *= 1.5;
}
if (global.sbeam) {
beam.damage *= 0.8;
}
if (global.pbeam) {
beam.damage *= 1.2;
}
if (argument3 >= 1) {
beam.damage *= 3;
beam.chargebeam = 1;
if (global.wbeam && !global.sbeam) beam.damage *= 0.6;
}
/*
if (aimdirection == 1) {
beam.x += 4;
if (state != GRIP) beam.y -= 1;
}
if (aimdirection == 0) beam.x -= 4;
if (aimdirection == 6) {
beam.y += 4;
if (facing == LEFT) beam.x += 1;
}
*/
if (global.ibeam == 0 && global.wbeam == 0 && global.pbeam == 0 && global.sbeam == 0) {
if (argument3 == 0) beam.sprite_index = sBeam;
if (argument3 >= 1) {
beam.sprite_index = sBeam2;
beam.offset = 4;
}
}
if (global.ibeam == 0 && global.wbeam == 1 && global.pbeam == 0 && global.sbeam == 0) {
if (argument3 == 0) beam.sprite_index = sWBeam;
if (argument3 >= 1) beam.sprite_index = sWBeam2;
beam.offset = 10;
}
if (global.ibeam == 1 && global.wbeam == 0 && global.pbeam == 0 && global.sbeam == 0) {
if (argument3 == 0) beam.sprite_index = sIBeam;
if (argument3 >= 1) {
beam.sprite_index = sIBeam2;
beam.image_xscale = 1.4;
}
}
if (global.ibeam == 0 && global.wbeam == 0 && global.pbeam == 1 && global.sbeam == 0) {
if (argument3 == 0) beam.sprite_index = sPBeam;
if (argument3 >= 1) beam.sprite_index = sPBeam2;
beam.offset = 4;
}
if (global.ibeam == 0 && global.wbeam == 0 && global.pbeam == 0 && global.sbeam == 1) {
if (argument3 == 0) {
beam.sprite_index = sSBeam;
beam.offset = 5;
}
if (argument3 >= 1) {
beam.sprite_index = sSBeam2;
beam.offset = 8;
}
}
if (global.ibeam == 0 && global.wbeam == 1 && global.pbeam == 0 && global.sbeam == 1) {
if (argument3 == 0) beam.sprite_index = sWBeam;
if (argument3 >= 1) beam.sprite_index = sWBeam2;
beam.offset = 12;
}
if (global.ibeam == 1 && global.wbeam == 0 && global.pbeam == 0 && global.sbeam == 1) {
if (argument3 == 0) {
beam.sprite_index = sISBeam;
beam.image_xscale = 0.6;
}
if (argument3 >= 1) {
beam.sprite_index = sISBeam;
beam.image_xscale = 1.2;
}
beam.offset = 8;
}
if (global.ibeam == 0 && global.wbeam == 0 && global.pbeam == 1 && global.sbeam == 1) {
if (argument3 == 0) beam.sprite_index = sSPBeam;
if (argument3 >= 1) beam.sprite_index = sSPBeam2;
beam.offset = 8;
}
if (global.ibeam == 1 && global.wbeam == 1 && global.pbeam == 0 && global.sbeam == 0) {
if (argument3 == 0) beam.sprite_index = sIWBeam;
if (argument3 >= 1) beam.sprite_index = sIWBeam2;
beam.offset = 8;
}
if (global.ibeam == 0 && global.wbeam == 1 && global.pbeam == 1 && global.sbeam == 0) {
if (argument3 == 0) beam.sprite_index = sPBeam;
if (argument3 >= 1) beam.sprite_index = sPBeam2;
beam.offset = 8;
}
if (global.ibeam == 1 && global.wbeam == 0 && global.pbeam == 1 && global.sbeam == 0) {
if (argument3 == 0) {
beam.sprite_index = sIPBeam;
beam.image_xscale = 0.6;
beam.image_yscale = 0.6;
}
if (argument3 >= 1) beam.sprite_index = sIPBeam;
beam.offset = 8;
}
if (global.ibeam == 1 && global.wbeam == 1 && global.pbeam == 0 && global.sbeam == 1) {
if (argument3 == 0) beam.sprite_index = sIWBeam;
if (argument3 >= 1) beam.sprite_index = sIWBeam2;
beam.offset = 8;
}
if (global.ibeam == 0 && global.wbeam == 1 && global.pbeam == 1 && global.sbeam == 1) {
if (argument3 == 0) beam.sprite_index = sPBeam;
if (argument3 >= 1) beam.sprite_index = sPBeam2;
beam.offset = 8;
}
if (global.ibeam == 1 && global.wbeam == 0 && global.pbeam == 1 && global.sbeam == 1) {
if (argument3 == 0) beam.sprite_index = sISPBeam;
if (argument3 >= 1) beam.sprite_index = sISPBeam2;
beam.offset = 8;
}
if (global.ibeam == 1 && global.wbeam == 1 && global.pbeam == 1 && global.sbeam == 0) {
if (argument3 == 0) {
beam.sprite_index = sIPBeam;
beam.image_xscale = 0.6;
beam.image_yscale = 0.6;
}
if (argument3 >= 1) beam.sprite_index = sIPBeam;
beam.offset = 8;
}
if (global.ibeam == 1 && global.wbeam == 1 && global.pbeam == 1 && global.sbeam == 1) {
if (argument3 == 0) beam.sprite_index = sISWPBeam;
if (argument3 >= 1) beam.sprite_index = sISWPBeam2;
beam.offset = 8;
}
with (beam) if (offset != 0) beam_offset(offset, maindir);
i += 1;
} // repeat (beams)
if (global.ibeam == 0 && global.wbeam == 0 && global.pbeam == 0 && global.sbeam == 0) {
if (argument3 == 0) PlaySoundMono(sndFireBeam);
if (argument3 >= 1) PlaySoundMono(sndFireBeamC);
}
if (global.ibeam == 0 && global.wbeam == 1 && global.pbeam == 0 && global.sbeam == 0) {
if (argument3 == 0) PlaySoundMono(sndFireBeamW);
if (argument3 >= 1) PlaySoundMono(sndFireBeamCW);
}
if (global.ibeam == 1 && global.wbeam == 0 && global.pbeam == 0 && global.sbeam == 0) {
if (argument3 == 0) PlaySoundMono(sndFireBeamI);
if (argument3 >= 1) PlaySoundMono(sndFireBeamCI);
}
if (global.ibeam == 0 && global.wbeam == 0 && global.pbeam == 1 && global.sbeam == 0) {
if (argument3 == 0) PlaySoundMono(sndFireBeamP);
if (argument3 >= 1) PlaySoundMono(sndFireBeamCP);
}
if (global.ibeam == 0 && global.wbeam == 0 && global.pbeam == 0 && global.sbeam == 1) {
if (argument3 == 0) PlaySoundMono(sndFireBeamS);
if (argument3 >= 1) PlaySoundMono(sndFireBeamCS);
}
if (global.ibeam == 0 && global.wbeam == 1 && global.pbeam == 0 && global.sbeam == 1) {
if (argument3 == 0) PlaySoundMono(sndFireBeamSW);
if (argument3 >= 1) PlaySoundMono(sndFireBeamCSW);
}
if (global.ibeam == 1 && global.wbeam == 0 && global.pbeam == 0 && global.sbeam == 1) {
if (argument3 == 0) PlaySoundMono(sndFireBeamSI);
if (argument3 >= 1) PlaySoundMono(sndFireBeamCSI);
}
if (global.ibeam == 0 && global.wbeam == 0 && global.pbeam == 1 && global.sbeam == 1) {
if (argument3 == 0) PlaySoundMono(sndFireBeamSP);
if (argument3 >= 1) PlaySoundMono(sndFireBeamCSP);
}
if (global.ibeam == 1 && global.wbeam == 1 && global.pbeam == 0 && global.sbeam == 0) {
if (argument3 == 0) PlaySoundMono(sndFireBeamWI);
if (argument3 >= 1) PlaySoundMono(sndFireBeamCWI);
}
if (global.ibeam == 0 && global.wbeam == 1 && global.pbeam == 1 && global.sbeam == 0) {
if (argument3 == 0) PlaySoundMono(sndFireBeamWP);
if (argument3 >= 1) PlaySoundMono(sndFireBeamCWP);
}
if (global.ibeam == 1 && global.wbeam == 0 && global.pbeam == 1 && global.sbeam == 0) {
if (argument3 == 0) PlaySoundMono(sndFireBeamIP);
if (argument3 >= 1) PlaySoundMono(sndFireBeamCIP);
}
if (global.ibeam == 1 && global.wbeam == 1 && global.pbeam == 0 && global.sbeam == 1) {
if (argument3 == 0) PlaySoundMono(sndFireBeamSWI);
if (argument3 == 1) PlaySoundMono(sndFireBeamCSWI);
}
if (global.ibeam == 0 && global.wbeam == 1 && global.pbeam == 1 && global.sbeam == 1) {
if (argument3 == 0) PlaySoundMono(sndFireBeamSWP);
if (argument3 >= 1) PlaySoundMono(sndFireBeamCSWP);
}
if (global.ibeam == 1 && global.wbeam == 0 && global.pbeam == 1 && global.sbeam == 1) {
if (argument3 == 0) PlaySoundMono(sndFireBeamSIP);
if (argument3 >= 1) PlaySoundMono(sndFireBeamCSIP);
}
if (global.ibeam == 1 && global.wbeam == 1 && global.pbeam == 1 && global.sbeam == 0) {
if (argument3 == 0) PlaySoundMono(sndFireBeamWIP);
if (argument3 >= 1) PlaySoundMono(sndFireBeamCWIP);
}
if (global.ibeam == 1 && global.wbeam == 1 && global.pbeam == 1 && global.sbeam == 1) {
if (argument3 == 0) PlaySoundMono(sndFireBeamSWIP);
if (argument3 >= 1) PlaySoundMono(sndFireBeamCSWIP);
}

@ -15,6 +15,8 @@ if (global.currentweapon == 1 && global.missiles > 0 || global.currentweapon ==
msl.y += 4;
if (facing == LEFT) msl.x += 1;
}
var missileX = msl.x;
var missileY = msl.y;
msl.smissile = global.currentweapon == 2;
if (global.currentweapon == 1) {
global.missiles -= 1;
@ -31,6 +33,9 @@ if (global.currentweapon == 1 && global.missiles > 0 || global.currentweapon ==
PlaySoundMono(sndFlyby);
nofire = 20;
}
if (global.icemissiles && global.currentweapon == 1){
msl.sprite_index = sIceMissile;
}
with (msl) {
trail = instance_create(x, y, oMissileTrail);
trail.direction = direction;
@ -40,7 +45,40 @@ if (global.currentweapon == 1 && global.missiles > 0 || global.currentweapon ==
trail.sprite_index = sSMissileTrail1;
trail.fadein_speed = 0.1;
}
/*
if(global.icemissiles && global.currentweapon == 1){
trail.sprite_index = sIceMissileTrail;
}
*/
}
} // if (global.currentweapon == 1 && global.missiles > 0 || global.currentweapon == 2 && global.smissiles > 0)
if (global.currentweapon == 2 && global.smissiles == 0) global.currentweapon = 1;
if (global.currentweapon == 1 && global.missiles == 0) global.currentweapon = 0;
if(instance_exists(oClient)){
if(ds_list_size(oClient.roomListData) > 0){
var size, type, alignment;
size = 1024;
type = buffer_grow;
alignment = 1;
missileBuffer = buffer_create(size, type, alignment);
buffer_seek(missileBuffer, buffer_seek_start, 0);
buffer_write(missileBuffer, buffer_u8, 23);
buffer_write(missileBuffer, buffer_u8, global.clientID);
buffer_write(missileBuffer, buffer_u8, global.currentweapon);
buffer_write(missileBuffer, buffer_s16, argument0);
buffer_write(missileBuffer, buffer_s16, missileX);
buffer_write(missileBuffer, buffer_s16, missileY);
var bufferSize = buffer_tell(missileBuffer);
buffer_seek(missileBuffer, buffer_seek_start, 0);
buffer_write(missileBuffer, buffer_s32, bufferSize);
buffer_write(missileBuffer, buffer_u8, 23);
buffer_write(missileBuffer, buffer_u8, global.clientID);
buffer_write(missileBuffer, buffer_u8, global.currentweapon);
buffer_write(missileBuffer, buffer_s16, argument0);
buffer_write(missileBuffer, buffer_s16, missileX);
buffer_write(missileBuffer, buffer_s16, missileY);
var result = network_send_packet(oClient.socket, missileBuffer, buffer_tell(missileBuffer));
buffer_delete(missileBuffer);
}
}

@ -0,0 +1,51 @@
/// shoot_missile_receive(direction, currentweapon, x, y)
if (argument1 == 1 && global.missiles > 0 || argument1 == 2 && global.smissiles > 0) {
msl = instance_create(argument2, argument3, oMissile);
msl.direction = argument0;
msl.speed = 6.4;
msl.image_angle = argument0;
sfx_play(sndFireMissile);
/*
if (argument0 == 180) {
msl.x += 4;
if (state != GRIP) msl.y -= 1;
}
if (argument0 == 0) msl.x -= 4;
if (argument0 == 90) {
msl.y += 4;
if (facing == LEFT) msl.x += 1;
}
*/
msl.smissile = argument1 == 2;
if (argument1 == 1) {
msl.sprite_index = sMissile;
msl.alarm[0] = 1;
msl.damage = 20;
}
if (argument1 == 2) {
msl.sprite_index = sSMissile;
msl.alarm[0] = 1;
msl.damage = 100;
PlaySoundMono(sndFlyby);
}
if (global.icemissiles && argument1 == 1){
msl.sprite_index = sIceMissile;
}
with (msl) {
trail = instance_create(argument2, argument3, oMissileTrail);
trail.direction = direction;
trail.smissile = smissile;
trail.fadein_speed = 0.04;
if (argument1 == 2) {
trail.sprite_index = sSMissileTrail1;
trail.fadein_speed = 0.1;
}
/*
if(global.icemissiles && argument1 == 1){
trail.sprite_index = sIceMissileTrail;
}
*/
}
} // if (argument1 == 1 && global.missiles > 0 || argument1 == 2 && global.smissiles > 0)
if (argument1 == 2 && global.smissiles == 0) argument1 = 1;
if (argument1 == 1 && global.missiles == 0) argument1 = 0;

@ -0,0 +1,27 @@
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
<sprite>
<type>0</type>
<xorig>0</xorig>
<yorigin>0</yorigin>
<colkind>1</colkind>
<coltolerance>0</coltolerance>
<sepmasks>0</sepmasks>
<bboxmode>0</bboxmode>
<bbox_left>0</bbox_left>
<bbox_right>15</bbox_right>
<bbox_top>0</bbox_top>
<bbox_bottom>11</bbox_bottom>
<HTile>0</HTile>
<VTile>0</VTile>
<TextureGroups>
<TextureGroup0>0</TextureGroup0>
</TextureGroups>
<For3D>0</For3D>
<width>16</width>
<height>12</height>
<frames>
<frame index="0">images\sGUIIceMissile_0.png</frame>
<frame index="1">images\sGUIIceMissile_1.png</frame>
<frame index="2">images\sGUIIceMissile_2.png</frame>
</frames>
</sprite>

@ -0,0 +1,28 @@
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
<sprite>
<type>0</type>
<xorig>4</xorig>
<yorigin>7</yorigin>
<colkind>1</colkind>
<coltolerance>0</coltolerance>
<sepmasks>0</sepmasks>
<bboxmode>0</bboxmode>
<bbox_left>0</bbox_left>
<bbox_right>7</bbox_right>
<bbox_top>0</bbox_top>
<bbox_bottom>14</bbox_bottom>
<HTile>0</HTile>
<VTile>0</VTile>
<TextureGroups>
<TextureGroup0>0</TextureGroup0>
</TextureGroups>
<For3D>0</For3D>
<width>8</width>
<height>15</height>
<frames>
<frame index="0">images\sIMPickup_0.png</frame>
<frame index="1">images\sIMPickup_1.png</frame>
<frame index="2">images\sIMPickup_2.png</frame>
<frame index="3">images\sIMPickup_3.png</frame>
</frames>
</sprite>

@ -0,0 +1,28 @@
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
<sprite>
<type>0</type>
<xorig>8</xorig>
<yorigin>4</yorigin>
<colkind>1</colkind>
<coltolerance>0</coltolerance>
<sepmasks>0</sepmasks>
<bboxmode>0</bboxmode>
<bbox_left>0</bbox_left>
<bbox_right>14</bbox_right>
<bbox_top>0</bbox_top>
<bbox_bottom>7</bbox_bottom>
<HTile>0</HTile>
<VTile>0</VTile>
<TextureGroups>
<TextureGroup0>0</TextureGroup0>
</TextureGroups>
<For3D>0</For3D>
<width>15</width>
<height>8</height>
<frames>
<frame index="0">images\sIceMissile_0.png</frame>
<frame index="1">images\sIceMissile_1.png</frame>
<frame index="2">images\sIceMissile_2.png</frame>
<frame index="3">images\sIceMissile_3.png</frame>
</frames>
</sprite>

@ -0,0 +1,28 @@
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
<sprite>
<type>0</type>
<xorig>4</xorig>
<yorigin>4</yorigin>
<colkind>1</colkind>
<coltolerance>0</coltolerance>
<sepmasks>0</sepmasks>
<bboxmode>0</bboxmode>
<bbox_left>0</bbox_left>
<bbox_right>7</bbox_right>
<bbox_top>1</bbox_top>
<bbox_bottom>6</bbox_bottom>
<HTile>0</HTile>
<VTile>0</VTile>
<TextureGroups>
<TextureGroup0>0</TextureGroup0>
</TextureGroups>
<For3D>0</For3D>
<width>8</width>
<height>8</height>
<frames>
<frame index="0">images\sIceMissileFlame_0.png</frame>
<frame index="1">images\sIceMissileFlame_1.png</frame>
<frame index="2">images\sIceMissileFlame_2.png</frame>
<frame index="3">images\sIceMissileFlame_3.png</frame>
</frames>
</sprite>

@ -0,0 +1,25 @@
<!--This Document is generated by GameMaker, if you edit it by hand then you do so at your own risk!-->
<sprite>
<type>0</type>
<xorig>156</xorig>
<yorigin>2</yorigin>
<colkind>1</colkind>
<coltolerance>0</coltolerance>
<sepmasks>0</sepmasks>
<bboxmode>0</bboxmode>
<bbox_left>0</bbox_left>
<bbox_right>159</bbox_right>
<bbox_top>0</bbox_top>
<bbox_bottom>3</bbox_bottom>
<HTile>0</HTile>
<VTile>0</VTile>
<TextureGroups>
<TextureGroup0>0</TextureGroup0>
</TextureGroups>
<For3D>0</For3D>
<width>160</width>
<height>4</height>
<frames>
<frame index="0">images\sIceMissileTrail_0.png</frame>
</frames>
</sprite>
Loading…
Cancel
Save