Skip to content

Commit 6bc275f

Browse files
committed
Fix: Tortle archeologists could never throw Xiuhcoatl.
The dexterity requirements needed to throw Xiuhcoatl were set down well before the tortle race was ever created. A tortle archeologist would never be able to throw its own quest artifact, even wearing maximum enchanted gauntlets of dexterity. Tweak the requirement for tortle archeologists, so their maximum dexterity (10) allows them to fully utilize their quest artifact.
1 parent d71bc2d commit 6bc275f

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

doc/evilhack-changelog.md

+1
Original file line numberDiff line numberDiff line change
@@ -3599,4 +3599,5 @@ The following changes to date are:
35993599
- Fix: monster would always take blame for explosions affecting
36003600
various objects
36013601
- Fix: feedback when having to drop a worn shield vs worn bracers
3602+
- Fix: Tortle archeologists could never throw Xiuhcoatl
36023603

src/dothrow.c

+9-3
Original file line numberDiff line numberDiff line change
@@ -83,17 +83,23 @@ int shotlimit;
8383

8484
if (!canletgo(obj, "throw"))
8585
return 0;
86-
if ((obj->oartifact == ART_MJOLLNIR || obj->oartifact == ART_XIUHCOATL) && obj != uwep) {
87-
pline("%s must be wielded before it can be thrown.", The(xname(obj)));
86+
if ((obj->oartifact == ART_MJOLLNIR
87+
|| obj->oartifact == ART_XIUHCOATL) && obj != uwep) {
88+
pline("%s must be wielded before it can be thrown.",
89+
The(xname(obj)));
8890
return 0;
8991
}
9092
if ((obj->oartifact == ART_MJOLLNIR && ACURR(A_STR) < STR19(25))
9193
|| (obj->otyp == BOULDER && !racial_throws_rocks(&youmonst))) {
9294
pline("It's too heavy.");
9395
return 1;
9496
}
97+
/* Xiuhcoatl requires a certain level of dexterity to be thrown.
98+
If the player is not an archeologist, a dexterity of 21 or
99+
greater is required, otherwise a dexterity of 18 or greater
100+
(or 10 or greater if a Tortle) is needed */
95101
if (obj->oartifact == ART_XIUHCOATL
96-
&& (ACURR(A_DEX) < 18
102+
&& (ACURR(A_DEX) < (Race_if(PM_TORTLE) ? 10 : 18)
97103
|| (!Role_if(PM_ARCHEOLOGIST) && ACURR(A_DEX) < 21))) {
98104
pline("%s a deft hand.", Tobjnam(obj, "require"));
99105
return 1;

0 commit comments

Comments
 (0)