Attached Files |
0001-Add-alternate-messages-for-critical-hits.patch [^] (4,209 bytes) 2011-09-06 05:29 [Show Content] [Hide Content]From 0b793329cbc978a508c83df75de512d9b41c8066 Mon Sep 17 00:00:00 2001
From: Aaron Becker <akbecker@gmail.com>
Date: Mon, 5 Sep 2011 22:22:24 -0500
Subject: [PATCH] Add alternate messages for critical hits
---
crawl-ref/source/fight.cc | 59 ++++++++++++++++++++++++++++++++++++++-------
1 files changed, 50 insertions(+), 9 deletions(-)
diff --git a/crawl-ref/source/fight.cc b/crawl-ref/source/fight.cc
index 2d73cce..5b7da4e 100644
--- a/crawl-ref/source/fight.cc
+++ b/crawl-ref/source/fight.cc
@@ -1461,9 +1461,6 @@ void melee_attack::player_announce_aux_hit()
void melee_attack::player_announce_hit()
{
- if (!verb_degree.empty() && verb_degree[0] != ' ')
- verb_degree = " " + verb_degree;
-
msg::stream << "You " << attack_verb << ' '
<< defender->name(DESC_NOCAP_THE)
<< verb_degree << debug_damage_number()
@@ -1926,15 +1923,28 @@ int melee_attack::player_weapon_type_modify(int damage)
attack_verb = "impale";
else
{
- attack_verb = "spit";
if (defender->atype() == ACT_MONSTER
&& defender_visible
&& mons_genus(defender->as_monster()->type) == MONS_HOG)
{
+ attack_verb = "spit";
verb_degree = " like the proverbial pig";
}
else
- verb_degree = " like a pig";
+ {
+ static std::vector<std::pair<
+ std::string, std::string> > pierce_desc;
+ if (pierce_desc.size() == 0)
+ {
+ pierce_desc.push_back(
+ std::make_pair("spit", " like a pig"));
+ pierce_desc.push_back(
+ std::make_pair("skewer", " like a kebab"));
+ }
+ int choice = random2(pierce_desc.size());
+ attack_verb = pierce_desc[choice].first;
+ verb_degree = pierce_desc[choice].second;
+ }
}
break;
@@ -1950,8 +1960,25 @@ int melee_attack::player_weapon_type_modify(int damage)
}
else
{
- attack_verb = "open";
- verb_degree = " like a pillowcase";
+ static std::vector<std::pair<
+ std::string, std::string> > slice_desc;
+ if (slice_desc.size() == 0)
+ {
+ slice_desc.push_back(
+ std::make_pair("open", " like a pillowcase"));
+ slice_desc.push_back(
+ std::make_pair("slice", " like a ripe choko"));
+ slice_desc.push_back(
+ std::make_pair("cut", " into ribbons"));
+ std::string carve = "You carve the letter '";
+ carve += you.your_name[0];
+ carve += "' into";
+ slice_desc.push_back(
+ std::make_pair(carve, "'s chest"));
+ }
+ int choice = random2(slice_desc.size());
+ attack_verb = slice_desc[choice].first;
+ verb_degree = slice_desc[choice].second;
}
break;
@@ -1962,8 +1989,22 @@ int melee_attack::player_weapon_type_modify(int damage)
attack_verb = "bludgeon";
else
{
- attack_verb = "crush";
- verb_degree = " like a grape";
+ static std::vector<std::pair<
+ std::string, std::string> > bash_desc;
+ if (bash_desc.size() == 0)
+ {
+ bash_desc.push_back(
+ std::make_pair("crush", " like a grape"));
+ bash_desc.push_back(
+ std::make_pair("beat", " like a drum"));
+ bash_desc.push_back(
+ std::make_pair("hammer", " like a gong"));
+ bash_desc.push_back(
+ std::make_pair("pound", " like an anvil"));
+ }
+ int choice = random2(bash_desc.size());
+ attack_verb = bash_desc[choice].first;
+ verb_degree = bash_desc[choice].second;
}
break;
--
1.7.4.1
|