OSDN Git Service

[Refactor] KILL_ANY_LEVELに関する処理を削除
authorSlimebreath6078 <slimebreath6078@yahoo.co.jp>
Sat, 26 Feb 2022 17:39:39 +0000 (02:39 +0900)
committerSlimebreath6078 <slimebreath6078@yahoo.co.jp>
Sun, 27 Feb 2022 11:13:45 +0000 (20:13 +0900)
海底都市のみが関わっているクリア条件、KILL_ANY_LEVELを削除した

src/dungeon/quest-completion-checker.cpp
src/dungeon/quest-completion-checker.h
src/knowledge/knowledge-quests.cpp
src/market/building-quest.cpp

index ca1bc4e..e36d773 100644 (file)
@@ -65,7 +65,7 @@ static bool check_quest_completion(PlayerType *player_ptr, const quest_type &q_r
         return false;
     }
 
-    if ((q_ref.level != floor_ptr->dun_level) && (q_ref.type != QuestKindType::KILL_ANY_LEVEL)) {
+    if ((q_ref.level != floor_ptr->dun_level)) {
         return false;
     }
 
@@ -81,7 +81,7 @@ static bool check_quest_completion(PlayerType *player_ptr, const quest_type &q_r
     }
 
     auto is_target = (q_ref.type == QuestKindType::RANDOM) && (q_ref.r_idx == m_ptr->r_idx);
-    if ((q_ref.type == QuestKindType::KILL_LEVEL) || (q_ref.type == QuestKindType::KILL_ANY_LEVEL) || is_target) {
+    if ((q_ref.type == QuestKindType::KILL_LEVEL) || is_target) {
         return true;
     }
 
@@ -116,9 +116,6 @@ std::tuple<bool, bool> QuestCompletionChecker::switch_completion()
     case QuestKindType::KILL_LEVEL:
     case QuestKindType::RANDOM:
         return this->complete_random();
-    case QuestKindType::KILL_ANY_LEVEL:
-        this->complete_kill_any_level();
-        return std::make_tuple(false, false);
     case QuestKindType::TOWER:
         this->complete_tower();
         return std::make_tuple(false, false);
@@ -180,15 +177,6 @@ std::tuple<bool, bool> QuestCompletionChecker::complete_random()
     return std::make_tuple(create_stairs, reward);
 }
 
-void QuestCompletionChecker::complete_kill_any_level()
-{
-    this->q_ptr->cur_num++;
-    if (this->q_ptr->cur_num >= this->q_ptr->max_num) {
-        complete_quest(this->player_ptr, this->quest_idx);
-        this->q_ptr->cur_num = 0;
-    }
-}
-
 void QuestCompletionChecker::complete_tower()
 {
     if (!is_hostile(this->m_ptr)) {
index 16e0165..c6e8421 100644 (file)
@@ -27,7 +27,6 @@ private:
     void complete_kill_number();
     void complete_kill_all();
     std::tuple<bool, bool> complete_random();
-    void complete_kill_any_level();
     void complete_tower();
     int count_all_hostile_monsters();
     Pos2D make_stairs(const bool create_stairs);
index e9bc58a..cec4fc2 100644 (file)
@@ -82,7 +82,6 @@ static void do_cmd_knowledge_quests_current(PlayerType *player_ptr, FILE *fff)
             if (q_ref.status == QuestStatusType::TAKEN || q_ref.status == QuestStatusType::STAGE_COMPLETED) {
                 switch (q_ref.type) {
                 case QuestKindType::KILL_LEVEL:
-                case QuestKindType::KILL_ANY_LEVEL:
                     r_ptr = &r_info[q_ref.r_idx];
                     strcpy(name, r_ptr->name.c_str());
                     if (q_ref.max_num > 1) {
index 2169ed6..3721f56 100644 (file)
@@ -122,36 +122,5 @@ void castle_quest(PlayerType *player_ptr)
 
     q_ptr->status = QuestStatusType::TAKEN;
     reinit_wilderness = true;
-    if (q_ptr->type != QuestKindType::KILL_ANY_LEVEL) {
-        print_questinfo(player_ptr, q_index, true);
-        return;
-    }
-
-    if (q_ptr->r_idx == 0) {
-        q_ptr->r_idx = get_mon_num(player_ptr, 0, q_ptr->level + 4 + randint1(6), 0);
-    }
-
-    monster_race *r_ptr;
-    r_ptr = &r_info[q_ptr->r_idx];
-    while (r_ptr->kind_flags.has(MonsterKindType::UNIQUE) || (r_ptr->rarity != 1)) {
-        q_ptr->r_idx = get_mon_num(player_ptr, 0, q_ptr->level + 4 + randint1(6), 0);
-        r_ptr = &r_info[q_ptr->r_idx];
-    }
-
-    if (q_ptr->max_num == 0) {
-        if (randint1(10) > 7) {
-            q_ptr->max_num = 1;
-        } else {
-            q_ptr->max_num = randint1(3) + 1;
-        }
-    }
-
-    q_ptr->cur_num = 0;
-    concptr name = r_ptr->name.c_str();
-#ifdef JP
-    msg_format("クエスト: %sを %d体倒す", name, q_ptr->max_num);
-#else
-    msg_format("Your quest: kill %d %s", q_ptr->max_num, name);
-#endif
     print_questinfo(player_ptr, q_index, true);
 }