summaryrefslogtreecommitdiff
path: root/world/map/npc/annuals/xmas/helpers.txt
blob: 57e535b5484469116e44de4c670c1895f8b2d8ab (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
// This file is part of Christmas Event
// author: Jenalya, Chayenne, cinderweb, wushin
// please see #XmasConfig
// TODO: Make Helpers static functions

function|script|XmasHelperPoints|,
{
    set @xmas_helper_count, 0;
    set @xmas_helper_loop, 0;
    if((@xmas_helper_done_state) || !(@xmas_helper_start_state))
        goto L_Return;

L_Loop:
    if(XMASTIME & $@xmas_helper_list[@xmas_helper_loop])
        goto L_AddOne;
    goto L_LoopAgain;

L_AddOne:
    set @xmas_helper_count, (@xmas_helper_count + 1);
    goto L_LoopAgain;

L_LoopAgain:
    if((@xmas_helper_loop + 1) == getarraysize($@xmas_helper_list))
        goto L_HelperTally;
    set @xmas_helper_loop, (@xmas_helper_loop + 1);
    goto L_Loop;

L_HelperTally:
    if(@xmas_helper_count == $@xmas_perfect_helpers_count)
        goto L_PerfectHelpers;
    if(@xmas_helper_count > $@xmas_required_helpers_count)
        goto L_SetHelperState;
    goto L_Return;

L_PerfectHelpers:
    set XMASTIME, XMASTIME | $@xmas_all_helpers_bit;
    goto L_SetHelperState;

L_SetHelperState:
    set @xmas_state, $@xmas_helpers_done_state;
    callfunc "XmasSetState";
    goto L_Return;

L_Return:
    set @xmas_helper_count, 0;
    set @xmas_helper_loop, 0;
    return;
}