diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/being.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/being.cpp b/src/being.cpp index 8414d93a6..f1a3e0169 100644 --- a/src/being.cpp +++ b/src/being.cpp @@ -740,8 +740,12 @@ void Being::handleAttack(Being *victim, int damage, if (dir) setDirection(dir); } - if (damage && victim->mType == PLAYER && victim->mAction == SIT) - victim->setAction(STAND); + if (damage) + { + victim->setAction(HURT); + if (this == player_node && mAction == HURT) + setAction(ATTACK); + } sound.playSfx(mInfo->getSound((damage > 0) ? SOUND_EVENT_HIT : SOUND_EVENT_MISS), mX, mY); @@ -1068,10 +1072,7 @@ void Being::setAction(Action action, int attackType A_UNUSED) case HURT: if (mInfo) sound.playSfx(mInfo->getSound(SOUND_EVENT_HURT), mX, mY); - //currentAction = SpriteAction::HURT;// Buggy: makes the player stop - // attacking and unable to attack - // again until he moves. - // TODO: fix this! + currentAction = SpriteAction::HURT; break; case DEAD: currentAction = SpriteAction::DEAD; |