7. 工房の状態を読む

ここからは練習用の数を使う代わりに自分の工房を調べます。まずは今使える鉱石の量を読みましょう。調べるだけなら採掘も加工も始まりません。

長い名前を分けて読む

Workshop.Resources[ResourceKind.Ore].Availableは今使える鉱石の量です。次のように対象を順に選んでいます。

部分意味
Workshop自分の工房
.Resources工房の資源一覧
[ResourceKind.Ore]一覧の中の鉱石
.Availableほかの仕事に予約されていない量

ドット.はその対象の中にある名前を選ぶ記号です。角括弧[ ]は一覧から対象を選びます。ResourceKind.Oreはゲームが決めた鉱石の名前なので、そのまま書きます。

ゲームが自律術式に用意している状態の読み方や操作の呼び方を「API」と呼びます。名前をすべて暗記する必要はありません。必要なものをAPIリファレンスで調べられます。

読んだ量を条件に使う

ArcaneScript
public class Program : ArcaneProgram
{
    public void OnStart()
    {
        var ore = Workshop.Resources[ResourceKind.Ore].Available;
        if (ore >= 10)
        {
            Workshop.Log.Write("Enough ore.");
        }
        else
        {
            Workshop.Log.Write("Need more ore.");
        }
    }
}

var ore = ...;は右側の値から型を決めて変数を作る書き方です。この場合はゲームの資源量を扱うAmount型になります。数の大小は前の章のintと同じように比べられます。

実行したときに使える鉱石が10以上ならEnough ore.、10未満ならNeed more ore.と表示します。この術式は量を読むだけなので、鉱石は減りません。

oreには読んだ時点の量が入ります。その後に鉱石が増えても、oreの値は自動では変わりません。最新の量が必要ならもう一度Availableを読みます。

TotalとAvailable

Totalは予約中の入力素材も含めた所持量、Availableは予約されていない使用可能量です。例えば鉱石を20持ち、そのうち10が加工用に予約されていれば、Totalは20、Availableは10です。どちらにも未完成の製品は含まれません。

材料が足りるか調べるときはAvailableを使います。

練習問題

鉱石のTotalが20、Availableが8のとき、例の術式はどちらの文章を出すでしょうか。

解答例を表示する解答例を閉じる

Need more ore.を出します。読んでいるのはAvailableなので、条件は8 >= 10となり、falseです。