From 2d9f4deed41f5ab60d0e6465df508acb84d28a9e Mon Sep 17 00:00:00 2001 From: Habu Date: Mon, 13 Sep 2021 20:49:47 +0900 Subject: [PATCH] =?utf8?q?[Feature]=20=E9=8D=9B=E5=86=B6=E5=8A=B9=E6=9E=9C?= =?utf8?q?=EF=BC=9A=E5=B0=84=E6=92=83=E5=80=8D=E7=8E=87=E5=BC=B7=E5=8C=96/?= =?utf8?q?=E8=BF=BD=E5=8A=A0=E5=B0=84=E6=92=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 遠隔武器の倍率強化を付与する鍛冶効果と追加射撃を付与する鍛冶効果を 追加。エッセンスは共通で 抽出量:10 付与必要数:50 {倍射}が作りやすくなるのでエッセンス消費量などの調整の余地あり。 --- src/object-enchant/smith-info.cpp | 3 +++ src/object-enchant/smith-tables.cpp | 8 ++++++-- src/object-enchant/smith-types.h | 3 +++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/object-enchant/smith-info.cpp b/src/object-enchant/smith-info.cpp index 5c2efb769..385697bfc 100644 --- a/src/object-enchant/smith-info.cpp +++ b/src/object-enchant/smith-info.cpp @@ -67,6 +67,9 @@ bool BasicSmithInfo::can_give_smith_effect(const object_type *o_ptr) const bool BasicSmithInfo::can_give_smith_effect_impl(const object_type *o_ptr) const { + if (this->effect == SmithEffect::XTRA_MIGHT || this->effect == SmithEffect::XTRA_SHOTS) { + return o_ptr->tval == TV_BOW; + } if (this->effect == SmithEffect::VORPAL) { return (o_ptr->tval == TV_SWORD) && (o_ptr->sval != SV_POISON_NEEDLE); } diff --git a/src/object-enchant/smith-tables.cpp b/src/object-enchant/smith-tables.cpp index 597fbfde0..f4a204dc1 100644 --- a/src/object-enchant/smith-tables.cpp +++ b/src/object-enchant/smith-tables.cpp @@ -88,6 +88,7 @@ const std::vector Smith::essence_list_order = { SmithEssence::SLAY_GOOD, SmithEssence::EASY2_WEAPON, + SmithEssence::STRENGTHEN_BOW, SmithEssence::ATTACK, SmithEssence::AC, @@ -171,6 +172,7 @@ const std::unordered_map Smith::essence_to_name = { { SmithEssence::SLAY_GOOD, _("善良倍打", "slay good") }, { SmithEssence::EASY2_WEAPON, _("二刀流", "two weapons") }, + { SmithEssence::STRENGTHEN_BOW, _("射撃強化", "enc. ranged") }, { SmithEssence::ATTACK, _("攻撃", "weapon enc.") }, { SmithEssence::AC, _("防御", "armor enc.") }, @@ -264,8 +266,8 @@ const std::vector Smith::essence_drain_info_table = { { TR_TELEPATHY, { SmithEssence::TELEPATHY }, 10 }, { TR_SLOW_DIGEST, { SmithEssence::SLOW_DIGEST }, 10 }, { TR_REGEN, { SmithEssence::REGEN }, 10 }, - { TR_XTRA_MIGHT, { SmithEssence::STR }, 10 }, - { TR_XTRA_SHOTS, { SmithEssence::DEX }, 10 }, + { TR_XTRA_MIGHT, { SmithEssence::STRENGTHEN_BOW }, 10 }, + { TR_XTRA_SHOTS, { SmithEssence::STRENGTHEN_BOW }, 10 }, { TR_IGNORE_ACID, {}, 0 }, { TR_IGNORE_ELEC, {}, 0 }, { TR_IGNORE_FIRE, {}, 0 }, @@ -395,6 +397,8 @@ const std::vector> Smith::smith_info_table = { make_basic_smith_info(SmithEffect::BRAND_FIRE, _("焼棄", "fire brand"), SmithCategory::WEAPON_ATTR, { SmithEssence::BRAND_FIRE }, 20, { TR_BRAND_FIRE }), make_basic_smith_info(SmithEffect::BRAND_COLD, _("凍結", "cold brand"), SmithCategory::WEAPON_ATTR, { SmithEssence::BRAND_COLD }, 20, { TR_BRAND_COLD }), make_basic_smith_info(SmithEffect::VORPAL, _("切れ味", "sharpness"), SmithCategory::WEAPON_ATTR, { SmithEssence::BRAND_ACID, SmithEssence::BRAND_ELEC, SmithEssence::BRAND_FIRE, SmithEssence::BRAND_COLD }, 10, { TR_VORPAL }), + make_basic_smith_info(SmithEffect::XTRA_MIGHT, _("射撃倍率強化", "enhance firing power"), SmithCategory::WEAPON_ATTR, { SmithEssence::STRENGTHEN_BOW }, 50, { TR_XTRA_MIGHT }), + make_basic_smith_info(SmithEffect::XTRA_SHOTS, _("射撃速度強化", "enhance firing rate"), SmithCategory::WEAPON_ATTR, { SmithEssence::STRENGTHEN_BOW }, 50, { TR_XTRA_SHOTS }), make_basic_smith_info(SmithEffect::IM_ACID, _("酸免疫", "acid immunity"), SmithCategory::RESISTANCE, { SmithEssence::IMMUNITY, SmithEssence::RES_ACID }, 200, { TR_IM_ACID }), make_basic_smith_info(SmithEffect::IM_ELEC, _("電撃免疫", "electric immunity"), SmithCategory::RESISTANCE, { SmithEssence::IMMUNITY, SmithEssence::RES_ELEC }, 200, { TR_IM_ELEC }), diff --git a/src/object-enchant/smith-types.h b/src/object-enchant/smith-types.h index 5e5be4649..049ef249e 100644 --- a/src/object-enchant/smith-types.h +++ b/src/object-enchant/smith-types.h @@ -38,6 +38,8 @@ enum class SmithEffect { BRAND_FIRE = 46, //!< 焼棄 BRAND_COLD = 47, //!< 凍結 VORPAL = 48, //!< 切れ味 + XTRA_MIGHT = 49, //!< 強力射 + XTRA_SHOTS = 50, //!< 強速射 IM_ACID = 60, //!< 酸免疫 IM_ELEC = 61, //!< 電撃免疫 @@ -217,6 +219,7 @@ enum class SmithEssence { RES_CURSE = 64, //!< 耐呪力 NO_TELE = 65, //!< 反テレポート EASY2_WEAPON = 66, //!< 二刀流 + STRENGTHEN_BOW = 67, //!< 弓強化 ATTACK = 100, //!< 攻撃 AC = 101, //!< 防御 -- 2.11.0