これはこの質問のフォローアップです。コンテキストは同じなので、スキミングが役立つ場合があります。私はこれについて何日もブレインストーミングを行ってきましたが、どこにも行き着かなかったので、あきらめてここに来ました。
そこで説明したようなシステムを作成するときに、どのような設計パターンが機能するのか疑問に思っています。両側に任意の数の戦闘員を配置できる戦闘アルゴリズムがあるとします。まず、誰が誰を攻撃したかを突き止めてから実行します。
注意が必要な部分は、追加できる追加の動作が多数あり、それらが多少恣意的である可能性があることです。「パッシブスキル」と考えてください。ターゲットに命中したときにステータスが増加するなどの動作もありますが、これは一部の種類の戦闘でのみ発生します。
私の前の質問は、Decorator がどのように失敗したかを示しています。答えは Strategy パターンを提案しましたが、私は何十もの異なるタイプの戦略を書き、次にそれらのそれぞれに対していくつかの具体的なクラスを書きたいとは思っていません。それでも、自分が持っていたものとはまったく異なるまったく新しい行動が必要な場合は、Open Closed の原則に違反する必要があります。一度に複数の戦略を組み合わせる必要がある場合もあり、装飾戦略または複合戦略につながる可能性があります。たとえば、ダメージを受けたときに、1. ダメージを半分にするアビリティを持っている、2. ダメージをさらに軽減するアイテムを装備している、3. 攻撃者にダメージを返している、4. ステータス ポイントを獲得している、などがあります。 .
では、経験豊富な建築家はここで何をするでしょうか? 多くのゲームにこれらのシステムが実装されているので、どのパターンまたはパターンの組み合わせがうまく機能するのか興味があります。
コードの巨大な壁を投稿したくないので、私のシステムの特定の部分がある場合は、コメントで質問してください.