diff --git a/AM2R.project.gmx b/AM2R.project.gmx
index 61a85ef..4cd7065 100644
--- a/AM2R.project.gmx
+++ b/AM2R.project.gmx
@@ -3,8 +3,8 @@
Configs\Default
-
-
+
+
czech.ini
-1
@@ -158,7 +158,7 @@
languages.txt
-
+
castellano_a1_f24_b0_c3_d19_e21.png
-1
@@ -857,7 +857,7 @@
russian_a8_f19_b0_c3_d14_e16.png
-
+
04b09.ttf
-1
@@ -1030,8 +1030,8 @@
readme.txt
-
-
+
+
config.ini
-1
@@ -1067,8 +1067,8 @@
titlebackground.png
-
-
+
+
alpha.png
-1
@@ -1240,7 +1240,7 @@
zeta_blur.png
-
+
fusion_gravity.png
-1
@@ -1343,7 +1343,7 @@
varia.png
-
+
fusion_gravity.png
-1
@@ -1447,7 +1447,7 @@
varia.png
-
+
fusion_gravity.png
-1
@@ -1551,7 +1551,7 @@
varia.png
-
+
fusion_gravity.png
-1
@@ -1656,8 +1656,8 @@
-
-
+
+
sDarkMultitroidPlayer_0.png
-1
@@ -1931,7 +1931,7 @@
sDarkMultitroidPlayer_15.png
-
+
sMultitroidPlayer_0.png
-1
@@ -2205,7 +2205,7 @@
sMultitroidPlayer_15.png
-
+
sMultitroidMapIcon_0.png
-1
@@ -2478,6 +2478,57 @@
sMultitroidMapIcon_15.png
+
+ sFusionIcon.png
+ -1
+ 150
+ 2
+
+ 0
+ -1
+ 0
+ 0
+
+
+ 9223372036854775807
+
+
+ sFusionIcon.png
+
+
+ sSpectatorIcon.png
+ -1
+ 153
+ 2
+
+ 0
+ -1
+ 0
+ 0
+
+
+ 9223372036854775807
+
+
+ sSpectatorIcon.png
+
+
+ sSAXIcon.png
+ -1
+ 148
+ 2
+
+ 0
+ -1
+ 0
+ 0
+
+
+ 9223372036854775807
+
+
+ sSAXIcon.png
+
baby_metroid.png
@@ -5226,6 +5277,11 @@
sprites\sFusionIcon
sprites\sFedtogg
+
+ sprites\sPowerPalette
+ sprites\sVariaPalette
+ sprites\sGravityPalette
+
background\bgScreenGuide
diff --git a/Configs/Default.config.gmx b/Configs/Default.config.gmx
index c50b4f0..1e085a8 100644
--- a/Configs/Default.config.gmx
+++ b/Configs/Default.config.gmx
@@ -25,7 +25,7 @@
2
1
28
- Multitroid 1.4
+ Multitroid 1.4.1
0
@@ -220,7 +220,7 @@
false
true
0
- AM2R Multitroid 1.4
+ AM2R Multitroid 1.4.1
True
0
@@ -362,7 +362,7 @@
1024
false
- AM2R Multitroid 1.4
+ AM2R Multitroid 1.4.1
0
0
https://www.reddit.com/r/AM2R/
diff --git a/objects/oClient.object.gmx b/objects/oClient.object.gmx
index 8847c28..002b5c6 100644
--- a/objects/oClient.object.gmx
+++ b/objects/oClient.object.gmx
@@ -1312,6 +1312,10 @@ if(room == rm_a4b01 && global.event[203] == 9 && instance_exists
}
}
+if(global.event[203] == 9 && sfx_isplaying(sndA4AlarmLoop)){
+ sfx_stop(sndA4AlarmLoop);
+}
+
if(!instance_exists(oQueen) && global.event[303] == 0){
if(!queenHealthResetQueued){
queenHealthResetQueued = true;
@@ -2499,6 +2503,9 @@ switch(type_event){
var saxmode = buffer_read(_buffer, buffer_u8);
var lobbyLocked = buffer_read(_buffer, buffer_u8);
var samCount = buffer_read(_buffer, buffer_u8);
+ var damageMultStr = buffer_read(_buffer, buffer_string);
+ var damageMult = real(damageMultStr);
+ global.damageMult = damageMult;
global.saxmode = saxmode;
if(!lobbyLocked){
if(global.spectator){
@@ -4160,29 +4167,29 @@ switch(type_event){
1
- buffer_delete(buffer);
-var size, type, alignment;
+ var size, type, alignment;
size = 1024;
type = buffer_grow;
alignment = 1;
-buffer = buffer_create(size, type, alignment);
-buffer_seek(buffer, buffer_seek_start, 0);
-buffer_write(buffer, buffer_u8, 36);
-buffer_write(buffer, buffer_s8, oCharacter.mirror);
-buffer_write(buffer, buffer_s16, room);
-buffer_write(buffer, buffer_s16, global.currX);
-buffer_write(buffer, buffer_s16, global.currY);
-buffer_write(buffer, buffer_s8, global.sax);
-var bufferSize = buffer_tell(buffer);
-buffer_seek(buffer, buffer_seek_start, 0);
-buffer_write(buffer, buffer_s32, bufferSize);
-buffer_write(buffer, buffer_u8, 36);
-buffer_write(buffer, buffer_s8, oCharacter.mirror);
-buffer_write(buffer, buffer_s16, room);
-buffer_write(buffer, buffer_s16, global.currX);
-buffer_write(buffer, buffer_s16, global.currY);
-buffer_write(buffer, buffer_s8, global.sax);
-var result = network_send_packet(socket, buffer, buffer_tell(buffer));
+buffer11 = buffer_create(size, type, alignment);
+buffer_seek(buffer11, buffer_seek_start, 0);
+buffer_write(buffer11, buffer_u8, 36);
+buffer_write(buffer11, buffer_s8, oCharacter.mirror);
+buffer_write(buffer11, buffer_s16, room);
+buffer_write(buffer11, buffer_s16, global.currX);
+buffer_write(buffer11, buffer_s16, global.currY);
+buffer_write(buffer11, buffer_s8, global.sax);
+var bufferSize = buffer_tell(buffer11);
+buffer_seek(buffer11, buffer_seek_start, 0);
+buffer_write(buffer11, buffer_s32, bufferSize);
+buffer_write(buffer11, buffer_u8, 36);
+buffer_write(buffer11, buffer_s8, oCharacter.mirror);
+buffer_write(buffer11, buffer_s16, room);
+buffer_write(buffer11, buffer_s16, global.currX);
+buffer_write(buffer11, buffer_s16, global.currY);
+buffer_write(buffer11, buffer_s8, global.sax);
+var result = network_send_packet(socket, buffer11, buffer_tell(buffer11));
+buffer_delete(buffer11);
@@ -4206,23 +4213,23 @@ var result = network_send_packet(socket, buffer, buffer_tell(buffer));
1
if(!global.saxmode || global.spectator) exit;
-buffer_delete(buffer);
var size, type, alignment;
size = 1024;
type = buffer_grow;
alignment = 1;
-buffer = buffer_create(size, type, alignment);
-buffer_seek(buffer, buffer_seek_start, 0);
-buffer_write(buffer, buffer_u8, 35);
-buffer_write(buffer, buffer_s16, global.mapposx);
-buffer_write(buffer, buffer_s16, global.mapposy);
-var bufferSize = buffer_tell(buffer);
-buffer_seek(buffer, buffer_seek_start, 0);
-buffer_write(buffer, buffer_s32, bufferSize);
-buffer_write(buffer, buffer_u8, 35);
-buffer_write(buffer, buffer_s16, global.mapposx);
-buffer_write(buffer, buffer_s16, global.mapposy);
-var result = network_send_packet(socket, buffer, buffer_tell(buffer));
+buffer10 = buffer_create(size, type, alignment);
+buffer_seek(buffer10, buffer_seek_start, 0);
+buffer_write(buffer10, buffer_u8, 35);
+buffer_write(buffer10, buffer_s16, global.mapposx);
+buffer_write(buffer10, buffer_s16, global.mapposy);
+var bufferSize = buffer_tell(buffer10);
+buffer_seek(buffer10, buffer_seek_start, 0);
+buffer_write(buffer10, buffer_s32, bufferSize);
+buffer_write(buffer10, buffer_u8, 35);
+buffer_write(buffer10, buffer_s16, global.mapposx);
+buffer_write(buffer10, buffer_s16, global.mapposy);
+var result = network_send_packet(socket, buffer10, buffer_tell(buffer10));
+buffer_delete(buffer10);
@@ -4245,21 +4252,21 @@ var result = network_send_packet(socket, buffer, buffer_tell(buffer));
1
- buffer_delete(buffer);
-var size, type, alignment;
+ var size, type, alignment;
size = 1024;
type = buffer_grow;
alignment = 1;
-buffer = buffer_create(size, type, alignment);
-buffer_seek(buffer, buffer_seek_start, 0);
-buffer_write(buffer, buffer_u8, 34);
-buffer_write(buffer, buffer_u8, global.saxmode);
-var bufferSize = buffer_tell(buffer);
-buffer_seek(buffer, buffer_seek_start, 0);
-buffer_write(buffer, buffer_s32, bufferSize);
-buffer_write(buffer, buffer_u8, 34);
-buffer_write(buffer, buffer_u8, global.saxmode);
-var result = network_send_packet(socket, buffer, buffer_tell(buffer));
+buffer9 = buffer_create(size, type, alignment);
+buffer_seek(buffer9, buffer_seek_start, 0);
+buffer_write(buffer9, buffer_u8, 34);
+buffer_write(buffer9, buffer_u8, global.saxmode);
+var bufferSize = buffer_tell(buffer9);
+buffer_seek(buffer9, buffer_seek_start, 0);
+buffer_write(buffer9, buffer_s32, bufferSize);
+buffer_write(buffer9, buffer_u8, 34);
+buffer_write(buffer9, buffer_u8, global.saxmode);
+var result = network_send_packet(socket, buffer9, buffer_tell(buffer9));
+buffer_delete(buffer9);
@@ -4282,21 +4289,21 @@ var result = network_send_packet(socket, buffer, buffer_tell(buffer));
1
- buffer_delete(buffer);
-var size, type, alignment;
+ var size, type, alignment;
size = 1024;
type = buffer_grow;
alignment = 1;
-buffer = buffer_create(size, type, alignment);
-buffer_seek(buffer, buffer_seek_start, 0);
-buffer_write(buffer, buffer_u8, 33);
-buffer_write(buffer, buffer_u8, global.lobbyLocked);
-var bufferSize = buffer_tell(buffer);
-buffer_seek(buffer, buffer_seek_start, 0);
-buffer_write(buffer, buffer_s32, bufferSize);
-buffer_write(buffer, buffer_u8, 33);
-buffer_write(buffer, buffer_u8, global.lobbyLocked);
-var result = network_send_packet(socket, buffer, buffer_tell(buffer));
+buffer8 = buffer_create(size, type, alignment);
+buffer_seek(buffer8, buffer_seek_start, 0);
+buffer_write(buffer8, buffer_u8, 33);
+buffer_write(buffer8, buffer_u8, global.lobbyLocked);
+var bufferSize = buffer_tell(buffer8);
+buffer_seek(buffer8, buffer_seek_start, 0);
+buffer_write(buffer8, buffer_s32, bufferSize);
+buffer_write(buffer8, buffer_u8, 33);
+buffer_write(buffer8, buffer_u8, global.lobbyLocked);
+var result = network_send_packet(socket, buffer8, buffer_tell(buffer8));
+buffer_delete(buffer8);
@@ -4320,19 +4327,19 @@ var result = network_send_packet(socket, buffer, buffer_tell(buffer));
1
//Reset server packet
-buffer_delete(buffer);
var size, type, alignment;
size = 1024;
type = buffer_grow;
alignment = 1;
-buffer = buffer_create(size, type, alignment);
-buffer_seek(buffer, buffer_seek_start, 0);
-buffer_write(buffer, buffer_u8, 32);
-var bufferSize = buffer_tell(buffer);
-buffer_seek(buffer, buffer_seek_start, 0);
-buffer_write(buffer, buffer_s32, bufferSize);
-buffer_write(buffer, buffer_u8, 32);
-var result = network_send_packet(socket, buffer, buffer_tell(buffer));
+buffer7 = buffer_create(size, type, alignment);
+buffer_seek(buffer7, buffer_seek_start, 0);
+buffer_write(buffer7, buffer_u8, 32);
+var bufferSize = buffer_tell(buffer7);
+buffer_seek(buffer7, buffer_seek_start, 0);
+buffer_write(buffer7, buffer_s32, bufferSize);
+buffer_write(buffer7, buffer_u8, 32);
+var result = network_send_packet(socket, buffer7, buffer_tell(buffer7));
+buffer_delete(buffer7);
@@ -4355,27 +4362,27 @@ var result = network_send_packet(socket, buffer, buffer_tell(buffer));
1
- buffer_delete(buffer);
-var size, type, alignment;
+ var size, type, alignment;
size = 1024;
type = buffer_grow;
alignment = 1;
-buffer = buffer_create(size, type, alignment);
-buffer_seek(buffer, buffer_seek_start, 0);
-buffer_write(buffer, buffer_u8, 31);
-buffer_write(buffer, buffer_u8, global.otherAbsorbID);
-buffer_write(buffer, buffer_s16, global.otherAbsorbRelativeX);
-buffer_write(buffer, buffer_s16, global.otherAbsorbRelativeY);
-buffer_write(buffer, buffer_u8, global.otherAbsorbSpriteHeight);
-var bufferSize = buffer_tell(buffer);
-buffer_seek(buffer, buffer_seek_start, 0);
-buffer_write(buffer, buffer_s32, bufferSize);
-buffer_write(buffer, buffer_u8, 31);
-buffer_write(buffer, buffer_u8, global.otherAbsorbID);
-buffer_write(buffer, buffer_s16, global.otherAbsorbRelativeX);
-buffer_write(buffer, buffer_s16, global.otherAbsorbRelativeY);
-buffer_write(buffer, buffer_u8, global.otherAbsorbSpriteHeight);
-var result = network_send_packet(socket, buffer, buffer_tell(buffer));
+buffer6 = buffer_create(size, type, alignment);
+buffer_seek(buffer6, buffer_seek_start, 0);
+buffer_write(buffer6, buffer_u8, 31);
+buffer_write(buffer6, buffer_u8, global.otherAbsorbID);
+buffer_write(buffer6, buffer_s16, global.otherAbsorbRelativeX);
+buffer_write(buffer6, buffer_s16, global.otherAbsorbRelativeY);
+buffer_write(buffer6, buffer_u8, global.otherAbsorbSpriteHeight);
+var bufferSize = buffer_tell(buffer6);
+buffer_seek(buffer6, buffer_seek_start, 0);
+buffer_write(buffer6, buffer_s32, bufferSize);
+buffer_write(buffer6, buffer_u8, 31);
+buffer_write(buffer6, buffer_u8, global.otherAbsorbID);
+buffer_write(buffer6, buffer_s16, global.otherAbsorbRelativeX);
+buffer_write(buffer6, buffer_s16, global.otherAbsorbRelativeY);
+buffer_write(buffer6, buffer_u8, global.otherAbsorbSpriteHeight);
+var result = network_send_packet(socket, buffer6, buffer_tell(buffer6));
+buffer_delete(buffer6);
@@ -4398,33 +4405,33 @@ var result = network_send_packet(socket, buffer, buffer_tell(buffer));
1
- buffer_delete(buffer);
-var size, type, alignment;
+ var size, type, alignment;
size = 1024;
type = buffer_grow;
alignment = 1;
-buffer = buffer_create(size, type, alignment);
-buffer_seek(buffer, buffer_seek_start, 0);
-buffer_write(buffer, buffer_u8, 106);
-buffer_write(buffer, buffer_u8, global.checkID);
-buffer_write(buffer, buffer_s16, global.checkX);
-buffer_write(buffer, buffer_s16, global.checkY);
-buffer_write(buffer, buffer_u8, global.checkBeam);
-buffer_write(buffer, buffer_u8, global.checkMissile);
-buffer_write(buffer, buffer_u8, global.checkDamage);
-buffer_write(buffer, buffer_u8, global.checkFreeze);
-var bufferSize = buffer_tell(buffer);
-buffer_seek(buffer, buffer_seek_start, 0);
-buffer_write(buffer, buffer_s32, bufferSize);
-buffer_write(buffer, buffer_u8, 106);
-buffer_write(buffer, buffer_u8, global.checkID);
-buffer_write(buffer, buffer_s16, global.checkX);
-buffer_write(buffer, buffer_s16, global.checkY);
-buffer_write(buffer, buffer_u8, global.checkBeam);
-buffer_write(buffer, buffer_u8, global.checkMissile);
-buffer_write(buffer, buffer_u8, global.checkDamage);
-buffer_write(buffer, buffer_u8, global.checkFreeze);
-var result = network_send_packet(socket, buffer, buffer_tell(buffer));
+buffer5 = buffer_create(size, type, alignment);
+buffer_seek(buffer5, buffer_seek_start, 0);
+buffer_write(buffer5, buffer_u8, 106);
+buffer_write(buffer5, buffer_u8, global.checkID);
+buffer_write(buffer5, buffer_s16, global.checkX);
+buffer_write(buffer5, buffer_s16, global.checkY);
+buffer_write(buffer5, buffer_u8, global.checkBeam);
+buffer_write(buffer5, buffer_u8, global.checkMissile);
+buffer_write(buffer5, buffer_u8, global.checkDamage);
+buffer_write(buffer5, buffer_u8, global.checkFreeze);
+var bufferSize = buffer_tell(buffer5);
+buffer_seek(buffer5, buffer_seek_start, 0);
+buffer_write(buffer5, buffer_s32, bufferSize);
+buffer_write(buffer5, buffer_u8, 106);
+buffer_write(buffer5, buffer_u8, global.checkID);
+buffer_write(buffer5, buffer_s16, global.checkX);
+buffer_write(buffer5, buffer_s16, global.checkY);
+buffer_write(buffer5, buffer_u8, global.checkBeam);
+buffer_write(buffer5, buffer_u8, global.checkMissile);
+buffer_write(buffer5, buffer_u8, global.checkDamage);
+buffer_write(buffer5, buffer_u8, global.checkFreeze);
+var result = network_send_packet(socket, buffer5, buffer_tell(buffer5));
+buffer_delete(buffer5);
@@ -4448,21 +4455,21 @@ var result = network_send_packet(socket, buffer, buffer_tell(buffer));
1
if(global.spectator) exit;
-buffer_delete(buffer);
var size, type, alignment;
size = 1024;
type = buffer_grow;
alignment = 1;
-buffer = buffer_create(size, type, alignment);
-buffer_seek(buffer, buffer_seek_start, 0);
-buffer_write(buffer, buffer_u8, 105);
-buffer_write(buffer, buffer_u8, global.otherID);
-var bufferSize = buffer_tell(buffer);
-buffer_seek(buffer, buffer_seek_start, 0);
-buffer_write(buffer, buffer_s32, bufferSize);
-buffer_write(buffer, buffer_u8, 105);
-buffer_write(buffer, buffer_u8, global.otherID);
-var result = network_send_packet(socket, buffer, buffer_tell(buffer));
+buffer4 = buffer_create(size, type, alignment);
+buffer_seek(buffer4, buffer_seek_start, 0);
+buffer_write(buffer4, buffer_u8, 105);
+buffer_write(buffer4, buffer_u8, global.otherID);
+var bufferSize = buffer_tell(buffer4);
+buffer_seek(buffer4, buffer_seek_start, 0);
+buffer_write(buffer4, buffer_s32, bufferSize);
+buffer_write(buffer4, buffer_u8, 105);
+buffer_write(buffer4, buffer_u8, global.otherID);
+var result = network_send_packet(socket, buffer4, buffer_tell(buffer4));
+buffer_delete(buffer4);
@@ -4485,21 +4492,21 @@ var result = network_send_packet(socket, buffer, buffer_tell(buffer));
1
- buffer_delete(buffer);
-var size, type, alignment;
+ var size, type, alignment;
size = 1024;
type = buffer_grow;
alignment = 1;
-buffer = buffer_create(size, type, alignment);
-buffer_seek(buffer, buffer_seek_start, 0);
-buffer_write(buffer, buffer_u8, 30);
-buffer_write(buffer, buffer_u8, elm);
-var bufferSize = buffer_tell(buffer);
-buffer_seek(buffer, buffer_seek_start, 0);
-buffer_write(buffer, buffer_s32, bufferSize);
-buffer_write(buffer, buffer_u8, 30);
-buffer_write(buffer, buffer_u8, elm);
-var result = network_send_packet(socket, buffer, buffer_tell(buffer));
+buffer3 = buffer_create(size, type, alignment);
+buffer_seek(buffer3, buffer_seek_start, 0);
+buffer_write(buffer3, buffer_u8, 30);
+buffer_write(buffer3, buffer_u8, elm);
+var bufferSize = buffer_tell(buffer3);
+buffer_seek(buffer3, buffer_seek_start, 0);
+buffer_write(buffer3, buffer_s32, bufferSize);
+buffer_write(buffer3, buffer_u8, 30);
+buffer_write(buffer3, buffer_u8, elm);
+var result = network_send_packet(socket, buffer3, buffer_tell(buffer3));
+buffer_delete(buffer3);
@@ -4522,21 +4529,21 @@ var result = network_send_packet(socket, buffer, buffer_tell(buffer));
1
- buffer_delete(buffer);
-var size, type, alignment;
+ var size, type, alignment;
size = 1024;
type = buffer_grow;
alignment = 1;
-buffer = buffer_create(size, type, alignment);
-buffer_seek(buffer, buffer_seek_start, 0);
-buffer_write(buffer, buffer_u8, 29);
-buffer_write(buffer, buffer_u8, syncedDifficulty);
-var bufferSize = buffer_tell(buffer);
-buffer_seek(buffer, buffer_seek_start, 0);
-buffer_write(buffer, buffer_s32, bufferSize);
-buffer_write(buffer, buffer_u8, 29);
-buffer_write(buffer, buffer_u8, syncedDifficulty);
-var result = network_send_packet(socket, buffer, buffer_tell(buffer));
+buffer2 = buffer_create(size, type, alignment);
+buffer_seek(buffer2, buffer_seek_start, 0);
+buffer_write(buffer2, buffer_u8, 29);
+buffer_write(buffer2, buffer_u8, syncedDifficulty);
+var bufferSize = buffer_tell(buffer2);
+buffer_seek(buffer2, buffer_seek_start, 0);
+buffer_write(buffer2, buffer_s32, bufferSize);
+buffer_write(buffer2, buffer_u8, 29);
+buffer_write(buffer2, buffer_u8, syncedDifficulty);
+var result = network_send_packet(socket, buffer2, buffer_tell(buffer2));
+buffer_delete(buffer2);
@@ -4922,7 +4929,7 @@ if(instance_exists(oMapCursor)){
if(arrX != 3 && arrY != 3) draw_sprite_ext(sMultitroidMapIconMiepee, 0, (arrX * 8), ((arrY * 8) + 32), 1, 1, direction, c_white, oMapCursor.image_alpha);
}
} else {
- if(arrX != 3 && arrY != 3 && sax == global.sax){
+ if(arrX != 3 && arrY != 3 && sax == global.sax && !spectator){
draw_sprite_ext(oControl.MultitroidMapIcon, (arrID - 1), (arrX * 8), ((arrY * 8) + 32), 1, 1, direction, c_white, oMapCursor.image_alpha);
}
}
diff --git a/objects/oControl.object.gmx b/objects/oControl.object.gmx
index 6558f90..7f7a77b 100644
--- a/objects/oControl.object.gmx
+++ b/objects/oControl.object.gmx
@@ -319,7 +319,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.4";
+global.multitroid_version = "V1.4.1";
// Android
global.gamestarted = 0;
@@ -507,6 +507,9 @@ MultitroidBabyPaletteCustom = sPalMultitroidBaby;
MultitroidIconCustom = sMultitroidIcon;
MultitroidIconDarkCustom = sDarkMultitroidPlayer;
MultitroidMapIconCustom = sMultitroidMapIcon;
+MultitroidSpectatorIcon = sSpectatorIcon;
+MultitroidFusionIcon = sFusionIcon;
+MultitroidSAXIcon = sMultitroidMapIconMiepee;
MultitroidPalette = MultitroidPaletteDefault;
MultitroidPaletteFusion = MultitroidPaletteFusionDefault;
@@ -587,6 +590,8 @@ global.playerMapPosTimer = 0;
global.samCount = 0;
+global.damageMult = 0;
+
reset_map();
load_character_vars();
diff --git a/objects/oCreditsText.object.gmx b/objects/oCreditsText.object.gmx
index 35b629b..8bb8201 100644
--- a/objects/oCreditsText.object.gmx
+++ b/objects/oCreditsText.object.gmx
@@ -155,6 +155,8 @@ if (statetime > 520) {
//This dictates the credit scrolling speed
if (statetime == 700) vspeed = -0.34;
statetime += 1;
+
+if(audio_is_playing(oMusicV2.currentbgm)) audio_stop_sound(oMusicV2.currentbgm);
diff --git a/objects/oDeathSequenceMulti.object.gmx b/objects/oDeathSequenceMulti.object.gmx
index a5e0759..b13338d 100644
--- a/objects/oDeathSequenceMulti.object.gmx
+++ b/objects/oDeathSequenceMulti.object.gmx
@@ -25,7 +25,7 @@
1
- image_speed = 0.5;
+ image_speed = 0.25;
image_index = 0;
fade = 0;
moveplayer = 0;
diff --git a/objects/oDoor.object.gmx b/objects/oDoor.object.gmx
index d5decee..db225d9 100644
--- a/objects/oDoor.object.gmx
+++ b/objects/oDoor.object.gmx
@@ -247,15 +247,24 @@ if(room == rm_a7b08A){
}
if(event > -1){
- if(global.event[event] > 0){
- if(lock == 1 || lock == 2 || lock == 3){
- lock = 0;
- open = 1;
+ if(event == 151){
+ if(global.event[151] >= 3){
+ if(lock == 1 || lock == 2 || lock == 3){
+ lock = 0;
+ open = 1;
+ }
+ }
+ } else {
+ if(global.event[event] > 0){
+ if(lock == 1 || lock == 2 || lock == 3){
+ lock = 0;
+ open = 1;
+ }
}
}
}
-if(global.spectator && instance_exists(oCharacter) && distance_to_object(oCharacter) < 50 && room != rm_a2a03 && id != inst_113941 && room != rm_a4a06 && room != rm_a4a08 && room != rm_a5b02 && room != rm_a8a13){
+if(global.spectator && instance_exists(oCharacter) && distance_to_object(oCharacter) < 50 && room != rm_a2a03 && id != inst_113941 && id != inst_113946 && room != rm_a4a06 && room != rm_a4a08 && room != rm_a5b02 && room != rm_a8a13){
if(!open) open = 1;
}
diff --git a/objects/oMultiHitbox.object.gmx b/objects/oMultiHitbox.object.gmx
index 87f911e..4abd5f6 100644
--- a/objects/oMultiHitbox.object.gmx
+++ b/objects/oMultiHitbox.object.gmx
@@ -74,6 +74,9 @@ GRABBEDQUEENBELLY = 55;
LOCKEDBALL = 60;
DEFEATED = 100;
+screwattackpickupframe = irandom(4);
+screwattackpickupangle = irandom(359);
+
absorb = false;
absorbDone = false;
time = 0;
diff --git a/objects/oNametag.object.gmx b/objects/oNametag.object.gmx
index 086cadb..a11f917 100644
--- a/objects/oNametag.object.gmx
+++ b/objects/oNametag.object.gmx
@@ -133,7 +133,7 @@
}
}
} else {
- if(global.showHealthIndicators && !tunnel){
+ if(global.showHealthIndicators && !tunnel && !arrSpectator){
var offsetY = 42;
if(string_count("MorphBall", sprite_get_name(arrSprite)) > 0) offsetY = 21;
var offsetX = 7;
diff --git a/objects/oWarpPipeTrigger.object.gmx b/objects/oWarpPipeTrigger.object.gmx
index e1cd2f8..06600db 100644
--- a/objects/oWarpPipeTrigger.object.gmx
+++ b/objects/oWarpPipeTrigger.object.gmx
@@ -25,7 +25,7 @@
1
-
+ if(global.spectator) instance_destroy();
posx = x + 8;
state = 0;
statetime = 0;
diff --git a/rooms/rm_a0h01.room.gmx b/rooms/rm_a0h01.room.gmx
index cc6a459..71f4478 100644
--- a/rooms/rm_a0h01.room.gmx
+++ b/rooms/rm_a0h01.room.gmx
@@ -381,7 +381,7 @@ if (global.timeofday == 2) {
-
+
diff --git a/rooms/rm_a2a03.room.gmx b/rooms/rm_a2a03.room.gmx
index f33228e..439b299 100644
--- a/rooms/rm_a2a03.room.gmx
+++ b/rooms/rm_a2a03.room.gmx
@@ -152,7 +152,7 @@ else oMusicV2.currentbgm = musArea2A;
-
+
diff --git a/rooms/rm_a3h04.room.gmx b/rooms/rm_a3h04.room.gmx
index 1b5a47b..4c24d04 100644
--- a/rooms/rm_a3h04.room.gmx
+++ b/rooms/rm_a3h04.room.gmx
@@ -301,7 +301,7 @@ instance_create(64, 1648, scr_itemsopen(oControl.mod_211));
-
+
diff --git a/scripts/characterStepEvent.gml b/scripts/characterStepEvent.gml
index 8d51d08..33b4796 100644
--- a/scripts/characterStepEvent.gml
+++ b/scripts/characterStepEvent.gml
@@ -3,7 +3,13 @@ var jump_vel;
if (global.enablecontrol) chStepControl();
if (global.movingobj) chStepMovingCheck();
-if(global.playerhealth <= 0 && global.sax && oCharacter.sprite_index != sCoreXSAX) global.playerhealth = 1;
+if (global.saxmode && !global.lobbyLocked){
+ xVel = 0;
+ yVel = 0;
+ exit;
+}
+
+if(global.playerhealth <= 0 && global.sax && global.saxmode && oCharacter.sprite_index != sCoreXSAX) global.playerhealth = 1;
if(global.saxmode && global.sax && global.playerhealth == 1 && !global.spectator && global.lobbyLocked){
if(!global.mosaic){
diff --git a/scripts/damage_player.gml b/scripts/damage_player.gml
index 76d2c3c..d0d8bb3 100644
--- a/scripts/damage_player.gml
+++ b/scripts/damage_player.gml
@@ -1,12 +1,16 @@
/// damage_player(damage, knockback_x, knockback_y, ignore_armor, ignore_invincibility)
if(global.spectator) exit;
-var damage_taken;
+var damage_taken = 0;
if (global.currentsuit == 0 || argument3 == 1) damage_taken = argument0 * oControl.mod_diffmult;
if (argument3 == 0) {
if (global.currentsuit == 1){
if(!global.multiDamageCollision){
damage_taken = ceil(argument0 * 0.5) * oControl.mod_diffmult;
- } else damage_taken = ceil(argument0 * 0.75) * oControl.mod_diffmult; //PvP Damage
+ } else {
+ damage_taken = ceil(argument0 * 0.75) * oControl.mod_diffmult; //PvP Damage
+ damage_taken = damage_taken + (damage_taken * global.damageMult); //PvP Damage
+ }
+
}
if (global.currentsuit == 2) {
if(!global.multiDamageCollision){
@@ -18,14 +22,17 @@ if (argument3 == 0) {
} else {
if(global.item[5] == 0){
damage_taken = ceil(argument0 * 0.75) * oControl.mod_diffmult; //PvP Damage
+ damage_taken = damage_taken + (damage_taken * global.damageMult); //PvP Damage
} else {
- damage_taken = ceil(argument0 * 0.5) * oControl.mod_diffmult; //PvP Damage
+ damage_taken = ceil(argument0 * 0.6) * oControl.mod_diffmult; //PvP Damage
+ damage_taken = damage_taken + (damage_taken * global.damageMult); //PvP Damage
}
}
} //added
}
-var currState = state;
+
if (global.playerhealth > 0) with (oCharacter) {
+ var currState = state;
if ((state != HURT && invincible == 0 || argument4 == 1 && statetime > 2) && !global.ignoreKnockback) {
if (canbehit && state != IDLE && state != SAVING && state != SAVINGFX && state != SAVINGSHIPFX && state != SAVINGSHIP && state != ELEVATOR && state != GFELEVATOR) {
if (state == BALL || state == AIRBALL || state == SPIDERBALL || sjball == 1) {
@@ -75,20 +82,22 @@ if (global.playerhealth > 0) with (oCharacter) {
}
} // if (global.playerhealth > 0)
-if(global.ignoreKnockback && invincible == 0){
- invincible = 60;
- if(global.playerFreeze > 0){
- invincible = 45;
- if(state == BALL || state == AIRBALL || state == SPIDERBALL) fixedx = 0;
- }
- if(global.playerFreeze == 156){
- invincible = 0;
- if(state == BALL || state == AIRBALL || state == SPIDERBALL) fixedx = 0;
- }
- global.playerhealth -= damage_taken;
- if (global.playerhealth <= 0 && state != DEFEATED) {
- alarm[0] = 6;
- state = DEFEATED;
+with(oCharacter){
+ if(global.ignoreKnockback && invincible == 0){
+ invincible = 60;
+ if(global.playerFreeze > 0){
+ invincible = 45;
+ if(state == BALL || state == AIRBALL || state == SPIDERBALL) fixedx = 0;
+ }
+ if(global.playerFreeze == 156){
+ invincible = 0;
+ if(state == BALL || state == AIRBALL || state == SPIDERBALL) fixedx = 0;
+ }
+ global.playerhealth -= damage_taken;
+ if (global.playerhealth <= 0 && state != DEFEATED) {
+ alarm[0] = 6;
+ state = DEFEATED;
+ }
}
}
diff --git a/scripts/load_character_vars.gml b/scripts/load_character_vars.gml
index 2653ebc..2ef0ea1 100644
--- a/scripts/load_character_vars.gml
+++ b/scripts/load_character_vars.gml
@@ -61,7 +61,7 @@ global.item[1] = 1;
reset_logs_list();
reset_hints();
-if(global.sax){
+if(global.sax && global.saxmode){
//Upgrades
global.item[0] = 1;
global.item[1] = 1;
diff --git a/scripts/load_resources.gml b/scripts/load_resources.gml
index 8ca4238..987c8e5 100644
--- a/scripts/load_resources.gml
+++ b/scripts/load_resources.gml
@@ -125,9 +125,9 @@ if (directory_exists(program_directory)) {
// ***Suit palettes***
-oControl.PowerPalette = -1;
-oControl.VariaPalette = -1;
-oControl.GravityPalette = -1;
+oControl.PowerPalette = sPowerPalette;
+oControl.VariaPalette = sVariaPalette;
+oControl.GravityPalette = sGravityPalette;
if (file_exists("mods/palettes/suits/power.png")) oControl.PowerPalette = sprite_add("mods/palettes/suits/power.png", 1, false, false, 0, 0);
if (file_exists("mods/palettes/suits/varia.png")) oControl.VariaPalette = sprite_add("mods/palettes/suits/varia.png", 1, false, false, 0, 0);
@@ -293,6 +293,9 @@ if (file_exists("mods/palettes/multitroid/multitroid.png")) oControl.MultitroidP
if (file_exists("mods/palettes/multitroid/multitroid_fusion.png")) oControl.MultitroidPaletteFusionCustom = sprite_add("mods/palettes/multitroid/multitroid_fusion.png", 1, false, false, 0, 0);
if (file_exists("mods/palettes/multitroid/spiderball.png")) oControl.SpiderballPaletteCustom = sprite_add("mods/palettes/multitroid/spiderball.png", 1, false, false, 0, 0);
if (file_exists("mods/palettes/multitroid/baby_metroid.png")) oControl.MultitroidBabyPaletteCustom = sprite_add("mods/palettes/multitroid/baby_metroid.png", 1, false, false, 0, 0);
+if (file_exists("mods/palettes/multitroid/map_icons/sSpectatorIcon.png")) oControl.MultitroidSpectatorIcon = sprite_add("mods/palettes/multitroid/map_icons/sSpectatorIcon.png", 1, false, false, 0, 0);
+if (file_exists("mods/palettes/multitroid/map_icons/sFusionIcon.png")) oControl.MultitroidFusionIcon = sprite_add("mods/palettes/multitroid/map_icons/sFusionIcon.png", 1, false, false, 0, 0);
+if (file_exists("mods/palettes/multitroid/map_icons/sSAXIcon.png")) oControl.MultitroidSAXIcon = sprite_add("mods/palettes/multitroid/map_icons/sSAXIcon.png", 1, false, false, 0, 0);
icon_sprite = 0;
icon_merge = 1;
diff --git a/sprites/sGravityPalette.sprite.gmx b/sprites/sGravityPalette.sprite.gmx
new file mode 100644
index 0000000..53bc347
--- /dev/null
+++ b/sprites/sGravityPalette.sprite.gmx
@@ -0,0 +1,25 @@
+
+
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 74
+ 0
+ 0
+
+ 0
+
+ 0
+ 2
+ 75
+
+ images\sGravityPalette_0.png
+
+
diff --git a/sprites/sPowerPalette.sprite.gmx b/sprites/sPowerPalette.sprite.gmx
new file mode 100644
index 0000000..c68b076
--- /dev/null
+++ b/sprites/sPowerPalette.sprite.gmx
@@ -0,0 +1,25 @@
+
+
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 55
+ 0
+ 0
+
+ 0
+
+ 0
+ 2
+ 56
+
+ images\sPowerPalette_0.png
+
+
diff --git a/sprites/sVariaPalette.sprite.gmx b/sprites/sVariaPalette.sprite.gmx
new file mode 100644
index 0000000..06c712b
--- /dev/null
+++ b/sprites/sVariaPalette.sprite.gmx
@@ -0,0 +1,25 @@
+
+
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 44
+ 0
+ 0
+
+ 0
+
+ 0
+ 2
+ 45
+
+ images\sVariaPalette_0.png
+
+