Longbow of Diana
Give an extra +1 to potential multi-shot to rangers wielding the Longbow of Diana and shooting any type of arrow. When an elf ranger has been wielding an elven bow to shoot elvish arrows or an orc ranger has been wielding an orcish bow to shoot orcish arrows, they lose their racial bonus but won't lose any multi-shot capability by switching to their quest artifact. Human and gnome rangers gain the +1 bonus. (I have no idea how a gnome could wield a longbow. One would need a step ladder to hold it vertically, and could only draw the string back a stubby arm's length if they held if horizonally.) That bonus gets applied before feeding the multi-shot counter to rnd() so doesn't mean an extra arrow every time. And you have to be wielding your own quest artifact--in addition to it being the appropriate launcher for the ammo you're shooting--so doesn't provide any multi-shot benefit to other types of characters who wish for it.
This commit is contained in:
@@ -1869,6 +1869,8 @@ mouse buttons can be bound to extended commands
|
||||
hero poly'd into purple worm can gain intrinsics from digesting whole monster
|
||||
add some tins of spinach to monk's quest (vegan => no Str from giant corpses)
|
||||
very large humanoids can wear mummy wrappings
|
||||
for ranger characters, shooting any type of arrow while wielding the Longbow
|
||||
of Diana gets an extra +1 to multi-shot
|
||||
|
||||
|
||||
Platform- and/or Interface-Specific New Features
|
||||
|
||||
@@ -33,8 +33,10 @@ static boolean mhurtle_step(genericptr_t, coordxy, coordxy);
|
||||
/* g.thrownobj (decl.c) tracks an object until it lands */
|
||||
|
||||
int
|
||||
multishot_class_bonus(int pm, struct obj *ammo,
|
||||
struct obj *launcher) /* can be NULL */
|
||||
multishot_class_bonus(
|
||||
int pm,
|
||||
struct obj *ammo,
|
||||
struct obj *launcher) /* can be NULL */
|
||||
{
|
||||
int multishot = 0;
|
||||
schar skill = objects[ammo->otyp].oc_skill;
|
||||
@@ -182,7 +184,7 @@ throw_obj(struct obj *obj, int shotlimit)
|
||||
multishot += multishot_class_bonus(Role_switch, obj, uwep);
|
||||
|
||||
/* ...or using their race's special bow; no bonus for spears */
|
||||
if (!weakmultishot)
|
||||
if (!weakmultishot) {
|
||||
switch (Race_switch) {
|
||||
case PM_ELF:
|
||||
if (obj->otyp == ELVEN_ARROW && uwep
|
||||
@@ -205,6 +207,15 @@ throw_obj(struct obj *obj, int shotlimit)
|
||||
break; /* No bonus */
|
||||
}
|
||||
|
||||
/* when launcher is own quest artifact, give extra +1 with any
|
||||
type of ammo appropriate for that launcher (compensates for
|
||||
elven and orcish rangers loss of bonus for use of racial bow
|
||||
plus racial arrows if they switch to the Longbow of Diana) */
|
||||
if (uwep && is_quest_artifact(uwep)
|
||||
&& ammo_and_launcher(obj, uwep))
|
||||
++multishot;
|
||||
}
|
||||
|
||||
/* crossbows are slow to load and probably shouldn't allow multiple
|
||||
shots at all, but that would result in players never using them;
|
||||
instead, high strength is necessary to load and shoot quickly */
|
||||
@@ -1969,11 +1980,10 @@ thitmonst(
|
||||
if ((Race_if(PM_ELF) || Role_if(PM_SAMURAI))
|
||||
&& (!Upolyd || your_race(g.youmonst.data))
|
||||
&& objects[uwep->otyp].oc_skill == P_BOW) {
|
||||
tmp++;
|
||||
if (Race_if(PM_ELF) && uwep->otyp == ELVEN_BOW)
|
||||
tmp++;
|
||||
else if (Role_if(PM_SAMURAI) && uwep->otyp == YUMI)
|
||||
tmp++;
|
||||
++tmp;
|
||||
if ((Race_if(PM_ELF) && uwep->otyp == ELVEN_BOW)
|
||||
|| (Role_if(PM_SAMURAI) && uwep->otyp == YUMI))
|
||||
++tmp;
|
||||
}
|
||||
}
|
||||
} else { /* thrown non-ammo or applied polearm/grapnel */
|
||||
|
||||
Reference in New Issue
Block a user