第26話

 「私はダフニ王子ですな。マルク王子が乱心なのですな。精霊殿が危険なので郊外まで誘導するですな」

 「な……!?」


 衛士はダフニとマルクの争いを見て戸惑った様子だった。ダフニとマルクと言えば目下派閥争いの激化しているレオとルキの同母弟だ。ここでどちらかに手を貸すと望まない派閥争いに巻き込まれかねない。


 「危ないですな」


 ダフニは再び跳躍して近くにいた衛士を抱きかかえて10メートル近く移動した。そこをマルクの炎熱が通過して地面と立ち木が一気に焼け焦げた。さらにとうとう精霊殿の建物にも炎熱が及び、壁の一部が炭化してしまった。


 「がはっ、はっ」


 衛士は耐えられずにうずくまってむせ出した。不意打ちでダフニに猛スピードでのタックルをかまされたような状態だったので無理もなかった。


 「私はまっすぐ西向きに郊外を目指すですな。衛士さんには先ぶれをお願いするですな。できるだけ人をそのエリアから避難させてほしいですな」


 そう言って、まだ咽ている衛士を抱えて再び跳躍し距離を取ってから背中を押して先行させた。衛士は慌てて走り去っていった。住民の避難誘導をするくらいなら派閥争いに巻き込まれる可能性は少ないだろう。


 1人になってダフニは再びマルクを観察した。正確にはマルクの精霊をだ。それはランタンに細長い胴体と手足が生えたような形をしていた。しかも、燃えているのはランタンの中ではなくなぜか全身だった。


 ――あれが灼熱の精霊ですかな。それにしても相変わらず精霊は意味不明な格好ばかりですな。


 ダフニは精霊の名前が知りたいと思ったが、この状況では精霊のプロフィール確認魔法を使うほどの余裕はないし、そもそも他人の契約下にある精霊のプロフィールを契約者の許可なく取得可能かどうかも分からないので止めておいた。


 「マルクお兄さま、こんなことは止めるですな。このままでは人を巻き込むですな」


 呼びかけてもマルクは全く聞く耳を持たず魔法攻撃を止めないので、ダフニはこの場で抑えるのを諦めて予定通り郊外への誘導を開始した。


 大通りに出ると衛士の誘導のおかげで人はほとんどいなくなっていた。まばらに残っている人もいたが、マルクの魔法で地面が焦げるのを見てその人たち残らずも一目散に逃げだした。


 ――いくらなんでも正気ではないですな。一体何があったですかな?


 マルクの魔法は威力は高いものの直線的なので軌道が読みやすく、アイコン操作で跳躍することで簡単に回避できることが分かってからは、攻撃を避けながら冷静に思考を続けられるようになった。


 当初ダフニはマルクが本人の正義感からダフニを襲ってきたのだと思っていたが、人目も周囲への被害も全く気にせずに魔法を撃ちまくる様子を見て、正気を失っているのではないかとの疑いを持ち始めた。


 「あれは典型的な精神汚染だね」


 マルクを見て首をひねっていると、リピカがどこからか這い出してきてそんなことを口にした。


 「リピカですかな!?」

 「ハロー」

 「精神汚染とは何ですかな?」

 「精神が汚染されたのさ」

 「知ってるですな(怒」

 「精神もエーテル体だから気をつけて見れば見えるよ」

 「本当ですかな!?」


 マルクの精神を見ようと集中するが、一撃必殺の攻撃を避けながら周囲への被害を抑えつつ郊外へ誘導し、かつエーテル知覚に神経を集中するのは無理があった。


 ――回避のタイミングを計り続けるのが案外面倒なのですな。


 避けることそのものは簡単だが、避けるタイミングは間違えてはいけないので常にマルクの呪文詠唱に神経を注いでおく必要があった。これが軽減できたらだいぶ楽になるのだけれど。


 ――ふむ。マルクお兄さまの攻撃は単調なのですな。なら、プログラムを書いてしまえばいいですな。


Magic

> callByName spiritName magicName power condition = do

>  spirit <- select spiritName

>  let corridor = do

>   magic magicName

>   condition

>  give spirit power

>  call spirit corridor

>

> callWait = callByName "待機の精霊" "待機"

> callMove = callByName "移動の精霊" "移動"


Dodge-Magic-Auto

> import System.Random.Shuffle

> main = let loop = do_wait >> do_move >> loop

>    in loop

>  where

>   do_wait = do

>    me <- locate "私"

>    is_timeout <- callWait 1 $ do

>     for me "攻撃魔法を発動される"

>     returning False

>     or

>     timeout 3600

>     returning True

>    if is_timeout then do_wait else return

>   do_move = do

>    [here, rignt, left, up10, up5] <-

>     mapM locate ["ここ", "射線右へ5メートル", "射線左へ5メートル",

>           "上へ10メートル", "上へ5メートル"]

>    places <- shuffleM [right, left] >>= return . (++ [up10, up5])

>    is_cleared <- mapM (check_cleared here) places

>    case [x | x, c <- map places is_cleared, c] of

>     [] -> return

>     place:_ -> callMove 2 $ to place

>   check_cleared here there =

>     return . (all cleared) =<< lineArea here there

>    where

>     cleared v = consistOf "空気" v


 ダフニはマルクの攻撃を避けつつこのプログラムを書き上げた。ダフニに向かって攻撃魔法が使われるのを検知して、左右もしくは上空に逃げるプログラムだ。逃げるところがなければ発動しないが、少なくとも上方5メートルに障害物がなければ最低限の回避は可能だ。


 Magicというのはダフニが書き溜めてきたライブラリの1つだ。ダフニが知っている魔法を発動する関数がまとめられている。それを使って即興でDodge-Magic-Autoというプログラムを書いたのだ。


 ――これでゆっくりとマルクお兄さまを観察できるですな。


 マルクの精神体を見ようとダフニがエーテル知覚を凝らしていると、突然視界が空中になった。マルクの魔法を避けるとき左右に余裕がなかったため上空に飛びあがったようだ。そのままだと落下してしまうので移動魔法を駆使して近くの建物の屋上に着地した。


 「コール」

 「おっと、ですな」


 マルクはダフニが立つ建物もまとめて吹き飛ばす勢いで魔法を放った。ダフニは避けたが、建物は魔法の勢いに負けて屋根の天窓部分が崩れ落ちてしまった。幸い建物は避難が完了していて誰もいなかったが、そのまま使い続けるのは不可能なようだ。


 ――建物の上に逃げるのは止めた方がいいですな。ただあの建物、どこかで見たことがある気がするですな。ま、別にいいですかな。


 その建物はダフニが小さいころに通った幼児魔法教室だったのだが、リピカの契約前のことだったのでダフニはもうすっかり忘れていた。もっとも覚えていたとしても大した感動はなかっただろうが。


 その後もダフニはマルクの攻撃を避け続け、2人はとうとう街の外へと出た。事前の衛士の警告もあって住民には被害が出なかったが、道路や建物などは少なからず傷痕を残した。


 「ダフニ。こんなところまで逃げてきてどうするつもりだ。逃げ足は速いようだがお前が俺を攻撃できない限り、どこまで逃げても最後は俺の勝ちだ」

 「それはどうですかな?」


 マルクはどうも模擬試合でさんざんダフニに負けてきたことをすっかり忘れているようだ。新しい精霊魔法の力に酔いしれて正常な思考ができなくなっているのかもしれないし、リピカの言う精神汚染というのが影響しているのかもしれなかった。


 ただ、ダフニとしてもどうやってマルクを止めるのがいいか決めかねているというのが実情だった。今はこんな状況だが一応マルクはダフニと半分は血のつながった兄弟であり、あまり大けがをさせずに事態を収拾したいと考えていた。


 「できれば、抵抗を止めておとなしく牢屋に入ってほしいですな」

 「ふざけるな!」


 ダフニの空気を読まない発言にマルクは激昂し、再び魔法攻撃が再開された。しかし、その攻撃はやはり1発も当たることはない。


 ――よし。精霊契約を解除してみるですな。


 前にダフニとマルクが戦った時、ダフニはマルクのタケノコ君をエサで釣って戦線離脱させたことがあった。今は前とは違い契約を解除させなければならないが、ルキがマルクの精霊契約を解除させた例もあるので何とかなるのではないか。


 「そこの歩くランタン君ですな」

 「そこもとの、拙者が見えるでござるか?」

 「できればマルクお兄さまとの契約を破棄してほしいですな」


 とりあえず手始めにダフニは燃えるランタンに普通に声をかけて見た。ゼフィルのトーアのように声をかけても返事をしてくれないという可能性もあったが、思ったより気さくに返事が返ってきて逆に驚いた。そこで、これならばといろいろ考えずに直球でお願いしてみた。


 ダフニがランタンの精霊と会話している間にもマルクは攻撃を続けていたのだが、魔法の発動中であっても問題なく精霊は話をすることができるようだ。


 「マルクお兄さまは精神汚染というものを受けているそうなのですな。その状態で魔法をたくさん使われると皆が迷惑するので魔法を使えなくしてほしいのですな」


 実のところ、ダフニ自身は精神汚染というものをまだ見ることはできていなかった。リピカは簡単そうに言っていたが、精神体を見るということは言うほど簡単なことではないようだった。


 「よいでござるよ」

 「それはよかったですな」

 「ただし条件があるでござる」

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る