OSDN Git Service
Slimebreath6078 [Thu, 24 Mar 2022 14:37:27 +0000 (23:37 +0900)]
[Refactor] mspell-ball.cpp/h を mspell-attack 内に移動
Slimebreath6078 [Thu, 24 Mar 2022 14:32:15 +0000 (23:32 +0900)]
[Refactor] 敵攻撃魔法の抽象クラスを作成
mspell-attack
ディレクトリを作成し、敵の攻撃魔法関連はそこへ入れるようにした
抽象クラス
Slimebreath6078 [Thu, 24 Mar 2022 14:31:56 +0000 (23:31 +0900)]
[Refactor] 敵魔法から属性を取得するための基底クラスを追加
Deskull [Sun, 27 Mar 2022 14:05:16 +0000 (23:05 +0900)]
Merge pull request #2460 from sikabane-works/release/3.0.0Alpha57
[Release] 3.0.0Alpha57
Deskull [Sun, 27 Mar 2022 13:39:46 +0000 (22:39 +0900)]
[Release] 3.0.0Alpha57
Hourier [Sun, 27 Mar 2022 12:33:22 +0000 (21:33 +0900)]
Merge pull request #2451 from Hourier/Make-ItemMagicApplier-Class
apply-magic.cpp/h をItemMagicApplier クラスとして再定義し、各アイテム種別へapply_magic() を適用していた箇所をファクトリ化した
Habu [Sun, 27 Mar 2022 12:31:39 +0000 (21:31 +0900)]
Merge pull request #2453 from habu1010/feature/fix-super-ray-draw-pict-and-affect-order
fix: スーパーレイの不自然な挙動を自然な感じにする
dis- [Sun, 27 Mar 2022 12:18:18 +0000 (21:18 +0900)]
Merge pull request #2455 from dis-/feature/fix-magic-eating
[Fix] 充填魔力吸収打撃でpvalが負値になる
Habu [Sun, 27 Mar 2022 11:51:06 +0000 (20:51 +0900)]
[Fix] スーパーレイの反射前のビームも挙動を統一する
スーパーレイの反射前のビームも、最初に描画を終えた後に効果を発動させるようにする。
効果を及ぼす処理は反射前と反射後で共通とするので、関数にまとめる。
Habu [Sat, 26 Mar 2022 19:52:02 +0000 (04:52 +0900)]
[Fix] スーパーレイの不自然な挙動を自然な感じにする
- 8方向同時にビームの描画を行う
- ビームの効果の発動は描画完了後にまとめて行う
- 中央から外に向かって8方向同時に順番に効果を及ぼすようにする
- 中央の同距離からのマスに効果を及ぼす順序はランダムにする
- 同マスで効果を及ぼす順序は、地形→床上アイテム→モンスターの順序にする
詳細:Issue #2452
dis- [Sat, 26 Mar 2022 06:10:35 +0000 (15:10 +0900)]
[Fix] 充填魔力吸収打撃でpvalが負値になる
Issue #2454の原因。has_magic_mastery()がtrueのケースで吸収量が対象魔法道具の現在値を越えることがある。
現在値を越えないように修正。
ついでに魔法道具を空にされたとき「あなたの魔法を操る力がその一部を取り返した」メッセージが出るのは不自然なので修正。
Hourier [Wed, 23 Mar 2022 09:58:39 +0000 (18:58 +0900)]
[Refactor] #2444 ItemKindTypeの順番にcase文をソートした
Hourier [Tue, 22 Mar 2022 07:51:11 +0000 (16:51 +0900)]
[Refactor] #2444 宣言する必要のないデストラクタ群を削除した
Hourier [Tue, 22 Mar 2022 07:02:15 +0000 (16:02 +0900)]
[Refactor] #2444 Separated set_fixed_artifact_generation_info() from execute() in ItemMagicApplier
Hourier [Tue, 22 Mar 2022 06:48:49 +0000 (15:48 +0900)]
[Refactor] #2444 不要なインクルードを除去し、作業完了につきtodoのDoxygenコメントを削除した
Hourier [Tue, 22 Mar 2022 06:46:23 +0000 (15:46 +0900)]
[Refactor] #2444 Separated apply_cursed() from execute() in ItemMagicApplier
Hourier [Tue, 22 Mar 2022 06:42:27 +0000 (15:42 +0900)]
[Refactor] #2444 Separated try_make_artifact() from execute() in ItemMagicApplier
Hourier [Tue, 22 Mar 2022 06:36:25 +0000 (15:36 +0900)]
[Refactor] #2444 Separated calculate_rolls() from execute() in ItemMagicApplier
Hourier [Tue, 22 Mar 2022 06:35:12 +0000 (15:35 +0900)]
[Refactor] #2444 Separated calculate_power() from execute() in ItemMagicApplier
Hourier [Tue, 22 Mar 2022 06:31:20 +0000 (15:31 +0900)]
[Refactor] #2444 Separated calculate_chances() from execute() in ItemMagicApplier
Hourier [Tue, 22 Mar 2022 06:15:08 +0000 (15:15 +0900)]
[Refactor] #2444 item-magic-applier.cpp/h をクラス化した
Hourier [Tue, 22 Mar 2022 06:02:52 +0000 (15:02 +0900)]
[Refactor] #2444 Reshaped apply_magic_to_object()
Hourier [Tue, 22 Mar 2022 05:53:42 +0000 (14:53 +0900)]
[Refactor] #2444 EnchanterFactoryクラスを作成し、そこへEnchanterクラスの生成処理を移した
Hourier [Tue, 22 Mar 2022 05:32:38 +0000 (14:32 +0900)]
[Refactor] #2444 Renamed apply-magic.* to item-magic-applier.*
火炎の飛竜 [Wed, 23 Mar 2022 14:37:34 +0000 (23:37 +0900)]
Merge pull request #2448 from Slimebreath6078/feature/Enum_Classfy_mind_numbers_h
mind-numbers.h をenum class 化
Habu [Wed, 23 Mar 2022 12:02:32 +0000 (21:02 +0900)]
Merge pull request #2436 from habu1010/feature/fix-x11-keypress-crash-when-initializing
[Fix] X11版で起動直後の初期化中にキーを押すとクラッシュする
Habu [Wed, 23 Mar 2022 12:02:22 +0000 (21:02 +0900)]
Merge pull request #2446 from habu1010/feature/delete-global-cur_store_num
[Refactor] グローバル変数 cur_store_num を削除する
Habu [Wed, 23 Mar 2022 12:02:07 +0000 (21:02 +0900)]
Merge pull request #2447 from habu1010/feature/rand-shuffle
イテレータ範囲の要素をシャッフルする関数 rand_shuffle を実装
Hourier [Wed, 23 Mar 2022 10:59:18 +0000 (19:59 +0900)]
Merge pull request #2443 from Hourier/Divide-WeaponEnchanters
SwordEnchanter を分離してPolearmEnchanter とHaftedEnchanter を定義した
Hourier [Tue, 22 Mar 2022 02:59:29 +0000 (11:59 +0900)]
[Refactor] #2425 decide_skip() を武器種別ごとに分離した
Hourier [Tue, 22 Mar 2022 02:31:15 +0000 (11:31 +0900)]
[Refactor] #2425 SwordEnchanterに残っていた不要な条件分岐を削除した
Hourier [Tue, 22 Mar 2022 02:27:37 +0000 (11:27 +0900)]
[Refactor] #2425 PolearmEnchanterを定義し、SwordEnchanterから必要な処理を分離した
Hourier [Tue, 22 Mar 2022 02:21:37 +0000 (11:21 +0900)]
[Refactor] #2425 HaftedEnchanterを定義し、SwordEnchanterから必要な処理を分離した
Hourier [Tue, 22 Mar 2022 02:05:46 +0000 (11:05 +0900)]
[Refactor] #2425 剣・鈍器・長柄/斧の共通処理をMeleeWeaponEnchanterへ移した
Hourier [Sat, 19 Mar 2022 00:22:14 +0000 (09:22 +0900)]
[Refactor] #2425 Deifined AbstractMeleeWeaponEnchanter
Slimebreath6078 [Mon, 21 Mar 2022 12:52:09 +0000 (21:52 +0900)]
[Refactor] mind_ninja_type をパスカルケース化
Slimebreath6078 [Mon, 21 Mar 2022 12:51:36 +0000 (21:51 +0900)]
[Refactor] mind_ninja_type を enum class 化
Slimebreath6078 [Mon, 21 Mar 2022 12:48:59 +0000 (21:48 +0900)]
[Refactor] mind_mirror_master をパスカルケース化
Slimebreath6078 [Mon, 21 Mar 2022 12:47:30 +0000 (21:47 +0900)]
[Refactor] mind_mirror_master_type を enum class 化
Slimebreath6078 [Mon, 21 Mar 2022 12:45:09 +0000 (21:45 +0900)]
[Refactor] mind_mindcrafter_type をパスカルケース化
Slimebreath6078 [Mon, 21 Mar 2022 12:44:14 +0000 (21:44 +0900)]
[Refactor] mind_mindcrafter_type を enum class 化
Slimebreath6078 [Mon, 21 Mar 2022 12:32:53 +0000 (21:32 +0900)]
[Refactor] mind_force_trainer をパスカルケース化
Slimebreath6078 [Mon, 21 Mar 2022 12:32:01 +0000 (21:32 +0900)]
[Refactor] mind_force_trainer_type を enum class 化
Slimebreath6078 [Mon, 21 Mar 2022 10:58:42 +0000 (19:58 +0900)]
[Refactor] mind_berserker_type をパスカルケース化
Slimebreath6078 [Mon, 21 Mar 2022 10:57:53 +0000 (19:57 +0900)]
[Refactor] mind_berserker_type をenum class化
Habu [Tue, 22 Mar 2022 14:12:11 +0000 (23:12 +0900)]
[Refactor] ポーカーの山札のシャッフルを rand_shuffle で行う
Habu [Tue, 22 Mar 2022 14:09:25 +0000 (23:09 +0900)]
[Refactor] アイテムのフレーバーのシャッフルを rand_shuffule で行う
アイテムのフレーバーのシャッフル処理を前コミットで実装した rand_shuffule 関数で置き
換える。
Habu [Tue, 22 Mar 2022 14:09:25 +0000 (23:09 +0900)]
[Feature] イテレータ範囲の要素をシャッフルする関数
引数で与えられたイテレータ範囲の要素をシャッフルする関数 rand_shuffle() を追加する。
標準ライブラリに同様の機能を提供する std::shuffle() があるが、基本的にゲームの RNG
オブジェクトはカプセル化しておきたいので、イテレータ範囲のみの引数でシャッフルできる
関数として別途実装しておく。
また、イテレータの指す要素が std::reference_wrapper の場合は、要素が保持している
参照先の値をシャッフルする。
シャッフルしたい要素そのものが配列ではない場合に、それぞれの要素を指す
std::reference_wrapper 配列を作ってシャッフルする用途を想定する。
Habu [Tue, 22 Mar 2022 13:46:41 +0000 (22:46 +0900)]
[Refactor] グローバル変数 cur_store_num を削除する
基本的に cur_store_num は現在プレイヤーが居る店舗を持つグローバル変数のようだが、
すべて引数で渡せばグローバル変数にする必要が見当たらない。
例外としてプレイヤーが店舗に居ない時に呼ばれる store_shuffle() で cur_store_num
に店主入れ替えを行った店舗の番号を入れているようだが、これにしても次にプレイヤーが店舗に
入った時に更新されるので意味がなさそう。
したがってグローバル変数 cur_store_num を完全に削除する。
副作用として、グローバル変数とローカル変数の取り違いが原因で発生しているバグ #2442 も
修正される。
Habu [Tue, 22 Mar 2022 13:56:56 +0000 (22:56 +0900)]
Merge pull request #2429 from habu1010/feature/vector-dungeon-r_char
[Fix] ダンジョンのモンスターシンボル制限の指定数の上限をなくす
火炎の飛竜 [Tue, 22 Mar 2022 12:57:40 +0000 (21:57 +0900)]
Merge pull request #2445 from Slimebreath6078/feature/Fix_monster_picking_item_bug
モンスターのアイテムを拾う挙動のバグを修正
Slimebreath6078 [Tue, 22 Mar 2022 12:52:29 +0000 (21:52 +0900)]
[Refactor] 修正範囲内の型定義を適切なものに
モンスターのアイテムを拾う処理の auto 型への置き換え、引数の const 化を施行
Slimebreath6078 [Tue, 22 Mar 2022 11:38:39 +0000 (20:38 +0900)]
[Refactor] 拾う処理で拾えるかを格納する変数 is_special_object を改名
is_special_object はあまり適切でないため is_unpickable_object にした
Slimebreath6078 [Tue, 22 Mar 2022 06:21:02 +0000 (15:21 +0900)]
[Fix] モンスターがアイテムを拾う挙動がおかしいバグを修正
火炎の飛竜 [Mon, 21 Mar 2022 15:07:46 +0000 (00:07 +0900)]
Merge pull request #2441 from backwardsEric/distcheck-monster-race-visual-flags
Add monster-race-visual-flags.h to file list in src/Makefile.am so …
Eric Branlund [Mon, 21 Mar 2022 14:53:40 +0000 (08:53 -0600)]
Add monster-race-visual-flags.h to file list in src/Makefile.am so "make DISTCHECK_CONFIGURE_FLAGS='--disable-japanese" distcheck" works.
Habu [Mon, 21 Mar 2022 12:28:55 +0000 (21:28 +0900)]
Merge pull request #2434 from habu1010/feature/refactor-print-bolt-pict
[Refactor] ボルトの軌道の描画を関数化する
火炎の飛竜 [Mon, 21 Mar 2022 12:10:00 +0000 (21:10 +0900)]
Merge pull request #2437 from Slimebreath6078/feature/Refactor_mflag_wilderness
モンスターのフラグをまとめる(荒野)
火炎の飛竜 [Mon, 21 Mar 2022 12:03:28 +0000 (21:03 +0900)]
Merge pull request #2433 from Slimebreath6078/feature/Delete_mflag_eat_corpse
モンスターの死体を食べた時の効果のフラグを削除した
Habu [Mon, 21 Mar 2022 11:19:46 +0000 (20:19 +0900)]
[Fix] X11版で起動直後の初期化中にキーを押すとクラッシュする
X11版は入力したキーが Modifier キーで修飾されている場合は自動的にその組み合わせを
マクロに登録するという処理がなされている(そのような実装になっている詳細な理由は不明)。
Modifier キーとは Mod1 が Altキー、 Mod2 が NumLock キーにあたる。
したがって、NumLockがオンの状態では普通にキーを押しただけでマクロが自動的に登録される。
一方、起動直後はまだマクロ情報の配列変数(std::vector)の領域確保が完了しておらず、
マクロを登録しようとすると配列外アクセスを起こす。
結果として、起動直後の初期化中に NumLock がオンになった状態でなんらかのキーを入力する
とクラッシュを引き起こす。
該当のマクロ登録部でマクロの配列の領域が確保済みかどうかをチェックし、確保されていない
場合はマクロの登録をスキップするようにする。
Slimebreath6078 [Mon, 21 Mar 2022 10:51:05 +0000 (19:51 +0900)]
[Refactor] ダンジョンのモンスター出現フィルターに適用
Slimebreath6078 [Mon, 21 Mar 2022 10:45:53 +0000 (19:45 +0900)]
[Refactor] トークン定義を合わせる
Slimebreath6078 [Mon, 21 Mar 2022 10:43:26 +0000 (19:43 +0900)]
[Refactor] 荒野関連の出現フラグの再定義に合わせる
Slimebreath6078 [Wed, 5 Jan 2022 03:36:53 +0000 (12:36 +0900)]
[Refactor] 荒野関連の出現フラグを再定義
Habu [Sun, 20 Mar 2022 22:45:46 +0000 (07:45 +0900)]
Merge pull request #2431 from habu1010/feature/fix-fuel-overflow
[Fix] #2430 光源の残ターン数が負のオーバーフローを起こす
Habu [Sun, 20 Mar 2022 13:44:04 +0000 (22:44 +0900)]
[Refactor] ボルトの軌道の描画を関数化する
bolt_pict() で色と文字を選んで print_rel() で描画するという一連の処理を
print_bolt_pict() 関数にまとめる。
bolt_pict() は色と文字を uint16_t で返してマクロで分解するのをやめ、
std::pair<TERM_COLOR, char> を返すようにする。
火炎の飛竜 [Sun, 20 Mar 2022 12:57:26 +0000 (21:57 +0900)]
Merge pull request #2428 from Slimebreath6078/feature/Refactor_projection_path
projection_path をクラス化した
Habu [Sun, 20 Mar 2022 12:39:19 +0000 (21:39 +0900)]
[Fix] セーブファイル読み込み時に燃料が異常な残ターン数の場合強制的に 0 にする
負のオーバーフローバグを起こしたセーブデータに対応するため、セーブファイルの読み込み時に
光源アイテムは残ターン数を調べて妥当な範囲(0~その光源のMAX残ターン)でなければ強制的に
残ターンを 0 にする。
Slimebreath6078 [Sun, 20 Mar 2022 12:05:51 +0000 (21:05 +0900)]
[Refactor] 機械的置き換えで r_info.txt から EAT_*** のフラグを削除
これらは全て死体を食べた時の効果のフラグ
Slimebreath6078 [Sun, 20 Mar 2022 11:50:58 +0000 (20:50 +0900)]
[Refactor] モンスターの死体を食べた時の効果のフラグを定義ごと削除
Slimebreath6078 [Sun, 20 Mar 2022 11:49:00 +0000 (20:49 +0900)]
[Refactor] モンスターフラグのフィルターから死体を食べた時の効果のフラグを削除
Slimebreath6078 [Sun, 20 Mar 2022 11:24:31 +0000 (20:24 +0900)]
[Refactor] 死体を食べる効果のトークン定義を削除
Slimebreath6078 [Sat, 19 Mar 2022 05:03:43 +0000 (14:03 +0900)]
[Refactor] シーカーレイ、スーパーレイの path_g を projection_path にする
コードも大きく変わっているので注意
Slimebreath6078 [Wed, 16 Mar 2022 10:26:20 +0000 (19:26 +0900)]
[Refactor] シーカーレイ、スーパーレイのコード簡略化のため PROJECT_MIRROR を追加
Slimebreath6078 [Wed, 16 Mar 2022 10:23:33 +0000 (19:23 +0900)]
[Refactor] path_g を projection_path クラスに変更
シーカーレイ、スーパーレイはコード簡略化するために別の処理が必要なのでこのコミットでは行わない
Slimebreath6078 [Tue, 15 Mar 2022 14:40:07 +0000 (23:40 +0900)]
[Refactor] メンバ関数を追加
begin(), end(), last(), path_num() 関数を追加
Slimebreath6078 [Tue, 15 Mar 2022 14:06:16 +0000 (23:06 +0900)]
[Refactor] projection_path をクラスへ移す
Slimebreath6078 [Tue, 15 Mar 2022 13:30:02 +0000 (22:30 +0900)]
[Refactor] クラスを定義
Habu [Sun, 20 Mar 2022 02:09:07 +0000 (11:09 +0900)]
[Fix] #2430 光源の残ターン数が負のオーバーフローを起こす
モンスターの攻撃により光源の残ターン数が一時的に負の値になる事があるが、変数が符号なし
のため負のオーバーフローを起こす。
符号付きに修正する。
Habu [Sat, 19 Mar 2022 17:20:56 +0000 (02:20 +0900)]
[Fix] ダンジョンのモンスターシンボル制限の指定数の上限をなくす
ダンジョンで生成されるモンスターのシンボル制限のデータを std::vector にし、現在4つ
までとなっている指定数の上限を撤廃する。
火炎の飛竜 [Sat, 19 Mar 2022 16:43:46 +0000 (01:43 +0900)]
Merge pull request #2426 from Slimebreath6078/feature/Refactor_lore_store_and_dungeon_mflag
思い出補完のカウントとダンジョンのモンスターフラグフィルターのコピペを低減
Slimebreath6078 [Sat, 19 Mar 2022 08:58:47 +0000 (17:58 +0900)]
[Refactor] 思い出補完処理のコピペを低減
Slimebreath6078 [Sat, 19 Mar 2022 08:58:15 +0000 (17:58 +0900)]
[Refactor] ダンジョンの出現モンスターフィルター処理のコピペを低減
Habu [Fri, 18 Mar 2022 14:57:55 +0000 (23:57 +0900)]
Merge pull request #2423 from habu1010/feature/vector-artifact-drops
[Fix] 特定アーティファクトドロップのデータ数の制限をなくす
Hourier [Fri, 18 Mar 2022 13:54:18 +0000 (22:54 +0900)]
Merge pull request #2404 from Hourier/Divide-WeaponEnchanter
WeaponEnchanter を武器種別ごとに分離した
Habu [Fri, 18 Mar 2022 12:15:23 +0000 (21:15 +0900)]
Merge pull request #2418 from habu1010/feature/refactor-message-func-arg-string-view
[Refactor] メッセージ表示関連関数の引数の型を std::string_view にする
Habu [Thu, 17 Mar 2022 15:19:04 +0000 (00:19 +0900)]
[Fix] 特定アーティファクトドロップのデータ数の制限をなくす
特定アーティファクトドロップのデータを std::vector で持つようにし、1体につき4種まで
の制限をなくす。
ほとんどのモンスターは特定アーティファクトドロップを持たないので、無駄なメモリ消費の削
減にもなる。
また、r_info.txt 上の特定アーティファクトドロップの定義が
A:artifact_idx:rarity:chance
となっているが、rarity はゲーム内で使用されておらず、紛らわしいので削除する。
火炎の飛竜 [Thu, 17 Mar 2022 14:59:36 +0000 (23:59 +0900)]
Merge pull request #2422 from Slimebreath6078/feature/fix_restrict_monster_to_dungeon
ダンジョンで指定された条件とは違うモンスターが生成されることのあるバグを修正
Habu [Thu, 17 Mar 2022 14:33:20 +0000 (23:33 +0900)]
Merge pull request #2421 from habu1010/feature/vector-reinforces
[Fix] 指定護衛のデータ数の制限をなくす
Slimebreath6078 [Thu, 17 Mar 2022 12:30:29 +0000 (21:30 +0900)]
[Fix] ダンジョンで指定された条件と逆のモンスターが生成されてしまうバグを修正
Habu [Thu, 17 Mar 2022 12:06:00 +0000 (21:06 +0900)]
[Fix] 指定護衛のデータ数の制限をなくす
指定護衛のデータを std::vector で持つようにし、1体につき6種までの制限を撤廃する。
ほとんどのモンスターは指定護衛を持たないので無駄なメモリ消費の削減にもなる。
Habu [Tue, 15 Mar 2022 14:09:40 +0000 (23:09 +0900)]
Merge pull request #2419 from habu1010/feature/fix-eat-magic-consume-message
[Fix] #2416 魔力食いを失敗した時のメッセージがおかしい
Habu [Tue, 15 Mar 2022 12:21:34 +0000 (21:21 +0900)]
[Fix] #2416 魔力食いを失敗した時のメッセージがおかしい
1本だけのスタックしていないアイテムから魔力食いをして失敗してアイテムが破壊された時、
「○○が何本壊れた!」と実態に合っていないメッセージが表示される事がある。
「○○が壊れた!」と正しいメッセージに修正する。
Habu [Mon, 14 Mar 2022 14:02:51 +0000 (23:02 +0900)]
[Refactor] msg_print に渡す引数の冗長なメンバ関数呼び出しを削除する
msg_print の引数の型を std::string_view にした事により不要になった const char*
型への変換を行うメンバ関数の呼び出しを削除する。
Habu [Sun, 13 Mar 2022 17:17:40 +0000 (02:17 +0900)]
[Refactor] メッセージ表示関連関数の引数の型を std::string_view にする
呼び出し側で const char*、std::string、std::string_view のどれでも渡せるように
するため、メッセージ表示関数 msg_print、msg_format およびメッセージログ追加関数
message_add の引数を const char* から std::string_view に変更する。
従来より msg_print を引数 nullptr で呼び出した時に特別な処理が行われるようになって
いるが、nullptr は std::string_view では受け取れないため、引数に std::nullptr_t
を受け取るオーバーロードを追加してこちらに引数 nullptr の時の処理を分離する。
Hourier [Fri, 11 Mar 2022 13:55:46 +0000 (22:55 +0900)]
[Refactor] #2403 Renamed WeaponEnchanter to BowEnchanter
Hourier [Fri, 11 Mar 2022 13:51:57 +0000 (22:51 +0900)]
[Refactor] #2403 Separated apply-magic-arrow.cpp/h from apply-magic.cpp
Hourier [Fri, 11 Mar 2022 13:45:36 +0000 (22:45 +0900)]
[Refactor] #2403 Separated apply-magic-digging.cpp/h from apply-magic.cpp
Hourier [Fri, 11 Mar 2022 13:07:22 +0000 (22:07 +0900)]
[Refactor] #2403 Separated strengthen() from apply_magic()
Hourier [Fri, 11 Mar 2022 13:04:21 +0000 (22:04 +0900)]
[Refactor] #2403 Reshaped SwordEnchanter