OSDN Git Service

[Refactor] #2680 GREAT_OBJ は「高級品」ではなく「生成階層ブースト」を意味するのでCHANCE_BASEITEM_LEVEL_BOOST...
authorHourier <66951241+Hourier@users.noreply.github.com>
Sun, 30 Oct 2022 15:06:32 +0000 (00:06 +0900)
committerHourier <66951241+Hourier@users.noreply.github.com>
Thu, 3 Nov 2022 00:55:51 +0000 (09:55 +0900)
src/floor/floor-object.cpp
src/system/gamevalue.h
src/wizard/wizard-item-modifier.cpp
src/world/world-object.cpp

index a8f79b8..e035c85 100644 (file)
@@ -167,7 +167,7 @@ bool make_gold(PlayerType *player_ptr, ObjectType *j_ptr)
 {
     auto *floor_ptr = player_ptr->current_floor_ptr;
     int i = ((randint1(floor_ptr->object_level + 2) + 2) / 2) - 1;
-    if (one_in_(GREAT_OBJ)) {
+    if (one_in_(CHANCE_BASEITEM_LEVEL_BOOST)) {
         i += randint1(floor_ptr->object_level + 1);
     }
 
index b523d23..c6b47b0 100644 (file)
@@ -1,15 +1,6 @@
 #pragma once
 
 /*!
- * @brief ベースアイテム生成階層が加算される確率
- * @details
- * There is a 1/10 (10%) chance of inflating the requested object_level
- * during the creation of an object (see "get_obj_num()" in "object.c").
- * Lower values yield better objects more often.
- */
-#define GREAT_OBJ 10
-
-/*!
  * @brief 深層モンスターが生成される(NASTY生成)の基本確率(1/x)
  * @details
  * There is a 1/25 (4%) chance of inflating the requested monster_level
@@ -54,6 +45,9 @@
 #define MON_DRAIN_LIFE 2 /*!< モンスターの打撃によるプレイヤーの経験値吸収基本倍率(%) / Percent of player exp drained per hit */
 #define USE_DEVICE 3 /*!< 魔道具の最低失敗基準値 x> Harder devices x< Easier devices     */
 
+/*!< ベースアイテム生成階層が加算される確率 */
+constexpr auto CHANCE_BASEITEM_LEVEL_BOOST = 10;
+
 constexpr auto MAX_PLAYER_SIGHT = 20; /*!< プレイヤーの最大視界グリッド数 */
 constexpr auto MAX_MONSTER_SENSING = 100; /*!< モンスターの最大感知グリッド数 */
 
index 6a87eba..77b6ed6 100644 (file)
@@ -259,23 +259,23 @@ static void prt_alloc(ItemKindType tval, OBJECT_SUBTYPE_VALUE sval, TERM_LEN row
             PERCENTAGE prob = 0;
 
             if (entry.level <= i) {
-                prob = entry.prob1 * GREAT_OBJ * K_MAX_DEPTH;
+                prob = entry.prob1 * CHANCE_BASEITEM_LEVEL_BOOST * K_MAX_DEPTH;
             } else if (entry.level - 1 > 0) {
                 prob = entry.prob1 * i * K_MAX_DEPTH / (entry.level - 1);
             }
 
             k_ptr = &baseitems_info[entry.index];
 
-            total[i] += prob / (GREAT_OBJ * K_MAX_DEPTH);
-            total_frac += prob % (GREAT_OBJ * K_MAX_DEPTH);
+            total[i] += prob / (CHANCE_BASEITEM_LEVEL_BOOST * K_MAX_DEPTH);
+            total_frac += prob % (CHANCE_BASEITEM_LEVEL_BOOST * K_MAX_DEPTH);
 
             if ((k_ptr->tval == tval) && (k_ptr->sval == sval)) {
                 home = k_ptr->level;
-                rarity[i] += prob / (GREAT_OBJ * K_MAX_DEPTH);
+                rarity[i] += prob / (CHANCE_BASEITEM_LEVEL_BOOST * K_MAX_DEPTH);
             }
         }
 
-        total[i] += total_frac / (GREAT_OBJ * K_MAX_DEPTH);
+        total[i] += total_frac / (CHANCE_BASEITEM_LEVEL_BOOST * K_MAX_DEPTH);
     }
 
     for (int i = 0; i < 22; i++) {
index c0a7e8b..ae5ece2 100644 (file)
@@ -75,7 +75,7 @@ OBJECT_IDX get_obj_num(PlayerType *player_ptr, DEPTH level, BIT_FLAGS mode)
     }
 
     if ((level > 0) && dungeons_info[player_ptr->dungeon_idx].flags.has_not(DungeonFeatureType::BEGINNER)) {
-        if (one_in_(GREAT_OBJ)) {
+        if (one_in_(CHANCE_BASEITEM_LEVEL_BOOST)) {
             level = 1 + (level * MAX_DEPTH / randint1(MAX_DEPTH));
         }
     }