summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-09-25 23:13:19 +0300
committerAndrei Karas <akaras@inbox.ru>2014-09-25 23:13:19 +0300
commit19d5a1ca912c89d46ea567079777d0fff1211c25 (patch)
tree4fd05c1c6593de88eed22332c60b49dac6cc587c
parent42701a1ac7b553f445b68c23fd115cc522d1b679 (diff)
downloadmanaplus-19d5a1ca912c89d46ea567079777d0fff1211c25.tar.gz
manaplus-19d5a1ca912c89d46ea567079777d0fff1211c25.tar.bz2
manaplus-19d5a1ca912c89d46ea567079777d0fff1211c25.tar.xz
manaplus-19d5a1ca912c89d46ea567079777d0fff1211c25.zip
Add simple attack logic for mercenary and homunculus.
-rw-r--r--src/being/localplayer.cpp4
-rw-r--r--src/being/playerinfo.cpp8
-rw-r--r--src/being/playerinfo.h2
3 files changed, 13 insertions, 1 deletions
diff --git a/src/being/localplayer.cpp b/src/being/localplayer.cpp
index a160896fb..819032af7 100644
--- a/src/being/localplayer.cpp
+++ b/src/being/localplayer.cpp
@@ -771,7 +771,9 @@ void LocalPlayer::attack(Being *const target, const bool keep,
if (!dontChangeEquipment)
changeEquipmentBeforeAttack(target);
- playerHandler->attack(target->getId(), mServerAttack);
+ const int targetId = target->getId();
+ playerHandler->attack(targetId, mServerAttack);
+ PlayerInfo::updateAttackAi(targetId, mServerAttack);
}
if (!keep)
diff --git a/src/being/playerinfo.cpp b/src/being/playerinfo.cpp
index d2749a9b1..07696b66c 100644
--- a/src/being/playerinfo.cpp
+++ b/src/being/playerinfo.cpp
@@ -553,4 +553,12 @@ void updateMoveAI()
homunculusHandler->moveToMaster();
}
+void updateAttackAi(const int targetId, const bool keep)
+{
+ if (mMercenary)
+ mercenaryHandler->attack(targetId, keep);
+ if (mHomunculus)
+ homunculusHandler->attack(targetId, keep);
+}
+
} // namespace PlayerInfo
diff --git a/src/being/playerinfo.h b/src/being/playerinfo.h
index 784a3b8ea..c4ccfd4be 100644
--- a/src/being/playerinfo.h
+++ b/src/being/playerinfo.h
@@ -262,6 +262,8 @@ namespace PlayerInfo
int getMercenaryId();
void updateMoveAI();
+
+ void updateAttackAi(const int targetId, const bool keep);
} // namespace PlayerInfo
#endif // BEING_PLAYERINFO_H