s16b get_mon_num(int level)
{
int i, j, p;
-
int r_idx;
-
long value, total;
-
monster_race *r_ptr;
-
alloc_entry *table = alloc_race_table;
int pls_kakuritu, pls_level;
if (level > MAX_DEPTH - 1) level = MAX_DEPTH - 1;
pls_kakuritu = MAX(NASTY_MON_MAX, NASTY_MON_BASE - ((dungeon_turn / (TURNS_PER_TICK * 2500L) - hoge / 10)));
- pls_level = MIN(NASTY_MON_PLUS_MAX, 3 + dungeon_turn / (TURNS_PER_TICK * 20000L) - hoge / 40);
+ pls_level = MIN(NASTY_MON_PLUS_MAX, 3 + dungeon_turn / (TURNS_PER_TICK * 20000L) - hoge / 40 + MIN(5, level / 10)) ;
if (d_info[dungeon_type].flags1 & DF1_MAZE)
{
if (!randint0(pls_kakuritu))
{
/* Pick a level bonus */
- int d = MIN(5, level / 10) + pls_level;
-
- /* Boost the level */
- level += d;
- }
-
- /* Occasional "nasty" monster */
- if (!randint0(pls_kakuritu))
- {
- /* Pick a level bonus */
- int d = MIN(5, level / 10) + pls_level;
-
- /* Boost the level */
- level += d;
+ level += pls_level;
}
}
}
/* No legal monsters */
if (total <= 0) return (0);
-
/* Pick a monster */
value = randint0(total);
value = value - table[i].prob3;
}
-
/* Power boost */
p = randint0(100);