summaryrefslogblamecommitdiff
path: root/npc/annuals/xmas/config.txt
blob: b3816df2f7fdf943ab3f601ce98a3291a85025aa (plain) (tree)












































                                                                
                                              













































































































































































































                                                                                                                                                                
-	script	#XmasConfig	NPC32767,{
    end;

OnCommandRestartQuest:
    goto L_Main;

OnInit:
    goto L_Main;

L_Main:
    // Xmas Key Identifier Set through Botcheck Debug
    if(!($XMAS_TIME_KEY) || (getarraysize($XMAS_TIME_KEY) != 6))
        setarray $XMAS_TIME_KEY, 12,12,1,25,6,gettime(7);
    if(($XMAS_TIME_KEY[0] == 0) || ($XMAS_TIME_KEY[0] > 12))
        goto L_XmasError;
    if(($XMAS_TIME_KEY[1] == 0) || ($XMAS_TIME_KEY[1] > 12))
        goto L_XmasError;
    if(($XMAS_TIME_KEY[2] == 0) || ($XMAS_TIME_KEY[2] > 12))
        goto L_XmasError;
    if(($XMAS_TIME_KEY[3] == 0) || ($XMAS_TIME_KEY[3] > 31))
        goto L_XmasError;
    if(($XMAS_TIME_KEY[4] == 0) || ($XMAS_TIME_KEY[4] > 31))
        goto L_XmasError;
    if($XMAS_TIME_KEY[5] == 0)
        goto L_XmasError;

    // Event Runs until Reward Period.
    // Month Start/End
    $@xmas_start_month = $XMAS_TIME_KEY[0];
    $@xmas_reward_start_month = $XMAS_TIME_KEY[1];
    $@xmas_end_month = $XMAS_TIME_KEY[2];

    // Reward Day Start/End
    $@xmas_reward_start_day = $XMAS_TIME_KEY[3];
    $@xmas_reward_end_day = $XMAS_TIME_KEY[4];

    // Time Settings
    $@xmas_no_event_time = 0;
    $@xmas_event_time = 1;
    $@xmas_reward_time = 2;

    // Main Quest Settings
    // Bit used to Set Which one of the 2 quests you are on
    $@xmas_side_bit = false;//(1 << 31); FIXME
    $@xmas_base_bonus_xp = 4;
    $@xmas_karma_bonus = 1;
    $@xmas_reward_max_karma = 15;
    $@xmas_reward_hero_boss = 15;
    $@xmas_reward_all_lists = 10;
    $@xmas_reward_all_helpers = 10;
    $@xmas_reward_tally_rare = 80;
    $@xmas_reward_tally_common = 40;
    // Guidance System
    $@xmas_route_bit = (1 << 23);
    // Basement Passage way
    $@xmas_basement_passage = (1 << 24);
    // Thrown Out
    $@xmas_thrown_out_bit = (1 << 25);
    // Quest Start (@xmas_state)
    $@xmas_list_path2_state = 1;
    $@xmas_list_path1_state = 2;
    $@xmas_list_both_state = 3;
    $@xmas_list_complete_state = 4;
    $@xmas_list_deliver_state = 5;
    // Helper SubQuest
    $@xmas_helpers_start_state = 6;
    $@xmas_helpers_done_state = 7;
    // Reagents
    $@xmas_reagents_start = 8;
    $@xmas_reagents_done = 9;
    // Boss Door State
    $@xmas_boss_door_open_state = 10;
    // Reward State
    $@xmas_reward_start = 11;
    $@xmas_reward1_done = 12;
    $@xmas_reward2_done = 13;
    $@xmas_reward_done = 14;

    // Boss Fight Required Level for Hard Mode
    $@BossHardLevel = 70;
    $@xmas_boss_start_bit = (1 << 26);
    $@xmas_boss_hero_bit = (1 << 27);
    $@xmas_boss_start_shift = 26;
    $@xmas_boss_hero_shift = 27;
    setarray $@xmas_boss_req$, "IronPotion", "DarkCrystal";
    setarray $@xmas_boss_amount, 15, 10;
    if(getarraysize($@xmas_boss_amount) != getarraysize($@xmas_boss_req$))
        goto L_XmasError;
    // Santas Helper quest rewards
    setarray $@SantasHelper_Annual_Reward$,
        "RedTurtleneck",
        "YellowTurtleneck",
        "LightBlueTurtleneck",
        "PinkTurtleneck",
        "OrangeTurtleneck",
        "PurpleTurtleneck",
        "KnitCap",
        "KnitCap";

    // Main Quest rewards
    setarray $@xmas_present_from$, "Santa", "Orum";
    setarray $@xmas_rare_reward$, "FunkyChristmasSweater", "DarkChristmasSweater";
    setarray $@xmas_uncommon_reward$, "NutcrackerHat", "AmberChristmasSweater", "RedStockings", "PinkChristmasSweater", "BlueChristmasSweater";
    // Quest Side 0 Settings
    setarray $@xmas_zero_reagents$, "ShockSweet", "EmptyBottle", "EmeraldPowder";
    setarray $@xmas_zero_reagents_names$, "Shock Sweet", "Empty Bottles", "Emerald Powders";
    setarray $@xmas_zero_reagents_amounts, 1, 4, 10;
    if(getarraysize($@xmas_zero_reagents_amounts) != getarraysize($@xmas_zero_reagents$))
        goto L_XmasError;

    // Quest Side 1 Settings
    setarray $@xmas_one_reagents$, "DarkCrystal", "IronPotion", "EmeraldPowder";
    setarray $@xmas_one_reagents_names$, "Dark Crystal", "Iron Potions", "Emerald Powders";
    setarray $@xmas_one_reagents_amounts, 1, 4, 10;
    if(getarraysize($@xmas_one_reagents_amounts) != getarraysize($@xmas_one_reagents$))
        goto L_XmasError;

    // List Bits
    $@xmas_all_lists_bit = (1 << 29);
    setarray $@xmas_child_list, (1 << 8), (1 << 9), (1 << 10), (1 << 11), (1 << 12), (1 << 13), (1 << 14), (1 << 15);
    setarray $@xmas_child_list_name$, "Ayasha", "Latif", "Charda", "Faris", "Rasin", "Ghada", "Rossy", "Kadiya";
    if(getarraysize($@xmas_child_list) != getarraysize($@xmas_child_list_name$))
        goto L_XmasError;

    $@xmas_perfect_list_count = getarraysize($@xmas_child_list);
    $@xmas_required_list_count = (getarraysize($@xmas_child_list) / 2);

    // Santa's Helper
    $@xmas_sh_bit = (1 << 22);
    $@xmas_sh_purple_amount = 25;
    $@xmas_sh_blue_amount = 20;
    $@xmas_sh_green_amount = 5;

    // Main Helper Bit
    $@xmas_helper_bit = (1 << 30);
    $@xmas_all_helpers_bit = (1 << 28);

    // Acorns
    $@xmas_helper_bit_acorns = (1 << 21);
    $@xmas_acorn_amount = 10;
    $@xmas_iron_potion_amount = 1;

    // Bedding
    $@xmas_helper_bit_bed_starts = (1 << 16);
    $@xmas_helper_bit_bed_ends = (1 << 17);
    $@xmas_bedding_amount = 10;

    // Boxes
    $@xmas_log_amount = 2;

    // Wrap
    $@xmas_reed_amount = 2;
    $@xmas_water_amount = 1;
    $@xmas_wrap_reward = 1;

    // Wrap Dye Amounts
    $@xmas_poa_amount = 2;
    $@xmas_wrap_yellow_amount = 2;
    $@xmas_wrap_ltblue_amount = 2;
    $@xmas_wrap_purple_amount = 2;
    $@xmas_wrap_green_amount = 2;

    // Present Return
    $@xmas_present_amount = 5;

    // Shipping
    $@xmas_wrap_amount = 1;
    $@xmas_empty_box_amount = 1;
    $@xmas_ship_present_amount = 1;

    // Glitter
    $@xmas_helper_bit_glitter_starts = (1 << 18);
    $@xmas_helper_bit_glitter_ends = (1 << 19);
    $@xmas_red_amount = 5;
    $@xmas_yellow_amount = 5;

    // Storage (Daily Xmas)
    $@xmas_helper_bit_storage = (1 << 20);
    // Good Daily Ammounts
    $@xmas_good_level = 30;
    $@xmas_good_cost = 12;
    $@xmas_good_count = 3;
    $@xmas_good_name$ = "Candy";
    $@xmas_good_friendly_name$ = "Candies";
    $@xmas_good_money = 500;
    $@xmas_good_exp = 200;

    // Bad Daily Ammounts
    $@xmas_bad_level = 30;
    $@xmas_bad_cost = 12;
    $@xmas_bad_count = 3;

    $@xmas_bad_name$ = "RedApple";
    $@xmas_bad_friendly_name$ = "Red Apples";
    $@xmas_bad_money = 500;
    $@xmas_bad_exp = 200;

    //Boss Fight Reward
    $@xmas_boss_bp = 50;

    // Helpers Flags needed to set $@xmas_all_helpers_bit
    setarray $@xmas_helper_list, $@xmas_helper_bit_bed_ends, $@xmas_helper_bit_glitter_ends, $@xmas_helper_bit_storage, $@xmas_helper_bit_acorns, $@xmas_sh_bit;
    $@xmas_perfect_helpers_count = getarraysize($@xmas_helper_list);
    $@xmas_required_helpers_count = (getarraysize($@xmas_helper_list) / 2);

    // MobManager
    setarray $@xmas_mob_names$, "Santa Slime", "Candied Slime", "Candied Slime";
    setarray $@xmas_mob_spawns, "1015", "1111", "1111";
    setarray $@xmas_mob_counts, 10, 5, 5;
    setarray $@xmas_map_spawns$, "019-1", "019-3", "030-3";
    if(getarraysize($@xmas_mob_spawns) != getarraysize($@xmas_map_spawns$))
        goto L_XmasError;
    if(getarraysize($@xmas_mob_names$) != getarraysize($@xmas_map_spawns$))
        goto L_XmasError;
    if(getarraysize($@xmas_mob_counts) != getarraysize($@xmas_map_spawns$))
        goto L_XmasError;

    $@xmas_spawn_x1 = 54;
    $@xmas_spawn_y1 = 48;
    $@xmas_spawn_x2 = 79;
    $@xmas_spawn_y2 = 89;
    $@xmas_respawn_count = 9;

    $@start_month = $@xmas_start_month;
    $@end_month = $@xmas_end_month;
    $@start_day = 1;
    $@end_day = $@xmas_reward_end_day;
    $@reward_start_month = $@xmas_reward_start_month;
    $@reward_start_day = $@xmas_reward_start_day;

    callfunc "GetEventTime";
    $@xmas_time = $@event_time;

    if($@xmas_time == 0 && $XMAS_TIME_KEY[5] < gettime(7))
        setarray $XMAS_TIME_KEY, $XMAS_TIME_KEY[0],$XMAS_TIME_KEY[1],$XMAS_TIME_KEY[2],$XMAS_TIME_KEY[3],$XMAS_TIME_KEY[4],gettime(7);
    goto L_Return;

L_Return:
    // technically this only needs to skip the npctimer in SpawnMobs,
    // but this is a low-level debug setting so whatever.
    if (debug >= 2) end;
    callfunc "SpawnMobs";
    callfunc "PresentHandler";
    callfunc "ReplaceTrees";
    end;

L_XmasError:
    debugmes "Xmas is Dead Jim.";
    mapexit;
}