3 @brief 魔法のインターフェイスと発動 / Purpose: Do everything for each spell
\r
6 2013 Deskull rearranged comment for Doxygen.
\r
10 #include "selfinfo.h"
\r
11 #include "spells-summon.h"
\r
12 #include "realm-arcane.h"
\r
13 #include "realm-chaos.h"
\r
14 #include "realm-craft.h"
\r
15 #include "realm-crusade.h"
\r
16 #include "realm-daemon.h"
\r
17 #include "realm-death.h"
\r
18 #include "realm-hex.h"
\r
19 #include "realm-hissatsu.h"
\r
20 #include "realm-life.h"
\r
21 #include "realm-nature.h"
\r
22 #include "realm-song.h"
\r
23 #include "realm-sorcery.h"
\r
24 #include "realm-trump.h"
\r
28 * 魔法の効果を「キャプション:ダイス+定数値」のフォーマットで出力する / Generate dice info string such as "foo 2d10"
\r
33 * @return フォーマットに従い整形された文字列
\r
35 cptr info_string_dice(cptr str, DICE_NUMBER dice, DICE_SID sides, int base)
\r
39 return format("%s%d", str, base);
\r
43 return format("%s%dd%d", str, dice, sides);
\r
45 /* Dice plus base value */
\r
47 return format("%s%dd%d%+d", str, dice, sides, base);
\r
52 * @brief 魔法によるダメージを出力する / Generate damage-dice info string such as "dam 2d10"
\r
56 * @return フォーマットに従い整形された文字列
\r
58 cptr info_damage(DICE_NUMBER dice, DICE_SID sides, int base)
\r
60 return info_string_dice(_("損傷:", "dam "), dice, sides, base);
\r
64 * @brief 魔法の効果時間を出力する / Generate duration info string such as "dur 20+1d20"
\r
67 * @return フォーマットに従い整形された文字列
\r
69 cptr info_duration(int base, DICE_SID sides)
\r
71 return format(_("期間:%d+1d%d", "dur %d+1d%d"), base, sides);
\r
75 * @brief 魔法の効果範囲を出力する / Generate range info string such as "range 5"
\r
77 * @return フォーマットに従い整形された文字列
\r
79 cptr info_range(POSITION range)
\r
81 return format(_("範囲:%d", "range %d"), range);
\r
85 * @brief 魔法による回復量を出力する / Generate heal info string such as "heal 2d8"
\r
89 * @return フォーマットに従い整形された文字列
\r
91 cptr info_heal(DICE_NUMBER dice, DICE_SID sides, int base)
\r
93 return info_string_dice(_("回復:", "heal "), dice, sides, base);
\r
97 * @brief 魔法効果発動までの遅延ターンを出力する / Generate delay info string such as "delay 15+1d15"
\r
100 * @return フォーマットに従い整形された文字列
\r
102 cptr info_delay(int base, DICE_SID sides)
\r
104 return format(_("遅延:%d+1d%d", "delay %d+1d%d"), base, sides);
\r
109 * @brief 魔法によるダメージを出力する(固定値&複数回処理) / Generate multiple-damage info string such as "dam 25 each"
\r
111 * @return フォーマットに従い整形された文字列
\r
113 cptr info_multi_damage(HIT_POINT dam)
\r
115 return format(_("損傷:各%d", "dam %d each"), dam);
\r
120 * @brief 魔法によるダメージを出力する(ダイスのみ&複数回処理) / Generate multiple-damage-dice info string such as "dam 5d2 each"
\r
122 * @param sides ダイス目
\r
123 * @return フォーマットに従い整形された文字列
\r
125 cptr info_multi_damage_dice(DICE_NUMBER dice, DICE_SID sides)
\r
127 return format(_("損傷:各%dd%d", "dam %dd%d each"), dice, sides);
\r
131 * @brief 魔法による一般的な効力値を出力する(固定値) / Generate power info string such as "power 100"
\r
133 * @return フォーマットに従い整形された文字列
\r
135 cptr info_power(int power)
\r
137 return format(_("効力:%d", "power %d"), power);
\r
142 * @brief 魔法による一般的な効力値を出力する(ダイス値) / Generate power info string such as "power 100"
\r
144 * @param sides ダイス目
\r
145 * @return フォーマットに従い整形された文字列
\r
148 * Generate power info string such as "power 1d100"
\r
150 cptr info_power_dice(DICE_NUMBER dice, DICE_SID sides)
\r
152 return format(_("効力:%dd%d", "power %dd%d"), dice, sides);
\r
157 * @brief 魔法の効果半径を出力する / Generate radius info string such as "rad 100"
\r
159 * @return フォーマットに従い整形された文字列
\r
161 cptr info_radius(POSITION rad)
\r
163 return format(_("半径:%d", "rad %d"), rad);
\r
168 * @brief 魔法効果の限界重量を出力する / Generate weight info string such as "max wgt 15"
\r
169 * @param weight 最大重量
\r
170 * @return フォーマットに従い整形された文字列
\r
172 cptr info_weight(WEIGHT weight)
\r
175 return format("最大重量:%d.%dkg", lbtokg1(weight), lbtokg2(weight));
\r
177 return format("max wgt %d", weight/10);
\r
186 * @brief 魔法処理のメインルーチン
\r
187 * @param realm 魔法領域のID
\r
188 * @param spell 各領域の魔法ID
\r
189 * @param mode 求める処理
\r
190 * @return 各領域魔法に各種テキストを求めた場合は文字列参照ポインタ、そうでない場合はNULLポインタを返す。
\r
192 cptr do_spell(REALM_IDX realm, SPELL_IDX spell, BIT_FLAGS mode)
\r
196 case REALM_LIFE: return do_life_spell(spell, mode);
\r
197 case REALM_SORCERY: return do_sorcery_spell(spell, mode);
\r
198 case REALM_NATURE: return do_nature_spell(spell, mode);
\r
199 case REALM_CHAOS: return do_chaos_spell(spell, mode);
\r
200 case REALM_DEATH: return do_death_spell(spell, mode);
\r
201 case REALM_TRUMP: return do_trump_spell(spell, mode);
\r
202 case REALM_ARCANE: return do_arcane_spell(spell, mode);
\r
203 case REALM_CRAFT: return do_craft_spell(spell, mode);
\r
204 case REALM_DAEMON: return do_daemon_spell(spell, mode);
\r
205 case REALM_CRUSADE: return do_crusade_spell(spell, mode);
\r
206 case REALM_MUSIC: return do_music_spell(spell, mode);
\r
207 case REALM_HISSATSU: return do_hissatsu_spell(spell, mode);
\r
208 case REALM_HEX: return do_hex_spell(spell, mode);
\r