Random figurines are of harder monsters
This commit is contained in:
@@ -1014,6 +1014,7 @@ when breaking a wand of sleep hits the hero with the explosion, don't describe
|
|||||||
expose fuzz tester to wizard-mode as #debugfuzzer extended command
|
expose fuzz tester to wizard-mode as #debugfuzzer extended command
|
||||||
monsters which cannot move due to boulders or walls try to escape
|
monsters which cannot move due to boulders or walls try to escape
|
||||||
intelligent monsters see and remember when others trigger traps
|
intelligent monsters see and remember when others trigger traps
|
||||||
|
random figurines are of harder monsters
|
||||||
|
|
||||||
|
|
||||||
Fixes to 3.7.0-x Problems that Were Exposed Via git Repository
|
Fixes to 3.7.0-x Problems that Were Exposed Via git Repository
|
||||||
|
|||||||
@@ -1275,6 +1275,7 @@ extern void dealloc_mextra(struct monst *);
|
|||||||
extern struct monst *makemon(struct permonst *, coordxy, coordxy, mmflags_nht);
|
extern struct monst *makemon(struct permonst *, coordxy, coordxy, mmflags_nht);
|
||||||
extern struct monst *unmakemon(struct monst *, mmflags_nht);
|
extern struct monst *unmakemon(struct monst *, mmflags_nht);
|
||||||
extern boolean create_critters(int, struct permonst *, boolean);
|
extern boolean create_critters(int, struct permonst *, boolean);
|
||||||
|
extern struct permonst *rndmonst_adj(int, int);
|
||||||
extern struct permonst *rndmonst(void);
|
extern struct permonst *rndmonst(void);
|
||||||
extern struct permonst *mkclass(char, int);
|
extern struct permonst *mkclass(char, int);
|
||||||
extern struct permonst *mkclass_aligned(char, int, aligntyp);
|
extern struct permonst *mkclass_aligned(char, int, aligntyp);
|
||||||
@@ -1433,6 +1434,7 @@ extern struct obj *mkobj_at(char, coordxy, coordxy, boolean);
|
|||||||
extern struct obj *mksobj_at(int, coordxy, coordxy, boolean, boolean);
|
extern struct obj *mksobj_at(int, coordxy, coordxy, boolean, boolean);
|
||||||
extern struct obj *mksobj_migr_to_species(int, unsigned, boolean, boolean);
|
extern struct obj *mksobj_migr_to_species(int, unsigned, boolean, boolean);
|
||||||
extern struct obj *mkobj(int, boolean);
|
extern struct obj *mkobj(int, boolean);
|
||||||
|
extern int rndmonnum_adj(int, int);
|
||||||
extern int rndmonnum(void);
|
extern int rndmonnum(void);
|
||||||
extern boolean bogon_is_pname(char);
|
extern boolean bogon_is_pname(char);
|
||||||
extern struct obj *splitobj(struct obj *, long);
|
extern struct obj *splitobj(struct obj *, long);
|
||||||
|
|||||||
+9
-2
@@ -1598,6 +1598,13 @@ align_shift(register struct permonst *ptr)
|
|||||||
/* select a random monster type */
|
/* select a random monster type */
|
||||||
struct permonst *
|
struct permonst *
|
||||||
rndmonst(void)
|
rndmonst(void)
|
||||||
|
{
|
||||||
|
return rndmonst_adj(0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* select a random monster type, with adjusted difficulty */
|
||||||
|
struct permonst *
|
||||||
|
rndmonst_adj(int minadj, int maxadj)
|
||||||
{
|
{
|
||||||
register struct permonst *ptr;
|
register struct permonst *ptr;
|
||||||
register int mndx;
|
register int mndx;
|
||||||
@@ -1608,8 +1615,8 @@ rndmonst(void)
|
|||||||
return ptr;
|
return ptr;
|
||||||
|
|
||||||
zlevel = level_difficulty();
|
zlevel = level_difficulty();
|
||||||
minmlev = monmin_difficulty(zlevel);
|
minmlev = monmin_difficulty(zlevel) + minadj;
|
||||||
maxmlev = monmax_difficulty(zlevel);
|
maxmlev = monmax_difficulty(zlevel) + maxadj;
|
||||||
upper = Is_rogue_level(&u.uz); /* prefer uppercase only on rogue level */
|
upper = Is_rogue_level(&u.uz); /* prefer uppercase only on rogue level */
|
||||||
elemlevel = In_endgame(&u.uz) && !Is_astralevel(&u.uz); /* elmntl plane */
|
elemlevel = In_endgame(&u.uz) && !Is_astralevel(&u.uz); /* elmntl plane */
|
||||||
|
|
||||||
|
|||||||
+10
-2
@@ -323,13 +323,20 @@ mkbox_cnts(struct obj *box)
|
|||||||
/* select a random, common monster type */
|
/* select a random, common monster type */
|
||||||
int
|
int
|
||||||
rndmonnum(void)
|
rndmonnum(void)
|
||||||
|
{
|
||||||
|
return rndmonnum_adj(0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* select a random, common monster type, with adjusted difficulty */
|
||||||
|
int
|
||||||
|
rndmonnum_adj(int minadj, int maxadj)
|
||||||
{
|
{
|
||||||
register struct permonst *ptr;
|
register struct permonst *ptr;
|
||||||
register int i;
|
register int i;
|
||||||
unsigned short excludeflags;
|
unsigned short excludeflags;
|
||||||
|
|
||||||
/* Plan A: get a level-appropriate common monster */
|
/* Plan A: get a level-appropriate common monster */
|
||||||
ptr = rndmonst();
|
ptr = rndmonst_adj(minadj, maxadj);
|
||||||
if (ptr)
|
if (ptr)
|
||||||
return monsndx(ptr);
|
return monsndx(ptr);
|
||||||
|
|
||||||
@@ -965,8 +972,9 @@ mksobj(int otyp, boolean init, boolean artif)
|
|||||||
break;
|
break;
|
||||||
case FIGURINE:
|
case FIGURINE:
|
||||||
tryct = 0;
|
tryct = 0;
|
||||||
|
/* figurines are slightly harder monsters */
|
||||||
do
|
do
|
||||||
otmp->corpsenm = rndmonnum();
|
otmp->corpsenm = rndmonnum_adj(5, 10);
|
||||||
while (is_human(&mons[otmp->corpsenm]) && tryct++ < 30);
|
while (is_human(&mons[otmp->corpsenm]) && tryct++ < 30);
|
||||||
blessorcurse(otmp, 4);
|
blessorcurse(otmp, 4);
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user