OSDN Git Service

[Refactor] #3756 MonraceList::calc_capture_value() を定義し、ItemEntity::calc_capture_valu...
authorHourier <66951241+Hourier@users.noreply.github.com>
Sat, 2 Dec 2023 04:37:16 +0000 (13:37 +0900)
committerHourier <66951241+Hourier@users.noreply.github.com>
Sat, 2 Dec 2023 05:32:56 +0000 (14:32 +0900)
src/system/item-entity.cpp
src/system/monster-race-info.cpp
src/system/monster-race-info.h

index 4d9a3ef..9593608 100644 (file)
@@ -705,12 +705,8 @@ int ItemEntity::calc_figurine_value() const
 
 int ItemEntity::calc_capture_value() const
 {
-    auto capture_r_idx = i2enum<MonsterRaceId>(this->pval);
-    if (!MonsterRace(capture_r_idx).is_valid()) {
-        return 1000;
-    }
-
-    return (monraces_info[capture_r_idx].level) * 50 + 1000;
+    const auto r_idx = i2enum<MonsterRaceId>(this->pval);
+    return MonraceList::get_instance().calc_capture_value(r_idx);
 }
 
 bool ItemEntity::is_specific_artifact(FixedArtifactId id) const
index 57e6280..9515079 100644 (file)
@@ -263,3 +263,12 @@ int MonraceList::calc_figurine_value(const MonsterRaceId r_idx) const
 
     return 14000 + (level - 50) * 2000;
 }
+
+int MonraceList::calc_capture_value(const MonsterRaceId r_idx) const
+{
+    if (r_idx == MonsterRaceId::PLAYER) {
+        return 1000;
+    }
+
+    return (*this)[r_idx].level * 50 + 1000;
+}
index 5cc7ea0..73cca82 100644 (file)
@@ -165,6 +165,7 @@ public:
     bool is_separated(const MonsterRaceId r_idx) const;
     bool can_select_separate(const MonsterRaceId r_idx, const int hp, const int maxhp) const;
     int calc_figurine_value(const MonsterRaceId r_idx) const;
+    int calc_capture_value(const MonsterRaceId r_idx) const;
 
 private:
     MonraceList() = default;