+ * @brief 装備時にアイテムを呪う処理
+ */
+static void do_curse_on_equip(OBJECT_IDX slot, ItemEntity *o_ptr, PlayerType *player_ptr)
+{
+ auto &rfu = RedrawingFlagsUpdater::get_instance();
+ if (set_anubis_and_chariot(player_ptr) && ((slot == INVEN_MAIN_HAND) || (slot == INVEN_SUB_HAND))) {
+
+ ItemEntity *anubis = &(player_ptr->inventory_list[INVEN_MAIN_HAND]);
+ ItemEntity *chariot = &(player_ptr->inventory_list[INVEN_SUB_HAND]);
+
+ anubis->curse_flags.set(CurseTraitType::PERSISTENT_CURSE);
+ anubis->curse_flags.set(CurseTraitType::HEAVY_CURSE);
+ chariot->curse_flags.set(CurseTraitType::PERSISTENT_CURSE);
+ chariot->curse_flags.set(CurseTraitType::HEAVY_CURSE);
+ chariot->curse_flags.set(CurseTraitType::BERS_RAGE);
+ chariot->curse_flags.set(CurseTraitType::VUL_CURSE);
+
+ msg_format(_("『銀の戦車』プラス『アヌビス神』二刀流ッ!", "*Silver Chariot* plus *Anubis God* Two Swords!"));
+ rfu.set_flag(StatusRedrawingFlag::BONUS);
+ return;
+ }
+
+ auto should_curse = object_flags(o_ptr).has(TR_PERSISTENT_CURSE) || o_ptr->curse_flags.has(CurseTraitType::PERSISTENT_CURSE);
+ should_curse &= o_ptr->curse_flags.has_not(CurseTraitType::HEAVY_CURSE);
+ if (!should_curse) {
+ return;
+ }
+
+ const auto item_name = describe_flavor(player_ptr, o_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY));
+ o_ptr->curse_flags.set(CurseTraitType::HEAVY_CURSE);
+ msg_format(_("悪意に満ちた黒いオーラが%sをとりまいた...", "There is a malignant black aura surrounding your %s..."), item_name.data());
+ o_ptr->feeling = FEEL_NONE;
+ rfu.set_flag(StatusRedrawingFlag::BONUS);
+}
+
+/*!