diff --git a/Graphics/characters/SpongeBob/AnimList.Txt b/Graphics/characters/SpongeBob/AnimList.Txt index 2e159a916..0d745b0b0 100644 --- a/Graphics/characters/SpongeBob/AnimList.Txt +++ b/Graphics/characters/SpongeBob/AnimList.Txt @@ -13,7 +13,7 @@ TeeterBack TeeterFront Swipe DeathForwards -DeathSquash +DeathTar DeathDry balloonJump blowbubble @@ -35,4 +35,5 @@ IdleNoFace # IdleNet IdleZorro Celebrate -IdleBlink \ No newline at end of file +IdleBlink +Electrocuted diff --git a/Graphics/characters/SpongeBob_CoralBlower/AnimList.Txt b/Graphics/characters/SpongeBob_CoralBlower/AnimList.Txt index b02e83997..a04bb67b3 100644 --- a/Graphics/characters/SpongeBob_CoralBlower/AnimList.Txt +++ b/Graphics/characters/SpongeBob_CoralBlower/AnimList.Txt @@ -11,10 +11,11 @@ TeeterBack TeeterFront Walk DeathForwards -DeathSquash +DeathTar GetHit CrouchDown CrouchUp LookUp Celebrate -IdleBlink \ No newline at end of file +IdleBlink +Electrocuted \ No newline at end of file diff --git a/Graphics/characters/SpongeBob_JellyFish/AnimList.Txt b/Graphics/characters/SpongeBob_JellyFish/AnimList.Txt index eaab0a0ae..9fa06b047 100644 --- a/Graphics/characters/SpongeBob_JellyFish/AnimList.Txt +++ b/Graphics/characters/SpongeBob_JellyFish/AnimList.Txt @@ -12,7 +12,7 @@ RunStart TeeterBack TeeterFront Swipe -DeathSquash +DeathTar DeathForwards GetHit CrouchDown @@ -21,4 +21,5 @@ LookUp IdleWeapon IdleNet Celebrate -IdleBlink \ No newline at end of file +IdleBlink +Electrocuted \ No newline at end of file diff --git a/Graphics/characters/SpongeBob_JellyLauncher/AnimList.Txt b/Graphics/characters/SpongeBob_JellyLauncher/AnimList.Txt index ce79c8ba5..8041c49f4 100644 --- a/Graphics/characters/SpongeBob_JellyLauncher/AnimList.Txt +++ b/Graphics/characters/SpongeBob_JellyLauncher/AnimList.Txt @@ -13,7 +13,7 @@ RunStop RunStart TeeterBack TeeterFront -DeathSquash +DeathTar DeathForwards GetHit CrouchDown @@ -21,4 +21,5 @@ CrouchUp LookUp IdleWeapon Celebrate -IdleBlink \ No newline at end of file +IdleBlink +Electrocuted \ No newline at end of file diff --git a/Graphics/characters/SpongeBob_Net/AnimList.Txt b/Graphics/characters/SpongeBob_Net/AnimList.Txt index 61a43071d..131526dbc 100644 --- a/Graphics/characters/SpongeBob_Net/AnimList.Txt +++ b/Graphics/characters/SpongeBob_Net/AnimList.Txt @@ -14,11 +14,12 @@ TeeterBack TeeterFront Swipe DeathForwards -DeathSquash +DeathTar GetHit CrouchDown CrouchUp LookUp IdleWeapon Celebrate -IdleBlink \ No newline at end of file +IdleBlink +Electrocuted \ No newline at end of file diff --git a/Graphics/characters/SpongeBob_Wand/AnimList.Txt b/Graphics/characters/SpongeBob_Wand/AnimList.Txt index e724dbecb..b7800600d 100644 --- a/Graphics/characters/SpongeBob_Wand/AnimList.Txt +++ b/Graphics/characters/SpongeBob_Wand/AnimList.Txt @@ -15,9 +15,10 @@ RunStart TeeterBack TeeterFront DeathForwards -DeathSquash +DeathTar GetHit CrouchDown CrouchUp Celebrate -IdleBlink \ No newline at end of file +IdleBlink +Electrocuted \ No newline at end of file diff --git a/source/paul/animtest.cpp b/source/paul/animtest.cpp index 8eb6a62ec..bedbbb2ce 100644 --- a/source/paul/animtest.cpp +++ b/source/paul/animtest.cpp @@ -95,7 +95,7 @@ static const char *s_animNames[NUM_ANIM_SPONGEBOB]= "ANIM_SPONGEBOB_TEETERFRONT", "ANIM_SPONGEBOB_SWIPE", "ANIM_SPONGEBOB_DEATHFORWARDS", - "ANIM_SPONGEBOB_DEATHSQUASH", + "ANIM_SPONGEBOB_DEATHTAR", "ANIM_SPONGEBOB_DEATHDRY", "ANIM_SPONGEBOB_BALLOONJUMP", "ANIM_SPONGEBOB_BLOWBUBBLE", @@ -117,6 +117,7 @@ static const char *s_animNames[NUM_ANIM_SPONGEBOB]= "ANIM_SPONGEBOB_IDLEZORRO", "ANIM_SPONGEBOB_CELEBRATE", "ANIM_SPONGEBOB_IDLEBLINK", + "ANIM_SPONGEBOB_ELECTROCUTED", }; diff --git a/source/player/player.cpp b/source/player/player.cpp index 1129e6007..d14d1953f 100644 --- a/source/player/player.cpp +++ b/source/player/player.cpp @@ -335,7 +335,7 @@ s8 s_animMapNet[NUM_PLAYER_ADDONS][NUM_ANIM_SPONGEBOB]= ANIM_SPONGEBOB_NET_TEETERFRONT, // ANIM_SPONGEBOB_TEETERFRONT, ANIM_SPONGEBOB_NET_SWIPE, // ANIM_SPONGEBOB_SWIPE, ANIM_SPONGEBOB_NET_DEATHFORWARDS, // ANIM_SPONGEBOB_DEATHFORWARDS, - ANIM_SPONGEBOB_NET_DEATHSQUASH, // ANIM_SPONGEBOB_DEATHSQUASH, + ANIM_SPONGEBOB_NET_DEATHTAR, // ANIM_SPONGEBOB_DEATHTAR, -1, // ANIM_SPONGEBOB_DEATHDRY -1, // ANIM_SPONGEBOB_BALLOONJUMP, -1, // ANIM_SPONGEBOB_BLOWBUBBLE, @@ -351,12 +351,13 @@ s8 s_animMapNet[NUM_PLAYER_ADDONS][NUM_ANIM_SPONGEBOB]= -1, // ANIM_SPONGEBOB_IDLEFACEUPSIDEDOWN -1, // ANIM_SPONGEBOB_IDLEBANDAID, //NOIDLE -1, // ANIM_SPONGEBOB_IDLEINHAT, --1, // ANIM_SPONGEBOB_IDLEMATURE, + -1, // ANIM_SPONGEBOB_IDLEMATURE, -1, // ANIM_SPONGEBOB_IDLEMOUSTACHE, -1, // ANIM_SPONGEBOB_IDLENOFACE, -1, // ANIM_SPONGEBOB_IDLEZORRO, ANIM_SPONGEBOB_NET_CELEBRATE, // ANIM_SPONGEBOB_CELEBRATE, ANIM_SPONGEBOB_NET_IDLEBLINK, // ANIM_SPONGEBOB_IDLEBLINK, + ANIM_SPONGEBOB_NET_ELECTROCUTED, // ANIM_SPONGEBOB_ELECTROCUTED, }, // PLAYER_ADDON_CORALBLOWER, @@ -376,7 +377,7 @@ s8 s_animMapNet[NUM_PLAYER_ADDONS][NUM_ANIM_SPONGEBOB]= ANIM_SPONGEBOB_CORALBLOWER_TEETERFRONT, // ANIM_SPONGEBOB_TEETERFRONT, -1, // ANIM_SPONGEBOB_SWIPE, ANIM_SPONGEBOB_CORALBLOWER_DEATHFORWARDS, // ANIM_SPONGEBOB_DEATHFORWARDS, - ANIM_SPONGEBOB_CORALBLOWER_DEATHSQUASH, // ANIM_SPONGEBOB_DEATHSQUASH, + ANIM_SPONGEBOB_CORALBLOWER_DEATHTAR, // ANIM_SPONGEBOB_DEATHTAR, -1, // ANIM_SPONGEBOB_DEATHDRY -1, // ANIM_SPONGEBOB_BALLOONJUMP, -1, // ANIM_SPONGEBOB_BLOWBUBBLE, @@ -398,6 +399,7 @@ s8 s_animMapNet[NUM_PLAYER_ADDONS][NUM_ANIM_SPONGEBOB]= -1, // ANIM_SPONGEBOB_IDLEZORRO, ANIM_SPONGEBOB_CORALBLOWER_CELEBRATE, // ANIM_SPONGEBOB_CELEBRATE, ANIM_SPONGEBOB_CORALBLOWER_IDLEBLINK, // ANIM_SPONGEBOB_IDLEBLINK, + ANIM_SPONGEBOB_CORALBLOWER_ELECTROCUTED, // ANIM_SPONGEBOB_ELECTROCUTED, }, // PLAYER_ADDON_JELLYLAUNCHER, @@ -417,7 +419,7 @@ s8 s_animMapNet[NUM_PLAYER_ADDONS][NUM_ANIM_SPONGEBOB]= ANIM_SPONGEBOB_JELLYLAUNCHER_TEETERFRONT, // ANIM_SPONGEBOB_TEETERFRONT, -1, // ANIM_SPONGEBOB_SWIPE, ANIM_SPONGEBOB_JELLYLAUNCHER_DEATHFORWARDS, // ANIM_SPONGEBOB_DEATHFORWARDS, - ANIM_SPONGEBOB_JELLYLAUNCHER_DEATHSQUASH, // ANIM_SPONGEBOB_DEATHSQUASH, + ANIM_SPONGEBOB_JELLYLAUNCHER_DEATHTAR, // ANIM_SPONGEBOB_DEATHTAR, -1, // ANIM_SPONGEBOB_DEATHDRY -1, // ANIM_SPONGEBOB_BALLOONJUMP, -1, // ANIM_SPONGEBOB_BLOWBUBBLE, @@ -439,6 +441,7 @@ s8 s_animMapNet[NUM_PLAYER_ADDONS][NUM_ANIM_SPONGEBOB]= -1, // ANIM_SPONGEBOB_IDLEZORRO, ANIM_SPONGEBOB_JELLYLAUNCHER_CELEBRATE, // ANIM_SPONGEBOB_CELEBRATE, ANIM_SPONGEBOB_JELLYLAUNCHER_IDLEBLINK, // ANIM_SPONGEBOB_IDLEBLINK, + ANIM_SPONGEBOB_JELLYLAUNCHER_ELECTROCUTED, // ANIM_SPONGEBOB_ELECTROCUTED, }, // PLAYER_ADDON_BUBBLEWAND, @@ -458,7 +461,7 @@ s8 s_animMapNet[NUM_PLAYER_ADDONS][NUM_ANIM_SPONGEBOB]= ANIM_SPONGEBOB_WAND_TEETERFRONT, // ANIM_SPONGEBOB_TEETERFRONT, -1, // ANIM_SPONGEBOB_SWIPE, ANIM_SPONGEBOB_WAND_DEATHFORWARDS, // ANIM_SPONGEBOB_DEATHFORWARDS, - ANIM_SPONGEBOB_WAND_DEATHSQUASH, // ANIM_SPONGEBOB_DEATHSQUASH, + ANIM_SPONGEBOB_WAND_DEATHTAR, // ANIM_SPONGEBOB_DEATHTAR, -1, // ANIM_SPONGEBOB_DEATHDRY -1, // ANIM_SPONGEBOB_BALLOONJUMP, ANIM_SPONGEBOB_WAND_BLOWBUBBLE, // ANIM_SPONGEBOB_BLOWBUBBLE, @@ -480,6 +483,7 @@ s8 s_animMapNet[NUM_PLAYER_ADDONS][NUM_ANIM_SPONGEBOB]= -1, // ANIM_SPONGEBOB_IDLEZORRO, ANIM_SPONGEBOB_WAND_CELEBRATE, // ANIM_SPONGEBOB_CELEBRATE, ANIM_SPONGEBOB_WAND_IDLEBLINK, // ANIM_SPONGEBOB_IDLEBLINK, + ANIM_SPONGEBOB_WAND_ELECTROCUTED, // ANIM_SPONGEBOB_ELECTROCUTED, }, // PLAYER_ADDON_JELLYFISHINNET @@ -499,7 +503,7 @@ s8 s_animMapNet[NUM_PLAYER_ADDONS][NUM_ANIM_SPONGEBOB]= ANIM_SPONGEBOB_JELLYFISH_TEETERFRONT, // ANIM_SPONGEBOB_TEETERFRONT, ANIM_SPONGEBOB_JELLYFISH_SWIPE, // ANIM_SPONGEBOB_SWIPE, ANIM_SPONGEBOB_JELLYFISH_DEATHFORWARDS, // ANIM_SPONGEBOB_DEATHFORWARDS, - ANIM_SPONGEBOB_JELLYFISH_DEATHSQUASH, // ANIM_SPONGEBOB_DEATHSQUASH, + ANIM_SPONGEBOB_JELLYFISH_DEATHTAR, // ANIM_SPONGEBOB_DEATHTAR, -1, // ANIM_SPONGEBOB_DEATHDRY -1, // ANIM_SPONGEBOB_BALLOONJUMP, -1, // ANIM_SPONGEBOB_BLOWBUBBLE, @@ -521,6 +525,7 @@ s8 s_animMapNet[NUM_PLAYER_ADDONS][NUM_ANIM_SPONGEBOB]= -1, // ANIM_SPONGEBOB_IDLEZORRO, ANIM_SPONGEBOB_JELLYFISH_CELEBRATE, // ANIM_SPONGEBOB_CELEBRATE, ANIM_SPONGEBOB_JELLYFISH_IDLEBLINK, // ANIM_SPONGEBOB_IDLEBLINK, + ANIM_SPONGEBOB_JELLYFISH_ELECTROCUTED, // ANIM_SPONGEBOB_ELECTROCUTED, }, // PLAYER_ADDON_GLOVE @@ -540,7 +545,7 @@ s8 s_animMapNet[NUM_PLAYER_ADDONS][NUM_ANIM_SPONGEBOB]= -1, // ANIM_SPONGEBOB_TEETERFRONT, -1, // ANIM_SPONGEBOB_SWIPE, -1, // ANIM_SPONGEBOB_DEATHFORWARDS, - -1, // ANIM_SPONGEBOB_DEATHSQUASH, + -1, // ANIM_SPONGEBOB_DEATHTAR, -1, // ANIM_SPONGEBOB_DEATHDRY -1, // ANIM_SPONGEBOB_BALLOONJUMP, -1, // ANIM_SPONGEBOB_BLOWBUBBLE, @@ -562,6 +567,7 @@ s8 s_animMapNet[NUM_PLAYER_ADDONS][NUM_ANIM_SPONGEBOB]= -1, // ANIM_SPONGEBOB_IDLEZORRO, -1, // ANIM_SPONGEBOB_CELEBRATE, -1, // ANIM_SPONGEBOB_IDLEBLINK, + -1, // ANIM_SPONGEBOB_ELECTROCUTED, }, }; @@ -1953,6 +1959,7 @@ void CPlayer::respawn() m_spatulaWarningTimer=0; m_healthWaterLevel=WATERMAXHEALTH; m_invincibleFrameCount=INVINCIBLE_FRAMES__START; + m_recoveringFromElectrocution=false; m_helmetSoundTimer=0; Pos=m_respawnPos; m_cameraLookOffset=0; @@ -2192,6 +2199,7 @@ void CPlayer::takeDamage(DAMAGE_TYPE _damage,REACT_DIRECTION _reactDirection,CTh CSoundMediator::SFXID painSound=CSoundMediator::SFX_SPONGEBOB_OUCH; // Check if we are currently immune to this damage type + m_recoveringFromElectrocution=false; switch(_damage) { case DAMAGE__NONE: @@ -2207,6 +2215,7 @@ void CPlayer::takeDamage(DAMAGE_TYPE _damage,REACT_DIRECTION _reactDirection,CTh else { painSound=CSoundMediator::SFX_BOSS_JELLYFISH___SB_GETS_ELECTROCUTED; + m_recoveringFromElectrocution=true; } break; diff --git a/source/player/player.h b/source/player/player.h index 8b36bb471..58375483b 100644 --- a/source/player/player.h +++ b/source/player/player.h @@ -255,6 +255,7 @@ public: int getSpatulasHeld() {return m_numSpatulasHeld;} ATTACK_STATE getAttackState(); int isRecoveringFromHit() {return m_invincibleFrameCount!=0||m_currentMode==PLAYER_MODE_DEAD;} + int wasLastHitElectrical() { return m_recoveringFromElectrocution;} void registerAddon(PLAYER_ADDONS _addon); DVECTOR *getMoveVelocity() {return &m_moveVelocity;} @@ -352,6 +353,7 @@ private: INVINCIBLE_FRAMES__HIT=120, // Invincible for this many frames after taking damage }; int m_invincibleFrameCount; // Initial invincibility and also invincibility after taking damage + int m_recoveringFromElectrocution; // TRUE is last hit was electrical static class CPlayerMode *s_playerModes[NUM_PLAYERMODES]; class CPlayerMode *m_currentPlayerModeClass; diff --git a/source/player/pmdead.cpp b/source/player/pmdead.cpp index decc50044..5b1728684 100644 --- a/source/player/pmdead.cpp +++ b/source/player/pmdead.cpp @@ -75,10 +75,10 @@ void CPlayerModeDead::enter() m_deathAnim=ANIM_SPONGEBOB_DEATHDRY; break; case DEATHTYPE__SQUASH: - m_deathAnim=ANIM_SPONGEBOB_DEATHSQUASH; + m_deathAnim=ANIM_SPONGEBOB_DEATHFORWARDS; break; case DEATHTYPE__LIQUID: - m_deathAnim=ANIM_SPONGEBOB_DEATHFORWARDS; + m_deathAnim=ANIM_SPONGEBOB_DEATHTAR; break; case DEATHTYPE__FALL_TO_DEATH: m_deathAnim=-1; diff --git a/source/player/psjmpbck.cpp b/source/player/psjmpbck.cpp index 9091784d5..24c7e1040 100644 --- a/source/player/psjmpbck.cpp +++ b/source/player/psjmpbck.cpp @@ -70,7 +70,8 @@ CPlayerStateJumpBack s_stateJumpBack; ---------------------------------------------------------------------- */ void CPlayerStateJumpBack::enter(CPlayerModeBase *_playerMode) { - _playerMode->setAnimNo(ANIM_SPONGEBOB_GETHIT); + _playerMode->setAnimNo(_playerMode->getPlayer()->wasLastHitElectrical()?ANIM_SPONGEBOB_ELECTROCUTED:ANIM_SPONGEBOB_GETHIT); + if(_playerMode->getState()!=STATE_JUMPBACK) { m_reactFrames=0;