summaryrefslogtreecommitdiff
path: root/src/resources/itemdb.cpp
diff options
context:
space:
mode:
authorYohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer>2011-04-29 01:21:45 +0200
committerAndrei Karas <akaras@inbox.ru>2011-05-01 23:45:51 +0300
commit6ff97aad8bf4af8e1a69665b3ad414042efada02 (patch)
treeed0f186c524146d0b68c082373b1053d84f51c16 /src/resources/itemdb.cpp
parentbba99b414167d9adb40622d8fc8c1e9dc814e956 (diff)
downloadmanaplus-6ff97aad8bf4af8e1a69665b3ad414042efada02.tar.gz
manaplus-6ff97aad8bf4af8e1a69665b3ad414042efada02.tar.bz2
manaplus-6ff97aad8bf4af8e1a69665b3ad414042efada02.tar.xz
manaplus-6ff97aad8bf4af8e1a69665b3ad414042efada02.zip
Added customizable on-hit effects for characters.
This patch adds support for the following two parameters in weapon items: hit-effect-id: Effect triggered on the victim on normal hit. critical-hit-effect-id: Triggered on the victim on critical hit. (Specified in effects.xml) The patch also permits the use of custom defaults set in paths.xml by setting the following keys: (Paths are relative to the 'particles' key value, here.) hitEffectId: defaulted to effect id 26. criticalHitEffectId: defaulted to effect id 28. Resolves: Mana-mantis #337. Reviewed-by: bcs86 Conflicts: src/being.cpp src/resources/itemdb.cpp src/resources/iteminfo.h ManaPlus: adding missing checks.
Diffstat (limited to 'src/resources/itemdb.cpp')
-rw-r--r--src/resources/itemdb.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/resources/itemdb.cpp b/src/resources/itemdb.cpp
index 59d7e951c..ab38e282e 100644
--- a/src/resources/itemdb.cpp
+++ b/src/resources/itemdb.cpp
@@ -226,6 +226,10 @@ void ItemDB::load()
int attackRange = XML::getProperty(node, "attack-range", 0);
std::string missileParticle = XML::getProperty(
node, "missile-particle", "");
+ int hitEffectId = XML::getProperty(node, "hit-effect-id",
+ paths.getIntValue("hitEffectId"));
+ int criticalEffectId = XML::getProperty(node, "critical-hit-effect-id",
+ paths.getIntValue("criticalHitEffectId"));
SpriteDisplay display;
display.image = image;
@@ -283,7 +287,9 @@ void ItemDB::load()
itemInfo->setWeight(weight);
itemInfo->setAttackAction(attackAction);
itemInfo->setAttackRange(attackRange);
- itemInfo->setMissileParticle(missileParticle);
+ itemInfo->setMissileParticleFile(missileParticle);
+ itemInfo->setHitEffectId(hitEffectId);
+ itemInfo->setCriticalHitEffectId(criticalEffectId);
itemInfo->setDrawBefore(parseSpriteName(drawBefore));
itemInfo->setDrawAfter(parseSpriteName(drawAfter));
itemInfo->setDrawPriority(drawPriority);