From d7becb813421b39979f1d159a348e0c2cc684d15 Mon Sep 17 00:00:00 2001 From: milesthenerd Date: Mon, 22 Nov 2021 01:24:07 -0600 Subject: [PATCH] Fixed a ton of bugs and added optional experimental changes --- Configs/Default.config.gmx | 6 +-- objects/oCharacter.object.gmx | 2 +- objects/oClient.object.gmx | 49 +++++++++++++-------- objects/oControl.object.gmx | 29 +++++++++--- objects/oCreditsText.object.gmx | 3 +- objects/oDeathSequenceMulti.object.gmx | 2 +- objects/oDrillSeq1.object.gmx | 2 +- objects/oDrillSeq2.object.gmx | 2 +- objects/oEMPNoise.object.gmx | 3 +- objects/oIntroController.object.gmx | 5 +++ objects/oMapCursor.object.gmx | 2 + objects/oSaveShip.object.gmx | 2 +- objects/oSaveStation.object.gmx | 2 +- objects/oScoreScreen.object.gmx | 5 ++- objects/oWarpPipeTrigger.object.gmx | 21 +++++---- scripts/characterStepEvent.gml | 3 +- scripts/damage_player.gml | 17 +++++-- scripts/load_character_vars.gml | 31 +++++++++++++ scripts/shoot_beam.gml | 2 +- sound/musSAXAppear.sound.gmx | 4 +- sound/musSAXChase.sound.gmx | 4 +- sound/musSAXEnvironmentalAmbience.sound.gmx | 4 +- 22 files changed, 143 insertions(+), 57 deletions(-) diff --git a/Configs/Default.config.gmx b/Configs/Default.config.gmx index 1e085a84..96a51557 100644 --- a/Configs/Default.config.gmx +++ b/Configs/Default.config.gmx @@ -25,7 +25,7 @@ 2 1 28 - Multitroid 1.4.1 + Multitroid 1.4.2 0 @@ -220,7 +220,7 @@ false true 0 - AM2R Multitroid 1.4.1 + AM2R Multitroid 1.4.2 True 0 @@ -362,7 +362,7 @@ 1024 false - AM2R Multitroid 1.4.1 + AM2R Multitroid 1.4.2 0 0 https://www.reddit.com/r/AM2R/ diff --git a/objects/oCharacter.object.gmx b/objects/oCharacter.object.gmx index a78d3a66..357ff607 100644 --- a/objects/oCharacter.object.gmx +++ b/objects/oCharacter.object.gmx @@ -736,10 +736,10 @@ damage_player(other.damage, 5 * damageDir, -3, 0, combo); 1 /// SA-X Projectile Damage if(global.spectator) exit; +otherOBJ = other.object_index; if(invincible == 0){ damageDir = -1; knockbackY = -3; - otherOBJ = other.object_index; var combo = 0; if(!(global.item[5] && global.currentsuit == 2) && other.ibeam && otherOBJ == oBeam){ other.damage = other.damage * 0.8; diff --git a/objects/oClient.object.gmx b/objects/oClient.object.gmx index 002b5c65..27083741 100644 --- a/objects/oClient.object.gmx +++ b/objects/oClient.object.gmx @@ -242,6 +242,10 @@ HURT = 32; sizeX = 1; sizeY = 1; + +global.receiving = false; + +beginReceiveTimer = 300; @@ -315,6 +319,11 @@ oControl.alarm[10] = 90; if(banned) popup_text("Banned from server"); if(kicked) popup_text("Kicked from server"); +if(global.sax && global.saxmode){ + global.sax = 0; + load_character_vars(); +} + global.spectator = false; global.spectatorIndex = -1; global.saxmode = 0; @@ -1260,13 +1269,13 @@ if(itemCount != global.itemstaken){ buffer = buffer_create(size, type, alignment); buffer_seek(buffer, buffer_seek_start, 0); buffer_write(buffer, buffer_u8, 1); - buffer_write(buffer, buffer_string, name); + buffer_write(buffer, buffer_string, name + "," + global.multitroid_version); buffer_write(buffer, buffer_u8, 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, 1); - buffer_write(buffer, buffer_string, name); + buffer_write(buffer, buffer_string, name + "," + global.multitroid_version); buffer_write(buffer, buffer_u8, global.sax); var result = network_send_packet(socket, buffer, buffer_tell(buffer)); instance_create(x, y, oNametag); @@ -1851,6 +1860,20 @@ if(currentItemsTimer == 0 && connected){ var result = network_send_packet(socket, buffer, buffer_tell(buffer)); } +if(beginReceiveTimer == 0 && connected){ + alarm[0] = 5; + alarm[2] = 5; + alarm[3] = 5; + alarm[4] = 5; + alarm[5] = 5; + alarm[6] = 5; + alarm[7] = 5; + alarm[8] = 5; + alarm[9] = 5; + alarm[10] = 3; + alarm[11] = 20; +} + time--; maxpbombsTimer--; maxhealthTimer--; @@ -1865,11 +1888,14 @@ pbombsTimer--; disconnectTimer--; pingTimer--; currentItemsTimer--; +if(global.receiving) beginReceiveTimer--; if(resetTimer > -1){ resetTimer--; } +if(beginReceiveTimer < -1) beginReceiveTimer = -1; + if(instance_exists(self)){ if(ds_list_size(roomListData) > 0){ for(var h=0; h<ds_list_size(roomListData); h++){ @@ -2486,11 +2512,6 @@ switch(type_event){ var newTeam = buffer_read(_buffer, buffer_u8); if(newTeam == 1) global.sax = 0; if(newTeam == 2) global.sax = 1; - if(global.sax){ - popup_text("SAX enabled"); - } else { - popup_text("SAX disabled"); - } break; case 112: var saxmode = buffer_read(_buffer, buffer_u8); @@ -2505,8 +2526,10 @@ switch(type_event){ var samCount = buffer_read(_buffer, buffer_u8); var damageMultStr = buffer_read(_buffer, buffer_string); var damageMult = real(damageMultStr); + var experimental = buffer_read(_buffer, buffer_u8); global.damageMult = damageMult; global.saxmode = saxmode; + global.experimental = experimental; if(!lobbyLocked){ if(global.spectator){ global.spectator = false; @@ -2540,17 +2563,7 @@ switch(type_event){ case 0: global.clientID = buffer_read(_buffer, buffer_u8); show_debug_message(string(msgid) + " " + string(global.clientID)); - alarm[0] = 5; - alarm[2] = 5; - alarm[3] = 5; - alarm[4] = 5; - alarm[5] = 5; - alarm[6] = 5; - alarm[7] = 5; - alarm[8] = 5; - alarm[9] = 5; - alarm[10] = 3; - alarm[11] = 20; + global.receiving = true; buffer_delete(buffer); var size, type, alignment; size = 1024; diff --git a/objects/oControl.object.gmx b/objects/oControl.object.gmx index 7f7a77b8..e5a7e39b 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.1"; +global.multitroid_version = "V1.4.2"; // Android global.gamestarted = 0; @@ -592,6 +592,12 @@ global.samCount = 0; global.damageMult = 0; +global.warpPipeCooldown = 0; + +global.experimental = false; + +global.saveStationCooldown = 0; + reset_map(); load_character_vars(); @@ -1227,6 +1233,10 @@ if(global.scannerSpeed <= 0){ } } +if(global.showHealthIndicatorsTimer == 1){ + if(global.experimental) global.saveStationCooldown = 60 * 30; +} + if(global.showHealthIndicatorsTimer > 0){ global.showHealthIndicatorsTimer--; global.showHealthIndicators = true; @@ -1270,6 +1280,12 @@ if(!global.spectator) global.reformTimer = 1200; if(global.playerMapPosTimer == 1) global.mapmarker = 0; if(global.playerMapPosTimer > 0) global.playerMapPosTimer--; + +if(global.warpPipeCooldown > 0) global.warpPipeCooldown--; + +if(global.saveStationCooldown > 0) global.saveStationCooldown--; + +if(!instance_exists(oClient)) global.experimental = false; @@ -1513,9 +1529,10 @@ if (global.mapmarker) { 1 /// Player death transition -if(global.playerhealth <= 0 && global.saxmode && global.sax && oCharacter.sprite_index != sCoreXSAX) global.playerhealth = 1; - -if(global.playerhealth > 0) exit; +if(global.playerhealth <= 0 && global.saxmode && global.sax && oCharacter.sprite_index != sCoreXSAX){ + global.playerhealth = 1; + exit; +} if(instance_exists(oClient) && oClient.connected){ global.currX = oCharacter.x; @@ -1539,7 +1556,7 @@ global.ingame = 0; global.darkness = 0; global.gotolog = -1; global.transitiontype = 3; -if(global.saxmode && !global.sax && global.showHealthIndicators) global.spectatorOption = true; +if(global.saxmode && !global.sax) global.spectatorOption = true; if(global.spectatorOption && global.lobbyLocked){ global.spectator = true; global.spectatorIndex = -1; @@ -2133,7 +2150,7 @@ if(global.icemissiles){ popup_text("Ice Missiles disabled"); } */ -global.spectator = !global.spectator; +//global.spectator = !global.spectator; diff --git a/objects/oCreditsText.object.gmx b/objects/oCreditsText.object.gmx index 8bb82015..c7329bc0 100644 --- a/objects/oCreditsText.object.gmx +++ b/objects/oCreditsText.object.gmx @@ -25,7 +25,8 @@ 1 - text = "Another " + global.monsterStr + " 2 Remake# # # # # # # # # # # #Producer#Milton 'DoctorM64' Guasti# #Graphic Design#Ramiro Negri#Steve 'Sabre230' Rothlisberger#Jack Witty#Kirill '1Eni1' Fevralev#Jasper#MichaelGabrielR# #Promo Art#Azima 'Zim' Khan# #Writing#James 'Ridley' Hobbs#Paulo 'Latinlingo' Villalobos# #Platform Engine Code#Martin Piecyk# #Music Composition#Milton 'DoctorM64' Guasti#Darren Kerwin#Torbjørn 'Falcool' Brandrud# #Debug#Hemse#Dragondarch#Esteban 'DruidVorse' Criado#Verneri 'Naatiska' Viljanen# #Playtest#Jennifer Potter#Mario Crestanello#Live4Truths#Torbjørn 'Falcool' Brandrud#Lise Trehjørningen#Nommiin#Gabriel Kaplan#Nicolas 'Skol' Del Negro#Darren Kerwin#Robert Sephazon# #Community Management#Dragonheart91#Ammypendent#Karrde# #Special Thanks#Nommiin#Nathan 'wickedclown' Hess#Tyler Rogers#Kousoru#Infinity's End#CapCom#Isabelle Amponin#The " + global.monsterStr + " Community# # # # # #Source Code Reconstruction#YellowAfterlife# # #Continued Revisions# #Lead - Former#Gatordile#Alex 'Wanderer' Mack# #Lead#Lojemiru# #Development#Craig Kostelecky#" + global.monsterStr + "3D# #Art Lead#Dannon 'Shmegleskimo' Yates# #Art#ShirtyScarab#Cooper Garvin#Chris 'Messianic' Oliveira#ChloePlz# #Special Thanks#Banjo, Grom PE,#King Bore, Jean-Samuel Pelletier,#Reaku The Crate, Scooterboot, #Sylandro, TheKhaosDemon, #Unknown, Iwantdevil, #PixHammer, CaptGlitch,#Nokbient, EODTex,#Electrix, gponys,#Japanese Community# # # # # #Original " + global.monsterStr + " II Staff# #Producer#Gunpei Yokoi# #Director#Hiroji Kiyotake, Hiroyuki Kimura# #Main Programmer#Takahiro Harada# #Programmer#Masaru Yamanaka, Masao Yamamoto,#Isao Hirano# #Graphic Designer#Hiroji Kiyotake, Hiroyuki Kimura# #Program Assistant#Yuzuru Ogawa, Nobuhiro Ozaki# #Sound Programmer#Ryohji Yoshitomi# #Designer#Makoto Kanoh, Masafumi Sakashita,#Tomoyoshi Yamane, Takehiko Hosokawa,#Yasuo Inoue# #Debug#Masaru Okadaga, Kenji Nishizawa,#Hirofumi Matsuoka, Tohru Ohsawa,#Kohta Fukui, Keisuke Terasaki,#Kenichi Sugino, Hitoshi Yamagami,#Katsuya Yamaoe, Yuji Hori# #Co-op Mod#milesthenerd#xzackly7# # # # # # # # #In Memory of Satoru Iwata"; + if(global.saxmode) room_goto(rm_score); +text = "Another " + global.monsterStr + " 2 Remake# # # # # # # # # # # #Producer#Milton 'DoctorM64' Guasti# #Graphic Design#Ramiro Negri#Steve 'Sabre230' Rothlisberger#Jack Witty#Kirill '1Eni1' Fevralev#Jasper#MichaelGabrielR# #Promo Art#Azima 'Zim' Khan# #Writing#James 'Ridley' Hobbs#Paulo 'Latinlingo' Villalobos# #Platform Engine Code#Martin Piecyk# #Music Composition#Milton 'DoctorM64' Guasti#Darren Kerwin#Torbjørn 'Falcool' Brandrud# #Debug#Hemse#Dragondarch#Esteban 'DruidVorse' Criado#Verneri 'Naatiska' Viljanen# #Playtest#Jennifer Potter#Mario Crestanello#Live4Truths#Torbjørn 'Falcool' Brandrud#Lise Trehjørningen#Nommiin#Gabriel Kaplan#Nicolas 'Skol' Del Negro#Darren Kerwin#Robert Sephazon# #Community Management#Dragonheart91#Ammypendent#Karrde# #Special Thanks#Nommiin#Nathan 'wickedclown' Hess#Tyler Rogers#Kousoru#Infinity's End#CapCom#Isabelle Amponin#The " + global.monsterStr + " Community# # # # # #Source Code Reconstruction#YellowAfterlife# # #Continued Revisions# #Lead - Former#Gatordile#Alex 'Wanderer' Mack# #Lead#Lojemiru# #Development#Craig Kostelecky#" + global.monsterStr + "3D# #Art Lead#Dannon 'Shmegleskimo' Yates# #Art#ShirtyScarab#Cooper Garvin#Chris 'Messianic' Oliveira#ChloePlz# #Special Thanks#Banjo, Grom PE,#King Bore, Jean-Samuel Pelletier,#Reaku The Crate, Scooterboot, #Sylandro, TheKhaosDemon, #Unknown, Iwantdevil, #PixHammer, CaptGlitch,#Nokbient, EODTex,#Electrix, gponys,#Japanese Community# # # # # #Original " + global.monsterStr + " II Staff# #Producer#Gunpei Yokoi# #Director#Hiroji Kiyotake, Hiroyuki Kimura# #Main Programmer#Takahiro Harada# #Programmer#Masaru Yamanaka, Masao Yamamoto,#Isao Hirano# #Graphic Designer#Hiroji Kiyotake, Hiroyuki Kimura# #Program Assistant#Yuzuru Ogawa, Nobuhiro Ozaki# #Sound Programmer#Ryohji Yoshitomi# #Designer#Makoto Kanoh, Masafumi Sakashita,#Tomoyoshi Yamane, Takehiko Hosokawa,#Yasuo Inoue# #Debug#Masaru Okadaga, Kenji Nishizawa,#Hirofumi Matsuoka, Tohru Ohsawa,#Kohta Fukui, Keisuke Terasaki,#Kenichi Sugino, Hitoshi Yamagami,#Katsuya Yamaoe, Yuji Hori# #Co-op Mod#milesthenerd#xzackly7# # # # # # # # #In Memory of Satoru Iwata"; yoffset = 0; fadeout = 0; diff --git a/objects/oDeathSequenceMulti.object.gmx b/objects/oDeathSequenceMulti.object.gmx index b13338d3..60ccf2d5 100644 --- a/objects/oDeathSequenceMulti.object.gmx +++ b/objects/oDeathSequenceMulti.object.gmx @@ -25,7 +25,7 @@ 1 - image_speed = 0.25; + image_speed = 0.125; image_index = 0; fade = 0; moveplayer = 0; diff --git a/objects/oDrillSeq1.object.gmx b/objects/oDrillSeq1.object.gmx index 0ab18329..68505353 100644 --- a/objects/oDrillSeq1.object.gmx +++ b/objects/oDrillSeq1.object.gmx @@ -69,7 +69,7 @@ with (oCharacter) { morphing = 0; turning = 0; } -immersion_stop(); +if (os_type == os_android) immersion_stop(); instance_destroy(); diff --git a/objects/oDrillSeq2.object.gmx b/objects/oDrillSeq2.object.gmx index e395ca90..698643ca 100644 --- a/objects/oDrillSeq2.object.gmx +++ b/objects/oDrillSeq2.object.gmx @@ -69,7 +69,7 @@ with (oCharacter) { morphing = 0; turning = 0; } -immersion_stop(); +if (os_type == os_android) immersion_stop(); instance_destroy(); diff --git a/objects/oEMPNoise.object.gmx b/objects/oEMPNoise.object.gmx index 21c9d4d7..d5cc23ad 100644 --- a/objects/oEMPNoise.object.gmx +++ b/objects/oEMPNoise.object.gmx @@ -25,7 +25,8 @@ 1 - xoff = 0; + if(global.saxmode) instance_destroy(); +xoff = 0; yoff = 0; alarm[0] = 1; diff --git a/objects/oIntroController.object.gmx b/objects/oIntroController.object.gmx index 9dea6bc9..4aee00e6 100644 --- a/objects/oIntroController.object.gmx +++ b/objects/oIntroController.object.gmx @@ -27,6 +27,11 @@ 1 alarm[0] = 180; txt = get_text("Title", "ControllerRecommended"); +// If on Linux, quickly toggle fullscreen to get rid of GM:S mess. Seemed to be the best place to do that. +if (os_type == os_linux && global.opfullscreen) { + window_set_fullscreen(false); + window_set_fullscreen(true); +} diff --git a/objects/oMapCursor.object.gmx b/objects/oMapCursor.object.gmx index faf5e388..b8556d42 100644 --- a/objects/oMapCursor.object.gmx +++ b/objects/oMapCursor.object.gmx @@ -36,6 +36,8 @@ alarm[0] = 2; active = 0; alarm[1] = 5; state = 0; +marker = 0; +camera = 0; if (global.mapmarker == 1) { state = 2; marker = instance_create(x, y, oMapMarker); diff --git a/objects/oSaveShip.object.gmx b/objects/oSaveShip.object.gmx index 78ec1053..b8b9c5ac 100644 --- a/objects/oSaveShip.object.gmx +++ b/objects/oSaveShip.object.gmx @@ -91,7 +91,7 @@ if (enabled == 1 && image_index < 9) image_index += 0.5; if (enabled == 0 && image_index > 0.2) image_index -= 0.5; // if (saveenabled == 1 && cansave == 1 && (oCharacter.state == 10 || oCharacter.state == 12) && oCharacter.statetime >= 10) { - if ((oControl.mod_insanitymode == 1 && global.event[304] == 0) || global.enemyNearby) { exit; } + if ((oControl.mod_insanitymode == 1 && global.event[304] == 0) || (global.enemyNearby && global.saxmode && global.event[304] == 0) || (global.sax && global.saxmode) || global.saveStationCooldown > 0) { exit; } //if (oControl.mod_insanitymode == 1) { exit; } global.savexpos = x + 16; global.start_room = rm_a0h01; diff --git a/objects/oSaveStation.object.gmx b/objects/oSaveStation.object.gmx index aea5b291..ba372b6f 100644 --- a/objects/oSaveStation.object.gmx +++ b/objects/oSaveStation.object.gmx @@ -92,7 +92,7 @@ if (enabled == 1 && image_index < sprite_get_number(sprite_index) - 1 if (enabled == 0 && image_index > 0.2) image_index -= 0.2; // if (saveenabled == 1 && cansave == 1 && (oCharacter.state == 10 || oCharacter.state == 12) && (oCharacter.statetime >= 10 || oControl.kUp)) { - if (oControl.mod_insanitymode == 1 || global.enemyNearby) { exit; } + if (oControl.mod_insanitymode == 1 || (global.enemyNearby && global.saxmode) || global.saveStationCooldown > 0) { exit; } global.savexpos = x + 16; saveenabled = 0; with (oCharacter) { diff --git a/objects/oScoreScreen.object.gmx b/objects/oScoreScreen.object.gmx index 070b0e4d..46426df7 100644 --- a/objects/oScoreScreen.object.gmx +++ b/objects/oScoreScreen.object.gmx @@ -176,7 +176,10 @@ if (state == 2) { } if (statetime == 60) sfx_play(sndTLM); if (statetime == 600) fadeout = 1; - if (statetime == 900) event_user(0); + if (statetime == 900){ + mus_fadeout(musCredits); + event_user(0); + } if (fadeout) { if (ralpha < 1) ralpha += 0.01; } diff --git a/objects/oWarpPipeTrigger.object.gmx b/objects/oWarpPipeTrigger.object.gmx index 06600db2..faaf78b9 100644 --- a/objects/oWarpPipeTrigger.object.gmx +++ b/objects/oWarpPipeTrigger.object.gmx @@ -25,8 +25,7 @@ 1 - if(global.spectator) instance_destroy(); -posx = x + 8; + posx = x + 8; state = 0; statetime = 0; door_open = 0; @@ -84,6 +83,7 @@ alarm[0] = 1; 1 //if (instance_id == inst_133698) exit; +if(global.spectator) instance_destroy(); if (state == 1) { if (statetime == 0) { @@ -119,6 +119,7 @@ if (state == 1) { global.offsety = 0; oCharacter.x = 0;// oCharacter.y = 0;// + if(global.saxmode) global.warpPipeCooldown = 360; room_change(targetroom, 0); Mute_Loops(); } @@ -196,16 +197,18 @@ statetime += 1; 1 //if (instance_id == inst_133698) { exit; } - -if (other.state == 23 && other.xVel == 0 && state == 0) { - with (other) { - state = 60; +if(global.warpPipeCooldown == 0){ + if (other.state == 23 && other.xVel == 0 && state == 0) { + with (other) { + state = 60; + statetime = 0; + } + state = 1; statetime = 0; + sfx_play(sndMorphBallSlot); } - state = 1; - statetime = 0; - sfx_play(sndMorphBallSlot); } + diff --git a/scripts/characterStepEvent.gml b/scripts/characterStepEvent.gml index 33b47966..4a01bc11 100644 --- a/scripts/characterStepEvent.gml +++ b/scripts/characterStepEvent.gml @@ -6,6 +6,7 @@ if (global.movingobj) chStepMovingCheck(); if (global.saxmode && !global.lobbyLocked){ xVel = 0; yVel = 0; + chStepSetSprite(); exit; } @@ -299,7 +300,7 @@ if (global.spectator) { var arrPosID = arrPos[0]; var arrPosRoom = arrPos[4]; if(f == global.spectatorIndex){ - if(global.ingame && room != arrPosRoom && room != rm_transition && (arrPosRoom == rm_transition || string_count("rm_a", room_get_name(arrPosRoom)) > 0)){ + if(global.ingame && room != arrPosRoom && room != rm_transition && arrPosRoom != titleroom && arrPosRoom != gameoverroom && arrPosRoom != rm_credits && arrPosRoom != rm_gallery && arrPosRoom != rm_options && arrPosRoom != optionsroom && arrPosRoom != quitroom && arrPosRoom != subscreenroom && arrPosRoom != itemroom && arrPosRoom != maproom && arrPosRoom != introroom && arrPosRoom != gameintroroom && arrPosRoom != rm_loading && arrPosRoom != rm_subscreen && arrPosRoom != rm_death && arrPosRoom != rm_controller && arrPosRoom != rm_score && (arrPosRoom == rm_transition || string_count("rm_a", room_get_name(arrPosRoom)) > 0)){ if(instance_exists(oGotoRoom)){ gotoRoom = instance_nearest(x, y, oGotoRoom); if (gotoRoom.direction == 0 || gotoRoom.direction == 180) { diff --git a/scripts/damage_player.gml b/scripts/damage_player.gml index d0d8bb33..f5f30ff5 100644 --- a/scripts/damage_player.gml +++ b/scripts/damage_player.gml @@ -1,13 +1,22 @@ /// damage_player(damage, knockback_x, knockback_y, ignore_armor, ignore_invincibility) if(global.spectator) exit; +var experimentalExtraSAXDamageMultiplier = 1; +if(global.experimental) experimentalExtraSAXDamageMultiplier = 1.25; var damage_taken = 0; -if (global.currentsuit == 0 || argument3 == 1) damage_taken = argument0 * oControl.mod_diffmult; +if (global.currentsuit == 0 || argument3 == 1){ + if(!global.multiDamageCollision){ + damage_taken = argument0 * oControl.mod_diffmult; + } else { + damage_taken = argument0 * experimentalExtraSAXDamageMultiplier * oControl.mod_diffmult; //PvP Damage + damage_taken = damage_taken + (damage_taken * global.damageMult); //PvP Damage + } +} 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 + damage_taken = ceil(argument0 * 0.75) * experimentalExtraSAXDamageMultiplier * oControl.mod_diffmult; //PvP Damage damage_taken = damage_taken + (damage_taken * global.damageMult); //PvP Damage } @@ -21,10 +30,10 @@ if (argument3 == 0) { } } else { if(global.item[5] == 0){ - damage_taken = ceil(argument0 * 0.75) * oControl.mod_diffmult; //PvP Damage + damage_taken = ceil(argument0 * 0.75) * experimentalExtraSAXDamageMultiplier * oControl.mod_diffmult; //PvP Damage damage_taken = damage_taken + (damage_taken * global.damageMult); //PvP Damage } else { - damage_taken = ceil(argument0 * 0.6) * oControl.mod_diffmult; //PvP Damage + damage_taken = ceil(argument0 * 0.6) * experimentalExtraSAXDamageMultiplier * oControl.mod_diffmult; //PvP Damage damage_taken = damage_taken + (damage_taken * global.damageMult); //PvP Damage } } diff --git a/scripts/load_character_vars.gml b/scripts/load_character_vars.gml index 2ef0ea15..f399560a 100644 --- a/scripts/load_character_vars.gml +++ b/scripts/load_character_vars.gml @@ -114,6 +114,37 @@ if(global.sax && global.saxmode){ global.mtanks = 4; global.stanks = 2; global.ptanks = 1; + + if(global.experimental){ + for(var i=0; i -1 musSAXAppear.wav - 0 - 0 + 1 + 1 0 0 diff --git a/sound/musSAXChase.sound.gmx b/sound/musSAXChase.sound.gmx index e9992243..1cacf63c 100644 --- a/sound/musSAXChase.sound.gmx +++ b/sound/musSAXChase.sound.gmx @@ -22,8 +22,8 @@ -1 musSAXChase.wav - 0 - 0 + 1 + 1 0 0 diff --git a/sound/musSAXEnvironmentalAmbience.sound.gmx b/sound/musSAXEnvironmentalAmbience.sound.gmx index 8f0f6602..75a799a5 100644 --- a/sound/musSAXEnvironmentalAmbience.sound.gmx +++ b/sound/musSAXEnvironmentalAmbience.sound.gmx @@ -22,8 +22,8 @@ -1 musSAXEnvironmentalAmbience.wav - 0 - 0 + 1 + 1 0 0