基本的に、プレイヤーがアイテムのインベントリとキャラクター人形 (現在どのアイテムが装備されているかを知るため) を持つ疑似 RPG ゲームを作成しています。
現在装備されているアイテムのコレクションを処理するための最良の方法は何ですか?
私が現在持っているのは、プレイヤーに装備されたアイテムの可能なすべての場所を含む EquipmentSlot 列挙型です。これは、プレイヤーが持っている各アイテムのプロパティとして設定できます。
public enum EquipmentSlot
{
Head,
Chest,
Arms,
Legs,
Feet,
OffHand,
MainHand
}
次に、各列挙型をキーとして含む辞書を作成し、Player コンストラクターですべてを null に初期化します。
PlayerEquipment = new Dictionary<EquipmentSlot, Item>(7);
PlayerEquipment.Add(EquipmentSlot.Head, null);
PlayerEquipment.Add(EquipmentSlot.Chest, null);
PlayerEquipment.Add(EquipmentSlot.Arms, null);
PlayerEquipment.Add(EquipmentSlot.Legs, null);
PlayerEquipment.Add(EquipmentSlot.Feet, null);
PlayerEquipment.Add(EquipmentSlot.OffHand, null);
PlayerEquipment.Add(EquipmentSlot.MainHand, null);
しかし、これをコーディングしていると、コンストラクターに追加されているため、Player の他のメソッドで列挙としてキーにアクセスできないため、機能しないことに気付き始めています。クラスの他のメンバーが利用できるようにするために、他にどこに追加できるかわかりません。
私の辞書のアプローチはこれについて間違った方法ですか?