JavaScriptでドラゴンクエストのようなRPGをつくる(2)の続きです。

プレイヤーによる攻撃

敵を攻撃するときは通常攻撃と攻撃魔法があります。前者のときは引数falseでFight関数が、後者のときは引数trueで同関数が呼び出されます。

Fight関数は敵を攻撃する処理をおこないます。攻撃の結果は自作関数ShowAttackResultで表示されます。そのあと敵を倒したときはOnPlayerWin関数で、敵を倒せなかったときはEnemyAttack関数を実行して敵に攻撃をさせます。

ShowAttackResult関数はプレイヤーによる攻撃結果を取得して表示します。その攻撃で敵を倒すことができた場合はtrueを、そうでない場合はfalseを返します。

敵を倒したときの処理

OnPlayerWin関数は敵を倒したあとの処理をおこないます。

ザコ敵を倒したらシーンはSCENE_BLACK_OUTを経てSCENE_FIELDに変わります。ボス敵を倒したときはゲームクリアの処理をおこないます。

ゲームクリア後の処理

ゲームクリア後の処理を行なうToGameClear関数を示します。

シーンをSCENE_MY_CASTLEに戻してプレイヤーをゲーム開始時の位置に戻します。そして王女にお礼の言葉を語らせます。そのあと’GAME CLEAR’の文字ともう一度ゲームをするためのボタンを表示させます。

敵の攻撃

敵を攻撃してそのターンで倒すことができなかった場合は敵の攻撃がおこなわれます。攻撃の結果、プレイヤーのHPが0にならなかった場合は次のターンに移ります。HPが0になった場合はプレイヤーの負けです。OnLosePlayer関数を呼び出して敗戦後の処理をおこないます。

敗北時の処理

敵にやられてしまったときの処理を示します。自分の城に移動し、王女に’おお、死んでしまうとは情けない。’という定番の台詞を語らせます。

回復魔法

回復魔法を唱えたときの処理を示します。MP3を減らしてプレイヤーのHPを全回復させ、敵に攻撃させます。

ゲーム開始と再プレイ

最後にゲームを開始するための処理と再プレイするときの処理を示します。

開始ボタンをクリックしたときはStart関数が呼び出されます。ゲームをスタートするためのボタンを非表示にし、王女に魔王を倒すように依頼させます。

InitPlayerStatus関数はプレイヤーのHPとMPを初期の最大HPとMPに設定します。

再プレイするボタンをクリックしたときはRetry関数が呼び出されます。