私はRPGをC#で書いていますが、私は文字クラスをうまく初期化していますが、私は攻撃クラスに苦労しています。ゲームを書く:クラス内の動的攻撃ロジック
各攻撃には、複数の統計情報や最終的にはデコレータに基づいた独自のダメージ計算式が用意されています。
これらのダメージ公式とデコレータを動的に作成/追加する方法はありますか、一般的な攻撃クラスを拡張する攻撃ごとに固有のクラスを作成する必要がありますか?ここで
は、私が後だよ何のためにいくつかの擬似コードです:
public class Attack
{
public string Name {get; set;}
List<Decorators> DamageCalc;
public Attack(string[] data, List<Decorators> decorators)
{
Name = data[DataList.Name]; //I'm using constants to keep my indexes readable
DamageCalc = data[DataList.Damage]; //i.e. strength * 10 + agility
Decorators = decorators
ApplyDecorators(Decorators)
}
public double DamageCalculation(Character attacker)
{
return DamageCalc; //attacker.Strength * 10 + attacker.Agility
}
...
}
柔軟性の新機能と動作を追加するために私には特に重要です。
入力いただきありがとうございます!
編集1 私はJSONを使用する場合は、私のCharacter
クラスのSTAT変数にJSONフィールドを関連付けるための任意の簡単な方法があるだろうか、私はそれを相互運用するためのカスタムコードを書く必要があるのですか?
オフハンド私はCharacter
クラスから情報を動的に収集できるJSONフィールドまたはそのフィールドを使用するきちんとした方法は考えられません。
編集2 理想的には、これは私が動的にJSONファイル、文字列、XMLファイルまたはデータベーステーブルからデータを取ることによって、単一の攻撃クラスのインスタンスとしてすべての私の攻撃を作成することができます。
DamageCalculation
メソッドでコードサンプルを変更しました。
休業 私が選択した回答は、私の特定の問題の解決策を提供します。数式を解析し、私が想定している動的ツールを生成するコードを書く必要があるようです。このように私は設計の観点からこの特定の問題を回避できるかどうかを見ていきます。
のタイトルの下にそれについての詳細を見つけることができます。これにより、外部データソースから設定を簡単に操作できます。 JSONなどのより構造化された形式の使用を検討してください。 –
@Robertありがとうございました。 JSONは、私が働いているものです(私はまだC#をまだ新しくしています)。 JSONフィールドを文字クラスのstat変数に関連付ける簡単な方法はありますか、それとも相互運用するためのカスタムコードを書く必要がありますか? –