19-6 見えない罠(わな)をこえて①

解説動画

クエスト19の19-6から19-10で必要なブロック番号

解答コード

const LAVA_ID: number = 11;   // 溶岩
const LADDER_ID: number = 65; // はしご

player.onChat("19-6", function () {
    player.say("縦穴にはしごをかけながらおります");
    // 前置きの移動フェーズ: 縦穴の真上へ進み、さらに1段下りて初めて壁にはしごをかけられる位置になる
    agent.move(FORWARD, 1);
    agent.move(DOWN, 1);
    agent.setSlot(1); // このあとはスロット1に常に1個だけはしごを補充しながら使う

    let stepCount: number = 0;
    try {
        while (true) {
            // 現在位置は必ず溶岩ではない(溶岩の中で設置を試みることは起こらない)ので先に設置する
            agent.setItem(LADDER_ID, 1, 1);
            agent.place(FORWARD);
            stepCount = stepCount + 1;
            player.say(stepCount + "段目のはしごを設置しました");

            let belowId: number = agent.inspect(AgentInspection.Block, DOWN);
            if (belowId == LAVA_ID) {
                throw "溶岩を検出しました";
            }
            agent.move(DOWN, 1);
        }
    } catch (e) {
        player.say("例外を検出: " + e);
        player.say("溶岩が見つかったのでここで止まります");
    }
});