add some new, easier achievements
Introduce eight achievements that can be attained by more players. Entered Gnomish Mines - self explanatory Entered Mine Town - the town portion, not just the level Entered a shop - any tended shop on any level Entered a temple - likewise for temple Consulted the Oracle - bought at least one major or minor oracle Read a Discworld Novel - read at least one passage Entered Sokoban - like mines Entered the Big Room - not always possible since not always present The novel and bigroom ones aren't always achieveable since novels are only guaranteed if a book or scroll shop gets created and bigroom is only guaranteed in wizard mode. No one ever claimed that every possible achievement can be attained in a single game. (If one for entering the Fort Ludios level--or perhaps entering the Fort itself-- eventually gets add, that won't be possible in every game either.) The mine town one probably needs some tweaking. Two of the town's seven variants have no town boundary (despite a rectangular area of pre-defined map) and at present simply arriving on either of those levels is enough to be credited with the entered-town achievement. Bump EDITLEVEL because u.uachieved[] has increased in size. This time it has been expanded to the maximum that xlogfile's bitmask of achievements can handle, enough for up to 9 more achievements without another EDITLEVEL increment.
This commit is contained in:
@@ -465,7 +465,8 @@ register struct obj *spellbook;
|
||||
}
|
||||
}
|
||||
|
||||
if (g.context.spbook.delay && !confused && spellbook == g.context.spbook.book
|
||||
if (g.context.spbook.delay && !confused
|
||||
&& spellbook == g.context.spbook.book
|
||||
/* handle the sequence: start reading, get interrupted, have
|
||||
g.context.spbook.book become erased somehow, resume reading it */
|
||||
&& booktype != SPE_BLANK_PAPER) {
|
||||
@@ -490,6 +491,7 @@ register struct obj *spellbook;
|
||||
check_unpaid(spellbook);
|
||||
makeknown(booktype);
|
||||
if (!u.uevent.read_tribute) {
|
||||
record_achievement(ACH_NOVL);
|
||||
/* give bonus of 20 xp and 4*20+0 pts */
|
||||
more_experienced(20, 0);
|
||||
newexplevel();
|
||||
|
||||
Reference in New Issue
Block a user