summaryrefslogblamecommitdiff
path: root/npc/003-6/cyndala.txt
blob: 8569c497510ee7c961405c2ce0922457bb1fed37 (plain) (tree)


















                                                                                                               
                                                                                                                                                          












                                                                                         

                                                                   















































































                                                                                                           
                                   
































                                                                                                                                               
// TMW2 Script.
// Author:
//    Saulc
//    Jesusalva
// Description:
//    Will be with dye functions for a while... May be wrong. Only Card2 is available per hercules rules

// Original code from evol
// Authors:
//    Reid

003-6,33,30,0	script	Cyndala	NPC_FEMALE,{

    function explain_dyes {
        speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
            l("Look at your equipment, can you guess what material it is made from?"),
            l("Seek a colorant for that material: Cotton, cashmere, leather, Lazurite..."),
            l("Once you have the appropriate colorant for the item, ##bdrag the colorant##b to the material."),
            l("Example:"),
            l("Drag and drop a @@ in a @@, and you will obtain a @@.", getitemlink(RedDye), getitemlink(ArtisTankTop), getitemlink(ArtisTankTop, RedDye)),
            l("Dye cards are not the only thing which exist, but they are the coolest!");
    }

    function item_is_bleachable
    {
        .@item_index = getarg(0);
        if (.@item_index < 0)
            return false;

        getinventorylist;

        if (@inventorylist_card1[.@item_index] != 0)
        {
            if ((@inventorylist_card1[.@item_index] > YellowDye) ||
                (@inventorylist_card1[.@item_index] < CrimsonDye))
            {
                return false;
            }
            .@is_bleachable = true;
        }

        return .@is_bleachable;
    }

    function remove_cards_from_item
    {
        .@item_index = -1;

        speech S_FIRST_BLANK_LINE,
            l("What item would you like to bleach?");

        narrator S_FIRST_BLANK_LINE | S_LAST_NEXT,
            l("You can drag and drop an item to the NPC window or select an item through your inventory.");

        .@item_index = requestitemindex();
        if (!item_is_bleachable(.@item_index))
        {
            speech S_LAST_NEXT,
                l("You should know this, an item like this can't be bleached.");

            return;
        }

        speech S_LAST_NEXT,
            l("Your mind is set? You will loose the color dye during this process.");

        switch (askyesno())
        {
            case 1:
                speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
                    l("Ok, let me see..."),
                    l("...");

                failedremovecardsindex .@item_index, 1;

                speech S_LAST_NEXT | S_NO_NPC_NAME,
                    l("..."),
                    l("Here it is, clean like a whistle!");
                break;
            case 2:
                speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
                    l("Is it truly a hard choice to make?");
                break;
        }
    }

    mesn;
    mesq l("Hello, darling!");
    mes "";

    do
    {
        select
            l("Excuse me."),
            l("Could you bleach my clothes?"),
            l("What can you say about dyes?"),
            rif(is_staff(), l("Technical problem, gimme info about an item."));

        switch (@menu)
        {
            case 2:
                remove_cards_from_item();
                break;
            case 3:
                explain_dyes();
                break;
            case 4:
                .@item = requestitemindex();
                mes "Item index selected: " + str(.@item);
                mes "slots=" + str(MAX_SLOTS);
                for (.@i = 0; .@i < MAX_SLOTS; .@i++)
                {
                    mes "slot " + str(.@i) + " = " + str(getcardbyindex(.@item, .@i));
                }
                mes str(@inventorylist_card1[.@item]);
                mes str(YellowDye);
                mes "item options:";
                for (.@i = 0; .@i < 5; .@i ++)
                {
                    mes sprintf("%d: Option: %d, Value: %d", .@i, getitemoptionidbyindex(.@item, .@i), getitemoptionvaluebyindex(.@item, .@i));
                }
                mes "Note named items (Card1 254 and 255) have Card3 and Card4 reserved";
                break;
            default:
                speech S_FIRST_BLANK_LINE | S_LAST_NEXT, l("I wish you a good time in town.");
                break;
        }

    } while (@menu != 1);


    closeclientdialog;
    goodbye;
    close;


OnInit:
    .@npcId = getnpcid(0, .name$);
    setunitdata(.@npcId, UDT_HEADTOP, NPCEyes);
    setunitdata(.@npcId, UDT_HEADMIDDLE, ValentineDress); //TODO
    setunitdata(.@npcId, UDT_HEADBOTTOM, CottonTrousers);
    setunitdata(.@npcId, UDT_WEAPON, DeepBlackBoots); // Boots
    setunitdata(.@npcId, UDT_HAIRSTYLE, 16);
    setunitdata(.@npcId, UDT_HAIRCOLOR, 11);

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