summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/describe.cc
diff options
context:
space:
mode:
authorzelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573>2009-01-15 01:52:44 +0000
committerzelgadis <zelgadis@c06c8d41-db1a-0410-9941-cceddc491573>2009-01-15 01:52:44 +0000
commit04dd7f785c274d0a8e9730806fd2c890792df275 (patch)
tree8f89122448824f4d0eb7b45373955fc916aac0c8 /crawl-ref/source/describe.cc
parent6feef3bd8bdc3893f50976ee5af0c332e955bdc7 (diff)
downloadcrawl-ref-04dd7f785c274d0a8e9730806fd2c890792df275.tar.gz
crawl-ref-04dd7f785c274d0a8e9730806fd2c890792df275.zip
Wield messages for the new launcher egos, and descriptions for all the new
launcher/ammo egos. Better explosion message for exploding ammo. Note that fire/ice/chaos/exploding ammo will always be destroyed upon impact, rather than falsely saying that increasing its enchantment will increase its chance of surviving. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8452 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/describe.cc')
-rw-r--r--crawl-ref/source/describe.cc65
1 files changed, 61 insertions, 4 deletions
diff --git a/crawl-ref/source/describe.cc b/crawl-ref/source/describe.cc
index ce6056b292..1498093b9c 100644
--- a/crawl-ref/source/describe.cc
+++ b/crawl-ref/source/describe.cc
@@ -1021,6 +1021,16 @@ static std::string _describe_weapon(const item_def &item, bool verbose)
description += "A skilled user can throw it in such a way "
"that it will return to its owner.";
break;
+ case SPWPN_PENETRATION:
+ description += "Ammo fired by it will pass through the "
+ "targets it hits, potentially hitting all targets in "
+ "its path until it reaches maximum range.";
+ break;
+ case SPWPN_SHADOW:
+ description += "If ammo fired by it kills a monster, "
+ "causing it to leave a corpse, the corpse will be "
+ "animated as a zombie friendly to the one who fired it.";
+ break;
}
}
@@ -1174,15 +1184,26 @@ static std::string _describe_ammo( const item_def &item )
}
}
- bool can_launch = has_launcher(item);
- bool can_throw = is_throwable(&you, item, true);
- bool need_new_line = true;
+ bool can_launch = has_launcher(item);
+ bool can_throw = is_throwable(&you, item, true);
+ bool need_new_line = true;
+ bool always_destryoed = false;
if (item.special && item_type_known(item))
{
description += "$$";
std::string bolt_name;
+ std::string threw_or_fired;
+ if (can_throw)
+ {
+ threw_or_fired += "threw";
+ if (can_launch)
+ threw_or_fired += " or ";
+ }
+ if (can_launch)
+ threw_or_fired += "fired";
+
switch (item.special)
{
case SPMSL_FLAME:
@@ -1211,6 +1232,8 @@ static std::string _describe_ammo( const item_def &item )
description += "it turns into a bolt of ";
description += bolt_name;
description += ".";
+
+ always_destryoed = true;
break;
case SPMSL_POISONED:
case SPMSL_POISONED_II:
@@ -1223,6 +1246,37 @@ static std::string _describe_ammo( const item_def &item )
description += "A skilled user can throw it in such a way "
"that it will return to its owner.";
break;
+ case SPMSL_SHADOW:
+ description += "If it kills a monster, causing it to leave a "
+ "corpse, the corpse will be animated as a zombie friendly "
+ "to the one who " + threw_or_fired + " it.";
+ break;
+ case SPMSL_PENETRATION:
+ description += "It will pass through any targets it hits, "
+ "potentially hitting all targets in its path until it "
+ "reaches maximum range.";
+ break;
+ case SPMSL_DISPERSAL:
+ description += "Any target it hits will blink, with a "
+ "tendancy towards blinking further away from the one who "
+ + threw_or_fired + " it.";
+ break;
+ case SPMSL_EXPLODING:
+ description += "It will explode into fragemnets upon hitting "
+ "a target, hitting an obstruction, or reaching the end of "
+ "its range.";
+ always_destryoed = true;
+ break;
+ case SPMSL_STEEL:
+ description += "Compared to normal ammo it does 50% more damage, "
+ "is destroyed only 1/10th upon impact, and weighs "
+ "three times as much.";
+ break;
+ case SPMSL_SILVER:
+ description += "Compared to normal ammo it does twice as much "
+ "damage to the undead, demons and shapeshifters, and "
+ "weighs twice as much.";
+ break;
}
need_new_line = false;
@@ -1258,7 +1312,10 @@ static std::string _describe_ammo( const item_def &item )
}
}
- append_missile_info(description);
+ if (always_destryoed)
+ description += "$It will always be destroyed upon impact.";
+ else
+ append_missile_info(description);
if (item_ident( item, ISFLAG_KNOW_PLUSES ) && item.plus >= MAX_WPN_ENCHANT)
description += "$It is maximally enchanted.";