Snickersnee can hit at a distance once per turn for free

Once per turn, Snickersnee can be used to hit at a distance,
similar to a polearm, without taking any time.

Breaks saves.
This commit is contained in:
Pasi Kallinen
2025-05-12 20:23:43 +03:00
parent 8ac31b24f6
commit 035cd4377f
7 changed files with 38 additions and 4 deletions

View File

@@ -148,6 +148,7 @@ struct context_info {
int warnlevel; /* threshold (digit) to warn about unseen mons */
long next_attrib_check; /* next attribute check */
long seer_turn; /* when random clairvoyance will next kick in */
long snickersnee_turn; /* Snickersnee last used to distance attack */
long stethoscope_seq; /* when a stethoscope was last used; first use
* during a move takes no time, second uses move */
boolean travel; /* find way automatically to u.tx,u.ty */

View File

@@ -222,10 +222,12 @@ struct obj {
(otmp->oclass == WEAPON_CLASS \
&& objects[otmp->otyp].oc_skill >= P_SHORT_SWORD \
&& objects[otmp->otyp].oc_skill <= P_SABER)
/* Snickersnee is not a polearm, but can hit from distance */
#define is_pole(otmp) \
((otmp->oclass == WEAPON_CLASS || otmp->oclass == TOOL_CLASS) \
&& (objects[otmp->otyp].oc_skill == P_POLEARMS \
|| objects[otmp->otyp].oc_skill == P_LANCE))
|| objects[otmp->otyp].oc_skill == P_LANCE \
|| is_art(otmp, ART_SNICKERSNEE)))
#define is_spear(otmp) \
(otmp->oclass == WEAPON_CLASS && objects[otmp->otyp].oc_skill == P_SPEAR)
#define is_launcher(otmp) \

View File

@@ -17,7 +17,7 @@
* Incrementing EDITLEVEL can be used to force invalidation of old bones
* and save files.
*/
#define EDITLEVEL 123
#define EDITLEVEL 124
/*
* Development status possibilities.

View File

@@ -197,6 +197,7 @@
seffect(stone_breaking),
seffect(stone_crumbling),
seffect(swoosh),
seffect(sword_blade_rings),
seffect(thud),
seffect(thump),
seffect(thunderclap),