randonly occurring Discworld novels
Give 'novel' a 1 in 1000 chance of being created in place of each random spellbook (except for hero's initial inventory and NPC priests' monster inventory and divine reward for prayer--those all force regular spellbooks; statue contents aren't among the exceptions--those books can now be novels). Shop inventory (where first book or scroll shop created is guaranteed one novel) hasn't been touched. If there is any other special spellbook handling somewhere, I've overlooked it.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
$NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.63 $ $NHDT-Date: 1578834315 2020/01/12 13:05:15 $
|
||||
$NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.64 $ $NHDT-Date: 1578855619 2020/01/12 19:00:19 $
|
||||
|
||||
General Fixes and Modified Features
|
||||
-----------------------------------
|
||||
@@ -106,6 +106,10 @@ applying a spellbook hints about read charges left
|
||||
wizard mode wishing for level topology can now create hidden doors (ask for
|
||||
"secret door" when at a door or wall location) and hidden corridor
|
||||
spots ("secret corridor" at a corridor location)
|
||||
tiny chance for randomly created spellbooks to be Discworld novels instead
|
||||
of having only one in the first book or scroll shop created (won't
|
||||
occur in hero's initial inventory or NPC priest inventory or be
|
||||
bestowed as a prayer boon; might occur inside statues)
|
||||
|
||||
|
||||
Platform- and/or Interface-Specific New Features
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.6 mkobj.c $NHDT-Date: 1571531889 2019/10/20 00:38:09 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.157 $ */
|
||||
/* NetHack 3.6 mkobj.c $NHDT-Date: 1578855620 2020/01/12 19:00:20 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.173 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/*-Copyright (c) Derek S. Ray, 2015. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -1054,6 +1054,7 @@ boolean artif;
|
||||
case STATUE:
|
||||
/* possibly overridden by mkcorpstat() */
|
||||
otmp->corpsenm = rndmonnum();
|
||||
/* note: might produce a novel rather than a spellbook */
|
||||
if (!verysmall(&mons[otmp->corpsenm])
|
||||
&& rn2(level_difficulty() / 2 + 10) > 10)
|
||||
(void) add_to_container(otmp, mkobj(SPBOOK_CLASS, FALSE));
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.6 objects.c $NHDT-Date: 1577184069 2019/12/24 10:41:09 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.59 $ */
|
||||
/* NetHack 3.6 objects.c $NHDT-Date: 1578855624 2020/01/12 19:00:24 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.61 $ */
|
||||
/* Copyright (c) Mike Threepoint, 1989. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
@@ -918,7 +918,7 @@ SPELL("fireball", "ragged",
|
||||
SPELL("cone of cold", "dog eared",
|
||||
P_ATTACK_SPELL, 10, 7, 4, 1, RAY, HI_PAPER),
|
||||
SPELL("sleep", "mottled",
|
||||
P_ENCHANTMENT_SPELL, 50, 1, 1, 1, RAY, HI_PAPER),
|
||||
P_ENCHANTMENT_SPELL, 49, 1, 1, 1, RAY, HI_PAPER),
|
||||
SPELL("finger of death", "stained",
|
||||
P_ATTACK_SPELL, 5, 10, 7, 1, RAY, HI_PAPER),
|
||||
SPELL("light", "cloth",
|
||||
@@ -1003,7 +1003,7 @@ SPELL("blank paper", "plain", P_NONE, 18, 0, 0, 0, 0, HI_PAPER),
|
||||
/* tribute book for 3.6 */
|
||||
OBJECT(OBJ("novel", "paperback"),
|
||||
BITS(0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, P_NONE, PAPER),
|
||||
0, SPBOOK_CLASS, 0, 0, 0, 20, 0, 0, 0, 1, 20, CLR_BRIGHT_BLUE),
|
||||
0, SPBOOK_CLASS, 1, 0, 0, 20, 0, 0, 0, 1, 20, CLR_BRIGHT_BLUE),
|
||||
/* a special, one of a kind, spellbook */
|
||||
OBJECT(OBJ("Book of the Dead", "papyrus"),
|
||||
BITS(0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, P_NONE, PAPER),
|
||||
|
||||
13
src/pray.c
13
src/pray.c
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.6 pray.c $NHDT-Date: 1575830189 2019/12/08 18:36:29 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.134 $ */
|
||||
/* NetHack 3.6 pray.c $NHDT-Date: 1578855625 2020/01/12 19:00:25 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.137 $ */
|
||||
/* Copyright (c) Benson I. Margulies, Mike Stephenson, Steve Linhart, 1989. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
@@ -1181,10 +1181,13 @@ aligntyp g_align;
|
||||
struct obj *otmp;
|
||||
int sp_no, trycnt = u.ulevel + 1;
|
||||
|
||||
/* not yet known spells given preference over already known ones
|
||||
*/
|
||||
/* Also, try to grant a spell for which there is a skill slot */
|
||||
otmp = mkobj(SPBOOK_CLASS, TRUE);
|
||||
/* not yet known spells given preference over already known ones;
|
||||
also, try to grant a spell for which there is a skill slot;
|
||||
make sure that it's a spellbook and not a novel */
|
||||
/* otmp = mkobj(SPBOOK_CLASS, TRUE); --might yield NOVEL */
|
||||
otmp = mksobj(rnd_class(g.bases[SPBOOK_CLASS],
|
||||
SPE_BLANK_PAPER),
|
||||
TRUE, FALSE);
|
||||
while (--trycnt > 0) {
|
||||
if (otmp->otyp != SPE_BLANK_PAPER) {
|
||||
for (sp_no = 0; sp_no < MAXSPELL; sp_no++)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.6 priest.c $NHDT-Date: 1545131519 2018/12/18 11:11:59 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.45 $ */
|
||||
/* NetHack 3.6 priest.c $NHDT-Date: 1578855626 2020/01/12 19:00:26 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.56 $ */
|
||||
/* Copyright (c) Izchak Miller, Steve Linhart, 1989. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
|
||||
@@ -258,7 +258,10 @@ boolean sanctum; /* is it the seat of the high priest? */
|
||||
}
|
||||
/* 2 to 4 spellbooks */
|
||||
for (cnt = rn1(3, 2); cnt > 0; --cnt) {
|
||||
(void) mpickobj(priest, mkobj(SPBOOK_CLASS, FALSE));
|
||||
/* avoid novel (used to be mkobj(SPBOOK_CLASS, FALSE) here) */
|
||||
(void) mpickobj(priest, mksobj(rnd_class(g.bases[SPBOOK_CLASS],
|
||||
SPE_BLANK_PAPER),
|
||||
TRUE, FALSE));
|
||||
}
|
||||
/* robe [via makemon()] */
|
||||
if (rn2(2) && (otmp = which_armor(priest, W_ARMC)) != 0) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.6 u_init.c $NHDT-Date: 1575245094 2019/12/02 00:04:54 $ $NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.60 $ */
|
||||
/* NetHack 3.6 u_init.c $NHDT-Date: 1578855627 2020/01/12 19:00:27 $ $NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.67 $ */
|
||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||
/*-Copyright (c) Robert Patrick Rankin, 2017. */
|
||||
/* NetHack may be freely redistributed. See license for details. */
|
||||
@@ -1016,7 +1016,8 @@ register struct trobj *trop;
|
||||
spells in restricted skill categories */
|
||||
|| (obj->oclass == SPBOOK_CLASS
|
||||
&& (objects[otyp].oc_level > 3
|
||||
|| restricted_spell_discipline(otyp)))) {
|
||||
|| restricted_spell_discipline(otyp)))
|
||||
|| otyp == SPE_NOVEL) {
|
||||
dealloc_obj(obj);
|
||||
obj = mkobj(trop->trclass, FALSE);
|
||||
otyp = obj->otyp;
|
||||
|
||||
Reference in New Issue
Block a user