summaryrefslogblamecommitdiff
path: root/world/map/npc/xmas/2012/xmas2012config.txt
blob: 9a13ac82e18b907397129d1147f2969cc6cb932f (plain) (tree)











































































































































                                                                                                                              
// This file is part of Christmas Event 2012
// author: Jenalya

// NPC behavior depending on time:
// No Event Time: The event didn't start yet or already ended - the house is closed and the outside NPCs give generic dialogue
// Event Time: Christmas preparation is in progress, main quest can be done
// Reward Time: Christmas is over, if the main quest was finished, the reward can be taken

// Main quest states saved in NIBBLE 0:
// 1: Grombadil asked the player to talk to Neiremes
// 2: Neiremes asked for a blanket
// 3: Raimo can sew a blanket out of cotton cloth, sends you to Launo with the blanket
// 4: Launo can make the blanket extra warm by adding some fluffy furs, sends you to Reino with the padded blanket
// 5: Reino can dye the blanket red with some red dyes, gives you the finished blanket to bring it to Neiremes
// 6: Gave finished blanket to Neiremes, he now asks for some food. Hint to the trainer reinboo
// 7: Trainer reinboo says that Roasted Acorns are suitable food.
// 8: gave roasted acorns to Neiremes, he sends you to Neimeres
// 9: Neimeres tells you about the Flight Talisman, sends you to Tarmo
// 10: Tarmo sends you to Kalevi, who can carve the raw form of the talisman
// 11: Kalevi carved the raw form, sends you back to Tarmo
// 12: Tarmo explains, that some kind of wing is needed, send you to Santa when found something suitable
// 13: Santa says bat wings aren't optimal, but ok and enchants the talisman, he sends you back to Neiremes
// 14: gave talisman to Neiremes
// 15: got reward from Neiremes: only available during Reward Time

// Two reinboos offer transport between the two places where the quest NPCs are located
// Saving that the players knows them is done with flags in the first two bits of nibble 2

// The storage administrator Vellamo asks you to get back some candy stolen by the slimes
// this is saved in the third bit of nibble 2
// after that, Ismo offers a daily quest with Candy

// When the reward time started, players can get some candy from Santa, this is saved in the fourth bit of nibble 2

-|script|#xmas2012config|-1,{
OnInit:
    set $@xmas2012_reward_start_day, 25;
    set $@xmas2012_reward_end_day, 6;
    set $@xmas2012_year, 2012;

    set $@xmas2012_event_time, 1;
    set $@xmas2012_reward_time, 2;
    set $@xmas2012_no_event_time, 3;

    set $@xmas2012_cotton_cloth_amount, 4;
    set $@xmas2012_fluffy_fur_amount, 8;
    set $@xmas2012_red_dye_amount, 2;
    set $@xmas2012_acorn_amount, 10;
    set $@xmas2012_roasted_acorn_amount, 30;
    set $@xmas2012_raw_log_amount, 1;
    set $@xmas2012_bat_wing_amount, 2;

    set $@xmas2012_FLIGHT_FLAG1, 0x00000100;
    set $@xmas2012_FLIGHT_FLAG2, 0x00000200;
    setarray $@xmas2012_flight_pay$, "RedApple", "ChocolateCake", "WhiteCake", "OrangeCake", "AppleCake";
    setarray $@xmas2012_flight_pay_name$, "Red Apples", "Chocolate Cake", "White Cake", "Orange Cake", "Apple Cake";
    setarray $@xmas2012_flight_pay, 5, 1, 1, 1, 1;

    set $@xmas2012_CANDY_FLAG, 0x00000400;
    set $@xmas2012_SANTA_FLAG, 0x00000800;
}

function|script|xmas2012time|{
// debug
//    if (@xmas_debug == $@xmas2012_event_time)
//        goto L_Event_Time;
//    if (@xmas_debug == $@xmas2012_reward_time)
//        goto L_Reward_Time;
//    if (@xmas_debug == $@xmas2012_no_event_time)
//        goto L_No_Event_Time;

    if (gettime(7) == $@xmas2012_year && gettime(6) == 12 && gettime(5) < $@xmas2012_reward_start_day)
        goto L_Event_Time;

    if ((gettime(7) == $@xmas2012_year && gettime(6) == 12 && gettime(5) >= $@xmas2012_reward_start_day)
        || (gettime(7) == ($@xmas2012_year + 1) && gettime(6) == 1 && gettime(5) <= $@xmas2012_reward_end_day))
        goto L_Reward_Time;

L_No_Event_Time:
    set @xmas_time, $@xmas2012_no_event_time;
    return;

L_Event_Time:
    set @xmas_time, $@xmas2012_event_time;
    return;

L_Reward_Time:
    set @xmas_time, $@xmas2012_reward_time;
    return;
}

function|script|xmas2012update_reinboo_var|{
    set xmas2012, (xmas2012 & ~NIBBLE_0_MASK) | (@reinboo << NIBBLE_0_SHIFT);
    return;
}

function|script|xmas2012debug|{
    mes "What do you want to do?";
    menu
        "Set time.", L_Time,
        "Set reinboo quest state.", L_Reinboo,
        "Reset complete quest state.", -,
        "Do nothing.", L_Close;

    set xmas2012, 0;
    goto L_Close;

L_Time:
    menu
        "Event time.", -,
        "Reward time.", -,
        "No event time.", -,
        "Clear time.", -;

    if (@menu == 1)
        set @xmas_debug, $@xmas2012_event_time;
    if (@menu == 2)
        set @xmas_debug, $@xmas2012_reward_time;
    if (@menu == 3)
        set @xmas_debug, $@xmas2012_no_event_time;
    if (@menu == 4)
        set @xmas_debug, 0;

    goto L_Close;

L_Reinboo:
    mes "Quest state?";
    input @reinboo;
    callfunc "xmas2012update_reinboo_var";
    goto L_Close;

L_Close:
    set @reinboo, 0;
    set @xmas_time, 0;
    close;
}

// 030-1.gat,91,48,0|script|Debug|105,{
//     callfunc "xmas2012debug";
// }