SRPG開発プロジェクト(13) 特殊攻撃など(アビリティ)の実装

こんにちは、Pocachinです。
PCで動作するファイアーエムブレム(以下、FE)ライクなSRPG(シミュレーションロールプレイングゲーム)を作ろうというプロジェクトの13回目。今回は、「ジョブごと特殊攻撃など(アビリティ)」を実装しました。

続けざまですが、前回、せっかくジョブチェンジを実装したので、もうちょっとジョブごとの特性を追求しようと思います。
まだゲーム自体の世界観も決まってない中で「ジョブのアビリティもクソもないんやないの」という気もしますが、今回実装したものはゲームの世界観に引っ張られるほど独創性のあるものでもないので、先に作ってしまいました(^^;)

アビリティは、特定のジョブであれば無条件に発生するものと、特定のジョブと武器の組み合わせで発生するものがあります。今回実装したものはザッと以下のとおり。
あと、前提ですがFEにないルールとして、このゲームでは「武器がなくても(素手でも)攻撃可能。ただし攻撃力は半減」「反撃・再攻撃のダメージは通常攻撃の75%」「再攻撃は素早さが相手ユニットより1.5倍以上ある場合に発動」という独自ルールがあります。

①戦士:「戦斧」装備で攻撃と防御のダメージが1.5倍
②サムライ:反撃・再攻撃のダメージ減算なし
③盗賊:再攻撃を判定する際の素早さが2倍
④武闘家:素手でも攻撃力が半減せずレベルに応じて攻撃力加算
⑤魔剣士:「刀」の攻撃で自ユニットのHP回復
⑥剛騎士:「大剣」の攻撃で相手ユニットの武器回数にダメージ
⑦黒騎士:「剣」の攻撃範囲が1コマ分拡大
⑧剣聖:サムライ・魔剣士・剛騎士・黒騎士のアビリティ全部

無論、ジョブは仮のものです…。けっこうファイナルファンタジーなんかの影響もあるような…(^^;)

↓こんな感じ

この動画は、⑧のアビリティによって、1ターン目の味方フェーズで⑤の攻撃、敵フェーズで②のダメージ減算なし(この動画からではわからないですが…)。2ターン目で⑦の攻撃を行っているところです。

ジョブや武器ごとの特性が色々出てくるとかなりゲームらしくなりますね。
ただ、いろんな処理を行う関数にアビリティのための処理を実装したので、だいぶソースが読みにくくなってきました…(^^;)