summaryrefslogtreecommitdiff
path: root/src/gui/windows/skilldialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/windows/skilldialog.cpp')
-rw-r--r--src/gui/windows/skilldialog.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/gui/windows/skilldialog.cpp b/src/gui/windows/skilldialog.cpp
index 04d883402..31cf81ad4 100644
--- a/src/gui/windows/skilldialog.cpp
+++ b/src/gui/windows/skilldialog.cpp
@@ -325,6 +325,10 @@ void SkillDialog::loadXmlFile(const std::string &fileName)
node, "errorText", name);
skill->alwaysVisible = XML::getBoolProperty(
node, "alwaysVisible", false);
+ skill->castingSrcEffectId = XML::getProperty(
+ node, "castingSrcEffectId", -1);
+ skill->castingDstEffectId = XML::getProperty(
+ node, "castingDstEffectId", -1);
skill->visible = skill->alwaysVisible;
model->addSkill(skill);
mSkills[id] = skill;
@@ -614,6 +618,30 @@ void SkillDialog::playRemoveEffect(const int id) const
paths.getIntValue("skillRemoveEffectId"));
}
+void SkillDialog::playCastingSrcEffect(const int id, Being *const being) const
+{
+ if (!effectManager)
+ return;
+ SkillInfo *const info = getSkill(id);
+ if (!info)
+ return;
+ effectManager->triggerDefault(info->castingSrcEffectId,
+ being,
+ paths.getIntValue("skillCastingSrcEffectId"));
+}
+
+void SkillDialog::playCastingDstEffect(const int id, Being *const being) const
+{
+ if (!effectManager)
+ return;
+ SkillInfo *const info = getSkill(id);
+ if (!info)
+ return;
+ effectManager->triggerDefault(info->castingDstEffectId,
+ being,
+ paths.getIntValue("skillCastingDstEffectId"));
+}
+
void SkillDialog::useSkill(const SkillInfo *const info)
{
const SkillData *const data = info->data;