diff --git a/AM2R.project.gmx b/AM2R.project.gmx
index 6fe86d0c..0975913e 100644
--- a/AM2R.project.gmx
+++ b/AM2R.project.gmx
@@ -4585,6 +4585,14 @@
sprites\sIceMissileTrail
sprites\sIMPickup
sprites\sGUIIceMissile
+ sprites\sGunzooArmor1Frozen
+ sprites\sGunzooArmor2Frozen
+ sprites\sGunzooTurnFrozen
+ sprites\sShirkArmor1Frozen
+ sprites\sShirkArmor2Frozen
+ sprites\sShirkTurnArmor1Frozen
+ sprites\sShirkTurnArmor2Frozen
+ sprites\sShirkTurnFrozen
diff --git a/objects/oAutoad.object.gmx b/objects/oAutoad.object.gmx
index 2a40ae95..51e322d9 100644
--- a/objects/oAutoad.object.gmx
+++ b/objects/oAutoad.object.gmx
@@ -277,6 +277,14 @@ if (!flashing) {
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);
+ if (frozen > 0 && frozen < freezetime * 0.2){
+ draw_set_blend_mode(bm_add);
+ draw_sprite_ext(fangspr, -1, x, y + fangy, image_xscale, 1, image_angle, -1, 1 - fxtimer * 0.25);
+ draw_sprite_ext(clawspr, -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, clawangle, -1, 1 - fxtimer * 0.25);
+ draw_sprite_ext(myspr, -1, x, y, image_xscale, 1, image_angle, -1, 1 - fxtimer * 0.25);
+ draw_set_blend_mode(bm_normal);
+ }
} else if (flashing) {
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);
diff --git a/objects/oClient.object.gmx b/objects/oClient.object.gmx
index 4e057e12..ac4bf8f5 100644
--- a/objects/oClient.object.gmx
+++ b/objects/oClient.object.gmx
@@ -1774,6 +1774,7 @@ switch(type_event){
var clientMapY = buffer_read(_buffer, buffer_s16);
var findsocket = ds_list_find_index(roomList, clientID);
+ /*
if(instance_exists(oCharacter)){
if(clientRoom == rm_death){
if(oCharacter.state != oCharacter.DEFEATED){
@@ -1784,6 +1785,7 @@ switch(type_event){
}
}
}
+ */
if(clientRoom == room && global.clientID != clientID){
sameRoom = true;
diff --git a/objects/oControl.object.gmx b/objects/oControl.object.gmx
index c06abe79..4a5d1eec 100644
--- a/objects/oControl.object.gmx
+++ b/objects/oControl.object.gmx
@@ -485,6 +485,8 @@ if(!file_exists(working_directory + "\dictionary.json")){
}
global.icemissiles = 1;
+global.clientID = 0;
+global.currentweapon = 0;
diff --git a/objects/oEnemy.object.gmx b/objects/oEnemy.object.gmx
index d4154d7f..30246098 100644
--- a/objects/oEnemy.object.gmx
+++ b/objects/oEnemy.object.gmx
@@ -631,13 +631,13 @@ instance_destroy();
1
if((other.object_index == oMissile || other.object_index == oMissileExpl) && global.icemissiles && !other.smissile){
if(canfreeze){
- frozen = 180;
- if(other.damage > myhealth || ceil(other.damage / 2) > myhealth){
+ if(other.damage > myhealth && !frozen || ceil(other.damage / 2) > myhealth && !frozen){
dmg = 0;
myhealth = 1;
} else {
dmg = other.damage;
}
+ frozen = 180;
} else {
dmg = other.damage;
}
diff --git a/objects/oGunzoo.object.gmx b/objects/oGunzoo.object.gmx
index 9a94a8dd..055591a6 100644
--- a/objects/oGunzoo.object.gmx
+++ b/objects/oGunzoo.object.gmx
@@ -381,10 +381,17 @@ prevhealth = myhealth;
1
armor1 = sGunzooArmor1;
armor2 = sGunzooArmor2;
+turn = sGunzooTurn;
if (frozen) {
myspr = frozenspr;
+ armor1 = sGunzooArmor1Frozen;
+ armor2 = sGunzooArmor2Frozen;
+ turn = sGunzooTurnFrozen;
} else {
myspr = sprite_index;
+ armor1 = sGunzooArmor1;
+ armor2 = sGunzooArmor2;
+ turn = sGunzooTurn;
}
if (!flashing) {
if (turning == 0) {
@@ -392,23 +399,33 @@ if (!flashing) {
if (phase == 0) draw_sprite_ext(armor1, -1, x, y - aoffset, facing, 1, image_angle, -1, 1);
if (phase <= 1) draw_sprite_ext(armor2, -1, x + aoffset, y, facing, 1, image_angle, -1, 1);
}
- if (turning > 0) draw_sprite_ext(sGunzooTurn, -1, x, y, facing, 1, image_angle, -1, 1);
+ if (turning > 0) draw_sprite_ext(turn, -1, x, y, facing, 1, image_angle, -1, 1);
+ if (frozen > 0 && frozen < freezetime * 0.2){
+ draw_set_blend_mode(bm_add);
+ if (turning == 0) {
+ draw_sprite_ext(myspr, -1, x, y, facing, 1, image_angle, -1, 1 - fxtimer * 0.35);
+ if (phase == 0) draw_sprite_ext(armor1, -1, x, y - aoffset, facing, 1, image_angle, -1, 1 - fxtimer * 0.40);
+ if (phase <= 1) draw_sprite_ext(armor2, -1, x + aoffset, y, facing, 1, image_angle, -1, 1 - fxtimer * 0.40);
+ }
+ if (turning > 0) draw_sprite_ext(turn, -1, x, y, facing, 1, image_angle, -1, 1 - fxtimer * 0.35);
+ draw_set_blend_mode(bm_normal);
+ }
}
-if (flashing || (frozen > 0 && frozen < freezetime * 0.2)) {
+if (flashing) {
if (turning == 0) {
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 <= 1) draw_sprite_ext(armor2, -1, x + aoffset, y, facing, 1, image_angle, make_color_rgb(80, 80, 80), 1);
}
- if (turning > 0) draw_sprite_ext(sGunzooTurn, -1, x, y, facing, 1, image_angle, make_color_rgb(80, 80, 80), 1);
+ if (turning > 0) draw_sprite_ext(turn, -1, x, y, facing, 1, image_angle, make_color_rgb(80, 80, 80), 1);
draw_set_blend_mode(bm_add);
- repeat (3) {
+ repeat (2) {
if (turning == 0) {
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 <= 1) draw_sprite_ext(armor2, -1, x + aoffset, y, facing, 1, image_angle, -1, 1 - fxtimer * 0.25);
}
- if (turning > 0) draw_sprite_ext(sGunzooTurn, -1, x, y, facing, 1, image_angle, -1, 1 - fxtimer * 0.25);
+ if (turning > 0) draw_sprite_ext(turn, -1, x, y, facing, 1, image_angle, -1, 1 - fxtimer * 0.25);
}
draw_set_blend_mode(bm_normal);
}
diff --git a/objects/oShirk.object.gmx b/objects/oShirk.object.gmx
index 9b1f4f36..b7e56029 100644
--- a/objects/oShirk.object.gmx
+++ b/objects/oShirk.object.gmx
@@ -361,49 +361,82 @@ if (random(2) < 0.2) instance_create(x, y, oDebris);
1
- action_inherited();
+ armor1 = sShirkArmor1;
+armor2 = sShirkArmor2;
+turn = sShirkTurn;
+armor1turn = sShirkTurnArmor1;
+armor2turn = sShirkTurnArmor2;
+if (frozen) {
+ myspr = frozenspr;
+ armor1 = sShirkArmor1Frozen;
+ armor2 = sShirkArmor2Frozen;
+ turn = sShirkTurnFrozen;
+ armor1turn = sShirkTurnArmor1Frozen;
+ armor2turn = sShirkTurnArmor2Frozen;
+} else {
+ myspr = sprite_index;
+ armor1 = sShirkArmor1;
+ armor2 = sShirkArmor2;
+ turn = sShirkTurn;
+ armor1turn = sShirkTurnArmor1;
+ armor2turn = sShirkTurnArmor2;
+}
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 > shell1hp) draw_sprite_ext(sShirkArmor1, -1, x, y, image_xscale, 1, image_angle, -1, image_alpha);
- if (myhealth > shell2hp) draw_sprite_ext(sShirkArmor2, -1, x, y, image_xscale, 1, image_angle, -1, image_alpha);
- }
- if (turning > 0) {
- draw_sprite_ext(sShirkTurn, -1, x, y, image_xscale, 1, image_angle, -1, image_alpha);
- if (myhealth > shell1hp) draw_sprite_ext(sShirkTurnArmor1, -1, x, y, image_xscale, 1, image_angle, -1, image_alpha);
- if (myhealth > 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 > shell1hp) draw_sprite_ext(sShirkArmor1, -1, x, y, image_xscale, 1, image_angle, make_color_rgb(80, 80, 80), 1);
- if (myhealth > shell2hp) draw_sprite_ext(sShirkArmor2, -1, x, y, image_xscale, 1, image_angle, make_color_rgb(80, 80, 80), 1);
+} else image_speed = 0;
+if (!flashing) {
+ if (turning == 0) {
+ draw_sprite_ext(myspr, -1, x, y, image_xscale, 1, image_angle, -1, image_alpha);
+ if (myhealth > shell1hp) draw_sprite_ext(armor1, -1, x, y, image_xscale, 1, image_angle, -1, image_alpha);
+ if (myhealth > shell2hp) draw_sprite_ext(armor2, -1, x, y, image_xscale, 1, image_angle, -1, image_alpha);
+ if (frozen > 0 && frozen < freezetime * 0.2){
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 > shell1hp) draw_sprite_ext(sShirkArmor1, -1, x, y, image_xscale, 1, image_angle, -1, 1 - fxtimer * 0.25);
- if (myhealth > shell2hp) draw_sprite_ext(sShirkArmor2, -1, x, y, image_xscale, 1, image_angle, -1, 1 - fxtimer * 0.25);
- }
+ draw_sprite_ext(myspr, -1, x, y, image_xscale, 1, image_angle, -1, 1 - fxtimer * 0.35);
+ if (myhealth > shell1hp) draw_sprite_ext(armor1, -1, x, y, image_xscale, 1, image_angle, -1, 1 - fxtimer * 0.35);
+ if (myhealth > shell2hp) draw_sprite_ext(armor2, -1, x, y, image_xscale, 1, image_angle, -1, 1 - fxtimer * 0.35);
draw_set_blend_mode(bm_normal);
}
- if (turning > 0) {
- draw_sprite_ext(sShirkTurn, -1, x, y, image_xscale, 1, image_angle, make_color_rgb(80, 80, 80), 1);
- if (myhealth > shell1hp) draw_sprite_ext(sShirkTurnArmor1, -1, x, y, image_xscale, 1, image_angle, make_color_rgb(80, 80, 80), 1);
- if (myhealth > shell2hp) draw_sprite_ext(sShirkTurnArmor2, -1, x, y, image_xscale, 1, image_angle, make_color_rgb(80, 80, 80), 1);
+ }
+ if (turning > 0) {
+ draw_sprite_ext(turn, -1, x, y, image_xscale, 1, image_angle, -1, image_alpha);
+ if (myhealth > shell1hp) draw_sprite_ext(armor1turn, -1, x, y, image_xscale, 1, image_angle, -1, image_alpha);
+ if (myhealth > shell2hp) draw_sprite_ext(armor2turn, -1, x, y, image_xscale, 1, image_angle, -1, image_alpha);
+ if (frozen > 0 && frozen < freezetime * 0.2){
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 > shell1hp) draw_sprite_ext(sShirkTurnArmor1, -1, x, y, image_xscale, 1, image_angle, -1, 1 - fxtimer * 0.25);
- if (myhealth > shell2hp) draw_sprite_ext(sShirkTurnArmor2, -1, x, y, image_xscale, 1, image_angle, -1, 1 - fxtimer * 0.25);
- }
+ draw_sprite_ext(turn, -1, x, y, image_xscale, 1, image_angle, -1, 1 - fxtimer * 0.35);
+ if (myhealth > shell1hp) draw_sprite_ext(armor1turn, -1, x, y, image_xscale, 1, image_angle, -1, 1 - fxtimer * 0.35);
+ if (myhealth > shell2hp) draw_sprite_ext(armor2turn, -1, x, y, image_xscale, 1, image_angle, -1, 1 - fxtimer * 0.35);
draw_set_blend_mode(bm_normal);
}
- } // if (flashing)
+ }
}
+if (flashing) {
+ if (turning == 0) {
+ draw_sprite_ext(myspr, -1, x, y, image_xscale, 1, image_angle, make_color_rgb(80, 80, 80), 1);
+ if (myhealth > shell1hp) draw_sprite_ext(armor1, -1, x, y, image_xscale, 1, image_angle, make_color_rgb(80, 80, 80), 1);
+ if (myhealth > shell2hp) draw_sprite_ext(armor2, -1, x, y, image_xscale, 1, image_angle, make_color_rgb(80, 80, 80), 1);
+ draw_set_blend_mode(bm_add);
+ repeat (2) {
+ draw_sprite_ext(myspr, -1, x, y, image_xscale, 1, image_angle, -1, 1 - fxtimer * 0.25);
+ if (myhealth > shell1hp) draw_sprite_ext(armor1, -1, x, y, image_xscale, 1, image_angle, -1, 1 - fxtimer * 0.25);
+ if (myhealth > shell2hp) draw_sprite_ext(armor2, -1, x, y, image_xscale, 1, image_angle, -1, 1 - fxtimer * 0.25);
+ }
+ draw_set_blend_mode(bm_normal);
+ }
+ if (turning > 0) {
+ draw_sprite_ext(turn, -1, x, y, image_xscale, 1, image_angle, make_color_rgb(80, 80, 80), 1);
+ if (myhealth > shell1hp) draw_sprite_ext(armor1turn, -1, x, y, image_xscale, 1, image_angle, make_color_rgb(80, 80, 80), 1);
+ if (myhealth > shell2hp) draw_sprite_ext(armor2turn, -1, x, y, image_xscale, 1, image_angle, make_color_rgb(80, 80, 80), 1);
+ draw_set_blend_mode(bm_add);
+ repeat (2) {
+ draw_sprite_ext(myspr, -1, x, y, image_xscale, 1, image_angle, -1, 1 - fxtimer * 0.25);
+ if (myhealth > shell1hp) draw_sprite_ext(armor1turn, -1, x, y, image_xscale, 1, image_angle, -1, 1 - fxtimer * 0.25);
+ if (myhealth > shell2hp) draw_sprite_ext(armor2turn, -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) {
diff --git a/scripts/shoot_missile.gml b/scripts/shoot_missile.gml
index f417a20c..b88ccbc2 100644
--- a/scripts/shoot_missile.gml
+++ b/scripts/shoot_missile.gml
@@ -1,4 +1,6 @@
/// shoot_missile(direction)
+var missileX = 0;
+var missileY = 0;
if (global.currentweapon == 1 && global.missiles > 0 || global.currentweapon == 2 && global.smissiles > 0) {
msl = instance_create(x + aspr2x, y + aspr2y, oMissile);
msl.direction = argument0;
@@ -15,8 +17,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;
+ missileX = msl.x;
+ missileY = msl.y;
msl.smissile = global.currentweapon == 2;
if (global.currentweapon == 1) {
global.missiles -= 1;
@@ -55,8 +57,8 @@ if (global.currentweapon == 1 && global.missiles > 0 || global.currentweapon ==
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){
+if(instance_exists(oClient) && missileX != 0 && missileY != 0){
+ if(ds_list_size(oClient.roomListData) >= 0){
var size, type, alignment;
size = 1024;
type = buffer_grow;
diff --git a/sprites/sGunzooArmor1Frozen.sprite.gmx b/sprites/sGunzooArmor1Frozen.sprite.gmx
new file mode 100644
index 00000000..a353446e
--- /dev/null
+++ b/sprites/sGunzooArmor1Frozen.sprite.gmx
@@ -0,0 +1,25 @@
+
+
+ 0
+ 14
+ 17
+ 1
+ 0
+ 0
+ 0
+ 0
+ 18
+ 0
+ 9
+ 0
+ 0
+
+ 0
+
+ 0
+ 19
+ 10
+
+ images\sGunzooArmor1Frozen_0.png
+
+
diff --git a/sprites/sGunzooArmor2Frozen.sprite.gmx b/sprites/sGunzooArmor2Frozen.sprite.gmx
new file mode 100644
index 00000000..f56c92a2
--- /dev/null
+++ b/sprites/sGunzooArmor2Frozen.sprite.gmx
@@ -0,0 +1,25 @@
+
+
+ 0
+ 18
+ 14
+ 1
+ 0
+ 0
+ 0
+ 0
+ 14
+ 0
+ 25
+ 0
+ 0
+
+ 0
+
+ 0
+ 15
+ 26
+
+ images\sGunzooArmor2Frozen_0.png
+
+
diff --git a/sprites/sGunzooTurnFrozen.sprite.gmx b/sprites/sGunzooTurnFrozen.sprite.gmx
new file mode 100644
index 00000000..41a9f8ec
--- /dev/null
+++ b/sprites/sGunzooTurnFrozen.sprite.gmx
@@ -0,0 +1,25 @@
+
+
+ 0
+ 8
+ 13
+ 1
+ 0
+ 0
+ 0
+ 0
+ 21
+ 0
+ 26
+ 0
+ 0
+
+ 0
+
+ 0
+ 22
+ 27
+
+ images\sGunzooTurnFrozen_0.png
+
+
diff --git a/sprites/sShirkArmor1Frozen.sprite.gmx b/sprites/sShirkArmor1Frozen.sprite.gmx
new file mode 100644
index 00000000..e0ff0bbf
--- /dev/null
+++ b/sprites/sShirkArmor1Frozen.sprite.gmx
@@ -0,0 +1,25 @@
+
+
+ 0
+ 12
+ 15
+ 1
+ 0
+ 0
+ 0
+ 8
+ 25
+ 14
+ 28
+ 0
+ 0
+
+ 0
+
+ 0
+ 32
+ 32
+
+ images\sShirkArmor1Frozen_0.png
+
+
diff --git a/sprites/sShirkArmor2Frozen.sprite.gmx b/sprites/sShirkArmor2Frozen.sprite.gmx
new file mode 100644
index 00000000..4951f93a
--- /dev/null
+++ b/sprites/sShirkArmor2Frozen.sprite.gmx
@@ -0,0 +1,25 @@
+
+
+ 0
+ 12
+ 15
+ 1
+ 0
+ 0
+ 0
+ 1
+ 20
+ 8
+ 28
+ 0
+ 0
+
+ 0
+
+ 0
+ 32
+ 32
+
+ images\sShirkArmor2Frozen_0.png
+
+
diff --git a/sprites/sShirkTurnArmor1Frozen.sprite.gmx b/sprites/sShirkTurnArmor1Frozen.sprite.gmx
new file mode 100644
index 00000000..eee17f71
--- /dev/null
+++ b/sprites/sShirkTurnArmor1Frozen.sprite.gmx
@@ -0,0 +1,25 @@
+
+
+ 0
+ 10
+ 15
+ 1
+ 0
+ 0
+ 0
+ 7
+ 23
+ 16
+ 26
+ 0
+ 0
+
+ 0
+
+ 0
+ 32
+ 32
+
+ images\sShirkTurnArmor1Frozen_0.png
+
+
diff --git a/sprites/sShirkTurnArmor2Frozen.sprite.gmx b/sprites/sShirkTurnArmor2Frozen.sprite.gmx
new file mode 100644
index 00000000..f2d3f9b0
--- /dev/null
+++ b/sprites/sShirkTurnArmor2Frozen.sprite.gmx
@@ -0,0 +1,25 @@
+
+
+ 0
+ 10
+ 15
+ 1
+ 0
+ 0
+ 0
+ 4
+ 24
+ 9
+ 28
+ 0
+ 0
+
+ 0
+
+ 0
+ 32
+ 32
+
+ images\sShirkTurnArmor2Frozen_0.png
+
+
diff --git a/sprites/sShirkTurnFrozen.sprite.gmx b/sprites/sShirkTurnFrozen.sprite.gmx
new file mode 100644
index 00000000..2024093d
--- /dev/null
+++ b/sprites/sShirkTurnFrozen.sprite.gmx
@@ -0,0 +1,25 @@
+
+
+ 0
+ 10
+ 15
+ 1
+ 0
+ 0
+ 0
+ 4
+ 23
+ 0
+ 31
+ 0
+ 0
+
+ 0
+
+ 0
+ 32
+ 32
+
+ images\sShirkTurnFrozen_0.png
+
+
diff --git a/sprites/sWallfireFrozen.sprite.gmx b/sprites/sWallfireFrozen.sprite.gmx
index bacd82df..3c77213c 100644
--- a/sprites/sWallfireFrozen.sprite.gmx
+++ b/sprites/sWallfireFrozen.sprite.gmx
@@ -21,5 +21,8 @@
33
images\sWallfireFrozen_0.png
+ images\sWallfireFrozen_1.png
+ images\sWallfireFrozen_2.png
+ images\sWallfireFrozen_3.png