1 #include "racial/racial-draconian.h"
2 #include "spell-kind/spells-launcher.h"
3 #include "spell/spell-types.h"
4 #include "target/target-getter.h"
5 #include "view/display-messages.h"
7 static void decide_breath_kind(player_type *creature_ptr, int *breath_type, concptr *breath_type_description)
9 if (randint1(100) >= creature_ptr->lev)
12 switch (creature_ptr->pclass) {
21 *breath_type = GF_MISSILE;
22 *breath_type_description = _("エレメント", "the elements");
24 *breath_type = GF_SHARDS;
25 *breath_type_description = _("破片", "shards");
30 case CLASS_WARRIOR_MAGE:
33 case CLASS_MAGIC_EATER:
36 case CLASS_MIRROR_MASTER:
38 *breath_type = GF_MANA;
39 *breath_type_description = _("魔力", "mana");
41 *breath_type = GF_DISENCHANT;
42 *breath_type_description = _("劣化", "disenchantment");
46 case CLASS_CHAOS_WARRIOR:
48 *breath_type = GF_CONFUSION;
49 *breath_type_description = _("混乱", "confusion");
51 *breath_type = GF_CHAOS;
52 *breath_type_description = _("カオス", "chaos");
58 case CLASS_FORCETRAINER:
60 *breath_type = GF_CONFUSION;
61 *breath_type_description = _("混乱", "confusion");
63 *breath_type = GF_SOUND;
64 *breath_type_description = _("轟音", "sound");
68 case CLASS_MINDCRAFTER:
70 *breath_type = GF_CONFUSION;
71 *breath_type_description = _("混乱", "confusion");
73 *breath_type = GF_PSI;
74 *breath_type_description = _("精神エネルギー", "mental energy");
81 *breath_type = GF_HELL_FIRE;
82 *breath_type_description = _("地獄の劫火", "hellfire");
84 *breath_type = GF_HOLY_FIRE;
85 *breath_type_description = _("聖なる炎", "holy fire");
92 *breath_type = GF_DARK;
93 *breath_type_description = _("暗黒", "darkness");
95 *breath_type = GF_POIS;
96 *breath_type_description = _("毒", "poison");
102 *breath_type = GF_SOUND;
103 *breath_type_description = _("轟音", "sound");
105 *breath_type = GF_CONFUSION;
106 *breath_type_description = _("混乱", "confusion");
113 bool draconian_breath(player_type *creature_ptr)
115 int breath_type = (one_in_(3) ? GF_COLD : GF_FIRE);
116 concptr breath_type_description = ((breath_type == GF_COLD) ? _("冷気", "cold") : _("炎", "fire"));
118 if (!get_aim_dir(creature_ptr, &dir))
121 decide_breath_kind(creature_ptr, &breath_type, &breath_type_description);
122 stop_mouth(creature_ptr);
123 msg_format(_("あなたは%sのブレスを吐いた。", "You breathe %s."), breath_type_description);
125 fire_breath(creature_ptr, breath_type, dir, creature_ptr->lev * 2, (creature_ptr->lev / 15) + 1);