summaryrefslogblamecommitdiff
path: root/npc/014-2-2/gemini.txt
blob: ee6b56c624fcd810fab3684d0519f55cc65dc5de (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13












                                                   

                  

                                






                                         



                                           
                                  




















































                                                                                                                                        
                                       








                                      
// TMW2 scripts.
// Authors:
//    Jesusalva
// Description:
//    Gemini Sisters Quest - Central Core

034-1,0,0,0	script	#Gemini	NPC_HIDDEN,{
    end;

OnCoreInit:
    debugmes "CORE INIT, Inst = %d", instance_id();
    .@p = getcharid(1);
    instance_attach($@VALIA_INST[.@p]);
    @mystatus = 0;
    sleep2(200);
    if (!$@VALIA_STATUS[.@p])
        $@VALIA_STATUS[.@p] = 1;
    // FALLTHROUGH
OnCore:
    if (!compare(getmap(), "val")) end;
    .@p = getcharid(1);
    instance_attach($@VALIA_INST[.@p]);
    // Always true on first interaction
    // This handles new stages for person
    if (@mystatus != $@VALIA_STATUS[.@p]) {
        // No retroaction!
        @mystatus = $@VALIA_STATUS[.@p];
        switch ($@VALIA_STATUS[.@p]) {
        case 1: // Quest initiated
            // Spawn monsters
            areamonster("val1@"+.@p, 20, 20, 60, 60, strmobinfo(1, GreenSlime), GreenSlime, (BaseLevel/15), "Valia::OnGSlime");
            areamonster("val1@"+.@p, 20, 20, 70, 60, strmobinfo(1, LogHead), LogHead, (BaseLevel/15), "Valia::OnLHead");
            areamonster("val1@"+.@p, 20, 20, 70, 60, strmobinfo(1, ForestMushroom), ForestMushroom, (BaseLevel/12), "Valia::OnFShroom");
            areamonster("val1@"+.@p, 20, 20, 70, 60, strmobinfo(1, RedMushroom), RedMushroom, 1+(BaseLevel/30), "Valia::OnRShroom");
            break;
        case 2: // Looking for a runestone
            break;
        case 3: // Runestone was found
            getexp 8132, 657;
            break;
        case 4: // Desert unlocked, but no clue on what to do
            dispbottom l("You hear a noise from distance.");
            // Spawn monsters
            areamonster("val1@"+.@p, 100, 20, 170, 60, strmobinfo(1, CaveSnake), CaveSnake, 2, "Valia::OnCSnake");
            areamonster(getmap(), 100, 20, 170, 60, strmobinfo(1, MagicGoblin), MagicGoblin, 1, "Valia::OnMGoblin");
            // These refuse to respawn but are numerous
            // Thus far, the quest is still easy. But soon it won't be.
            areamonster(getmap(), 100, 20, 170, 60, strmobinfo(1, MountainSnake), MountainSnake, 1+(BaseLevel/24));
            areamonster(getmap(), 100, 20, 170, 60, strmobinfo(1, DarkLizard), DarkLizard, 1+(BaseLevel/20));
            areamonster(getmap(), 100, 20, 170, 60, strmobinfo(1, WickedMushroom), WickedMushroom, 1+(BaseLevel/32));
            areamonster(getmap(), 100, 20, 170, 60, strmobinfo(1, EliteDuck), EliteDuck, 1);
            break;
        case 6: // Passage Open
            if (countitem(SealedSoul))
                delitem SealedSoul, countitem(SealedSoul);
            dispbottom l("You hear waterfall opening in distance.");
            // FALLTHROUGH
        case 5: // JackO shows up
            getexp 32000, 1400;
            break;
        case 7: // Ambushed & Captured
            @lockpicks=false;
            // Prision Area
            .@m=any(Bandit, RobinBandit, SleepingBandit);
            areamonster("val2@"+.@p, 52, 93, 70, 98, strmobinfo(1, .@m), .@m, 1);
            .@m=any(Bandit, RobinBandit, SleepingBandit);
            areamonster("val2@"+.@p, 52, 93, 70, 98, strmobinfo(1, .@m), .@m, 1);
            // Ante-chamber
            areamonster("val2@"+.@p, 69, 96, 85, 107, strmobinfo(1, Bandit), Bandit, 1);
            .@m=any(Bandit, RobinBandit, SleepingBandit, RobinBandit);
            areamonster("val2@"+.@p, 69, 96, 85, 107, strmobinfo(1, .@m), .@m, 1);
            // Reception & Lord Desk
            areamonster("val2@"+.@p, 50, 30, 80, 75, strmobinfo(1, Bandit), Bandit, (BaseLevel/15));
            areamonster("val2@"+.@p, 50, 30, 80, 75, strmobinfo(1, RobinBandit), RobinBandit, (BaseLevel/25));
            // Whole Map
            areamonster("val2@"+.@p, 20, 24, 78, 72, strmobinfo(1, Archant), Archant, (BaseLevel/8));
            // Great Hall
            areamonster("val2@"+.@p, 25, 24, 50, 45, strmobinfo(1, RobinBandit), RobinBandit, (BaseLevel/22));
            areamonster("val2@"+.@p, 25, 24, 50, 45, strmobinfo(1, Assassin), Assassin, (BaseLevel/20));
            areamonster("val2@"+.@p, 25, 24, 50, 45, strmobinfo(1, Bandit), Bandit, (BaseLevel/18));
            areamonster("val2@"+.@p, 25, 24, 50, 45, strmobinfo(1, HoodedNinja), HoodedNinja, 1);
            break;
        case 8: // Bandit Key retrieved
            getexp 128000, 2000;
            break;
        }
    }
    addtimer(5000, "#Gemini::OnCore");
    end;
}