summaryrefslogtreecommitdiff
path: root/npc/003-0/paladin.txt
blob: 38dfbd7cf888c14fc4f97ad979ca6a9d0a310604 (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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
// TMW2 scripts.
// Authors:
//    Jesusalva
// Description:
//    Leader of the PALADIN class

003-0,34,37,0	script	Paladin Master	NPC_PLAYER,{
    if (!(MAGIC_SUBCLASS & CL_PALADIN))
        goto L_SignUp;
    goto L_Member;

// Sign Up
L_SignUp:
    // Not allowed if subclass filled or not from main class
    if (total_subclass() >= max_subclass() || getskilllv(MAGIC_WARRIOR) < 2)
        goto L_Close;
    mesn;
    mesq l("Hey there! Do you want to join the Paladin Class?");
    mesc l("Warning: If you join a subclass, you can't leave it later!"), 1;
    next;
    if (askyesno() != ASK_YES)
        close;
    // TODO: Requeriment for signing up to a subclass? Or is the tier quest hard enough?
    MAGIC_SUBCLASS=MAGIC_SUBCLASS|CL_PALADIN;
    mesn;
    mesq l("Welcome to the paladin guild!");
    close;

// Close
L_Close:
    goodbye;
    closedialog;
    close;

// Membership area
// Paladin
//  CR_TRUST (raise Max HP in 200 and Holy Resistance in 5%, passive)
//  AL_ANGELUS (DEF Increase 5% for	15s/LVL, 14x14 area for PARTY)
//  PR_REDEMPTIO (suicide with death penalty. Revive dead party members on a 29x29 area. Min. 1% xp. 0.01% xp penalty reduction per revive)
//  MER_INCAGI (raise agi and move speed for 20s/LVL. Have an HP cost.)
//  SM_BASH up to level 4 (+220% dmg and +20% acc). PS. If you have MP, SM_BASH is very powerful.

L_Member:
    mesn;
    mesq l("Hey there! Do you want to learn new skills for a very small teaching fee?");
    select
        rif(sk_intcost(SM_BASH) && sk_canlvup(SM_BASH), l("Improve Bash Skill"),
        rif(sk_intcost(AL_ANGELUS) && sk_canlvup(AL_ANGELUS), l("Improve Party Area Defense"),
        rif(sk_intcost(MER_INCAGI) && sk_canlvup(MER_INCAGI), l("Improve Increase Agility"),
        rif(sk_intcost(PR_REDEMPTIO) && !getskilllv(PR_REDEMPTIO), l("Learn Redemption"),
        rif(sk_intcost(CR_TRUST) && !getskilllv(CR_TRUST), l("Learn Last Standing Man"),
        l("Nothing at the moment.");
    mes "";
    switch (@menu) {
        case 1:
            // TODO: Requirem, quest, agree
            sk_lvup(SM_BASH);
            break;
        case 2:
            // TODO: Requirem, quest, agree
            sk_lvup(AL_ANGELUS);
            break;
        case 3:
            // TODO: Requirem, quest, agree
            sk_lvup(MER_INCAGI);
            break;
        case 4:
            // TODO: Requirem, quest, agree
            sk_lvup(PR_REDEMPTIO);
            break;
        case 5:
            // TODO: Requirem, quest, agree
            sk_lvup(CR_TRUST);
            break;
        default:
            goto L_Close;
    }

    goto L_Member;

OnInit:
    .@npcId = getnpcid(0, .name$);
    setunitdata(.@npcId, UDT_HEADTOP, WarlordHelmet);
    setunitdata(.@npcId, UDT_HEADMIDDLE, WarlordPlate);
    setunitdata(.@npcId, UDT_HEADBOTTOM, NPCEyes);
    setunitdata(.@npcId, UDT_WEAPON, JeansChaps);
    setunitdata(.@npcId, UDT_HAIRSTYLE, 2);
    setunitdata(.@npcId, UDT_HAIRCOLOR, 4);

    .sex=G_MALE;
    .distance=5;
    end;
}