OSDN Git Service

[Fix] 極端な修正値を持つ光源の暗視エゴアイテムが生成される
authorHabu <habu1010+github@gmail.com>
Sat, 14 Jan 2023 15:54:23 +0000 (00:54 +0900)
committerHabu <habu1010+github@gmail.com>
Sat, 14 Jan 2023 15:54:23 +0000 (00:54 +0900)
#2998 の対処のコミット a1e75ec で光源の pval を 0 にする処理をなくした事により、
光源の元の pval + 1~3 の修正値になってしまっている。
自然生成される光源の寿命の最大値と暗視エゴの修正値の両方に pval を使い回しているのが
そもそも問題であるので、松明と真鍮のランタンの pval は 0 にし、光源の寿命の最大値は
FUEL_TORCH と FUEL_LAMP を参照するようにする。
厳密には自然生成された松明の寿命の最大値が 4000 から 2500 に下がることになるが、
ゲームバランスにはほぼ問題ないと思われる。

lib/edit/BaseitemDefinitions.txt
src/object-enchant/others/apply-magic-lite.cpp

index e1aa943..3411eef 100644 (file)
@@ -3686,7 +3686,7 @@ P:0:1d1:0:0:0
 N:346:松明
 E:& Wooden Torch~
 G:~:u
-I:39:0:4000
+I:39:0:0
 W:1:30:2
 A:1/1
 F:LITE | LITE_FUEL
@@ -3695,7 +3695,7 @@ P:0:1d1:0:0:0
 N:347:真鍮のランタン
 E:& Brass Lantern~
 G:~:U
-I:39:1:7500
+I:39:1:0
 W:3:50:35
 A:3/1
 P:0:1d1:0:0:0
index 60e0952..1fcfb75 100644 (file)
@@ -18,14 +18,10 @@ LiteEnchanter::LiteEnchanter(PlayerType *player_ptr, ItemEntity *o_ptr, int powe
 
     switch (sval.value()) {
     case SV_LITE_TORCH:
-        if (o_ptr->pval > 0) {
-            o_ptr->fuel = randint1(o_ptr->pval);
-        }
+        o_ptr->fuel = randint1(FUEL_TORCH / 2);
         return;
     case SV_LITE_LANTERN:
-        if (o_ptr->pval > 0) {
-            o_ptr->fuel = randint1(o_ptr->pval);
-        }
+        o_ptr->fuel = randint1(FUEL_LAMP / 2);
         return;
     default:
         return;