5.15. 教会

5.15.1. 構造に関する構成要素
5.15.1.1. 配列 $C3D50C: 神父台詞集
5.15.2. 振る舞いに関する構成要素
5.15.2.1. サブルーチン $C3D49C: 教会処理
5.15.2.2. サブルーチン $C3D554: いきかえらせる
5.15.2.3. サブルーチン $C3D5DD: どくのちりょう
5.15.2.4. サブルーチン $C3D64A: のろいをとく

本節では教会について述べる。

5.15.1. 構造に関する構成要素

教会を構成する構造に関する要素について述べる。

5.15.1.1. 配列 $C3D50C: 神父台詞集

アドレス $C3D50C は 2 個のメッセージ ID 対を要素とする配列の先頭だ。 基本的には、このメッセージペアは神父と尼の台詞回しにそれぞれ対応する。

台詞配列を表にしてまとめておくと次のようになる。神父の台詞例(組添字 0 に相当)を付しておく。

表 5.37

配列 台詞例
$C3D50C [D6]たのもしき 神のしもべよ[AD]わが教会に どんな ご用じゃな?
$C3D510 [D6]どなたを この世へ[AD]呼びもどすのじゃな?[AF]
$C3D514 [D6]ごじょうだんを。[C0]どのは[AD]生きていらっしゃる!
$C3D518 [D6]おお わが主よ![AD]全知全能の神よ![AF][AD](...)
$C3D51C [C0]は よみがえった![AF][AC]
$C3D520 [D6]どなたの毒を とるのじゃな?[AF]
$C3D524 [D6][C0]どのは 毒に[AD]おかされては いませんぞ。[AF]
$C3D528 [D6]おお神よ おちからを![AD][C0]より 毒のけがれを[AD]消し去りたまえっ![AF]
$C3D52C [D6]さすれば わが教会に[AD][BB]ゴールドの ご寄付を。[AD]よろしいですかな?
$C3D530 [D6]なんと 寄付をするには お金が[AD]たりないでは ありませんか![AD](...)
$C3D534 [D6]教会への寄付は[AD]神への かんしゃのきもち。[AD](...)
$C3D538 [D6]なんと やめると申されるか。[AF]
$C3D53C [D6]ほかに ご用は おありかな?
$C3D540 [D6]では お気をつけて。[AD]神の ご加護の あらんことを。
$C3D544 [D6]どなたの呪いを とくのじゃな?[AF]
$C3D548 [D6][C0]どのは[AD]呪われては いませんぞ。[AF]
$C3D54C [D6]おお神よ おちからを![AD]いまわしき 呪いを[AD](...)
$C3D550 [D6]こんな 夜ふけに わが教会に[AD]なんの ご用じゃな?

5.15.2. 振る舞いに関する構成要素

教会を構成する振る舞いに関する要素について述べる。

5.15.2.1. サブルーチン $C3D49C: 教会処理

サブルーチン $C3D49C が神父と尼共通のおつとめ処理の実装だ。 以下に処理の要点を挙げる。

  • 冒頭の挨拶は教会に訪問するのが昼か夜かで異なる。

  • 教会のサービスは「いきかえらせる」「どくのちりょう」「のろいをとく」固定だ。 それぞれ専用サブルーチンで処理する。

  • 何かのサービスを受けた後ならば、もう一度サービスメニューが表示される。

5.15.2.2. サブルーチン $C3D554: いきかえらせる

サブルーチン $C3D554 は教会メニュー項目「いきかえらせる」の実装である。 以下に処理の要点を挙げる。

  • 指定キャラクターが死んでいるかどうかは、仲間キャラクターオブジェクトの死亡フラグで判定する。 このような状態フラグについては 5.5 仲間キャラクターオブジェクト で述べる。

  • 寄付金は対象者のレベルだけで決まる。 その値を level とすると、Python コード風に言えば (((level ** 2) // 10) + 1) * 10 ゴールドとなる。

  • 寄付金の支払い前後の処理は、 他のサービス処理と共有されていることもあり、専用サブルーチンでカプセル化されている。

  • 実は対象者の回復、神父または尼の台詞、効果音再生の順に処理される。 これは他のサービスでも同様だ。

5.15.2.3. サブルーチン $C3D5DD: どくのちりょう

サブルーチン $C3D5DD は教会メニュー項目「どくのちりょう」の実装である。 以下に処理の要点を挙げる。

  • 指定キャラクターが毒状態かどうかを、仲間キャラクターオブジェクトの状態フラグで判定する。

  • 寄付金は対象者のレベルだけで決まる。 その値を level とすると、Python コード風に言えば (level >> 2) + 4 ゴールドとなる。

5.15.2.4. サブルーチン $C3D64A: のろいをとく

サブルーチン $C3D64Aは教会メニュー項目「のろいをとく」の実装である。 以下に処理の要点を挙げる。

  • 指定キャラクターが呪い状態かどうかを、仲間キャラクターオブジェクトの状態フラグで判定する。

  • 寄付金は対象者のレベルだけで決まる。レベルを 30 倍した値が必要なゴールドだ。

  • 呪いの解除はサブルーチン $C44168 呼び出しで実行する。 この処理は注意を要する。 実行内容は対象者の装備品を先頭から順に反復して、アイテムオブジェクトの呪い属性をテストする。 もし呪い装備品を発見したら、それを所持品から削除し、 その他に呪い装備品がないときに限り対象者の呪い状態をリセットするというものだ。 そのためかどうかは不明だが、呪い装備品の個数を問わず、施術後に呪いの状態変化についての語りがない。