summaryrefslogblamecommitdiff
path: root/npc/003-0/trickmaster.txt
blob: da0c5dd3b10060cc9ad110c6d466e1b0c1eeb412 (plain) (tree)
1
2
3
4
5
6
7
8
9
10





                                   
                                                          


                           


                                                   
         
                                                                     



                             
           








                               
 
                    
                       



                                                                            



                                                                            
                            

                                                                            
                  



                                                                            

                                                        

                                                                            



                                                                            
 
                             
                                                             





                                                                            
                

                                                                               

                                  


                       




          
                                                                    







                                                                                                                                                     






















































                                                                                  






                    
// TMW2 Script
// Author:
//  Jesusalva
// Description:
//  Trickmaster of Tricksters Class

003-0,35,42,0	script	Trickmaster	NPC_SITTED_NINJA,{
    function basicMagic;
    function standardMagic;
    function advancedMagic;
    mes l(".:: Trickster Class ::.");
    mesc l("Specialized in miscellaneous skills.");
    next;
    mesn;
    mesc l("You have @@ magic skill points available.", sk_points());
    select
        l("Basic Tricks"),
        l("Standard Tricks"),
        l("Advanced Tricks");
    mes "";
    .@lv=@menu;
    do {
    // Display appropriate menu
    if (.@lv == 1)
        basicMagic();
    else if (.@lv == 2)
        standardMagic();
    else if (.@lv == 3)
        advancedMagic();

    // Handle result
    switch (@menuret) {
        case TMW2_MANABOMB:
            if (!mlearn(TMW2_MANABOMB, 1, 1, SulfurPowder, 1))
                mesc l("You do not meet all requisites for this skill."), 1;
            break;
        case SA_FREECAST:
            if (!mlearn(SA_FREECAST, 1, 1, Lockpicks, 1))
                mesc l("You do not meet all requisites for this skill."), 1;
            break;
        case TF_BACKSLIDING:
            if (!mlearn(TF_BACKSLIDING, 1, 1, Lockpicks, 1))
                mesc l("You do not meet all requisites for this skill."), 1;
            break;
        case MG_FIREWALL:
            if (!mlearn(MG_FIREWALL, 10, 1, Lockpicks, 1))
                mesc l("You do not meet all requisites for this skill."), 1;
            break;
        case AC_VULTURE:
            if (!mlearn(AC_VULTURE, 1, 1, Lockpicks, 1))
                mesc l("You do not meet all requisites for this skill."), 1;
            break;
        case ALL_FULL_THROTTLE:
            if (!mlearn(ALL_FULL_THROTTLE, 1, 1, Lockpicks, 1))
                mesc l("You do not meet all requisites for this skill."), 1;
            break;

        case GC_DARKILLUSION:
            if (!mlearn(GC_DARKILLUSION, 3, 2, Lockpicks, 1))
                mesc l("You do not meet all requisites for this skill."), 1;
            break;
        case NV_TRICKDEAD:
            if (!mlearn(NV_TRICKDEAD, 1, 2, Lockpicks, 1))
                mesc l("You do not meet all requisites for this skill."), 1;
            break;
        default:
            if (@menuret)
                Exception("ERROR skill not implemented", RB_DEFAULT|RB_SPEECH);
            else
                closeclientdialog;
            break;
    }
    } while (@menuret);
    close;

L_NoMagic:
    next;
    mesn;
    mesq l("You do not have enough magic power for these classes.");
    next;
    mesn;
    mesq l("Besides the Magic Council, Andrei Sakar have his own Mana Stone, but I doubt he would train the likes of you, or share his Mana Stone.");
    next;
    mesn;
    mesq l("Perhaps, in the city, someone knows rumors about Mana Stones and can teach you. Other than that, you're on your own.");
    close;

function basicMagic {
    mes l(".:: Mana Bomb ::.");
    mesc l("Converts all your mana in damage. Damages all enemies in same tile.");
    mes "";
    mes l(".:: Free Cast ::.");
    mesc l("Allows to attack right after casting.");
    mes "";
    mes l(".:: Backsliding ::.");
    mesc l("Instantly jumps 5 tiles backwards.");
    mes "";
    mes l(".:: Nature Wall ::.");
    mesc l("Create a natural wall under the cursor, to delay your enemies.");
    mes "";
    mes l(".:: Archers Eye ::.");
    mesc l("Increase bow range and accuracy.");
    mes "";
    menuint
        "Mana Bomb", TMW2_MANABOMB,
        "Free Cast", SA_FREECAST,
        "Backslidng", TF_BACKSLIDING,
        "Nature Wall", MG_FIREWALL,
        "Archers Eye", AC_VULTURE,
        "Cancel", 0;
    return;
}

function standardMagic {
    if (!MAGIC_LVL) goto L_NoMagic;
    mes l(".:: Full Throttle ::.");
    mesc l("An emergency skill which temporaly raises all your stats.");
    mes "";
    mes l(".:: Sudden Attack ::.");
    mesc l("Instantly jumps to target and delivers an attack.");
    mes "";
    mes l(".:: Trick Dead ::.");
    mesc l("Plop dead in the ground. Enemies won't attack you this way.");
    mes "";
    menuint
        "Full Throttle", ALL_FULL_THROTTLE,
        "Sudden Attack", GC_DARKILLUSION,
        "Trick Dead", NV_TRICKDEAD,
        "Cancel", 0;
    return;
}

function advancedMagic {
    if (MAGIC_LVL < 2) goto L_NoMagic;
    mes l(".:: There are no skills ::.");
    mesc l("You can bug Jesusalva to extend the Battlefield Control skills.");
    mes "";
    menuint
        "none", 0;
    return;
}

OnInit:
    .sex = G_FEMALE;
    .distance = 5;
    end;

}