* @param base 固定値\r
* @return フォーマットに従い整形された文字列\r
*/\r
-cptr info_string_dice(cptr str, DICE_NUMBER dice, int sides, int base)\r
+cptr info_string_dice(cptr str, DICE_NUMBER dice, DICE_SID sides, int base)\r
{\r
/* Fix value */\r
if (!dice)\r
* @param base 固定値\r
* @return フォーマットに従い整形された文字列\r
*/\r
-cptr info_damage(DICE_NUMBER dice, int sides, int base)\r
+cptr info_damage(DICE_NUMBER dice, DICE_SID sides, int base)\r
{\r
return info_string_dice(_("損傷:", "dam "), dice, sides, base);\r
}\r
* @param sides ダイス目\r
* @return フォーマットに従い整形された文字列\r
*/\r
-cptr info_duration(int base, int sides)\r
+cptr info_duration(int base, DICE_SID sides)\r
{\r
return format(_("期間:%d+1d%d", "dur %d+1d%d"), base, sides);\r
}\r
* @param base 固定値\r
* @return フォーマットに従い整形された文字列\r
*/\r
-cptr info_heal(DICE_NUMBER dice, int sides, int base)\r
+cptr info_heal(DICE_NUMBER dice, DICE_SID sides, int base)\r
{\r
return info_string_dice(_("回復:", "heal "), dice, sides, base);\r
}\r
* @param sides ダイス目\r
* @return フォーマットに従い整形された文字列\r
*/\r
-cptr info_delay(int base, int sides)\r
+cptr info_delay(int base, DICE_SID sides)\r
{\r
return format(_("遅延:%d+1d%d", "delay %d+1d%d"), base, sides);\r
}\r
* @param sides ダイス目\r
* @return フォーマットに従い整形された文字列\r
*/\r
-cptr info_multi_damage_dice(DICE_NUMBER dice, int sides)\r
+cptr info_multi_damage_dice(DICE_NUMBER dice, DICE_SID sides)\r
{\r
return format(_("損傷:各%dd%d", "dam %dd%d each"), dice, sides);\r
}\r
/*\r
* Generate power info string such as "power 1d100"\r
*/\r
-cptr info_power_dice(DICE_NUMBER dice, int sides)\r
+cptr info_power_dice(DICE_NUMBER dice, DICE_SID sides)\r
{\r
return format(_("効力:%dd%d", "power %dd%d"), dice, sides);\r
}\r
\r
-extern cptr info_string_dice(cptr str, DICE_NUMBER dice, int sides, int base);\r
-extern cptr info_damage(DICE_NUMBER dice, int sides, int base);\r
-extern cptr info_duration(int base, int sides);\r
+extern cptr info_string_dice(cptr str, DICE_NUMBER dice, DICE_SID sides, int base);\r
+extern cptr info_damage(DICE_NUMBER dice, DICE_SID sides, int base);\r
+extern cptr info_duration(int base, DICE_SID sides);\r
extern cptr info_range(POSITION range);\r
-extern cptr info_heal(DICE_NUMBER dice, int sides, int base);\r
-extern cptr info_delay(int base, int sides);\r
+extern cptr info_heal(DICE_NUMBER dice, DICE_SID sides, int base);\r
+extern cptr info_delay(int base, DICE_SID sides);\r
extern cptr info_multi_damage(HIT_POINT dam);\r
-extern cptr info_multi_damage_dice(DICE_NUMBER dice, int sides);\r
+extern cptr info_multi_damage_dice(DICE_NUMBER dice, DICE_SID sides);\r
extern cptr info_power(int power);\r
-extern cptr info_power_dice(DICE_NUMBER dice, int sides);\r
+extern cptr info_power_dice(DICE_NUMBER dice, DICE_SID sides);\r
extern cptr info_radius(POSITION rad);\r
extern cptr info_weight(WEIGHT weight);\r
extern bool_hack life_stream(bool_hack message, bool_hack virtue);
extern bool_hack heroism(int base);
extern bool_hack berserk(int base);
-extern bool_hack cure_light_wounds(DICE_NUMBER dice, int sides);
-extern bool_hack cure_serious_wounds(DICE_NUMBER dice, int sides);
+extern bool_hack cure_light_wounds(DICE_NUMBER dice, DICE_SID sides);
+extern bool_hack cure_serious_wounds(DICE_NUMBER dice, DICE_SID sides);
extern bool_hack cure_critical_wounds(HIT_POINT pow);
extern bool_hack true_healing(HIT_POINT pow);
extern bool_hack restore_mana(bool_hack magic_eater);
* and which also do at least 20 damage, or, sometimes, N damage.
* This is used only to determine "cuts" and "stuns".
*/
-static int monster_critical(DICE_NUMBER dice, int sides, HIT_POINT dam)
+static int monster_critical(DICE_NUMBER dice, DICE_SID sides, HIT_POINT dam)
{
int max = 0;
int total = dice * sides;
{
DICE_NUMBER dice = 3 + (plev - 1) / 5;
- int sides = 3;
+ DICE_SID sides = 3;
if (info) return info_damage(dice, sides, 0);
{
DICE_NUMBER dice = 2;
- int sides = plev / 2;
+ DICE_SID sides = plev / 2;
POSITION rad = plev / 10 + 1;
if (info) return info_damage(dice, sides, 0);
{
DICE_NUMBER dice = 2;
- int sides = 8;
+ DICE_SID sides = 8;
if (info) return info_heal(dice, sides, 0);
if (cast) (void)cure_light_wounds(dice, sides);
{
DICE_NUMBER dice = 4;
- int sides = 8;
+ DICE_SID sides = 8;
if (info) return info_heal(dice, sides, 0);
if (cast) (void)cure_serious_wounds(4, 8);
{
DICE_NUMBER dice = 1;
- int sides = 30;
+ DICE_SID sides = 30;
int base = 20;
if (info) return info_damage(dice, sides, base);
{
DICE_NUMBER dice = 6;
- int sides = 8;
+ DICE_SID sides = 8;
if (info) return info_damage(dice, sides, 0);
{
int base = 15;
- int sides = 20;
+ DICE_SID sides = 20;
if (info) return info_delay(base, sides);
{
int base = 25;
- int sides = 30;
+ DICE_SID sides = 30;
if (info) return info_duration(base, sides);
{
DICE_NUMBER dice = 3 + ((plev - 1) / 5);
- int sides = 4;
+ DICE_SID sides = 4;
if (info) return info_damage(dice, sides, 0);
{
DICE_NUMBER dice = 2;
- int sides = plev / 2;
+ DICE_SID sides = plev / 2;
POSITION rad = (plev / 10) + 1;
if (info) return info_damage(dice, sides, 0);
{
DICE_NUMBER dice = 3;
- int sides = 5;
+ DICE_SID sides = 5;
POSITION rad = (plev < 30) ? 2 : 3;
int base;
{
DICE_NUMBER dice = 8 + (plev - 5) / 4;
- int sides = 8;
+ DICE_SID sides = 8;
if (info) return info_damage(dice, sides, 0);
{
DICE_NUMBER dice = 8 + ((plev - 5) / 4);
- int sides = 8;
+ DICE_SID sides = 8;
if (info) return info_damage(dice, sides, 0);
{
DICE_NUMBER dice = 10 + (plev - 5) / 4;
- int sides = 8;
+ DICE_SID sides = 8;
if (info) return info_damage(dice, sides, 0);
{
DICE_NUMBER dice = 11 + (plev - 5) / 4;
- int sides = 8;
+ DICE_SID sides = 8;
if (info) return info_damage(dice, sides, 0);
{
int base = 12;
- int sides = 4;
+ DICE_SID sides = 4;
if (cast)
{
{
DICE_NUMBER dice = 5 + plev / 10;
- int sides = 8;
+ DICE_SID sides = 8;
if (info) return info_damage(dice, sides, 0);
{
int base = 15;
- int sides = 20;
+ DICE_SID sides = 20;
if (info) return info_delay(base, sides);
{
DICE_NUMBER dice = 9 + (plev - 5) / 4;
- int sides = 8;
+ DICE_SID sides = 8;
if (info) return info_damage(dice, sides, 0);
{
int base = 3 * plev;
- int sides = 25;
+ DICE_SID sides = 25;
if (info) return info_duration(base, sides);
{
int base = 25;
- int sides = 30;
+ DICE_SID sides = 30;
if (info) return info_duration(base, sides);
{
int base = 30;
- int sides = 20;
+ DICE_SID sides = 20;
if (info) return info_duration(base, sides);
{
int base = plev;
- int sides = 20 + plev;
+ DICE_SID sides = 20 + plev;
if (info) return info_duration(base, sides);
if (desc) return _("電撃のボルトもしくはビームを放つ。", "Fires a bolt or beam of lightning.");
{
DICE_NUMBER dice = 3 + (plev - 1) / 5;
- int sides = 4;
+ DICE_SID sides = 4;
if (info) return info_damage(dice, sides, 0);
if (cast)
{
{
DICE_NUMBER dice = 3 + (plev - 1) / 9;
- int sides = 2;
+ DICE_SID sides = 2;
if (info) return info_multi_damage_dice(dice, sides);
if (cast)
{
if (desc) return _("視界内の全てのアンデッド及び悪魔にダメージを与え、邪悪なモンスターを恐怖させる。",
"Damages all undead and demons in sight, and scares all evil monsters in sight.");
{
- int sides = plev;
+ DICE_SID sides = plev;
int power = plev;
if (info) return info_damage(1, sides, 0);
if (cast)
{
int base = 25;
- int sides = 3 * plev;
+ DICE_SID sides = 3 * plev;
if (info) return info_duration(base, sides);
if (desc) return _("視界内の全てのアンデッド及び悪魔にダメージを与える。", "Damages all undead and demons in sight.");
{
- int sides = plev * 4;
+ DICE_SID sides = plev * 4;
if (info) return info_damage(1, sides, 0);
if (desc) return _("視界内の全ての邪悪なモンスターにダメージを与える。", "Damages all evil monsters in sight.");
{
- int sides = plev * 4;
+ DICE_SID sides = plev * 4;
if (info) return info_damage(1, sides, 0);
{
int base = 12;
- int sides = 4;
+ DICE_SID sides = 4;
if (cast)
{
{
DICE_NUMBER dice = 3 + (plev - 1) / 5;
- int sides = 4;
+ DICE_SID sides = 4;
if (info) return info_damage(dice, sides, 0);
{
DICE_NUMBER dice = 6 + (plev - 5) / 4;
- int sides = 8;
+ DICE_SID sides = 8;
if (info) return info_damage(dice, sides, 0);
{
DICE_NUMBER dice = 3;
- int sides = 6;
+ DICE_SID sides = 6;
POSITION rad = (plev < 30) ? 2 : 3;
int base;
{
DICE_NUMBER dice = 11 + (plev - 5) / 4;
- int sides = 8;
+ DICE_SID sides = 8;
if (info) return info_damage(dice, sides, 0);
{
int base = 30;
- int sides = 25;
+ DICE_SID sides = 25;
if (info) return info_duration(base, sides);
{
DICE_NUMBER dice = 3 + (plev - 1) / 5;
- int sides = 4;
+ DICE_SID sides = 4;
POSITION rad = 0;
if (info) return info_damage(dice, sides, 0);
{
DICE_NUMBER dice = 3;
- int sides = 6;
+ DICE_SID sides = 6;
POSITION rad = (plev < 30) ? 2 : 3;
int base;
{
DICE_NUMBER dice = 8 + (plev - 5) / 4;
- int sides = 8;
+ DICE_SID sides = 8;
if (info) return info_damage(dice, sides, 0);
{
DICE_NUMBER dice = 1;
- int sides = plev * 2;
+ DICE_SID sides = plev * 2;
int base = plev * 2;
if (info) return info_damage(dice, sides, base);
{
DICE_NUMBER dice = 4 + (plev - 5) / 4;
- int sides = 8;
+ DICE_SID sides = 8;
if (info) return info_damage(dice, sides, 0);
if (desc) return _("視界内の生命のあるモンスターにダメージを与える。", "Damages all living monsters in sight.");
{
- int sides = plev * 3;
+ DICE_SID sides = plev * 3;
if (info) return info_damage(1, sides, 0);
if (desc) return _("怪我と体力を少し回復させる。", "Heals cut and HP a little.");
{
DICE_NUMBER dice = 2;
- int sides = 10;
+ DICE_SID sides = 10;
if (info) return info_heal(dice, sides, 0);
if (cast) (void)cure_light_wounds(dice, sides);
}
if (desc) return _("1体のモンスターに小ダメージを与える。抵抗されると無効。", "Wounds a monster a little unless resisted.");
{
DICE_NUMBER dice = 3 + (plev - 1) / 5;
- int sides = 4;
+ DICE_SID sides = 4;
if (info) return info_damage(dice, sides, 0);
if (desc) return _("光源が照らしている範囲か部屋全体を永久に明るくする。", "Lights up nearby area and the inside of a room permanently.");
{
DICE_NUMBER dice = 2;
- int sides = plev / 2;
+ DICE_SID sides = plev / 2;
POSITION rad = plev / 10 + 1;
if (info) return info_damage(dice, sides, 0);
if (desc) return _("怪我と体力を中程度回復させる。", "Heals cut and HP more.");
{
DICE_NUMBER dice = 4;
- int sides = 10;
+ DICE_SID sides = 10;
if (info) return info_heal(dice, sides, 0);
if (cast) (void)cure_serious_wounds(dice, sides);
if (name) return _("重傷", "Cause Medium Wounds");
if (desc) return _("1体のモンスターに中ダメージを与える。抵抗されると無効。", "Wounds a monster unless resisted.");
{
- int sides = 8 + (plev - 5) / 4;
+ DICE_SID sides = 8 + (plev - 5) / 4;
DICE_NUMBER dice = 8;
if (info) return info_damage(dice, sides, 0);
if (desc) return _("体力を大幅に回復させ、負傷と朦朧状態も全快する。", "Heals cut, stun and HP greatly.");
{
DICE_NUMBER dice = 8;
- int sides = 10;
+ DICE_SID sides = 10;
if (info) return info_heal(dice, sides, 0);
if (cast) (void)cure_critical_wounds(damroll(dice, sides));
{
DICE_NUMBER dice = 1;
- int sides = plev * 5;
+ DICE_SID sides = plev * 5;
if (info) return info_damage(dice, sides, 0);
{
DICE_NUMBER dice = 5 + (plev - 5) / 3;
- int sides = 15;
+ DICE_SID sides = 15;
if (info) return info_damage(dice, sides, 0);
{
int base = 15;
- int sides = 20;
+ DICE_SID sides = 20;
if (info) return info_delay(base, sides);
{
int base = 15;
- int sides = 20;
+ DICE_SID sides = 20;
if (info) return info_delay(base, sides);
\r
{\r
DICE_NUMBER dice = 3 + (plev - 1) / 5;\r
- int sides = 4;\r
+ DICE_SID sides = 4;\r
POSITION range = plev / 6 + 2;\r
\r
if (info) return format("%s%dd%d %s%d", s_dam, dice, sides, s_rng, range);\r
\r
{\r
DICE_NUMBER dice = 2;\r
- int sides = plev / 2;\r
+ DICE_SID sides = plev / 2;\r
POSITION rad = (plev / 10) + 1;\r
\r
if (info) return info_damage(dice, sides, 0);\r
\r
{\r
DICE_NUMBER dice = 2;\r
- int sides = 8;\r
+ DICE_SID sides = 8;\r
\r
if (info) return info_heal(dice, sides, 0);\r
\r
\r
{\r
DICE_NUMBER dice = 1;\r
- int sides = 30;\r
+ DICE_SID sides = 30;\r
int base = 20;\r
\r
if (info) return info_damage(dice, sides, base);\r
\r
{\r
DICE_NUMBER dice = 3 + (plev - 5) / 4;\r
- int sides = 8;\r
+ DICE_SID sides = 8;\r
\r
if (info) return info_damage(dice, sides, 0);\r
\r
\r
{\r
DICE_NUMBER dice = 5 + (plev - 5) / 4;\r
- int sides = 8;\r
+ DICE_SID sides = 8;\r
\r
if (info) return info_damage(dice, sides, 0);\r
\r
\r
{\r
DICE_NUMBER dice = 6;\r
- int sides = 8;\r
+ DICE_SID sides = 8;\r
\r
if (info) return info_damage(dice, sides, 0);\r
\r
\r
{\r
int base = 20;\r
- int sides = 30;\r
+ DICE_SID sides = 30;\r
\r
if (info) return info_duration(base, sides);\r
\r
{
DICE_NUMBER dice = 4 + (plev - 1) / 5;
- int sides = 4;
+ DICE_SID sides = 4;
if (info) return info_damage(dice, sides, 0);
{
DICE_NUMBER dice = plev / 10;
- int sides = 2;
+ DICE_SID sides = 2;
if (info) return info_power_dice(dice, sides);
{
DICE_NUMBER dice = 2;
- int sides = 6;
+ DICE_SID sides = 6;
if (info) return info_heal(dice, sides, 0);
{
DICE_NUMBER dice = 2;
- int sides = plev / 2;
+ DICE_SID sides = plev / 2;
POSITION rad = plev / 10 + 1;
if (info) return info_damage(dice, sides, 0);
{
DICE_NUMBER dice = 1;
- int sides = plev * 3 / 2;
+ DICE_SID sides = plev * 3 / 2;
if (info) return info_damage(dice, sides, 0);
{
DICE_NUMBER dice = 10 + plev / 5;
- int sides = 7;
+ DICE_SID sides = 7;
if (info) return info_damage(dice, sides, 0);
{
DICE_NUMBER dice = 10 + plev / 15;
- int sides = 6;
+ DICE_SID sides = 6;
if (info) return info_power_dice(dice, sides);
{
DICE_NUMBER dice = 15 + (plev - 1) / 2;
- int sides = 10;
+ DICE_SID sides = 10;
if (info) return info_damage(dice, sides, 0);
{
int base = 15;
- int sides = 20;
+ DICE_SID sides = 20;
if (info) return info_delay(base, sides);
{
DICE_NUMBER dice = 1;
- int sides = plev * 3;
+ DICE_SID sides = plev * 3;
if (info) return info_damage(dice, sides, 0);
{
DICE_NUMBER dice = 15;
- int sides = 10;
+ DICE_SID sides = 10;
if (info) return info_heal(dice, sides, 0);
{
DICE_NUMBER dice = 50 + plev;
- int sides = 10;
+ DICE_SID sides = 10;
POSITION rad = 0;
if (info) return info_damage(dice, sides, 0);
{
DICE_NUMBER dice = 2;
- int sides = plev / 2;
+ DICE_SID sides = plev / 2;
POSITION rad = plev / 10 + 1;
if (info) return info_damage(dice, sides, 0);
{
int base = plev;
- int sides = 20 + plev;
+ DICE_SID sides = 20 + plev;
if (info) return info_duration(base, sides);
{
int base = 25;
- int sides = 30;
+ DICE_SID sides = 30;
if (info) return info_duration(base, sides);
{
int base = 15;
- int sides = 20;
+ DICE_SID sides = 20;
if (info) return info_delay(base, sides);
{
DICE_NUMBER dice = 7;
- int sides = 7;
+ DICE_SID sides = 7;
int base = plev;
if (info) return info_damage(dice, sides, base);
{
int base = 25;
- int sides = 30;
+ DICE_SID sides = 30;
if (info) return info_duration(base, sides);
{
int base = 25;
- int sides = 30;
+ DICE_SID sides = 30;
if (info) return info_duration(base, sides);
{
int base = 15;
- int sides = 20;
+ DICE_SID sides = 20;
if (info) return info_delay(base, sides);
return ident;
}
-bool_hack cure_light_wounds(DICE_NUMBER dice, int sides)
+bool_hack cure_light_wounds(DICE_NUMBER dice, DICE_SID sides)
{
bool_hack ident = FALSE;
if (hp_player(damroll(dice, sides))) ident = TRUE;
return ident;
}
-bool_hack cure_serious_wounds(DICE_NUMBER dice, int sides)
+bool_hack cure_serious_wounds(DICE_NUMBER dice, DICE_SID sides)
{
bool_hack ident = FALSE;
if (hp_player(damroll(dice, sides))) ident = TRUE;
/*
* Generates damage for "2d6" style dice rolls
*/
-s16b damroll(int num, int sides)
+s16b damroll(DICE_NUMBER num, DICE_SID sides)
{
int i, sum = 0;
for (i = 0; i < num; i++) sum += randint1(sides);
/*
* Same as above, but always maximal
*/
-s16b maxroll(int num, int sides)
+s16b maxroll(DICE_NUMBER num, DICE_SID sides)
{
return (num * sides);
}
extern void Rand_state_restore(u32b* backup_state);
extern s32b Rand_div(s32b m);
extern s16b randnor(int mean, int stand);
-extern s16b damroll(int num, int sides);
-extern s16b maxroll(int num, int sides);
+extern s16b damroll(int num, DICE_SID sides);
+extern s16b maxroll(int num, DICE_SID sides);
extern s32b div_round(s32b n, s32b d);
extern s32b Rand_external(s32b m);