summaryrefslogblamecommitdiff
path: root/world/map/npc/functions/barber.txt
blob: 477b4a7bcd2d04033c6df593c015f2d442a56c1c (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12

                                                                      
 
                                                                          
                                                          
 





                                                                       

                                         
 



                                           
                                   








                                                                                           



                                   
 
        



















                                            
                              


                                     


                            





                                       
 
            
                                            

                
        












                          
                   


                                     


                            



                                       
                                      
                
 
            
                                           

                
       

                 












                                                                            
                                    

                                                                          

                                                                    
           
 
// The Barber script has been around since before the repository split
// so it's hard to figure out who wrote it.

// o11c updated it according to new scripting standards while adding pink.
// ... and added the code that shows your old color/style.

// Note: there is a soft limit of 12 colors (0-11) and 20 styles (0-19)
// This is the number that can be set when creating a character
// or using GM commands, but scripts (such as this one) can set
// any value 0-255

function|script|Barber|{
    set @style, getlook(LOOK_HAIR_STYLE);
    set @color, getlook(LOOK_HAIR_COLOR);

    set @style$, "Unknown";
    set @color$, "Unknown";
    if (@style >= 0 && @style < 20)
        set @style$, $@HairStyles$[@style];
    if (@color >= 0 && @color < 20)
        set @color$, $@HairColors$[@color];
    if (@color == 127)
        set @color$, "Shocked White";

    mes "Your current style is " + @style$ + " and your current color is " + @color$ + ".";
    set @style$, "";
    set @color$, "";

L_Main:
    menu
        "Change my style", L_Style,
        "Change my color", L_Color,
        "Nah, I'm fine", L_Done;

L_Style:
    menu
        "Bald", -,
        "Flat ponytail", -,
        "Bowl cut", -,
        "Combed back", -,
        "Emo", -,
        "Mohawk", -,
        "Pompadour", -,
        "Center parting/Short and slick", -,
        "Long and slick", -,
        "Short and curly", -,
        "Pigtails", -,
        "Long and curly", -,
        "Parted", -,
        "Perky ponytail", -,
        "Wave", -,
        "Mane", -,
        "Bun", -,
        "Shoulder Length Flick", -,
        "Fizzy", -,
        "Long and Clipped", -,
        "Surprise me", L_RandomStyle,
        "Nah, I'm fine", L_Done;

    if (@menu - 1 == @style)
        goto L_SameStyle;

    setlook LOOK_HAIR_STYLE, @menu - 1;
    goto L_Done;

L_RandomStyle:
    setlook LOOK_HAIR_STYLE, rand(20);
    goto L_Done;

L_SameStyle:
    mes "Your hair already has that style.";
    goto L_Main;

L_Color:
    menu
        "Brunette", -,
        "Green", -,
        "Dark red", -,
        "Light purple", -,
        "Gray", -,
        "Blonde", -,
        "Teal", -,
        "Light red", -,
        "Blue", -,
        "Dark purple", -,
        "Black", -,
        "Pink", -,
        "Brown", -,
        "Surprise me", L_RandomColor,
        "Nah, I'm fine", L_Done;

    if (@menu - 1 == @color)
        goto L_SameColor;

    setlook LOOK_HAIR_COLOR, @menu - 1;
    goto L_Done;

L_RandomColor:
    setlook LOOK_HAIR_COLOR, rand(13);
    goto L_Done;

L_SameColor:
    mes "Your hair is already that color.";
    goto L_Main;

L_Done:
    // cleanup
    set @menu, 0;
    set @style, 0;
    set @color, 0;
    return;
}

// Since this is a function, not an NPC, OnInit doesn't work
// So call this from a real NPC's OnInit (001-1/barber.txt)
function|script|OnInitBarber|{
    setarray $@HairStyles$,
        "Bald", "Flat ponytail", "Bowl cut", "Combed back", "Emo", "Mohawk",
        "Pompadour", "Center parting/Short and slick", "Long and slick",
        "Short and curly", "Pigtails", "Long and curly", "Parted",
        "Perky ponytail", "Wave", "Mane", "Bun", "Shoulder Length Flick",
        "Fizzy", "Long and Clipped";
    setarray $@HairColors$,
        "Brunette", "Green", "Dark red", "Light purple", "Gray", "Blonde",
        "Teal", "Light red", "Blue", "Dark purple", "Black", "Pink",
        "Brown";
    return;
}