summaryrefslogblamecommitdiff
path: root/npc/001-11/event_soulmenhir.txt
blob: 22c75705ba41c94e9ed10b5bbe730be7de1bde47 (plain) (tree)
1
2
3
4
5
6
7
8
9





                                                            
                                                                

                                                                                                      



                                                                               


                               
                                                                                                                 

                                                                                            






                                



                          
                            
                                     

































                                                                         




                                                                                                 
                                                                                                   
























                                                                               
                                                                      





                                         
                     
                        





                            





































                                                                                                     
                                                                       




                                                                      


                  

 
// TMW2 scripts.
// Author:
//    Jesusalva
// Description:
//    Special Soul Menhir which only allows leaving the map.

001-11,37,31,0	script	Soul Stone#001-11	NPC_SOUL_CLEAN,{
    mesn;
    mes l("(A mystical aura surrounds this stone. It probably can return you home. What do you do?)");
    if (is_staff())
        mesc l("Current date: %d", numdate()), 9;
    if (numdate() < 20200214)
        mesc l("Additional Hunting Island will be released on Valentine Day!");

    menu
        l("Touch it."), L_Warp,
        rif(!#VALENTINE_EQUIPMENT2020 && gettime(GETTIME_YEAR) == 2020, l("Obtain event equipment")), L_EVTC2020,
        rif($@GM_OVERRIDE && getusers(1) >= 6, l("Warp to a mirror island.")), L_WarpMirror,
        rif(numdate() >= 20200214, l("Warp to extra island!")), L_WarpEnchanted,
        l("Leave it alone."), -;
    close;

L_Warp:
    warp "Save", 0, 0;
    close;

L_WarpEnchanted:
    warp "001-12", 56, 20;
    close;

// Done for multiple players
// FIXME This obviously will not work
L_WarpMirror:
    .@u=getusers(1);
    mesn;
    mes l("To which mirrored island you want to warp?");
    .@i=0;
    .@dest$="Stay here";
    // Create instances as needed
    while (.@i < .@u/6) {
        .@i+=1;
        .@dest$+=sprintf(":Mirror Island %d", .@i);
        if (!(getd("$@VALENTINE_MI"+.@i) &&
            isinstance(getd("$@VALENTINE_MI"+.@i)))) {
            debugmes "Create Mirror Island %d", .@i;

            .@tmpist = instance_create("001-11@Mirror"+.@i, 0, IOT_NONE);
            instance_attachmap("001-11", .@tmpist, 0, "001-11@MI"+.@i);
            instance_set_timeout(1000000, 1000000, .@tmpist);
            instance_init(.@tmpist);
            setd("$@VALENTINE_MI"+.@i, .@tmpist);
        }
    }
    select .@dest$;
    if (@menu == 1)
        close;
    @menu-=1;
    warp "001-11@MI"+@menu, 38, 32;
    dispbottom l("Mirror Island %d", @menu);
    /*
    select
        rif(.@u >= 6, l("Mirror Island 1")),
    */
    closeclientdialog;
    close;

// Special labels
L_EVTC2020:
    showavatar NPC_BARD_TRUMP;
    mes l("Welcome! Here to pick a weapon? You'll be able to select three skill cards as well.");
    next;
    inventoryplace NPCEyes, 4, Iten, 1, OolongTea, 3, SpearmintTea, 5, CrazyRum, 1, DwarvenSake, 3;
    mesc l("Are you sure you want to begin now? (Cannot be changed later)"), 1;
    next;
    if (askyesno() == ASK_NO)
        close;
    mes "";
    mes l("Select your preferred play-style.");
    select
        l("A soldier, with a sword and a shield"),
        l("A warrior, with a long blade"),
        l("A ranger, with a powerful bow"),
        l("A wizard, with a might wand");
    mes "";
    #VALENTINE_EQUIPMENT2020=true;
    switch (@menu) {
        case 1:
            getitembound Event1HSword, 1, 1;
            getitem FalkonCard, 1;
            break;
        case 2:
            getitembound Event2HSword, 1, 1;
            getitem FalkonCard, 1;
            break;
        case 3:
            getitembound EventBow, 1, 1;
            getitem ArrowShowerCard, 1;
            getitem TolchiAmmoBox, 5; // 1,000 arrows should be plenty
            break;
        case 4:
            getitembound EventWand, 1, 1;
            getitem FireballCard, 1;
            break;
    }
    // Get misc items
    getitem HealCard, 1;
    getitem OolongTea, 3;
    getitem SpearmintTea, 5;
    getitem CrazyRum, 1;
    getitem DwarvenSake, 3;

    // Ask for the skill set
    mes "";
    mes l("Select a set of skills:");
    select
        l("I need to survive anything!"),
        l("I need support magic!"),
        l("I need offensive magic!"),
        l("I need supreme warrior skills!"),
        l("I need supreme ranger skills!");
    mes "";
    switch (@menu) {
        case 1: // Survival Magic
            getitem LastStandCard, 1;
            getitem CowardCard, 1;
            break;
        case 2: // Support Magic
            getitem HighPriestCard, 1;
            getitem FullPowerCard, 1;
            break;
        case 3: // Offensive Magic
            getitem NatureWallCard, 1;
            getitem MagicalMVPCard, 1;
            break;
        case 4: // Warrior Magic
            getitem SupremeWarriorCard, 1;
            getitem VersatileCard, 1;
            break;
        case 5: // Ranger Magic
            getitem SupremeRangerCard, 1;
            getitem VersatileCard, 1;
            break;
    }
    mesn;
    mes l("And, that's all.");
    mesc l("Protip: You can trade the cards, but only before inserting them."), 9;
    mesc l("You can make any build you want! But inserted cards cannot be removed!"), 9;
    next;
    mesn;
    mes l("To insert a card, select the card and \"use\" it, or, drag and drop them to the weapon.");
    mesc l("You can only insert up to 3 (three) cards per weapon!"), 1;
    next;
    mesn;
    mes l("Event weapons and cards will be deleted once event ends.");
    close;

OnInit:
    .distance = 5;
    end;
}