これは OOP ベースのロールプレイング ゲームです。オブジェクトをインターフェースとして扱うのに問題があります。
abstract class Items
{
public string name { get; set; }
}
すべてのアイテムには名前があります。これは私が取得しようとしているプロパティです。
interface Ieatable
{
int amountHealed { get; set; }
}
プレイヤーを回復します。
class Healers : Items, Ieatable
{
private int heal;
public int amountHealed
{
get { return heal; }
set { heal = value; }
}
public Healers(int amount, string name)
{
heal = amount;
base.name = name;
}
}
ここで食べられるものを扱っています。選手用バックパックの各アイテムを確認します。次に、その商品が食べられるかどうかを確認します。次に、プレイヤーのバックパック内のアイテムの1つがパラメーターとして渡された食べられるアイテムと同じかどうかを確認するのに苦労している部分です。
public void eatSomethingt(Ieatable eatable)
{
foreach (Items i in items ) //Go through every item(list) in the players backpack
{
if (i is Ieatable && i.name == eatable.name) //ERROR does not contain definition for name
{
Ieatable k = i as Ieatable;
Console.WriteLine(Name + " ate " + eatable.name); //Same ERROR here.
life = life + k.amountHealed;
items.Remove(i);
break;
}
}
}