diff options
author | haranp <haranp@c06c8d41-db1a-0410-9941-cceddc491573> | 2006-11-06 22:14:18 +0000 |
---|---|---|
committer | haranp <haranp@c06c8d41-db1a-0410-9941-cceddc491573> | 2006-11-06 22:14:18 +0000 |
commit | 51e7b97746b7499413dfa867193a6db9c6eee933 (patch) | |
tree | 92ef6dc4ae5e5d48f2b1424d5ddc96b8cb75d47c | |
parent | 098a26cdea0f9d27b6077d449fe5946692247fd6 (diff) | |
download | crawl-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.cc | 67 |
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, "."); |