summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorharanp <haranp@c06c8d41-db1a-0410-9941-cceddc491573>2006-11-06 22:14:18 +0000
committerharanp <haranp@c06c8d41-db1a-0410-9941-cceddc491573>2006-11-06 22:14:18 +0000
commit51e7b97746b7499413dfa867193a6db9c6eee933 (patch)
tree92ef6dc4ae5e5d48f2b1424d5ddc96b8cb75d47c
parent098a26cdea0f9d27b6077d449fe5946692247fd6 (diff)
downloadcrawl-ref-51e7b97746b7499413dfa867193a6db9c6eee933.tar.gz
crawl-ref-51e7b97746b7499413dfa867193a6db9c6eee933.zip
More intelligent messages when monsters hit themselves (1578169.)
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/branches/stone_soup@348 c06c8d41-db1a-0410-9941-cceddc491573
-rw-r--r--crawl-ref/source/fight.cc67
1 files changed, 55 insertions, 12 deletions
diff --git a/crawl-ref/source/fight.cc b/crawl-ref/source/fight.cc
index 8c4c4cbabc..76ceafd748 100644
--- a/crawl-ref/source/fight.cc
+++ b/crawl-ref/source/fight.cc
@@ -3190,7 +3190,11 @@ bool monsters_fight(int monster_attacking, int monster_attacked)
{
strcpy(info, ptr_monam(attacker, DESC_CAP_THE));
strcat(info, " misses ");
- strcat(info, ptr_monam(defender, DESC_NOCAP_THE));
+ if (attacker == defender)
+ strcat(info,
+ mons_pronoun(attacker->type, PRONOUN_REFLEXIVE));
+ else
+ strcat(info, ptr_monam(defender, DESC_NOCAP_THE));
strcat(info, ".");
mpr(info);
}
@@ -3202,8 +3206,11 @@ bool monsters_fight(int monster_attacking, int monster_attacked)
{
strcpy(info, ptr_monam(attacker, DESC_CAP_THE));
strcat(info, " hits ");
- strcat(info, ptr_monam(defender, DESC_NOCAP_THE));
-
+ if ( attacker == defender )
+ strcat(info,
+ mons_pronoun(attacker->type, PRONOUN_REFLEXIVE));
+ else
+ strcat(info, ptr_monam(defender, DESC_NOCAP_THE));
#if DEBUG_DIAGNOSTICS
strcat(info, " for ");
// note: doesn't take account of special weapons etc
@@ -3223,7 +3230,11 @@ bool monsters_fight(int monster_attacking, int monster_attacked)
{
strcpy(info, ptr_monam(attacker, DESC_CAP_THE));
strcat(info, " hits ");
- strcat(info, ptr_monam(defender, DESC_NOCAP_THE));
+ if (attacker == defender)
+ strcat(info,
+ mons_pronoun(attacker->type, PRONOUN_REFLEXIVE));
+ else
+ strcat(info, ptr_monam(defender, DESC_NOCAP_THE));
if (attacker->type != MONS_DANCING_WEAPON
&& attacker->inv[hand_used] != NON_ITEM
@@ -3261,7 +3272,11 @@ bool monsters_fight(int monster_attacking, int monster_attacked)
{
strcpy(info, ptr_monam(attacker, DESC_CAP_THE));
strcat(info, " stings ");
- strcat(info, ptr_monam(defender, DESC_NOCAP_THE));
+ if (attacker == defender)
+ strcat(info, mons_pronoun(attacker->type,
+ PRONOUN_REFLEXIVE));
+ else
+ strcat(info, ptr_monam(defender, DESC_NOCAP_THE));
strcat(info, ".");
mpr(info);
}
@@ -3278,7 +3293,11 @@ bool monsters_fight(int monster_attacking, int monster_attacked)
{
strcpy(info, ptr_monam(attacker, DESC_CAP_THE));
strcat(info, " stings ");
- strcat(info, ptr_monam(defender, DESC_NOCAP_THE));
+ if (attacker == defender)
+ strcat(info, mons_pronoun(attacker->type,
+ PRONOUN_REFLEXIVE));
+ else
+ strcat(info, ptr_monam(defender, DESC_NOCAP_THE));
strcat(info, ".");
mpr(info);
}
@@ -3331,7 +3350,11 @@ bool monsters_fight(int monster_attacking, int monster_attacked)
{
strcpy(info, ptr_monam(attacker, DESC_CAP_THE));
strcat(info, " stings ");
- strcat(info, ptr_monam(defender, DESC_NOCAP_THE));
+ if (attacker == defender)
+ strcat(info, mons_pronoun(attacker->type,
+ PRONOUN_REFLEXIVE));
+ else
+ strcat(info, ptr_monam(defender, DESC_NOCAP_THE));
strcat(info, ".");
mpr(info);
}
@@ -3408,7 +3431,11 @@ bool monsters_fight(int monster_attacking, int monster_attacked)
{
strcpy(info, ptr_monam(attacker, DESC_CAP_THE));
strcat(info, " freezes ");
- strcat(info, ptr_monam(defender, DESC_NOCAP_THE));
+ if (attacker == defender)
+ strcat(info, mons_pronoun(attacker->type,
+ PRONOUN_REFLEXIVE));
+ else
+ strcat(info, ptr_monam(defender, DESC_NOCAP_THE));
strcat(info, ".");
mpr(info);
}
@@ -3437,7 +3464,11 @@ bool monsters_fight(int monster_attacking, int monster_attacked)
{
strcpy(info, ptr_monam(attacker, DESC_CAP_THE));
strcat(info, " freezes ");
- strcat(info, ptr_monam(defender, DESC_NOCAP_THE));
+ if (attacker == defender)
+ strcat(info, mons_pronoun(attacker->type,
+ PRONOUN_REFLEXIVE));
+ else
+ strcat(info, ptr_monam(defender, DESC_NOCAP_THE));
strcat(info, ".");
mpr(info);
}
@@ -3454,7 +3485,11 @@ bool monsters_fight(int monster_attacking, int monster_attacked)
{
strcpy(info, ptr_monam(attacker, DESC_CAP_THE));
strcat(info, " shocks ");
- strcat(info, ptr_monam(defender, DESC_NOCAP_THE));
+ if (attacker == defender)
+ strcat(info, mons_pronoun(attacker->type,
+ PRONOUN_REFLEXIVE));
+ else
+ strcat(info, ptr_monam(defender, DESC_NOCAP_THE));
strcat(info, ".");
mpr(info);
}
@@ -3518,7 +3553,11 @@ bool monsters_fight(int monster_attacking, int monster_attacked)
{
strcpy(info, ptr_monam(attacker, DESC_CAP_THE));
strcat(info, " burns ");
- strcat(info, ptr_monam(defender, DESC_NOCAP_THE ));
+ if (attacker == defender)
+ strcat(info, mons_pronoun(attacker->type,
+ PRONOUN_REFLEXIVE));
+ else
+ strcat(info, ptr_monam(defender, DESC_NOCAP_THE ));
if (specdam < 3)
strcat(info, ".");
@@ -3546,7 +3585,11 @@ bool monsters_fight(int monster_attacking, int monster_attacked)
strcpy(info, ptr_monam(attacker, DESC_CAP_THE));
strcat(info, " freezes ");
- strcat(info, ptr_monam(defender, DESC_NOCAP_THE));
+ if (attacker == defender)
+ strcat(info, mons_pronoun(attacker->type,
+ PRONOUN_REFLEXIVE));
+ else
+ strcat(info, ptr_monam(defender, DESC_NOCAP_THE));
if (specdam < 3)
strcat(info, ".");