Skip to content

Commit 04a05fd

Browse files
committed
Hobbit rangers start with a crossbow instead of a bow, quest artifact is the Crossbow of Carl.
Why? Because hobbits are technically just as small or smaller than gnomes. Too small for longbows at any rate. Should have done this when I first made the hobbit player race. Better late than never.
1 parent 042a0c2 commit 04a05fd

File tree

5 files changed

+11
-8
lines changed

5 files changed

+11
-8
lines changed

doc/evilhack-changelog.md

+2
Original file line numberDiff line numberDiff line change
@@ -3352,4 +3352,6 @@ The following changes to date are:
33523352
- Fix: Peaceful demon lords won't follow you across levels
33533353
- Add regular bracers as a forge recipe
33543354
- Ammo created by the Ranger quest artifact is fully identified
3355+
- Hobbit rangers start with a crossbow instead of a bow, quest artifact is
3356+
the Crossbow of Carl
33553357

src/artifact.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -1147,8 +1147,9 @@ struct monst *mon;
11471147
return 0;
11481148
}
11491149
if (oart == &artilist[ART_CROSSBOW_OF_CARL]) {
1150-
if (yours ? Role_if(PM_RANGER) && Race_if(PM_GNOME)
1151-
: racial_gnome(mon))
1150+
if (yours ? Role_if(PM_RANGER) && (Race_if(PM_GNOME)
1151+
|| Race_if(PM_HOBBIT))
1152+
: (racial_gnome(mon) || racial_hobbit(mon)))
11521153
obj->owt = 24; /* Magically lightened,
11531154
same weight as the Longbow of Diana */
11541155
}
@@ -3153,7 +3154,6 @@ struct obj *obj;
31533154
goto nothing_special;
31543155
otmp->blessed = obj->blessed;
31553156
otmp->cursed = obj->cursed;
3156-
otmp->bknown = obj->bknown;
31573157
otmp->oeroded = otmp->oeroded2 = 0;
31583158
if (obj->blessed) {
31593159
if (otmp->spe < 0)

src/makemon.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -2419,7 +2419,7 @@ register struct monst *mtmp;
24192419
break;
24202420
case S_SPIDER:
24212421
if (ptr == &mons[PM_SCORPIUS]) {
2422-
if (Race_if(PM_GNOME)) {
2422+
if (Race_if(PM_GNOME) || Race_if(PM_HOBBIT)) {
24232423
otmp = mksobj(CROSSBOW, FALSE, FALSE);
24242424
otmp = oname(otmp, artiname(ART_CROSSBOW_OF_CARL));
24252425
bless(otmp);

src/role.c

+3-2
Original file line numberDiff line numberDiff line change
@@ -779,7 +779,7 @@ const struct Role align_roles[] = {
779779
{ { 0, 0 } }
780780
};
781781

782-
/* Gnomish Ranger */
782+
/* Gnomish/Hobbit Ranger */
783783
const struct Role race_roles[] = {
784784
{ { "Ranger", 0 },
785785
{
@@ -2527,7 +2527,8 @@ role_init()
25272527
urole = align_roles[0];
25282528
}
25292529

2530-
if (Race_if(PM_GNOME) && Role_if(PM_RANGER)) {
2530+
if ((Race_if(PM_GNOME) || Race_if(PM_HOBBIT))
2531+
&& Role_if(PM_RANGER)) {
25312532
urole = race_roles[0];
25322533
}
25332534

src/u_init.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -332,8 +332,8 @@ struct inv_sub {
332332
{ PM_HOBBIT, DAGGER, ELVEN_DAGGER },
333333
{ PM_HOBBIT, SPEAR, ELVEN_SPEAR },
334334
{ PM_HOBBIT, SHORT_SWORD, ELVEN_SHORT_SWORD },
335-
{ PM_HOBBIT, BOW, ELVEN_BOW },
336-
{ PM_HOBBIT, ARROW, ELVEN_ARROW },
335+
{ PM_HOBBIT, BOW, CROSSBOW }, /* Ranger */
336+
{ PM_HOBBIT, ARROW, CROSSBOW_BOLT }, /* Ranger */
337337
{ PM_HOBBIT, HELMET, ELVEN_HELM },
338338
{ PM_HOBBIT, CLOAK, ELVEN_CLOAK },
339339
{ PM_HOBBIT, CLOAK_OF_DISPLACEMENT, ELVEN_CLOAK },

0 commit comments

Comments
 (0)