summaryrefslogtreecommitdiff
path: root/npc/018-5-boss/command.txt
blob: 119b14ffc7fe47fe7eaa4c9be98fc8a6cfee28d3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
// TMW-2 Script
// Author:
//  Jesusalva
// Description:
//  Controls the Yetifly Challenge to earn the right to access Lilit

// .@q = LilitQuest_Access
// 0 - Access not granted
//      q2 - Number of attempts
// 1 - Access granted
// 2 - Tree Minigame complete.

// It is always cast with an instance in mind
018-5-boss,0,0,0	script	#YetiFlyChallengeCtrl	NPC_HIDDEN,{
    end;

OnCleanUp:
    YETIFLY_INSTANCE=0;
    end;

OnWarn1:
    instance_announce(YETIFLY_INSTANCE, "On your marks!", 0);
    addtimer(2000, "#YetiFlyChallengeCtrl::OnWarn2");
    end;

OnWarn2:
    instance_announce(YETIFLY_INSTANCE, "READY?!", 0);
    addtimer(2000, "#YetiFlyChallengeCtrl::OnBegin");
    end;

OnBegin:
    instance_announce(YETIFLY_INSTANCE, "START!", 0);
    @YETIFLY_CYCLE=0;
    // No event is bound: Slaying the Yetifly is not planned and thus, without effect.
    // It'll vanish along the instance
    monster "lilt@"+getcharid(0), 33, 24, l("Yetifly the Mighty"), Yetifly, 1;
    addtimer(10000, "#YetiFlyChallengeCtrl::OnCycle");
    end;

OnCycle:
    if (!(compare(getmap(), "lilt") ) || ispcdead())
        end;
    @YETIFLY_CYCLE+=1;

    // Is it over? Were you victorious?
    if (@YETIFLY_CYCLE >= 6) {
        setq LilitQuest_Access, 1;
        getexp BaseLevel*425, JobLevel*190; // Reference: (35,25). Scalable reward.
        warp "018-5", 97, 70;
        mesn l("Yetifly the Mighty");
        mesq l("Not bad... You can now enter Lilit. If you think you can defeat me, climb the tree and meet me at the top!");
        close;
    }

    // Resume execution
    instance_announce(YETIFLY_INSTANCE, l("survive @@ seconds more!", (6-@YETIFLY_CYCLE)*10), 0);
    addtimer(10000, "#YetiFlyChallengeCtrl::OnCycle");
    end;

}