From 1a5f8957c707625efbcf36722b057d5eda5a21bb Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sat, 23 Jul 2016 00:18:37 +0300 Subject: Add skill casting particle arrow effect. New skill data attribute: castingParticle. --- src/being/being.cpp | 19 +++++++++++++++++++ src/being/being.h | 4 ++++ 2 files changed, 23 insertions(+) (limited to 'src/being') diff --git a/src/being/being.cpp b/src/being/being.cpp index 6bb166dc2..b5732b15f 100644 --- a/src/being/being.cpp +++ b/src/being/being.cpp @@ -1019,6 +1019,25 @@ void Being::handleAttack(Being *restrict const victim, BLOCK_END("Being::handleAttack") } +void Being::handleSkillCasting(Being *restrict const victim, + const int skillId, + const int skillLevel) restrict2 +{ + if (!victim || !mInfo || !skillDialog) + return; + + setAction(BeingAction::CAST, skillId); + + skillDialog->playCastingSrcEffect(skillId, this); + skillDialog->playCastingDstEffect(skillId, victim); + + const SkillData *restrict const data = skillDialog->getSkillDataByLevel( + skillId, + skillLevel); + if (data) + fireMissile(victim, data->castingParticle); +} + void Being::handleSkill(Being *restrict const victim, const int damage, const int skillId, diff --git a/src/being/being.h b/src/being/being.h index 3ee2c5ed1..72e6d2065 100644 --- a/src/being/being.h +++ b/src/being/being.h @@ -209,6 +209,10 @@ class Being notfinal : public ActorSprite, const int damage, const int attackId = 1) restrict2; + void handleSkillCasting(Being *restrict const victim, + const int skillId, + const int skillLevel) restrict2; + void handleSkill(Being *restrict const victim, const int damage, const int skillId, -- cgit v1.2.3-60-g2f50