保護 読み取り専用instrumentこの操作で働きかけに使われる物(11.5節)。伴わない操作には居ない(型引数がundefinedになる)。
保護 読み取り専用relation誰がこの操作をしていて、誰に、何を使っているか(11.5節)。問い合わせも実行も、これを張った 状態で行う——押す前に見せる分数と実際に進む分数を同じ数にするため(同節)。
保護 読み取り専用triggerこの操作を起こしたきっかけ。宣言はここからぶら下がる。
保護def保護selfこの操作を宣言している側の個体(self=patient)。
自分の相手に続けてfollowers(同じ束の仲間)を重ねるとき、続けて実行できる個数(自分を含む)。
allow_multiple(12.4節)を宣言していなければ1までになる。
落とす前に「何枚ついてくるか」を決めるための問い。枠の受け入れ個数を訊く WorldObject.acceptedCountForMoveToIncludingSelfと同じ形。
今このまま実行してよいか。要件(14節)を満たしているだけでなく、1個は受け取れること
——器へ入らないまま相手を消す操作(満杯の炉へ薪をくべる)が、黙って薪だけ失う結果になるのを
防ぐ(DragTrigger.acceptedCount)。
受け取れる個数が0なのは断る理由であって、候補から外す条件ではない。 理由を宣言した要件が
同時に落ちているなら、落とし先としては残る(WorldObject.refusedCombinationsWith)。
自分の相手に続けてfollowersに対しても、同じ宣言を繰り返す(12.4節)。
1つ実行するたびに世界が変わるので、都度まだ成立するかを見直し、成立しなくなった時点で止める ——満杯になった炉へ薪をくべ続けて、黙って薪だけ失うことにならないように。
戻り値: 実行できた個数。
実行にかかるゲーム内時間(分)。durationを省いていれば0。実行前に見せる用途にも使う。
この宣言が今起こすことが在るか(become の行き先に型が居る、9.9節)。無いものは候補にすら
ならない——落とせるのに何も起きない、にならないため(WorldObject.candidateCombinationsWith)。
要件(14節)も受け取れる個数も見ない。 どちらも「断る理由」になりうるので、ここで落とすと 理由が届かなくなる(ActionSystem.md 1.1節)。
印字のときに自分を名乗る形。差分に出るのを、どの操作かの1語に留める。
操作は素のまま深い比較へ渡されることがある(成立しないことを確かめる試験)。名乗らないと、 差分にはぶら下げている宣言と結び付けた相手が並び、赤の理由がその中に埋もれる。 名前だけを返すので、刷る側が辿る先はここで尽きる。
相手の型も実行の時点で引き直す。 候補に選ばれてから落とされるまでに、相手が別の型になっている
ことがある(become、9.9節)——宣言が要件を引き直すのと同じ理由。
今実行できない理由(最初に落ちた要件、14節)。実行できるならundefined。
相手(instrument)まで決まった組み合わせ1つ(GameElementDefinition.md 12節)。
型は合っている(相手として受け入れ、行き先も詰まっていない)ものしか作られない。要件(14節)まで 満たしているかは引き方が分ける——
WorldObject.combinationsWithは今成立するもの、refusedCombinationsWithは理由を告げて断るもの(14.6節)。どちらなのかはunmetRequirementが答える。