summaryrefslogblamecommitdiff
path: root/world/map/npc/033-1/birrod.txt
blob: f560b0d052bca60828b7aa5fa68135d8b5cdaf7e (plain) (tree)
1
2
3
4
5
6
7
8
                                     
                                 

                                            
 
                                                                                 

                          
























                                                                                                                    

         



                                                                                                     

         




                                                           
 
                                                     
         



























                                                                                                                                            

          

                                                                                       


                                                                                                    


















                                                                                                                              

            

















                                                                                                                 
         



                                                                                                                             
         



                               
            







                                                                                      
         



                                                                                    
         



                                    
            







                                                                                                                                      
            



                                            
            



                                     
         



                                                  
           




                                                             
            



                                                          
         



                                              
            


                                 
           




                                                                    
         



                            
            



                     
            


                                                     
           










                                                                                                                     

            

                                                                 

           

                                                                                                
 
            






                                                                                                                        

            




                                                                                       
 
        
          


                             
                                                      


                                                  
033-1.gat,72,27,0|script|Birrod|217,{
//TODO: minimum level for quests?
    set @Q_Barbarians_MASK, NIBBLE_0_MASK;
    set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT;

    set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT);

//TODO: think about amount
    set @candy, 25;
    set @chocolate, 20;
    set @candycane, 15;
    set @sweet_exp, 10000;

// different idea: wolf ambushs on 034-1
//TODO    set @wolfdrop, ;
//TODO    set @wolf_exp, ;

    set @minigame_exp, 5000;

    if (@state >= 6) goto L_Impressed;
    if (@state == 5) goto L_Questions;
    if (@state == 4) goto L_Warrior;
    if (@state == 3) goto L_Sweets;
    if (@state == 2) goto L_Kimarr;
    if (@state == 1) goto L_Fluffy;

    mes "[Barbarian]";
    mes "\"Welcome. My name is Birrod, warrior of the Mangarr.\"";
    next;
    mes "\"We usually live high up in the snowy mountains, but we need to solve a problem, so we came down here.\"";
    next;
    mes "\"But this shouldn't concern you.\"";
    close;

L_Fluffy:
    mes "[Birrod]";
    mes "\"Kimarr asked you to perform the fluffy hunting? I'm curious how you're going to do it.\"";
    mes "He grins.";
    close;

L_Kimarr:
    mes "[Birrod]";
    mes "\"Great! Very well done! Welcome to our tribe.\"";
    next;
    mes "\"But I think, Kimarr has something for you.\"";
    close;

// TODO: decide whether to leave out this part or not
L_Sweets:
    mes "Birrod speaks with a lowered voice.";
    mes "[Birrod]";
    mes "\"" + strcharinfo(0) + ", can I ask you for a favor?\"";
    next;
    mes "\"I noticed those slime things with the funny hats. And they have so tasty stuff with them!\"";
    next;
    mes "He blushes.";
    mes "[Birrod]";
    mes "\"A warrior shouldn't get excited about sweets, so ahm, it would be great if you don't tell Yerrnk and Kimarr about it.\"";
    next;
    mes "\"Do you have " + @candy + " Candys, " + @chocolate + " Chocolate Bars and " + @candycane + " Candy Canes for me?\"";
    menu
        "Sure.",-,
        "I'll see what I can do.",L_Close,
        "I'm a great warrior, I don't have sweets with me!",L_Close;

    if ((countitem("Candy") < @candy) || (countitem("ChocolateBar") < @chocolate) || (countitem("CandyCane") < @candycane)) goto L_No_Items;
    delitem "Candy", @candy;
    delitem "ChocolateBar", @chocolate;
    delitem "CandyCane", @candycane;
    getexp @sweet_exp, 0;
    set @state, 4;
    callsub S_Update_Mask;
    mes "[Birrod]";
    mes "\"Thank you!\"";
    mes "He puts the sweets in his pockets covertly.";
    mes "Then takes one candy and eats it with such a delighted look on his face that's really hard not to burst out in laughter.";
    close;

L_Warrior:
// TODO: player can show his fighting abilities by bringing some drop of wolve monsters
// different idea: wolf ambushs on 034-1
// wolve monsters are more dangerous and harder to hunt than fluffies -> harder task
// reason to hunt them: there unusual aggressive and are a danger for the people living in that area
// also use of the items the drop (e.g. fur -> clothes)
    mes "[Birrod]";
    mes "\"Hello, " + strcharinfo(0) + "! Would you like to prove your hunting skills again?\"";
    next;
// TODO: check name of monster
    mes "\"I noticed many wolverns in this area. When there are so many of them, they reduce the fluffy population too much.";
    mes "Also they are dangerous to all the small people who live in the town nearby.\"";
    next;
    mes "\"Bring me (amount) (TODO:drop of wolvern).";
    mes "alternative: hunt (amount) of the aggressive wolverns in forest in the west.";
    mes "TODO: add story about what useful can be done with that drop.";
    menu
        "Debug succes",-,
        "Debug no succes",L_Close;
    set @state, 5;
    callsub S_Update_Mask;
    if (getskilllv(SKILL_POOL) == 0) goto L_Not_Ready;
    mes "[Birrod]";
    mes "\"Your skills are impressing. You are worthy to be called a warrior of the Mangarr, if you accept.\"";
    next;

L_Questions:
    if (getskilllv(SKILL_POOL) == 0) goto L_Not_Ready;
    mes "Birrod has a very ceremonial look on his face.";
    mes "[Birrod]";
    mes "\"" + strcharinfo(0) + ", are you ready to become a full-fledged member of our tribe, the Mangarr?\"";
    menu
        "Yes, what do I need to do?",-,
        "That's why I'm here.",-,
        "Sorry, I have to go. See you.",L_No_Member;
    mes "Birrod nods earnestly.";
    mes "[Birrod]";
    mes "\"I will ask you some questions.";
    mes "Think well and be honest, because it will depend on your answers if you will be considered worthily.\"";
    next;
    mes "\"What's the most important thing for a true warrior?\"";
    menu
        "Strength!",L_Fail11,
        "A good weapon.",L_Fail12,
        "Braveness.",L_Success11;
L_Fail11:
    mes "[Birrod]";
    mes "\"Strength is indeed important for a warrior. But before you can show strength, you need to have something else.\"";
    next;
    goto L_No_Member;
L_Fail12:
    mes "[Birrod]";
    mes "\"Are you kidding?\"";
    next;
    goto L_No_Member;
L_Success11:
    mes "[Birrod]";
    mes "\"Wise words.\"";
    next;
    mes "\"What would you do if you are wounded but Yetis are attacking our tribe?\"";
    menu
        "Run as fast as I can.",L_Fail21,
        "Fight no matter what.",L_Fail22,
        "Try to hold them back until everyone is safe, then retreat.",L_Success21;
L_Fail21:
    mes "[Birrod]";
    mes "\"You will never get a accepted member of our tribe with that attitude.\"";
    next;
    goto L_No_Member;
L_Fail22:
    mes "[Birrod]";
    mes "\"Honorably but stupid.\"";
    next;
    goto L_No_Member;
L_Success21:
    mes "[Birrod]";
    mes "\"Right.\"";
    next;
    mes "\"When you are on a hunting trip with your comrades and it's time to set up a camp in the evening, what things do you do?\"";
    menu
        "Take care of everyone who got wounded.",L_Success31,
        "Pitch the tent and make a fire.",L_Success32,
        "Lay down and rest.",L_Fail31;
L_Success31:
    mes "[Birrod]";
    mes "\"You're a caring person. Good.\"";
    next;
    goto L_Success3;
L_Success32:
    mes "[Birrod]";
    mes "\"You're diligent, good.\"";
    next;
    goto L_Success3;
L_Fail31:
    mes "[Birrod]";
    mes "\"You wouldn't make friends that way.\"";
    next;
    goto L_No_Member;
L_Success3:
    mes "\"What is your goal in life?\"";
    menu
        "Learning new things and see the world.",L_Success41,
        "Becoming as powerful as I can.",L_Fail41,
        "Protect the ones I love.",L_Success42;
L_Success41:
    mes "[Birrod]";
    mes "\"You're curious. An attribute we appreciate.\"";
    next;
    goto L_Success4;
L_Fail41:
    mes "[Birrod]";
    mes "\"You're seeking power? For what?\"";
    next;
    goto L_No_Member;
L_Success42:
    mes "[Birrod]";
    mes "\"An honorable goal.\"";
    next;
L_Success4:
    mes "\"What do you think is a good reason to fight and kill?\"";
    menu
        "Because I want it.",L_Fail51,
        "To survive.",L_Success51,
        "To protect someone in need.",L_Success52;
L_Fail51:
    mes "[Birrod]";
    mes "\"You think so?\"";
    next;
    goto L_No_Member;
L_Success51:
    mes "[Birrod]";
    mes "\"Right.\"";
    next;
    goto L_Success5;
L_Success52:
    mes "[Birrod]";
    mes "\"Yes, that's the most honorable reason.\"";
    next;
L_Success5:
    getexp @minigame_exp, 0;
    setskill SKILL_WARRIOR_RAGING, 1;
    set @state, 6;
    callsub S_Update_Mask;
    mes "You feel an exciting vim inside of you.";
    mes "[Birrod]";
    mes "\"You are now a warrior of the Mangarr.\"";
    next;
    mes "\"Therefore you gain the ability to put back your own safety for Raging in battle with a tremendous power.";
    mes "This power now lies within you, waiting for someone to help you focusing on it.\"";
    close;

L_Impressed:
    mes "\"I'm very proud of you being a member of the tribe.\"";
    close;

L_No_Items:
    mes "\"" + strcharinfo(0) + ", remember that a member of our tribe is candid and honest.\"";
    close;

L_Not_Ready:
    mes "[Birrod]";
    mes "\"" + strcharinfo(0) + ", you've shown that you have great hunting skills and are an enrichment to our tribe.";
    mes "But you still lack the needed mental skills to become a full member of our tribe.\"";
    next;
    mes "\"Roam this world to find more experienced persons than yourself to learn new things.";
    mes "Then come back when you've gained the ability to focus your mind.\"";
    close;

L_No_Member:
    mes "Birrod shakes his head.";
    mes "[Birrod]";
    mes "\"Think again about your position in our tribe and what you want to achieve.";
    mes "Come back when you feel better prepared.\"";
    close;

L_Close:
    close;

S_Update_Mask:
        set QUEST_Barbarians,
            (QUEST_Barbarians & ~(@Q_Barbarians_MASK))
                | (@state << @Q_Barbarians_SHIFT);
        return;
}