summaryrefslogtreecommitdiff
path: root/world/map/npc/xmas/2012/xmas2012config.txt
blob: 9a13ac82e18b907397129d1147f2969cc6cb932f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
// 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";
// }