summaryrefslogtreecommitdiff
path: root/src/game-server/monster.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game-server/monster.cpp')
-rw-r--r--src/game-server/monster.cpp25
1 files changed, 9 insertions, 16 deletions
diff --git a/src/game-server/monster.cpp b/src/game-server/monster.cpp
index d0c55073..0f387917 100644
--- a/src/game-server/monster.cpp
+++ b/src/game-server/monster.cpp
@@ -131,7 +131,8 @@ void Monster::perform()
{
setTimerHard(T_M_ATTACK_TIME, mCurrentAttack->aftDelay
+ mCurrentAttack->preDelay);
- Damage dmg(getModifiedAttribute(MOB_ATTR_PHY_ATK_MIN) *
+ Damage dmg(0,
+ getModifiedAttribute(MOB_ATTR_PHY_ATK_MIN) *
mCurrentAttack->damageFactor,
getModifiedAttribute(MOB_ATTR_PHY_ATK_DELTA) *
mCurrentAttack->damageFactor,
@@ -421,22 +422,14 @@ int Monster::damage(Actor *source, const Damage &damage)
{
Character *s = static_cast< Character * >(source);
- std::list<size_t>::const_iterator iSkill;
- for (iSkill = damage.usedSkills.begin();
- iSkill != damage.usedSkills.end(); ++iSkill)
+ mExpReceivers[s].insert(damage.skill);
+ if (!isTimerRunning(T_M_KILLSTEAL_PROTECTED) || mOwner == s
+ || mOwner->getParty() == s->getParty())
{
- if (*iSkill)
- {
- mExpReceivers[s].insert(*iSkill);
- if (!isTimerRunning(T_M_KILLSTEAL_PROTECTED) || mOwner == s
- || mOwner->getParty() == s->getParty())
- {
- mOwner = s;
- mLegalExpReceivers.insert(s);
- setTimerHard(T_M_KILLSTEAL_PROTECTED,
- KILLSTEAL_PROTECTION_TIME);
- }
- }
+ mOwner = s;
+ mLegalExpReceivers.insert(s);
+ setTimerHard(T_M_KILLSTEAL_PROTECTED,
+ KILLSTEAL_PROTECTION_TIME);
}
}
return HPLoss;