From 0ff91dcf4754a867be162095f500ca5b0bea2fdf Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Mon, 7 Aug 2017 21:24:51 +0300 Subject: Add additional attributes to missile particles in skills. --- src/being/being.cpp | 4 ++-- src/gui/windows/skilldialog.cpp | 25 +++++++++++++++++++++++-- src/resources/skill/skilldata.cpp | 4 ++-- src/resources/skill/skilldata.h | 5 +++-- 4 files changed, 30 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/being/being.cpp b/src/being/being.cpp index 28a6a1f8d..0929b8b22 100644 --- a/src/being/being.cpp +++ b/src/being/being.cpp @@ -1023,7 +1023,7 @@ void Being::handleSkillCasting(Being *restrict const victim, effectManager->triggerDefault(data->castingDstEffectId, victim, paths.getIntValue("skillCastingDstEffectId")); - fireMissile(victim, data->castingMissileParticle); + fireMissile(victim, data->castingMissile.particle); } } @@ -1046,7 +1046,7 @@ void Being::handleSkill(Being *restrict const victim, effectManager->triggerDefault(data->dstEffectId, victim, paths.getIntValue("skillDstEffectId")); - fireMissile(victim, data->missileParticle); + fireMissile(victim, data->missile.particle); } if (this != localPlayer && (skill != nullptr)) diff --git a/src/gui/windows/skilldialog.cpp b/src/gui/windows/skilldialog.cpp index a1ad9b6ab..b4699c525 100644 --- a/src/gui/windows/skilldialog.cpp +++ b/src/gui/windows/skilldialog.cpp @@ -562,10 +562,31 @@ void SkillDialog::loadSkillData(XmlNodeConstPtr node, "shortName", name.substr(0, 3)); data->description = XML::langProperty( node, "description", ""); - data->missileParticle = XML::getProperty( + + MissileInfo &missile = data->missile; + missile.particle = XML::getProperty( node, "missile-particle", ""); - data->castingMissileParticle = XML::getProperty( + missile.z = static_cast(XML::getFloatProperty( + node, "missile-z", 32.0f)); + missile.lifeTime = static_cast(XML::getProperty( + node, "missile-lifetime", 3000)); + missile.speed = static_cast(XML::getFloatProperty( + node, "missile-speed", 7.0f)); + missile.dieDistance = static_cast( + XML::getFloatProperty(node, "missile-diedistance", 8.0f)); + + MissileInfo &castingMissile = data->castingMissile; + castingMissile.particle = XML::getProperty( node, "castingMissile-particle", ""); + castingMissile.z = static_cast(XML::getFloatProperty( + node, "castingMissile-z", 32.0f)); + castingMissile.lifeTime = static_cast(XML::getProperty( + node, "castingMissile-lifetime", 3000)); + castingMissile.speed = static_cast(XML::getFloatProperty( + node, "castingMissile-speed", 7.0f)); + castingMissile.dieDistance = static_cast( + XML::getFloatProperty(node, "castingMissile-diedistance", 8.0f)); + data->castingAnimation = XML::getProperty( node, "castingAnimation", diff --git a/src/resources/skill/skilldata.cpp b/src/resources/skill/skilldata.cpp index 701eed31f..ef3b331cf 100644 --- a/src/resources/skill/skilldata.cpp +++ b/src/resources/skill/skilldata.cpp @@ -37,8 +37,8 @@ SkillData::SkillData() : shortName(), dispName(), description(), - missileParticle(), - castingMissileParticle(), + missile(), + castingMissile(), invokeCmd(), castingAnimation(), soundHit(std::string(), 0), diff --git a/src/resources/skill/skilldata.h b/src/resources/skill/skilldata.h index 44374e98a..7dc2e05ac 100644 --- a/src/resources/skill/skilldata.h +++ b/src/resources/skill/skilldata.h @@ -23,6 +23,7 @@ #ifndef GUI_WIDGETS_SKILLDATA_H #define GUI_WIDGETS_SKILLDATA_H +#include "resources/missileinfo.h" #include "resources/soundinfo.h" class Image; @@ -34,8 +35,8 @@ struct SkillData final std::string dispName; std::string description; - std::string missileParticle; - std::string castingMissileParticle; + MissileInfo missile; + MissileInfo castingMissile; std::string invokeCmd; std::string castingAnimation; -- cgit v1.2.3-60-g2f50