1 #include "cmd-action/cmd-spell.h"
2 #include "core/player-redraw-types.h"
3 #include "core/player-update-types.h"
4 #include "core/window-redrawer.h"
5 #include "effect/effect-characteristics.h"
6 #include "effect/effect-processor.h"
7 #include "hpmp/hp-mp-processor.h"
8 #include "player/attack-defense-types.h"
9 #include "player/player-class.h"
10 #include "player/player-status.h"
11 #include "realm/realm-song-numbers.h"
12 #include "spell-kind/earthquake.h"
13 #include "spell-kind/spells-detection.h"
14 #include "spell-kind/spells-floor.h"
15 #include "spell-kind/spells-grid.h"
16 #include "spell-kind/spells-launcher.h"
17 #include "spell-kind/spells-lite.h"
18 #include "spell-kind/spells-neighbor.h"
19 #include "spell-kind/spells-sight.h"
20 #include "spell-kind/spells-world.h"
21 #include "spell-realm/spells-song.h"
22 #include "spell/spell-types.h"
23 #include "spell/spells-status.h"
24 #include "status/action-setter.h"
25 #include "status/bad-status-setter.h"
26 #include "status/experience.h"
27 #include "system/player-type-definition.h"
28 #include "target/target-getter.h"
29 #include "view/display-messages.h"
32 * @brief 歌の開始を処理する / Start singing if the player is a Bard
33 * @param spell 領域魔法としてのID
36 static void start_singing(player_type *caster_ptr, SPELL_IDX spell, MAGIC_NUM1 song)
38 /* Remember the song index */
39 set_singing_song_effect(caster_ptr, song);
41 /* Remember the index of the spell which activated the song */
42 set_singing_song_id(caster_ptr, (MAGIC_NUM2)spell);
44 /* Now the player is singing */
45 set_action(caster_ptr, ACTION_SING);
47 caster_ptr->update |= (PU_BONUS);
48 caster_ptr->redraw |= (PR_STATUS);
53 * @param caster_ptr プレーヤーへの参照ポインタ
55 * @param mode 処理内容 (SPELL_NAME / SPELL_DESC / SPELL_INFO / SPELL_CAST / SPELL_FAIL / SPELL_CONT / SPELL_STOP)
56 * @return SPELL_NAME / SPELL_DESC / SPELL_INFO 時には文字列ポインタを返す。SPELL_CAST / SPELL_FAIL / SPELL_CONT / SPELL_STOP 時はNULL文字列を返す。
58 concptr do_music_spell(player_type *caster_ptr, SPELL_IDX spell, spell_type mode)
60 bool name = (mode == SPELL_NAME) ? TRUE : FALSE;
61 bool desc = (mode == SPELL_DESC) ? TRUE : FALSE;
62 bool info = (mode == SPELL_INFO) ? TRUE : FALSE;
63 bool cast = (mode == SPELL_CAST) ? TRUE : FALSE;
64 bool fail = (mode == SPELL_FAIL) ? TRUE : FALSE;
65 bool cont = (mode == SPELL_CONT) ? TRUE : FALSE;
66 bool stop = (mode == SPELL_STOP) ? TRUE : FALSE;
69 PLAYER_LEVEL plev = caster_ptr->lev;
74 return _("遅鈍の歌", "Song of Holding");
76 return _("視界内の全てのモンスターを減速させる。抵抗されると無効。", "Attempts to slow all monsters in sight.");
78 /* Stop singing before start another */
80 stop_singing(caster_ptr);
83 msg_print(_("ゆっくりとしたメロディを口ずさみ始めた...", "You start humming a slow, steady melody..."));
84 start_singing(caster_ptr, spell, MUSIC_SLOW);
91 return info_power(power);
94 slow_monsters(caster_ptr, plev);
101 return _("祝福の歌", "Song of Blessing");
103 return _("命中率とACのボーナスを得る。", "Gives a bonus to hit and AC for a few turns.");
105 /* Stop singing before start another */
107 stop_singing(caster_ptr);
110 msg_print(_("厳かなメロディを奏で始めた...", "The holy power of the Music of the Ainur enters you..."));
111 start_singing(caster_ptr, spell, MUSIC_BLESS);
115 if (!caster_ptr->blessed) {
116 msg_print(_("高潔な気分が消え失せた。", "The prayer has expired."));
124 return _("崩壊の音色", "Wrecking Note");
126 return _("轟音のボルトを放つ。", "Fires a bolt of sound.");
128 /* Stop singing before start another */
130 stop_singing(caster_ptr);
133 DICE_NUMBER dice = 4 + (plev - 1) / 5;
137 return info_damage(dice, sides, 0);
140 if (!get_aim_dir(caster_ptr, &dir))
143 fire_bolt(caster_ptr, GF_SOUND, dir, damroll(dice, sides));
150 return _("朦朧の旋律", "Stun Pattern");
152 return _("視界内の全てのモンスターを朦朧させる。抵抗されると無効。", "Attempts to stun all monsters in sight.");
154 /* Stop singing before start another */
156 stop_singing(caster_ptr);
159 msg_print(_("眩惑させるメロディを奏で始めた...", "You weave a pattern of sounds to bewilder and daze..."));
160 start_singing(caster_ptr, spell, MUSIC_STUN);
164 DICE_NUMBER dice = plev / 10;
168 return info_power_dice(dice, sides);
171 stun_monsters(caster_ptr, damroll(dice, sides));
179 return _("生命の流れ", "Flow of Life");
181 return _("体力を少し回復させる。", "Heals HP a little.");
183 /* Stop singing before start another */
185 stop_singing(caster_ptr);
188 msg_print(_("歌を通して体に活気が戻ってきた...", "Life flows through you as you sing a song of healing..."));
189 start_singing(caster_ptr, spell, MUSIC_L_LIFE);
193 DICE_NUMBER dice = 2;
197 return info_heal(dice, sides, 0);
200 hp_player(caster_ptr, damroll(dice, sides));
208 return _("太陽の歌", "Song of the Sun");
210 return _("光源が照らしている範囲か部屋全体を永久に明るくする。", "Lights up nearby area and the inside of a room permanently.");
212 /* Stop singing before start another */
214 stop_singing(caster_ptr);
217 DICE_NUMBER dice = 2;
218 DICE_SID sides = plev / 2;
219 POSITION rad = plev / 10 + 1;
222 return info_damage(dice, sides, 0);
225 msg_print(_("光り輝く歌が辺りを照らした。", "Your uplifting song brings brightness to dark places..."));
226 lite_area(caster_ptr, damroll(dice, sides), rad);
233 return _("恐怖の歌", "Song of Fear");
235 return _("視界内の全てのモンスターを恐怖させる。抵抗されると無効。", "Attempts to scare all monsters in sight.");
237 /* Stop singing before start another */
239 stop_singing(caster_ptr);
242 msg_print(_("おどろおどろしいメロディを奏で始めた...", "You start weaving a fearful pattern..."));
243 start_singing(caster_ptr, spell, MUSIC_FEAR);
250 return info_power(power);
253 project_all_los(caster_ptr, GF_TURN_ALL, power);
261 return _("戦いの歌", "Heroic Ballad");
263 return _("ヒーロー気分になる。", "Removes fear. Gives a bonus to hit for a while. Heals you for 10 HP.");
265 /* Stop singing before start another */
267 stop_singing(caster_ptr);
270 msg_print(_("激しい戦いの歌を歌った...", "You start singing a song of intense fighting..."));
272 (void)hp_player(caster_ptr, 10);
273 (void)set_afraid(caster_ptr, 0);
275 /* Recalculate hitpoints */
276 caster_ptr->update |= (PU_HP);
278 start_singing(caster_ptr, spell, MUSIC_HERO);
282 if (!caster_ptr->hero) {
283 msg_print(_("ヒーローの気分が消え失せた。", "The heroism wears off."));
284 /* Recalculate hitpoints */
285 caster_ptr->update |= (PU_HP);
293 return _("霊的知覚", "Clairaudience");
296 "階段を感知する。レベル15で全てのモンスター、20で財宝とアイテムを感知できるようになる。レベル25で周辺の地形を感知し、40でその階全体を永久"
297 "に照らし、ダンジョン内のすべてのアイテムを感知する。この効果は歌い続けることで順に起こる。",
298 "Detects traps, doors and stairs in your vicinity. And detects all monsters at level 15, treasures and items at level 20. Maps nearby area at "
299 "level 25. Lights and know the whole level at level 40. These effects accumulate as the song continues.");
301 /* Stop singing before start another */
303 stop_singing(caster_ptr);
306 msg_print(_("静かな音楽が感覚を研ぎ澄まさせた...", "Your quiet music sharpens your sense of hearing..."));
307 /* Hack -- Initialize the turn count */
308 set_singing_count(caster_ptr, 0);
309 start_singing(caster_ptr, spell, MUSIC_DETECT);
313 POSITION rad = DETECT_RAD_DEFAULT;
316 return info_radius(rad);
319 int count = get_singing_count(caster_ptr);
322 wiz_lite(caster_ptr, FALSE);
324 map_area(caster_ptr, rad);
325 if (plev > 39 && count < 19)
326 set_singing_count(caster_ptr, count + 1);
329 /* There are too many hidden treasure. So... */
330 /* detect_treasure(rad); */
331 detect_objects_gold(caster_ptr, rad);
332 detect_objects_normal(caster_ptr, rad);
334 if (plev > 24 && count < 11)
335 set_singing_count(caster_ptr, count + 1);
338 detect_monsters_invis(caster_ptr, rad);
339 detect_monsters_normal(caster_ptr, rad);
341 if (plev > 19 && count < A_MAX)
342 set_singing_count(caster_ptr, count + 1);
344 detect_traps(caster_ptr, rad, TRUE);
345 detect_doors(caster_ptr, rad);
346 detect_stairs(caster_ptr, rad);
348 if (plev > 14 && count < 3)
349 set_singing_count(caster_ptr, count + 1);
357 return _("魂の歌", "Soul Shriek");
359 return _("視界内の全てのモンスターに対して精神攻撃を行う。", "Damages all monsters in sight with PSI damages.");
361 /* Stop singing before start another */
363 stop_singing(caster_ptr);
366 msg_print(_("精神を捻じ曲げる歌を歌った...", "You start singing a song of soul in pain..."));
367 start_singing(caster_ptr, spell, MUSIC_PSI);
371 DICE_NUMBER dice = 1;
372 DICE_SID sides = plev * 3 / 2;
375 return info_damage(dice, sides, 0);
378 project_all_los(caster_ptr, GF_PSI, damroll(dice, sides));
386 return _("知識の歌", "Song of Lore");
388 return _("自分のいるマスと隣りのマスに落ちているアイテムを鑑定する。", "Identifies all items which are in the adjacent squares.");
390 /* Stop singing before start another */
392 stop_singing(caster_ptr);
395 msg_print(_("この世界の知識が流れ込んできた...", "You recall the rich lore of the world..."));
396 start_singing(caster_ptr, spell, MUSIC_ID);
403 return info_radius(rad);
407 * MP不足で鑑定が発動される前に歌が中断してしまうのを防止。
410 project(caster_ptr, 0, rad, caster_ptr->y, caster_ptr->x, 0, GF_IDENTIFY, PROJECT_ITEM);
418 return _("隠遁の歌", "Hiding Tune");
420 return _("隠密行動能力を上昇させる。", "Gives improved stealth.");
422 /* Stop singing before start another */
424 stop_singing(caster_ptr);
427 msg_print(_("あなたの姿が景色にとけこんでいった...", "Your song carries you beyond the sight of mortal eyes..."));
428 start_singing(caster_ptr, spell, MUSIC_STEALTH);
432 if (!caster_ptr->tim_stealth) {
433 msg_print(_("姿がはっきりと見えるようになった。", "You are no longer hidden."));
441 return _("幻影の旋律", "Illusion Pattern");
443 return _("視界内の全てのモンスターを混乱させる。抵抗されると無効。", "Attempts to confuse all monsters in sight.");
445 /* Stop singing before start another */
447 stop_singing(caster_ptr);
450 msg_print(_("辺り一面に幻影が現れた...", "You weave a pattern of sounds to beguile and confuse..."));
451 start_singing(caster_ptr, spell, MUSIC_CONF);
455 POWER power = plev * 2;
458 return info_power(power);
461 confuse_monsters(caster_ptr, power);
469 return _("破滅の叫び", "Doomcall");
471 return _("視界内の全てのモンスターに対して轟音攻撃を行う。", "Damages all monsters in sight with booming sound.");
473 /* Stop singing before start another */
475 stop_singing(caster_ptr);
478 msg_print(_("轟音が響いた...", "The fury of the Downfall of Numenor lashes out..."));
479 start_singing(caster_ptr, spell, MUSIC_SOUND);
483 DICE_NUMBER dice = 10 + plev / 5;
487 return info_damage(dice, sides, 0);
490 project_all_los(caster_ptr, GF_SOUND, damroll(dice, sides));
498 return _("フィリエルの歌", "Firiel's Song");
500 return _("周囲の死体や骨を生き返す。", "Resurrects nearby corpses and skeletons. And makes them your pets.");
503 /* Stop singing before start another */
505 stop_singing(caster_ptr);
508 msg_print(_("生命と復活のテーマを奏で始めた...", "The themes of life and revival are woven into your song..."));
509 animate_dead(caster_ptr, 0, caster_ptr->y, caster_ptr->x);
516 return _("旅の仲間", "Fellowship Chant");
518 return _("視界内の全てのモンスターを魅了する。抵抗されると無効。", "Attempts to charm all monsters in sight.");
520 /* Stop singing before start another */
522 stop_singing(caster_ptr);
525 msg_print(_("安らかなメロディを奏で始めた...", "You weave a slow, soothing melody of imploration..."));
526 start_singing(caster_ptr, spell, MUSIC_CHARM);
530 DICE_NUMBER dice = 10 + plev / 15;
534 return info_power_dice(dice, sides);
537 charm_monsters(caster_ptr, damroll(dice, sides));
545 return _("フルゥの行進曲", "Hru's March");
547 return _("壁を掘り進む。自分の足元のアイテムは蒸発する。", "Makes you be able to burrow into walls. Objects under your feet evaporate.");
549 /* Stop singing before start another */
551 stop_singing(caster_ptr);
554 msg_print(_("粉砕するメロディを奏で始めた...", "You weave a violent pattern of sounds to break walls."));
555 start_singing(caster_ptr, spell, MUSIC_WALL);
561 * MP不足で効果が発動される前に歌が中断してしまうのを防止。
564 project(caster_ptr, 0, 0, caster_ptr->y, caster_ptr->x, 0, GF_DISINTEGRATE, PROJECT_KILL | PROJECT_ITEM | PROJECT_HIDE);
571 return _("フィンロドの護り", "Finrod's Resistance");
573 return _("酸、電撃、炎、冷気、毒に対する耐性を得る。装備による耐性に累積する。",
574 "Gives resistance to fire, cold, electricity, acid and poison. These resistances can be added to those from equipment for more powerful "
577 /* Stop singing before start another */
579 stop_singing(caster_ptr);
582 msg_print(_("元素の力に対する忍耐の歌を歌った。", "You sing a song of perseverance against powers..."));
583 start_singing(caster_ptr, spell, MUSIC_RESIST);
587 if (!caster_ptr->oppose_acid) {
588 msg_print(_("酸への耐性が薄れた気がする。", "You feel less resistant to acid."));
591 if (!caster_ptr->oppose_elec) {
592 msg_print(_("電撃への耐性が薄れた気がする。", "You feel less resistant to elec."));
595 if (!caster_ptr->oppose_fire) {
596 msg_print(_("火への耐性が薄れた気がする。", "You feel less resistant to fire."));
599 if (!caster_ptr->oppose_cold) {
600 msg_print(_("冷気への耐性が薄れた気がする。", "You feel less resistant to cold."));
603 if (!caster_ptr->oppose_pois) {
604 msg_print(_("毒への耐性が薄れた気がする。", "You feel less resistant to pois."));
612 return _("ホビットのメロディ", "Hobbit Melodies");
614 return _("加速する。", "Hastes you.");
616 /* Stop singing before start another */
618 stop_singing(caster_ptr);
621 msg_print(_("軽快な歌を口ずさみ始めた...", "You start singing a joyful pop song..."));
622 start_singing(caster_ptr, spell, MUSIC_SPEED);
626 if (!caster_ptr->fast) {
627 msg_print(_("動きの素早さがなくなったようだ。", "You feel yourself slow down."));
635 return _("歪んだ世界", "World Contortion");
637 return _("近くのモンスターをテレポートさせる。抵抗されると無効。", "Teleports all nearby monsters away unless resisted.");
640 POSITION rad = plev / 15 + 1;
641 POWER power = plev * 3 + 1;
644 return info_radius(rad);
646 /* Stop singing before start another */
648 stop_singing(caster_ptr);
651 msg_print(_("歌が空間を歪めた...", "Reality whirls wildly as you sing a dizzying melody..."));
652 project(caster_ptr, 0, rad, caster_ptr->y, caster_ptr->x, power, GF_AWAY_ALL, PROJECT_KILL);
659 return _("退散の歌", "Dispelling Chant");
661 return _("視界内の全てのモンスターにダメージを与える。邪悪なモンスターに特に大きなダメージを与える。",
662 "Damages all monsters in sight. Hurts evil monsters greatly.");
664 /* Stop singing before start another */
666 stop_singing(caster_ptr);
669 msg_print(_("耐えられない不協和音が敵を責め立てた...", "You cry out in an ear-wracking voice..."));
670 start_singing(caster_ptr, spell, MUSIC_DISPEL);
674 DICE_SID m_sides = plev * 3;
675 DICE_SID e_sides = plev * 3;
678 return format("%s1d%d+1d%d", KWD_DAM, m_sides, e_sides);
681 dispel_monsters(caster_ptr, randint1(m_sides));
682 dispel_evil(caster_ptr, randint1(e_sides));
689 return _("サルマンの甘言", "The Voice of Saruman");
691 return _("視界内の全てのモンスターを減速させ、眠らせようとする。抵抗されると無効。", "Attempts to slow and put to sleep all monsters in sight.");
693 /* Stop singing before start another */
695 stop_singing(caster_ptr);
698 msg_print(_("優しく、魅力的な歌を口ずさみ始めた...", "You start humming a gentle and attractive song..."));
699 start_singing(caster_ptr, spell, MUSIC_SARUMAN);
706 return info_power(power);
709 slow_monsters(caster_ptr, plev);
710 sleep_monsters(caster_ptr, plev);
718 return _("嵐の音色", "Song of the Tempest");
720 return _("轟音のビームを放つ。", "Fires a beam of sound.");
723 DICE_NUMBER dice = 15 + (plev - 1) / 2;
727 return info_damage(dice, sides, 0);
729 /* Stop singing before start another */
731 stop_singing(caster_ptr);
734 if (!get_aim_dir(caster_ptr, &dir))
737 fire_beam(caster_ptr, GF_SOUND, dir, damroll(dice, sides));
744 return _("もう一つの世界", "Ambarkanta");
746 return _("現在の階を再構成する。", "Recreates current dungeon level.");
753 return info_delay(base, sides);
755 /* Stop singing before start another */
757 stop_singing(caster_ptr);
760 msg_print(_("周囲が変化し始めた...", "You sing of the primeval shaping of Middle-earth..."));
761 reserve_alter_reality(caster_ptr, randint0(sides) + base);
768 return _("破壊の旋律", "Wrecking Pattern");
771 "周囲のダンジョンを揺らし、壁と床をランダムに入れ変える。", "Shakes dungeon structure, and results in random swapping of floors and walls.");
773 /* Stop singing before start another */
775 stop_singing(caster_ptr);
778 msg_print(_("破壊的な歌が響きわたった...", "You weave a pattern of sounds to contort and shatter..."));
779 start_singing(caster_ptr, spell, MUSIC_QUAKE);
786 return info_radius(rad);
789 earthquake(caster_ptr, caster_ptr->y, caster_ptr->x, 10, 0);
797 return _("停滞の歌", "Stationary Shriek");
799 return _("視界内の全てのモンスターを麻痺させようとする。抵抗されると無効。", "Attempts to freeze all monsters in sight.");
801 /* Stop singing before start another */
803 stop_singing(caster_ptr);
806 msg_print(_("ゆっくりとしたメロディを奏で始めた...", "You weave a very slow pattern which is almost likely to stop..."));
807 start_singing(caster_ptr, spell, MUSIC_STASIS);
811 POWER power = plev * 4;
814 return info_power(power);
817 stasis_monsters(caster_ptr, power);
825 return _("エルベレスの聖歌", "Elbereth's Chant");
827 return _("自分のいる床の上に、モンスターが通り抜けたり召喚されたりすることができなくなるルーンを描く。",
828 "Sets a rune on the floor beneath you. If you are on a rune, monsters cannot attack you but can try to break the rune.");
831 /* Stop singing before start another */
833 stop_singing(caster_ptr);
836 msg_print(_("歌が神聖な場を作り出した...", "The holy power of the Music is creating sacred field..."));
837 create_rune_protection_one(caster_ptr);
844 return _("英雄の詩", "The Hero's Poem");
846 return _("加速し、ヒーロー気分になり、視界内の全てのモンスターにダメージを与える。", "Hastes you. Gives heroism. Damages all monsters in sight.");
848 /* Stop singing before start another */
850 stop_singing(caster_ptr);
853 msg_print(_("英雄の歌を口ずさんだ...", "You chant a powerful, heroic call to arms..."));
854 (void)hp_player(caster_ptr, 10);
855 (void)set_afraid(caster_ptr, 0);
857 /* Recalculate hitpoints */
858 caster_ptr->update |= (PU_HP);
860 start_singing(caster_ptr, spell, MUSIC_SHERO);
864 if (!caster_ptr->hero) {
865 msg_print(_("ヒーローの気分が消え失せた。", "The heroism wears off."));
866 /* Recalculate hitpoints */
867 caster_ptr->update |= (PU_HP);
870 if (!caster_ptr->fast) {
871 msg_print(_("動きの素早さがなくなったようだ。", "You feel yourself slow down."));
876 DICE_NUMBER dice = 1;
877 DICE_SID sides = plev * 3;
880 return info_damage(dice, sides, 0);
883 dispel_monsters(caster_ptr, damroll(dice, sides));
890 return _("ヤヴァンナの助け", "Relief of Yavanna");
892 return _("強力な回復の歌で、負傷と朦朧状態も全快する。", "Powerful healing song. Also completely heals cuts and being stunned.");
894 /* Stop singing before start another */
896 stop_singing(caster_ptr);
899 msg_print(_("歌を通して体に活気が戻ってきた...", "Life flows through you as you sing the song..."));
900 start_singing(caster_ptr, spell, MUSIC_H_LIFE);
904 DICE_NUMBER dice = 15;
908 return info_heal(dice, sides, 0);
911 hp_player(caster_ptr, damroll(dice, sides));
912 set_stun(caster_ptr, 0);
913 set_cut(caster_ptr, 0);
921 return _("再生の歌", "Goddess's rebirth");
923 return _("すべてのステータスと経験値を回復する。", "Restores all stats and experience.");
926 /* Stop singing before start another */
928 stop_singing(caster_ptr);
932 _("暗黒の中に光と美をふりまいた。体が元の活力を取り戻した。", "You strew light and beauty in the dark as you sing. You feel refreshed."));
933 (void)restore_all_status(caster_ptr);
934 (void)restore_level(caster_ptr);
941 return _("サウロンの魔術", "Wizardry of Sauron");
943 return _("非常に強力でごく小さい轟音の球を放つ。", "Fires an extremely powerful tiny ball of sound.");
946 DICE_NUMBER dice = 50 + plev;
951 return info_damage(dice, sides, 0);
953 /* Stop singing before start another */
955 stop_singing(caster_ptr);
958 if (!get_aim_dir(caster_ptr, &dir))
961 fire_ball(caster_ptr, GF_SOUND, dir, damroll(dice, sides), rad);
968 return _("フィンゴルフィンの挑戦", "Fingolfin's Challenge");
970 return _("ダメージを受けなくなるバリアを張る。", "Generates a barrier which completely protects you from almost all damage.");
972 /* Stop singing before start another */
974 stop_singing(caster_ptr);
977 msg_print(_("フィンゴルフィンの冥王への挑戦を歌った...", "You recall the valor of Fingolfin's challenge to the Dark Lord..."));
979 caster_ptr->redraw |= (PR_MAP);
980 caster_ptr->update |= (PU_MONSTERS);
981 caster_ptr->window_flags |= (PW_OVERHEAD | PW_DUNGEON);
983 start_singing(caster_ptr, spell, MUSIC_INVULN);
987 if (!caster_ptr->invuln) {
988 msg_print(_("無敵ではなくなった。", "The invulnerability wears off."));
990 caster_ptr->redraw |= (PR_MAP);
991 caster_ptr->update |= (PU_MONSTERS);
992 caster_ptr->window_flags |= (PW_OVERHEAD | PW_DUNGEON);