var status = -1;

function start(mode, type, selection) {
    status++;
    if (mode == 0 && type == 0) {
        status -= 2;
    } else if (mode != 1) {
        //if (mode == 0)
        qm.sendNext("#b(You need to think about this for a second...)#k");
        qm.dispose();
        return;
    }

    if (status == 0) {
        qm.sendNext("Why do I look like this, you ask? I don't want to talk about it, but I suppose I can't hide from you since you're my master.");
    } else if (status == 1) {
        qm.sendNextPrev("While you were trapped inside ice for hundreds of years, I, too, was frozen. It was a long time to be away from you. That's when the seed of darkness was planted in my heart.");
    } else if (status == 2) {
        qm.sendNextPrev("But since you awoke, I thought the darkness had gone away. I thought things would return to the way they were. But I was mistaken...");
    } else if (status == 3) {
        qm.sendAcceptDecline("Please, Aran. Please stop me from becoming enraged. Only you can control me. It's getting out of my hands now. Please do whatever it takes to #rstop me from going berserk#k!");
    } else if (status == 4) {
        var em = qm.getEventManager("MahaBattle");
        if (!em.startInstance(qm.getPlayer())) {
            qm.sendOk("There is currently someone in this map, come back later.");
        } else {
            qm.startQuest();
        }

        qm.dispose();
    }
}

function end(mode, type, selection) {
    status++;
    if (mode == 0 && type == 0) {
        status -= 2;
    } else if (mode != 1) {
        //if (mode == 0)
        qm.sendNext("#b(You need to think about this for a second...)#k");
        qm.dispose();
        return;
    }

    if (status == 0) {
        qm.sendNext("Thank you, Aran. If it weren't for you, I would have become enraged and who knows what could have happened. Thank you, NOT! It's only your duty as my master...");
    } else if (status == 1) {
        qm.sendYesNo("Anyway, I just noticed how high of a level you've reached. If you were able to control me in my state of rage, I think you're ready to handle more abilities.");
    } else if (status == 2) {
        if (!qm.isQuestCompleted(21401)) {
            if (!qm.canHold(1142132)) {
                qm.sendOk("Wow, your #bequip#k inventory is full. I need you to make at least 1 empty slot to complete this quest.");
                qm.dispose();
                return;
            }
            if (!qm.canHold(2280003, 1)) {
                qm.sendOk("Hey, your #buse#k inventory is full. I need you to make at least 1 empty slot to complete this quest.");
                qm.dispose();
                return;
            }

            qm.gainItem(1142132, true);
            qm.gainItem(2280003, 1);
            qm.changeJobById(2112);

            qm.completeQuest();
        }
        qm.sendNext("Your skills have been restored. Those skills have been dormant for so long that you'll have to re-train yourself, but you'll be as good as new once you complete your training.");
    } else if (status == 3) {
        qm.dispose();
    }
}

function spawnMob(x, y, id, map) {
    if (map.getMonsterById(id) != null) {
        return;
    }

    const LifeFactory = Java.type('server.life.LifeFactory');
    const Point = Java.type('java.awt.Point');
    var mob = LifeFactory.getMonster(id);
    map.spawnMonsterOnGroundBelow(mob, new Point(x, y));
}