OSDN Git Service

dungeon_turnの過剰経過による、NASTY_MONSTER発生率と階層上昇を有効な形に実装し直した上で、若干調整。
authordeskull <deskull@0568b783-4c39-0410-ac80-bf13821ea2a2>
Mon, 6 Aug 2012 12:42:05 +0000 (12:42 +0000)
committerdeskull <deskull@0568b783-4c39-0410-ac80-bf13821ea2a2>
Mon, 6 Aug 2012 12:42:05 +0000 (12:42 +0000)
src/bldg.c
src/defines.h
src/main-win.c
src/monster2.c

index fc703ff..36819ed 100644 (file)
@@ -2833,7 +2833,7 @@ msg_print("
                                turn = (turn / (TURNS_PER_TICK*TOWN_DAWN/2) + 1) * (TURNS_PER_TICK*TOWN_DAWN/2);
                                if (dungeon_turn < dungeon_turn_limit)
                                {
-                                       dungeon_turn += MIN(turn - oldturn, TURNS_PER_TICK*250);
+                                       dungeon_turn += MIN(turn - oldturn, TURNS_PER_TICK * 250);
                                        if (dungeon_turn > dungeon_turn_limit) dungeon_turn = dungeon_turn_limit;
                                }
 
index 5ea200f..ad7b208 100644 (file)
  * during the creation of a monsters (see "get_mon_num()" in "monster.c").
  * Lower values yield harder monsters more often.
  */
-#define NASTY_MON       50              /* 1/chance of inflated monster level */
+#define NASTY_MON_BASE     50              /* 1/chance of inflated monster level */
+#define NASTY_MON_MAX      3
+#define NASTY_MON_PLUS_MAX 20
 
 /* 1/x chance of hurting even if invulnerable! */
 #define PENETRATE_INVULNERABILITY 13
index 05aeacb..b698e1b 100644 (file)
@@ -2645,8 +2645,7 @@ static errr Term_text_win(int x, int y, int n, byte a, const char *s)
                                rc.right += td->tile_wid;
                        } else {
                                /* Dump the text */
-                               ExtTextOut(hdc, rc.left, rc.top, ETO_CLIPPED, &rc,
-                                      s+i, 1, NULL);
+                               ExtTextOut(hdc, rc.left, rc.top, ETO_CLIPPED, &rc, s+i, 1, NULL);
 
                                /* Advance */
                                rc.left += td->tile_wid;
index 35dfd53..a0290ef 100644 (file)
@@ -1263,31 +1263,23 @@ s16b get_mon_num(int level)
        alloc_entry             *table = alloc_race_table;
 
        int pls_kakuritu, pls_level;
-       int hoge=mysqrt(level*10000L);
+       int hoge = mysqrt(level*10000L);
 
        if (level > MAX_DEPTH - 1) level = MAX_DEPTH - 1;
 
-       if ((dungeon_turn > hoge*(TURNS_PER_TICK*500L)) && !level)
-       {
-               pls_kakuritu = MAX(2, NASTY_MON-((dungeon_turn/(TURNS_PER_TICK*2500L)-hoge/10)));
-               pls_level = MIN(8,3 + dungeon_turn/(TURNS_PER_TICK*20000L)-hoge/40);
-       }
-       else
-       {
-               pls_kakuritu = NASTY_MON;
-               pls_level = 2;
-       }
+       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);
 
        if (d_info[dungeon_type].flags1 & DF1_MAZE)
        {
-               pls_kakuritu = MIN(pls_kakuritu/2, pls_kakuritu-10);
+               pls_kakuritu = MIN(pls_kakuritu / 2, pls_kakuritu - 10);
                if (pls_kakuritu < 2) pls_kakuritu = 2;
                pls_level += 2;
                level += 3;
        }
 
        /* Boost the level */
-       if ((level > 0) && !p_ptr->inside_battle && !(d_info[dungeon_type].flags1 & DF1_BEGINNER))
+       if (!p_ptr->inside_battle && !(d_info[dungeon_type].flags1 & DF1_BEGINNER))
        {
                /* Nightmare mode allows more out-of depth monsters */
                if (ironman_nightmare && !randint0(pls_kakuritu))
@@ -1301,7 +1293,7 @@ s16b get_mon_num(int level)
                        if (!randint0(pls_kakuritu))
                        {
                                /* Pick a level bonus */
-                               int d = MIN(5, level/10) + pls_level;
+                               int d = MIN(5, level / 10) + pls_level;
 
                                /* Boost the level */
                                level += d;
@@ -1311,7 +1303,7 @@ s16b get_mon_num(int level)
                        if (!randint0(pls_kakuritu))
                        {
                                /* Pick a level bonus */
-                               int d = MIN(5, level/10) + pls_level;
+                               int d = MIN(5, level / 10) + pls_level;
 
                                /* Boost the level */
                                level += d;
@@ -1319,7 +1311,6 @@ s16b get_mon_num(int level)
                }
        }
 
-
        /* Reset total */
        total = 0L;