summaryrefslogblamecommitdiff
path: root/npc/018-2-1/dustman.txt
blob: c6b24dcf75dfe8e3661c66013fb5764571bf1a60 (plain) (tree)
1
2
3
4
5
6
7
8
9
10




                    
                                   

                                                      

                             
         











                                                                                                




                                                                     
                                                                                                                                           




                                         
         
                                                                                                                                              

         

                                                                                                                                          


                   
                                           
                                             
                   
                 
                                                                                                              

                                                                                                                                                     
                                                                                    









                                                                                                      
                                     


                           

             
                                                                                                                                  


                                                                                                
                                                                                                                                         
                                                                                                                                           






                                                                                                                                        


                                                                                                                           
                                                                                                                                       



                                   
                                              

         

          
      
           
                                       


                                                                  





                                                                                                                           

                             
         
                                                                                           
         
                                       
             
                                                                                                                                                   

                                                                                                          

                                
                                                                                                                                      

                                                     

             
                                                                                                                           


                                                                                                 


                           


                                































                                                                                                                                          


          


                









                                                             
        




                           

 
// TMW2/LoF scripts.
// Authors:
//    TMW-LoF Team
//    Jesusalva
// Description:
//    Take care of hardcore players

018-2-1,22,29,0	script	Colonel DUSTMAN	NPC_CRUSADER,{
    .@cod=getq(LoFQuest_COD);
    .@hh=getq(LoFQuest_HH);
    mesn;
    mesq l("Hello adventurer. Are you interested in the Heroes Hold, or in the Call Of Dusty?");
    next;
    select
        l("Heroes Hold"),
        l("Call Of Dusty"),
        l("Neither, sorry");
    if (@menu == 3)
        close;
    else if (@menu == 2)
        goto L_COD;

    mes "";
    if (BaseLevel < 40) {
        mesn;
        mesq l("Well, my men went down and still haven't returned.");
        next;
        mesn;
        mesq l("I'm worried with them. Anyway, I think only heroes are allowed inside, and you are a few levels short of being a Hero...");
        next;
        mesn;
        mesq l("Take care, adventurer!");
        close;
    }
    mesn;
    mesq l("This whole region is called the Heroes Hold. It's designed for hard core, bragging-rights-hunters, high level, supreme players.");
    next;
    mesn;
    mesq l("This is the main hall. Below this stairs, you'll find the Heroes Hold Main Dungeon. It's a cave in a... uhm. Water.");
    mesq l("I thought it was meant to be lava, this being in the Land Of Fire and all, but seems like someone must bug Saulc to fix it.");
    if (.@hh > 0) {
        next;
        mesn;
        mesq l("Hm, good luck out there.");
        if (getq2(LoFQuest_HH) & HH_MASTER) {
            mes "";
            mesn;
            mesq l("I see you finished the Master Dungeon and didn't found my men. I'll think on something.");
            mesq l("Unfortunately, the main reward of this quest is still a ##1Work In Progress##0.");
            mesq l("However, I can restart the Heroes Hold, if you want. You'll get a reward, but will need to start from scratch. Should I do it?");
            inventoryplace SilverGift, 1, MercBoxA, 5, CasinoCoins, 3, HeroCoin, 60;
            next;
            if (askyesno() == ASK_YES) {
                mes "";
                mesn;
                mesc l("@@ hits himself in the head and forgot you ever went after his men.", .name$);
                //setq2 LoFQuest_HH, HH_MASTER;
                setq LoFQuest_HH, 0, 0;
                getitem SilverGift, 1;
                getitem MercBoxA, 5;
                getitem CasinoCoins, 3;
                getitem HeroCoin, 60;
            }
        }
    } else if (.@hh == 0) {
        next;
        mesn;
        mesq l("So, let's return to the business at hand. My men went down and haven't returned. That was long ago, by the way.");
        mesq l("I can send you to at least five from the seven cave levels this dungeon have.");
        next;
        mesn;
        mesq l("Do you want to try to find them? Just search the first five floors: Novice, Intermediary, Advanced, Expert and Master.");
        mesq l("The Supreme and Ultimate floors are just a WIP bonus. So if you don't find them on the five and report back, that'll do.");
        next;
        mesc l("Accept quest?");
        if (askyesno() == ASK_YES) {
            mes "";
            mesn;
            mesq l("Wonderful! You must finish Novice, Intermediary, Advanced and Expert levels before I unlock Master level for you.");
            mesq l("I don't really understand how the dungeon works. I promise you a reward when you finish the task.");
            next;
            mesc l("You need to choose a Heroes Hold Group. This currently makes absolutely no difference whatsoever."), 1;
            mesc l("However, each group may be expanded later. You can reset group by clearing the Master Floor.", 1);
            mesc l("PS. The group names still aren't set. You're free to pinch in suggestions at LoF Discord (Legacy #discussion) :>");
            next;
            select
                l("The Loyalists"),
                l("The Wildlife");
            setq LoFQuest_HH, 1, 0, (@menu-1);
        }
    }
    close;

L_COD:
    mes "";
    if (BaseLevel >= 50 && .@cod < 1) {
        mesn;
        mesq l("Hey, do you know the ##BCall Of Dusty##b event?");
        next;
        if (#RARE_POINTS || countitem(TimeFlask)) {
            mesn;
            mesq l("Also, you seem like you are from around LoF. Why don't you take a free @@?", getitemlink(BottledDust));
            next;
            getitem BottledDust, 1;
        }
        setq LoFQuest_COD, 1;
    }
    mesn;
    mesq l("Just @@ ago, thieves stole Pihro & Pyndragon weapons.", FuzzyTime(1542570030));
    next;
    if (BaseLevel >= 50 && .@cod < 2) {
        mesn;
        mesq l("Pyndragon said he'll craft a @@ to whoever reduces them to dust. Interested?", getitemlink(Dustynator)); // BottledDust, Dustynator
        mesc l("Note: Dustynator is a high level weapon. You might not have enough level to use it yet.");
        next;
    } else if (BaseLevel < 50) {
        mesn;
        mesq l("It was a real problem, threatening them to go out of business. I think they are trying to recover the lost weapons.");
        mesc l("Attain level 50 to try this quest.");
        close;
    } else {
        mesn;
        mesq l("You should kill them and collect @@ to obtain the @@.", getitemlink(BottledDust), getitemlink(Dustynator));
        mesc l("Note: Killing enemies there with the Dustynator grants more dusty in a bottle.");
        next;
    }

    mes "";
    // TODO check if active
    if (askyesno() == ASK_YES) {
        mes "";
        mesn;
        mesq l("Do you need a refresher of the rules?");
        if (askyesno() == ASK_YES) {
            mes "";
            mesn;
            mesc l("Call Of Dusty is a timed event quest. It begins hourly, when the minute clock marks zero.");
            mesc l("When the boss is defeated, or the minute clock marks fifteen, event ends.");
            next;
            mesn;
            mesc l("This is a @@, meaning only the victor party will receive the great prize.", b(l("Party Quest")));
            mesc l("You will get @@ which can then be exchanged for items once CoD event quest ends.");
            next;
            mesn;
            mesc l("You need be at minimum level 50 to participate. It is PVP, so watch out!");
            mesc l("The first stage is on the desert canyons. You must give a full circle on the canyon in 90 seconds.");
            mesc l("The second stage is in the first cave to northwest you can find.");
            // The full circle have about 268 tiles in distance. You have the needed time to do 2.2 circles in the most efficient fashion.
            // This means you have a time worth of 590 tiles, at 150ms, granting you 90 seconds to do this quest. (everything rounded up)
            next;
            mesn;
            mesc l("Once inside the BOSS Cave, you get a five minutes time limit to slay the boss with your party.");
            mesc l("@@. PK, however, is allowed!", b(l("Only the party from the MVP will get the reward.")));
            next;
            mesc l("The MVP is the player who did more damage to the boss.");
            mesc l("The title is transferred when the MVP is killed (either in PVP or by the boss), or when time runs out.");
            next;
            mesn;
            mesc l("The boss can blind players. Blind will reduce hit rate and evasion in 25%.");
            mesc l("Form the strongest party and win! Remember that if you don't kill the boss, you'll never win!");
            next;
        }
        mes "";
        mesc l("ERROR: NYI: Not Yet Implemented"), 1;
    }
    close;

OnInit:
    .sex=G_MALE;
    .distance=5;
    .state=0; // 0- Closed, 1- Open TODO begin at right state
    end;

OnMinute00:
    .state=1;
    // TODO: spawn
    end;

OnMinute15:
    .state=0;
    end;

OnMinute30:
    debugmes "CoD Cleanup";
    end;

}