merge javelin and spear skills (trunk only)

Part of "multi-shot throwing proposal" last January.  Unfortunately
some of the bits that I had implemented back then have vanished, so I'm
doing it over from scratch.  There were three main parts:
1) allow multi-shot volley throwing for all stackable weapons (affects
   knives, javelins, spears, and boomerangs; other weapons either don't
   stack or are already multi-shot);
2) make worm teeth and crysknives be stackable like ordinary knives;
3) merge spear and javelin skills, so that allocating skill points to
   their use becomes more attractive and they might get used more.
This patch only does #3.

     Since the monk skill set shrinks by more than any of the other roles,
I bumped max skill for escape spells (haste self, invisibility, jumping,
levitation, and teleport away) from basic to skilled; that's the only
skill adjustment included here.  For the couple of roles had different
max values for spear and javelin skill; this keeps the higher of the two.
This commit is contained in:
nethack.rankin
2006-12-15 04:54:22 +00:00
parent 1c70b6f777
commit 54bbb38ee0
8 changed files with 53 additions and 52 deletions

View File

@@ -1,4 +1,4 @@
/* SCCS Id: @(#)obj.h 3.5 2006/04/15 */
/* SCCS Id: @(#)obj.h 3.5 2006/12/14 */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
@@ -164,8 +164,7 @@ struct obj {
(objects[otmp->otyp].oc_skill == P_POLEARMS || \
objects[otmp->otyp].oc_skill == P_LANCE))
#define is_spear(otmp) (otmp->oclass == WEAPON_CLASS && \
objects[otmp->otyp].oc_skill >= P_SPEAR && \
objects[otmp->otyp].oc_skill <= P_JAVELIN)
objects[otmp->otyp].oc_skill == P_SPEAR)
#define is_launcher(otmp) (otmp->oclass == WEAPON_CLASS && \
objects[otmp->otyp].oc_skill >= P_BOW && \
objects[otmp->otyp].oc_skill <= P_CROSSBOW)
@@ -173,9 +172,9 @@ struct obj {
otmp->oclass == GEM_CLASS) && \
objects[otmp->otyp].oc_skill >= -P_CROSSBOW && \
objects[otmp->otyp].oc_skill <= -P_BOW)
#define ammo_and_launcher(otmp,ltmp) \
(is_ammo(otmp) && (ltmp) && \
objects[(otmp)->otyp].oc_skill == -objects[(ltmp)->otyp].oc_skill)
#define matching_launcher(a,l) ((l) && objects[(a)->otyp].oc_skill == \
-objects[(l)->otyp].oc_skill)
#define ammo_and_launcher(a,l) (is_ammo(a) && matching_launcher(a,l))
#define is_missile(otmp) ((otmp->oclass == WEAPON_CLASS || \
otmp->oclass == TOOL_CLASS) && \
objects[otmp->otyp].oc_skill >= -P_BOOMERANG && \

View File

@@ -1,4 +1,4 @@
/* SCCS Id: @(#)patchlevel.h 3.5 2006/07/08 */
/* SCCS Id: @(#)patchlevel.h 3.5 2006/12/14 */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/* NetHack may be freely redistributed. See license for details. */
@@ -13,7 +13,7 @@
* Incrementing EDITLEVEL can be used to force invalidation of old bones
* and save files.
*/
#define EDITLEVEL 37
#define EDITLEVEL 38
#define COPYRIGHT_BANNER_A \
"NetHack, Copyright 1985-2006"

View File

@@ -1,4 +1,4 @@
/* SCCS Id: @(#)skills.h 3.5 1999/10/27 */
/* SCCS Id: @(#)skills.h 3.5 2006/12/14 */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985-1999. */
/* NetHack may be freely redistributed. See license for details. */
@@ -37,38 +37,37 @@
#define P_HAMMER 15 /* Heavy head on the end */
#define P_QUARTERSTAFF 16 /* Long-shafted bludgeon */
#define P_POLEARMS 17
#define P_SPEAR 18
#define P_JAVELIN 19
#define P_TRIDENT 20
#define P_LANCE 21
#define P_BOW 22
#define P_SLING 23
#define P_CROSSBOW 24
#define P_DART 25
#define P_SHURIKEN 26
#define P_BOOMERANG 27
#define P_WHIP 28
#define P_UNICORN_HORN 29 /* last weapon */
#define P_SPEAR 18 /* includes javelin */
#define P_TRIDENT 19
#define P_LANCE 20
#define P_BOW 21
#define P_SLING 22
#define P_CROSSBOW 23
#define P_DART 24
#define P_SHURIKEN 25
#define P_BOOMERANG 26
#define P_WHIP 27
#define P_UNICORN_HORN 28 /* last weapon */
#define P_FIRST_WEAPON P_DAGGER
#define P_LAST_WEAPON P_UNICORN_HORN
/* Spell Skills added by Larry Stewart-Zerba */
#define P_ATTACK_SPELL 30
#define P_HEALING_SPELL 31
#define P_DIVINATION_SPELL 32
#define P_ENCHANTMENT_SPELL 33
#define P_CLERIC_SPELL 34
#define P_ESCAPE_SPELL 35
#define P_MATTER_SPELL 36
#define P_ATTACK_SPELL 29
#define P_HEALING_SPELL 30
#define P_DIVINATION_SPELL 31
#define P_ENCHANTMENT_SPELL 32
#define P_CLERIC_SPELL 33
#define P_ESCAPE_SPELL 34
#define P_MATTER_SPELL 35
#define P_FIRST_SPELL P_ATTACK_SPELL
#define P_LAST_SPELL P_MATTER_SPELL
/* Other types of combat */
#define P_BARE_HANDED_COMBAT 37
#define P_BARE_HANDED_COMBAT 36 /* actually weaponless; gloves are ok */
#define P_MARTIAL_ARTS P_BARE_HANDED_COMBAT /* Role distinguishes */
#define P_TWO_WEAPON_COMBAT 38 /* Finally implemented */
#define P_TWO_WEAPON_COMBAT 37 /* Finally implemented */
#ifdef STEED
#define P_RIDING 39 /* How well you control your steed */
#define P_RIDING 38 /* How well you control your steed */
#define P_LAST_H_TO_H P_RIDING
#else
#define P_LAST_H_TO_H P_TWO_WEAPON_COMBAT