From d434594e1fbbacdfc8722ec757ccc4a2426edc0a Mon Sep 17 00:00:00 2001 From: milesthenerd Date: Sat, 18 Sep 2021 04:18:57 -0500 Subject: [PATCH] Fixed a bunch of bugs and added damage scaling with items --- AM2R.project.gmx | 88 ++++++-- Configs/Default.config.gmx | 6 +- objects/oClient.object.gmx | 295 +++++++++++++------------ objects/oControl.object.gmx | 7 +- objects/oCreditsText.object.gmx | 2 + objects/oDeathSequenceMulti.object.gmx | 2 +- objects/oDoor.object.gmx | 19 +- objects/oMultiHitbox.object.gmx | 3 + objects/oNametag.object.gmx | 2 +- objects/oWarpPipeTrigger.object.gmx | 2 +- rooms/rm_a0h01.room.gmx | 2 +- rooms/rm_a2a03.room.gmx | 2 +- rooms/rm_a3h04.room.gmx | 2 +- scripts/characterStepEvent.gml | 8 +- scripts/damage_player.gml | 45 ++-- scripts/load_character_vars.gml | 2 +- scripts/load_resources.gml | 9 +- sprites/sGravityPalette.sprite.gmx | 25 +++ sprites/sPowerPalette.sprite.gmx | 25 +++ sprites/sVariaPalette.sprite.gmx | 25 +++ 20 files changed, 373 insertions(+), 198 deletions(-) create mode 100644 sprites/sGravityPalette.sprite.gmx create mode 100644 sprites/sPowerPalette.sprite.gmx create mode 100644 sprites/sVariaPalette.sprite.gmx diff --git a/AM2R.project.gmx b/AM2R.project.gmx index 61a85ef6..4cd7065e 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 c50b4f03..1e085a84 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 8847c28a..002b5c65 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 6558f902..7f7a77b8 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 35b629b2..8bb82015 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 a5e07596..b13338d3 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 d5deceed..db225d98 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 87f911ee..4abd5f62 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 086cadb8..a11f917a 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 e1cd2f8b..06600db2 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 cc6a4594..71f44781 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 f33228e8..439b2994 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 1b5a47bd..4c24d040 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 8d51d088..33b47966 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 76d2c3cb..d0d8bb33 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 2653ebc8..2ef0ea15 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 8ca4238e..987c8e5f 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 00000000..53bc3471 --- /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 00000000..c68b076b --- /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 00000000..06c712bb --- /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 + +