1 #include "racial/racial-draconian.h"
2 #include "mind/mind-elementalist.h"
3 #include "spell-kind/spells-launcher.h"
4 #include "spell/spell-types.h"
5 #include "target/target-getter.h"
6 #include "view/display-messages.h"
8 static void decide_breath_kind(player_type *creature_ptr, int *breath_type, concptr *breath_type_description)
10 if (randint1(100) >= creature_ptr->lev)
13 switch (creature_ptr->pclass) {
22 *breath_type = GF_MISSILE;
23 *breath_type_description = _("エレメント", "the elements");
25 *breath_type = GF_SHARDS;
26 *breath_type_description = _("破片", "shards");
31 case CLASS_WARRIOR_MAGE:
34 case CLASS_MAGIC_EATER:
37 case CLASS_MIRROR_MASTER:
39 *breath_type = GF_MANA;
40 *breath_type_description = _("魔力", "mana");
42 *breath_type = GF_DISENCHANT;
43 *breath_type_description = _("劣化", "disenchantment");
47 case CLASS_CHAOS_WARRIOR:
49 *breath_type = GF_CONFUSION;
50 *breath_type_description = _("混乱", "confusion");
52 *breath_type = GF_CHAOS;
53 *breath_type_description = _("カオス", "chaos");
59 case CLASS_FORCETRAINER:
61 *breath_type = GF_CONFUSION;
62 *breath_type_description = _("混乱", "confusion");
64 *breath_type = GF_SOUND;
65 *breath_type_description = _("轟音", "sound");
69 case CLASS_MINDCRAFTER:
71 *breath_type = GF_CONFUSION;
72 *breath_type_description = _("混乱", "confusion");
74 *breath_type = GF_PSI;
75 *breath_type_description = _("精神エネルギー", "mental energy");
82 *breath_type = GF_HELL_FIRE;
83 *breath_type_description = _("地獄の劫火", "hellfire");
85 *breath_type = GF_HOLY_FIRE;
86 *breath_type_description = _("聖なる炎", "holy fire");
93 *breath_type = GF_DARK;
94 *breath_type_description = _("暗黒", "darkness");
96 *breath_type = GF_POIS;
97 *breath_type_description = _("毒", "poison");
103 *breath_type = GF_SOUND;
104 *breath_type_description = _("轟音", "sound");
106 *breath_type = GF_CONFUSION;
107 *breath_type_description = _("混乱", "confusion");
111 case CLASS_ELEMENTALIST:
112 *breath_type = get_element_type(creature_ptr->realm1, 0);
113 *breath_type_description = get_element_name(creature_ptr->realm1, 0);
120 bool draconian_breath(player_type *creature_ptr)
122 int breath_type = (one_in_(3) ? GF_COLD : GF_FIRE);
123 concptr breath_type_description = ((breath_type == GF_COLD) ? _("冷気", "cold") : _("炎", "fire"));
125 if (!get_aim_dir(creature_ptr, &dir))
128 decide_breath_kind(creature_ptr, &breath_type, &breath_type_description);
129 stop_mouth(creature_ptr);
130 msg_format(_("あなたは%sのブレスを吐いた。", "You breathe %s."), breath_type_description);
132 fire_breath(creature_ptr, breath_type, dir, creature_ptr->lev * 2, (creature_ptr->lev / 15) + 1);