summaryrefslogtreecommitdiff
path: root/world/map/npc/annuals/xmas
diff options
context:
space:
mode:
Diffstat (limited to 'world/map/npc/annuals/xmas')
-rw-r--r--world/map/npc/annuals/xmas/2020.txt835
-rw-r--r--world/map/npc/annuals/xmas/barriers.txt165
-rw-r--r--world/map/npc/annuals/xmas/config.txt291
-rw-r--r--world/map/npc/annuals/xmas/core.txt252
-rw-r--r--world/map/npc/annuals/xmas/debug.txt228
-rw-r--r--world/map/npc/annuals/xmas/helpers.txt49
-rw-r--r--world/map/npc/annuals/xmas/list.txt104
-rw-r--r--world/map/npc/annuals/xmas/mobmanager.txt82
-rw-r--r--world/map/npc/annuals/xmas/reagents.txt146
-rw-r--r--world/map/npc/annuals/xmas/states.txt55
10 files changed, 0 insertions, 2207 deletions
diff --git a/world/map/npc/annuals/xmas/2020.txt b/world/map/npc/annuals/xmas/2020.txt
deleted file mode 100644
index 0490d1a7..00000000
--- a/world/map/npc/annuals/xmas/2020.txt
+++ /dev/null
@@ -1,835 +0,0 @@
-// The Mana World Scripts
-// Christmas 2020
-// (C) Jesusalva, Hocus, Ledmitz, toams, monwarez, jak1, Hello=) et. al., 2020
-// Licensed under the GPLv2 or later
-// XXmas is not a typo, "XX" is twenty and the year is twenty-twenty.
-
-034-1,0,0,0|script|XXmas0341|32767
-{
- end;
-
-OnHit2:
- goto OnHit;
-
-OnHit:
- // Not Christmas yet
- if (!$@xmas_time)
- end;
- // Reward time
- if ($@xmas_time == $@xmas_reward_time)
- end;
- // player must be created at least two weeks ago
- if ((BaseLevel < 30) || (gettimetick(2) - TUT_var < 2*7*86400))
- end;
-
- // Not equipped to hunt Grinchboos
- //if (getequipid(equip_arrow) != 5260)
- // end;
- if (getequipid(equip_hand1) != 5261)
- end;
-
- // tell the spells they were discharged
- // XXX: maybe we could make it do area damage when you discharge (release your energy all of a sudden)
- addtimer 0, "::OnDischarge"; // seeks OnDischarge in ALL npcs
-
- // Magic cheat
- if (@wandspell[4])
- end;
- if (@ingravspell[2])
- end;
- if (@chizaspell[2])
- end;
- if (@flarspell[2])
- end;
- if (@phlexspell[3])
- end;
- if (@chipchipspell[2])
- end;
- if (@upmarmuspell[1])
- end;
-
- // By last, check for Arrow Hail
- set @nearby, 0;
- foreach 1, getmap(), @away[0] - 14, @away[1] - 14, @away[0] + 14, @away[1] + 14,
- strnpcinfo(0) + "::OnNearbyNpc";
- if (@nearby)
- end;
-
- // Grinchboo slain
- set XMAS2020, XMAS2020 + 1;
- set $XMAS2020_BOO, $XMAS2020_BOO + 1;
- set @loop, 0;
- set @rank, 0;
- goto L_MaybeInsertNext;
-
-L_MaybeInsertNext:
- if (XMAS2020 > $Record_XXmas_Kills[@rank])
- goto L_InsertScore;
- // you already had a better score
- if (strcharinfo(0) == $Record_XXmas_Name$[@rank])
- goto L_Reward1;
- set @rank, @rank + 1;
- if (@rank == MAX_HIGH_SCORES)
- goto L_Reward1;
- goto L_MaybeInsertNext;
-
-L_InsertScore:
- set @loop, @rank;
- goto L_FindLastScore;
-
-L_FindLastScore:
- // comment this out to allow the player to be in the list more than once
- // though actually, it might be better just to assume the list is full
- if (strcharinfo(0) == $Record_XXmas_Name$[@loop])
- goto L_MoveStuff;
-
- set @loop, @loop + 1;
- if (@loop == MAX_HIGH_SCORES)
- goto L_MoveStuff;
- goto L_FindLastScore;
-
-L_MoveStuff:
- if (@loop == @rank)
- goto L_FinallyInsertMe;
- set $Record_XXmas_Kills[@loop], $Record_XXmas_Kills[@loop - 1];
- set $Record_XXmas_Name$[@loop], $Record_XXmas_Name$[@loop - 1];
- set $Record_XXmas_Date$[@loop], $Record_XXmas_Date$[@loop - 1];
- set @loop, @loop - 1;
- goto L_MoveStuff;
-
-L_FinallyInsertMe:
- set $Record_XXmas_Kills[@rank], XMAS2020;
- set $Record_XXmas_Name$[@rank], strcharinfo(0);
- callfunc "time_stamp";
- set $Record_XXmas_Date$[@rank], @ts_date$ + " " + @ts_time$;
- set @ts_date$, "";
- set @ts_time$, "";
- goto L_Reward1;
-
-L_Reward1:
- // Maybe we should tell you how many you purified?
- if (XMAS2020 % 10 == 0 || XMAS2020 == 1)
- goto L_Warning;
- end;
-
-L_Warning:
- message strcharinfo(0), "Grinchboos purified: "+XMAS2020;
- end;
-
-OnTimer15000:
- areamonster "034-1", 20, 20, 160, 110, "", 1162, 18, "XXmas0341::OnHit2";
- // Only happens until :15, and every 15 minutes, for a total of 60 cycles.
- if (gettime(2) > 15)
- end;
- initnpctimer;
- end;
-
-L_Abort:
- end;
-
-OnClock1800:
- if (!$@xmas_time)
- goto L_Abort;
- if ($@xmas_time == $@xmas_reward_time)
- goto L_Abort;
- initnpctimer;
- // WARNING: Do not duplicate!!
- announce "Santa : Ho ho ho, I see a huge movement by the grinchboos!", 0;
- end;
-
-OnClock1830:
- killmonster "034-1", "XXmas0341::OnHit2";
- stopnpctimer;
- end;
-
-// Additional timers
-OnClock0000:
- goto OnClock1800;
-OnClock0030:
- goto OnClock1830;
-OnClock0600:
- goto OnClock1800;
-OnClock0630:
- goto OnClock1830;
-
-OnNearbyNpc:
- explode .@nearby$[0], strnpcinfo(0,@target_id), "#";
- if(.@nearby$[0] == "arrow-hail" || .@nearby$[1] == "arrow-hail")
- set @nearby, @nearby + 1;
- end;
-}
-
-// Scatter the grinchboos
-// Nivalis
-034-1,0,0,0,0|monster|Grinchboo|1162,14,100000ms,30000ms,XXmas0341::OnHit
-//030-1,0,0,0,0|monster|Grinchboo|1162,7,100000ms,30000ms,XXmas0341::OnHit
-//031-1,0,0,0,0|monster|Grinchboo|1162,2,100000ms,30000ms,XXmas0341::OnHit
-033-1,0,0,0,0|monster|Grinchboo|1162,5,100000ms,30000ms,XXmas0331::OnHit
-//019-1,0,0,0,0|monster|Grinchboo|1162,2,100000ms,30000ms,XXmas0341::OnHit
-// Thermin
-//045-1,0,0,0,0|monster|Grinchboo|1162,10,100000ms,30000ms,XXmas0341::OnHit
-046-1,0,0,0,0|monster|Grinchboo|1162,8,100000ms,30000ms,XXmas0461::OnHit
-047-1,0,0,0,0|monster|Grinchboo|1162,6,100000ms,30000ms,XXmas0471::OnHit
-
-// Bring Santa back!!! With speeches from all previous events because I'M LAZY
-// Same place as he was in 2009, instead of his room in 030-2,197,62
-020-1,78,85,0|script|Santa|105
-{
- if (Sex)
- set @honorific$, "Young Hero";
- if (!Sex)
- set @honorific$, "Young Heroine";
-
-
- // Not Christmas yet
- if (!$@xmas_time)
- goto L_PreXmas;
- // Past Christmas
- if ($@xmas_time == $@xmas_reward_time)
- goto L_Reward;
- // Already equipped, so...
- if (countitem("SnowLauncher") > 0)
- goto L_Doing;
-
- // Begin exactly like it was in 2009
- mes "[Santa Claus]";
- mes "\"ho-hum ho-hum ho-hum, I'm sorry, " + @honorific$ + " Not really in the Christmas spirit.";
- mes "That Evil Jack Frost has stolen all the Christmas ornaments!";
- mes "He will never get off the Naughty List!";
- mes "How can we have Christmas without a proper Christmas tree?\"";
- mes "\"The Elves are too depressed to work";
- mes "Christmas will be ruined!\"";
- next;
- // But this is not 2009...
- mes "[Santa Claus]";
- mes "\"OOPS! That was Christmas 2009! We are in 2020, how could I forget? Ho! Ho! Ho!\"";
- next;
- mes "[Santa Claus]";
- mes "\"But still! Can you believe Jack Frost turned all my Reinboos into Grinchboos?! Christmas will be ruined!\"";
- next;
- mes "[Santa Claus]";
- mes "\"Say, Why don't you help me?";
- mes "In fact, You are just the " + @honorific$ + " I am looking for!\"";
- mes "\"What do you say, will you help save Christmas?\"";
- next;
- menu
- "I won't.", L_Close,
- "How can I help?", L_Help;
-
-L_Help:
- // player must be created at least two weeks ago
- if ((BaseLevel < 30) || (gettimetick(2) - TUT_var < 2*7*86400))
- goto L_Young;
- mes "[Santa Claus]";
- mes "\"Oh that is excellent news!";
- mes "Thank you.\"";
- mes "##9Santa shakes your hand with delight.##0";
- next;
- mes "[Santa Claus]";
- mes "\"You see, if you hit the grinchboos with snowballs, they can be purified! (Don't ask me how it works, Christmas is weird this year!)\"";
- next;
- mes "[Santa Claus]";
- mes "\"However, you cannot just throw snowballs at them. But I have the ideal tool for this task!\"";
- next;
- mes "[Santa Claus]";
- mes "\"You can use this super ##BCandy-Caned Anti-Grinch-Rifle 2020™##b! Hit as many as you can! Ho ho ho!\"";
- menu
- "Many thanks, Santa!", L_Item,
- "I already have one, I'll get to work!", L_Close;
-
-L_Young:
- mes "[Santa]";
- mes "\"That's a very friendly offer! But I don't think we need any help.\"";
- goto L_Close;
-
-L_Item:
- getinventorylist;
- if (@inventorylist_count == 100) goto L_Full;
- getitem "SnowLauncher", 1;
- mes "[Santa Claus]";
- mes "\"Ho Ho Ho Merry Christmas!\"";
- close;
-
-L_Close:
- close;
-
-L_Full:
- mes "[Santa Claus]";
- mes "\"Your backpack seems to be full. You should get rid of some unused stuff before you get my gifts, or maybe try one super resistant red bag, my personal favorite! Hoh-hoh!\"";
- close;
-
-L_PreXmas:
- mes "[Santa Claus]";
- mes "\"Ho, Ho... See you later " +@honorific$+ "!\"";
- close;
-
-L_ShowRecord:
- mes "[Santa Claus]";
- mes "You have purified "+XMAS2020+" Grinchboos thus far.";
- mes "All players have purified "+$XMAS2020_BOO+" Grinchboos in total.";
- set @rank, 0;
- set @loop, 0;
- goto L_ShowNextRecord;
-
-L_ShowNextRecord:
- if ($Record_XXmas_Kills[@loop] == 0)
- goto L_Close;
- mes (@loop + 1) + " - " + $Record_XXmas_Name$[@loop] + " - " + $Record_XXmas_Kills[@loop] + " Grinchboos saved at " + $Record_XXmas_Date$[@loop];
- set @loop, @loop + 1;
- if (MAX_HIGH_SCORES > 4 && (@loop % 5) == 0 && $Record_XXmas_Kills[@loop] > 0)
- goto L_NextShowNextRecord;
- goto L_ShowNextRecord;
-
-L_NextShowNextRecord:
- next;
- goto L_ShowNextRecord;
-
-L_Doing:
- mes "[Santa]";
- mes "\"Hello " + strcharinfo(0) + ". I heard about your efforts to help. I'm very happy to hear that.\"";
- next;
- mes "[Santa]";
- mes "\"Be careful at 18:00, 00:00 and 06:00, those are the most active times for my reinboos.\"";
- next;
- menu
- "I'll go back to work.", L_Close,
- "What are current highscores?", L_ShowRecord;
-
-L_Done:
- mes "[Santa]";
- mes "\"Hello " + strcharinfo(0) + ". I heard about your efforts to help. I'm very happy to hear that.\"";
- next;
- menu
- "Santa, you are the best!", L_Close,
- "What were the highscores?", L_ShowRecord;
-
-L_Reward:
- if (XMAS2020 <= 0)
- goto L_Done;
- mes "[Santa Claus]";
- mes "\"You are so generous! I believe I can give you one of the hats from this bag. I know you like these silly hats. Yes, Santa knows this kind of thing... Ho-Ho-Ho! Put your hand here and pick one hat...\"";
- next;
- getinventorylist;
- if (@inventorylist_count > 95) goto L_Full;
- mes "You have purified "+XMAS2020+" Grinchboos thus far.";
- mes "All players have purified "+$XMAS2020_BOO+" Grinchboos in total.";
- set @rank, 0;
- set @loop, 0;
- goto L_FindRank;
-
-L_FindRank:
- if (strcharinfo(0) == $Record_XXmas_Name$[@rank])
- goto L_Continue;
- set @rank, @rank + 1;
- if (@rank == MAX_HIGH_SCORES)
- goto L_Continue;
- goto L_FindRank;
-
-L_Continue:
- getinventorylist;
- if (@inventorylist_count > 95) goto L_Full;
- set XMAS2020, 0;
- setarray @oldstock$, "PlushMouboo", "StickReinboo", "Doll", "LeatherBall", "SantaSnowGlobe", "SnowmanSnowGlobe", "RedOrnament", "YellowOrnament", "GreenOrnament", "AquaOrnament", "BlueOrnament", "MagentaOrnament";
- getitem @oldstock$[rand(getarraysize(@oldstock$))], 1;
- cleararray @oldstock$, "", getarraysize(@oldstock$);
- if (@rank < 15)
- goto L_Extra1;
- close;
-
-// TOP 15 reward
-L_Extra1:
- mes "[Santa Claus]";
- mes "\"The official Christmas 2009 headgear!";
- mes "Ho Ho Ho Merry Christmas!\"";
- getitem "SnowGoggles", 1;
- if (@rank < 10)
- goto L_Extra2;
- close;
-
-// TOP 10 reward
-L_Extra2:
- setarray @oldstock$, "PlushMouboo", "StickReinboo", "Doll", "LeatherBall", "SantaSnowGlobe", "SnowmanSnowGlobe", "RedOrnament", "YellowOrnament", "GreenOrnament", "AquaOrnament", "BlueOrnament", "MagentaOrnament";
- getitem @oldstock$[rand(getarraysize(@oldstock$))], 1;
- cleararray @oldstock$, "", getarraysize(@oldstock$);
- if (@rank < 5)
- goto L_Extra3;
- close;
-
-// TOP 5 reward
-L_Extra3:
- setarray @oldstock$, "MoubooHead", "MushHat", "ChristmasElfHat", "FunkyHat", "ShroomHat", "ElfNightcap", "BowlerHat", "TopHat";
- getitem @oldstock$[rand(getarraysize(@oldstock$))], 1;
- cleararray @oldstock$, "", getarraysize(@oldstock$);
- if (@rank < 2)
- goto L_Extra4;
- close;
-
-// TOP 2 reward
-L_Extra4:
- setarray @oldstock$, "SantaBeardHat", "ChristmasTreeHat", "EyePatch", "AntlerHat";
- getitem @oldstock$[rand(getarraysize(@oldstock$))], 1;
- cleararray @oldstock$, "", getarraysize(@oldstock$);
- close;
-
-/* FIXME requires player attached bcz TMWA is crazy, so better not.
-// Spawn 10~30 snowballs in Nivalis square
-OnClock2359:
- makeitem 5260, rand(1,3), "020-1", rand(69, 82), rand(78, 91);
- makeitem 5260, rand(1,3), "020-1", rand(69, 82), rand(78, 91);
- makeitem 5260, rand(1,3), "020-1", rand(69, 82), rand(78, 91);
- makeitem 5260, rand(1,3), "020-1", rand(69, 82), rand(78, 91);
- makeitem 5260, rand(1,3), "020-1", rand(69, 82), rand(78, 91);
- makeitem 5260, rand(1,3), "020-1", rand(69, 82), rand(78, 91);
- makeitem 5260, rand(1,3), "020-1", rand(69, 82), rand(78, 91);
- makeitem 5260, rand(1,3), "020-1", rand(69, 82), rand(78, 91);
- makeitem 5260, rand(1,3), "020-1", rand(69, 82), rand(78, 91);
- makeitem 5260, rand(1,3), "020-1", rand(69, 82), rand(78, 91);
- end;
-
-// Duplicates
-OnClock0001:
- goto OnClock2359;
-OnClock1759:
- goto OnClock2359;
-OnClock1801:
- goto OnClock2359;
-OnClock0559:
- goto OnClock2359;
-OnClock0601:
- goto OnClock2359;
-OnClock2124:
- goto OnClock2359;
-OnClock0024:
- goto OnClock2359;
-*/
-}
-
-
-
-////////////////////////////////
-033-1,0,0,0|script|XXmas0331|32767
-{
- end;
-
-OnHit2:
- goto OnHit;
-
-OnHit:
- // Not Christmas yet
- if (!$@xmas_time)
- end;
- // Reward time
- if ($@xmas_time == $@xmas_reward_time)
- end;
- // player must be created at least two weeks ago
- if ((BaseLevel < 30) || (gettimetick(2) - TUT_var < 2*7*86400))
- end;
-
- // Magic cheat
- if (@wandspell[4])
- end;
- if (@ingravspell[2])
- end;
- if (@chizaspell[2])
- end;
- if (@flarspell[2])
- end;
- if (@phlexspell[3])
- end;
- if (@chipchipspell[2])
- end;
- if (@upmarmuspell[1])
- end;
-
- // Not equipped to hunt Grinchboos
- //if (getequipid(equip_arrow) != 5260)
- // end;
- if (getequipid(equip_hand1) != 5261)
- end;
-
- // By last, check for Arrow Hail
- set @nearby, 0;
- foreach 1, getmap(), @away[0] - 14, @away[1] - 14, @away[0] + 14, @away[1] + 14,
- strnpcinfo(0) + "::OnNearbyNpc";
- if (@nearby)
- end;
-
- // Grinchboo slain
- set XMAS2020, XMAS2020 + 1;
- set $XMAS2020_BOO, $XMAS2020_BOO + 1;
- set @loop, 0;
- set @rank, 0;
- goto L_MaybeInsertNext;
-
-L_MaybeInsertNext:
- if (XMAS2020 > $Record_XXmas_Kills[@rank])
- goto L_InsertScore;
- // you already had a better score
- if (strcharinfo(0) == $Record_XXmas_Name$[@rank])
- goto L_Reward1;
- set @rank, @rank + 1;
- if (@rank == MAX_HIGH_SCORES)
- goto L_Reward1;
- goto L_MaybeInsertNext;
-
-L_InsertScore:
- set @loop, @rank;
- goto L_FindLastScore;
-
-L_FindLastScore:
- // comment this out to allow the player to be in the list more than once
- // though actually, it might be better just to assume the list is full
- if (strcharinfo(0) == $Record_XXmas_Name$[@loop])
- goto L_MoveStuff;
-
- set @loop, @loop + 1;
- if (@loop == MAX_HIGH_SCORES)
- goto L_MoveStuff;
- goto L_FindLastScore;
-
-L_MoveStuff:
- if (@loop == @rank)
- goto L_FinallyInsertMe;
- set $Record_XXmas_Kills[@loop], $Record_XXmas_Kills[@loop - 1];
- set $Record_XXmas_Name$[@loop], $Record_XXmas_Name$[@loop - 1];
- set $Record_XXmas_Date$[@loop], $Record_XXmas_Date$[@loop - 1];
- set @loop, @loop - 1;
- goto L_MoveStuff;
-
-L_FinallyInsertMe:
- set $Record_XXmas_Kills[@rank], XMAS2020;
- set $Record_XXmas_Name$[@rank], strcharinfo(0);
- callfunc "time_stamp";
- set $Record_XXmas_Date$[@rank], @ts_date$ + " " + @ts_time$;
- set @ts_date$, "";
- set @ts_time$, "";
- goto L_Reward1;
-
-L_Reward1:
- // Maybe we should tell you how many you purified?
- if (XMAS2020 % 10 == 0 || XMAS2020 == 1)
- goto L_Warning;
- end;
-
-L_Warning:
- message strcharinfo(0), "Grinchboos purified: "+XMAS2020;
- end;
-
-OnTimer15000:
- areamonster "033-1", 20, 20, 120, 110, "", 1162, 18, "XXmas0331::OnHit2";
- // Only happens until :15, and every 15 minutes, for a total of 60 cycles.
- if (gettime(2) > 15)
- end;
- initnpctimer;
- end;
-
-OnClock1800:
- initnpctimer;
- end;
-
-OnClock1830:
- killmonster "033-1", "XXmas0331::OnHit2";
- stopnpctimer;
- end;
-
-// Additional timers
-OnClock0000:
- goto OnClock1800;
-OnClock0030:
- goto OnClock1830;
-OnClock0600:
- goto OnClock1800;
-OnClock0630:
- goto OnClock1830;
-
-OnNearbyNpc:
- explode .@nearby$[0], strnpcinfo(0,@target_id), "#";
- if(.@nearby$[0] == "arrow-hail" || .@nearby$[1] == "arrow-hail")
- set @nearby, @nearby + 1;
- end;
-}
-
-046-1,0,0,0|script|XXmas0461|32767
-{
- end;
-
-OnHit2:
- goto OnHit;
-
-OnHit:
- // Not Christmas yet
- if (!$@xmas_time)
- end;
- // Reward time
- if ($@xmas_time == $@xmas_reward_time)
- end;
- // player must be created at least two weeks ago
- if ((BaseLevel < 30) || (gettimetick(2) - TUT_var < 2*7*86400))
- end;
-
- // Magic cheat
- if (@wandspell[4])
- end;
- if (@ingravspell[2])
- end;
- if (@chizaspell[2])
- end;
- if (@flarspell[2])
- end;
- if (@phlexspell[3])
- end;
- if (@chipchipspell[2])
- end;
- if (@upmarmuspell[1])
- end;
-
- // Not equipped to hunt Grinchboos
- //if (getequipid(equip_arrow) != 5260)
- // end;
- if (getequipid(equip_hand1) != 5261)
- end;
-
- // By last, check for Arrow Hail
- set @nearby, 0;
- foreach 1, getmap(), @away[0] - 14, @away[1] - 14, @away[0] + 14, @away[1] + 14,
- strnpcinfo(0) + "::OnNearbyNpc";
- if (@nearby)
- end;
-
- // Grinchboo slain
- set XMAS2020, XMAS2020 + 1;
- set $XMAS2020_BOO, $XMAS2020_BOO + 1;
- set @loop, 0;
- set @rank, 0;
- goto L_MaybeInsertNext;
-
-L_MaybeInsertNext:
- if (XMAS2020 > $Record_XXmas_Kills[@rank])
- goto L_InsertScore;
- // you already had a better score
- if (strcharinfo(0) == $Record_XXmas_Name$[@rank])
- goto L_Reward1;
- set @rank, @rank + 1;
- if (@rank == MAX_HIGH_SCORES)
- goto L_Reward1;
- goto L_MaybeInsertNext;
-
-L_InsertScore:
- set @loop, @rank;
- goto L_FindLastScore;
-
-L_FindLastScore:
- // comment this out to allow the player to be in the list more than once
- // though actually, it might be better just to assume the list is full
- if (strcharinfo(0) == $Record_XXmas_Name$[@loop])
- goto L_MoveStuff;
-
- set @loop, @loop + 1;
- if (@loop == MAX_HIGH_SCORES)
- goto L_MoveStuff;
- goto L_FindLastScore;
-
-L_MoveStuff:
- if (@loop == @rank)
- goto L_FinallyInsertMe;
- set $Record_XXmas_Kills[@loop], $Record_XXmas_Kills[@loop - 1];
- set $Record_XXmas_Name$[@loop], $Record_XXmas_Name$[@loop - 1];
- set $Record_XXmas_Date$[@loop], $Record_XXmas_Date$[@loop - 1];
- set @loop, @loop - 1;
- goto L_MoveStuff;
-
-L_FinallyInsertMe:
- set $Record_XXmas_Kills[@rank], XMAS2020;
- set $Record_XXmas_Name$[@rank], strcharinfo(0);
- callfunc "time_stamp";
- set $Record_XXmas_Date$[@rank], @ts_date$ + " " + @ts_time$;
- set @ts_date$, "";
- set @ts_time$, "";
- goto L_Reward1;
-
-L_Reward1:
- // Maybe we should tell you how many you purified?
- if (XMAS2020 % 10 == 0 || XMAS2020 == 1)
- goto L_Warning;
- end;
-
-L_Warning:
- message strcharinfo(0), "Grinchboos purified: "+XMAS2020;
- end;
-
-OnTimer15000:
- areamonster "046-1", 20, 20, 160, 115, "", 1162, 18, "XXmas0461::OnHit2";
- // Only happens until :15, and every 15 minutes, for a total of 60 cycles.
- if (gettime(2) > 15)
- end;
- initnpctimer;
- end;
-
-OnClock1800:
- initnpctimer;
- end;
-
-OnClock1830:
- killmonster "046-1", "XXmas0461::OnHit2";
- stopnpctimer;
- end;
-
-// Additional timers
-OnClock0000:
- goto OnClock1800;
-OnClock0030:
- goto OnClock1830;
-OnClock0600:
- goto OnClock1800;
-OnClock0630:
- goto OnClock1830;
-
-OnNearbyNpc:
- explode .@nearby$[0], strnpcinfo(0,@target_id), "#";
- if(.@nearby$[0] == "arrow-hail" || .@nearby$[1] == "arrow-hail")
- set @nearby, @nearby + 1;
- end;
-}
-
-047-1,0,0,0|script|XXmas0471|32767
-{
- end;
-
-OnHit2:
- goto OnHit;
-
-OnHit:
- // Not Christmas yet
- if (!$@xmas_time)
- end;
- // Reward time
- if ($@xmas_time == $@xmas_reward_time)
- end;
- // player must be created at least two weeks ago
- if ((BaseLevel < 30) || (gettimetick(2) - TUT_var < 2*7*86400))
- end;
-
- // Magic cheat
- if (@wandspell[4])
- end;
- if (@ingravspell[2])
- end;
- if (@chizaspell[2])
- end;
- if (@flarspell[2])
- end;
- if (@phlexspell[3])
- end;
- if (@chipchipspell[2])
- end;
- if (@upmarmuspell[1])
- end;
-
- // Not equipped to hunt Grinchboos
- //if (getequipid(equip_arrow) != 5260)
- // end;
- if (getequipid(equip_hand1) != 5261)
- end;
-
- // By last, check for Arrow Hail
- set @nearby, 0;
- foreach 1, getmap(), @away[0] - 14, @away[1] - 14, @away[0] + 14, @away[1] + 14,
- strnpcinfo(0) + "::OnNearbyNpc";
- if (@nearby)
- end;
-
- // Grinchboo slain
- set XMAS2020, XMAS2020 + 1;
- set $XMAS2020_BOO, $XMAS2020_BOO + 1;
- set @loop, 0;
- set @rank, 0;
- goto L_MaybeInsertNext;
-
-L_MaybeInsertNext:
- if (XMAS2020 > $Record_XXmas_Kills[@rank])
- goto L_InsertScore;
- // you already had a better score
- if (strcharinfo(0) == $Record_XXmas_Name$[@rank])
- goto L_Reward1;
- set @rank, @rank + 1;
- if (@rank == MAX_HIGH_SCORES)
- goto L_Reward1;
- goto L_MaybeInsertNext;
-
-L_InsertScore:
- set @loop, @rank;
- goto L_FindLastScore;
-
-L_FindLastScore:
- // comment this out to allow the player to be in the list more than once
- // though actually, it might be better just to assume the list is full
- if (strcharinfo(0) == $Record_XXmas_Name$[@loop])
- goto L_MoveStuff;
-
- set @loop, @loop + 1;
- if (@loop == MAX_HIGH_SCORES)
- goto L_MoveStuff;
- goto L_FindLastScore;
-
-L_MoveStuff:
- if (@loop == @rank)
- goto L_FinallyInsertMe;
- set $Record_XXmas_Kills[@loop], $Record_XXmas_Kills[@loop - 1];
- set $Record_XXmas_Name$[@loop], $Record_XXmas_Name$[@loop - 1];
- set $Record_XXmas_Date$[@loop], $Record_XXmas_Date$[@loop - 1];
- set @loop, @loop - 1;
- goto L_MoveStuff;
-
-L_FinallyInsertMe:
- set $Record_XXmas_Kills[@rank], XMAS2020;
- set $Record_XXmas_Name$[@rank], strcharinfo(0);
- callfunc "time_stamp";
- set $Record_XXmas_Date$[@rank], @ts_date$ + " " + @ts_time$;
- set @ts_date$, "";
- set @ts_time$, "";
- goto L_Reward1;
-
-L_Reward1:
- // Maybe we should tell you how many you purified?
- if (XMAS2020 % 10 == 0 || XMAS2020 == 1)
- goto L_Warning;
- end;
-
-L_Warning:
- message strcharinfo(0), "Grinchboos purified: "+XMAS2020;
- end;
-
-OnTimer15000:
- areamonster "047-1", 20, 20, 200, 180, "", 1162, 48, "XXmas0471::OnHit2";
- // Only happens until :15, and every 15 minutes, for a total of 60 cycles.
- if (gettime(2) > 15)
- end;
- initnpctimer;
- end;
-
-OnClock1800:
- initnpctimer;
- end;
-
-OnClock1830:
- killmonster "047-1", "XXmas0471::OnHit2";
- stopnpctimer;
- end;
-
-// Additional timers
-OnClock0000:
- goto OnClock1800;
-OnClock0030:
- goto OnClock1830;
-OnClock0600:
- goto OnClock1800;
-OnClock0630:
- goto OnClock1830;
-
-OnNearbyNpc:
- explode .@nearby$[0], strnpcinfo(0,@target_id), "#";
- if(.@nearby$[0] == "arrow-hail" || .@nearby$[1] == "arrow-hail")
- set @nearby, @nearby + 1;
- end;
-}
-
diff --git a/world/map/npc/annuals/xmas/barriers.txt b/world/map/npc/annuals/xmas/barriers.txt
deleted file mode 100644
index 8460e7bf..00000000
--- a/world/map/npc/annuals/xmas/barriers.txt
+++ /dev/null
@@ -1,165 +0,0 @@
-// This file is part of Christmas Event
-// author: Jenalya, Chayenne, cinderweb, wushin
-// please see #XmasConfig
-
-function|script|ThrowOutTheBum
-{
- set @getout, 0;
- if((@xmas_thrown_out) && ($@xmas_time))
- goto L_SideOut;
- goto L_Return;
-
-L_SideOut:
- if(@xmas_helper_start_state)
- goto L_Warp;
- goto L_Hint;
-
-L_Hint:
- message strcharinfo(0), "I said get out! We've got no time for your kind here.";
- mes "[Orum's Homunculus]";
- mes "\"What are you doing? Come, see me in the caves below!\"";
- mes "\"I said go south till you reach the snowman. Then head into the cave to the east.\"";
- close2;
- warp "020-1",33,94;
- set @getout, 1;
- goto L_Return;
-
-L_Warp:
- message strcharinfo(0), "I said get out, We've no time for your kind here.";
- warp "020-1",33,94;
- set @getout, 1;
- goto L_Return;
-
-L_Return:
- return;
-}
-
-// Annual Xmas Boss Fight Door
-030-2,153,21,0|script|#DarkDoor|45,0,0
-{
- callfunc "XmasStates";
-
- if((@xmas_boss_door_state) && ($@xmas_time))
- goto L_XmasMain;
- goto L_NotActive;
-
-L_XmasMain:
- mes "You get the strange sensation that this might go terribly wrong. You had better bring some of your strongest comrades to help you in that case.";
- mes "Open the warehouse door?";
- menu
- "Yes, I feel brave.", L_Open,
- "No, It's quite nice out here.", L_Close;
-
-L_Open:
- if ($@XmasBattleStatus) goto L_BattleInProgress;
- warp "030-4",34,48;
- goto L_Close;
-
-L_BattleInProgress:
- mes "You can hear shouts and screams of despair from behind the door. But trying to open it fails.";
- next;
- mes "You will have to wait till someone from the inside opens the door again.";
- goto L_Close;
-
-L_NotActive:
- message strcharinfo(0), "This door appears locked by magical forces.";
- end;
-
-L_Close:
- close;
-}
-
-// Annual Xmas secret passage to a trapdoor in Santa's Inn Basement
-
-030-3,27,24,0|script|SmallCrack#XmasPassage|400,0,1
-{
- callfunc "XmasStates";
-
- if((@xmas_basement_passage) && ($@xmas_time))
- goto L_XmasMain;
- goto L_NotActive;
-
-L_NotActive:
- mes "You don't notice anything special.";
- goto L_Close;
-
-L_XmasMain:
- mes "You notice a small creak in the wall, what do you want to do?";
- next;
- goto L_EnterDialogue;
-
-L_EnterDialogue:
- menu
- "Nothing.", L_Close,
- "Bang my head against it repeatedly.", L_Tux9th,
- "Oh, not very much, I do not see anynthing there.", L_Close,
- "Hit it with my strong fist.", L_Enter;
-
-L_Tux9th:
- heal -20, 0;
- message strcharinfo(0), "Ouch, that hurt!";
- setlook LOOK_HAIR_STYLE, rand(20);
- goto L_Fail;
-
-L_Enter:
- if (getequipid(equip_hand1) > 0 || getequipid(equip_hand2) > 0) goto L_Sword;
- if (getequipid(equip_gloves) <= 0) goto L_Gloves;
- goto L_QueryWarp;
-
-L_Sword:
- mes "That is not your fist silly,";
- mes "use your fist, alright?";
- goto L_Close;
-
-L_Gloves:
- mes "Wow! Next time you plan to hit a wall,";
- mes "you had better equip some decent gloves in advance.";
- heal -20, 0;
- message strcharinfo(0), "Ouch, that hurt!";
- goto L_QueryWarp;
-
-L_QueryWarp:
- mes "You gaze into a black hole, do you want to enter?";
- mes " ";
- menu
- "Yes", L_Warp,
- "No", L_Close;
-
-L_Warp:
- warp "030-2",47,44;
- goto L_Close;
-
-L_Fail:
- mes "Seems like that won't work out as you planned.";
- goto L_Close;
-
-L_Close:
- close;
-}
-
-// Annual Xmas Escape Hatch
-030-2,48,44,0|script|#BasementDoor|45,0,0
-{
- callfunc "XmasStates";
-
- if((@xmas_basement_passage) && ($@xmas_time))
- goto L_XmasMain;
- goto L_NotActive;
-
-L_XmasMain:
- mes "Descend into the caves?";
- menu
- "Yes.", L_Open,
- "No.", L_Close;
-
-L_Open:
- warp "030-3",27,26;
- goto L_Close;
-
-L_NotActive:
- message strcharinfo(0), "This door appears locked by magical forces.";
- end;
-
-L_Close:
- close;
-}
diff --git a/world/map/npc/annuals/xmas/config.txt b/world/map/npc/annuals/xmas/config.txt
deleted file mode 100644
index 31068889..00000000
--- a/world/map/npc/annuals/xmas/config.txt
+++ /dev/null
@@ -1,291 +0,0 @@
-// This file is part of Christmas Event
-// author: Jenalya, Chayenne, cinderweb, wushin
-
-// 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
-// for now variable xmas used
-// Main quest states: XMASTIME
-// NIBBLE_0
-// 0-15: Main Quest States
-// Nibble_1: @xmas_karma, Event Behavior
-// 0-15: 0: Naughty, 15: Nice
-// List BITS:
-// 8: 021-1,87,66,0|script|Ayasha|258
-// 9: 021-1,63,107,0|script|Latif|262
-// 10: 021-1,123,116,0|script|Charda|260
-// 11: 021-1,78,87,0|script|Faris|259
-// 12: 021-1,98,25,0|script|Rasin|263
-// 13: 021-1,155,25,0|script|Ghada|265
-// 14: 025-1,80,88,0|script|Rossy|114
-// 15: 001-2,76,59,0|script|Kadiya|174
-// Helper Bit
-// 16: Bedding End
-// 17: Bedding Starts
-// 18: Glitter End
-// 19: Glitter Start
-// 20: Storage Helper
-// 21: Roasted Acorns
-// 22: Santa's Helper
-// 23: - free -
-// 24: Basement Passage
-// 25: Thrown Out
-// 26: Boss started Once by Player
-// 27: Boss won on hard mode
-// 28: Perfect Helpers
-// 29: Prefect List
-// 30: Helper Bit
-// 31: Side Choosen: Naughty vs. Nice
-
--|script|#XmasConfig|32767
-{
- 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
- set $@xmas_start_month, $XMAS_TIME_KEY[0];
- set $@xmas_reward_start_month, $XMAS_TIME_KEY[1];
- set $@xmas_end_month, $XMAS_TIME_KEY[2];
-
- // Reward Day Start/End
- set $@xmas_reward_start_day, $XMAS_TIME_KEY[3];
- set $@xmas_reward_end_day, $XMAS_TIME_KEY[4];
-
- // Time Settings
- set $@xmas_no_event_time, 0;
- set $@xmas_event_time, 1;
- set $@xmas_reward_time, 2;
-
- // Main Quest Settings
- // Bit used to Set Which one of the 2 quests you are on
- set $@xmas_side_bit, (1 << 31);
- set $@xmas_base_bonus_xp, 4;
- set $@xmas_karma_bonus, 1;
- set $@xmas_reward_max_karma, 15;
- set $@xmas_reward_hero_boss, 15;
- set $@xmas_reward_all_lists, 10;
- set $@xmas_reward_all_helpers, 10;
- set $@xmas_reward_tally_rare, 80;
- set $@xmas_reward_tally_common, 40;
- // Guidance System
- set $@xmas_route_bit, (1 << 23);
- // Basement Passage way
- set $@xmas_basement_passage, (1 << 24);
- // Thrown Out
- set $@xmas_thrown_out_bit, (1 << 25);
- // Quest Start (@xmas_state)
- set $@xmas_list_path2_state, 1;
- set $@xmas_list_path1_state, 2;
- set $@xmas_list_both_state, 3;
- set $@xmas_list_complete_state, 4;
- set $@xmas_list_deliver_state, 5;
- // Helper SubQuest
- set $@xmas_helpers_start_state, 6;
- set $@xmas_helpers_done_state, 7;
- // Reagents
- set $@xmas_reagents_start, 8;
- set $@xmas_reagents_done, 9;
- // Boss Door State
- set $@xmas_boss_door_open_state, 10;
- // Reward State
- set $@xmas_reward_start, 11;
- set $@xmas_reward1_done, 12;
- set $@xmas_reward2_done, 13;
- set $@xmas_reward_done, 14;
-
- // Boss Fight Required Level for Hard Mode
- set $@BossHardLevel, 70;
- set $@xmas_boss_start_bit, (1 << 26);
- set $@xmas_boss_hero_bit, (1 << 27);
- set $@xmas_boss_start_shift, 26;
- set $@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
- set $@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;
-
- set $@xmas_perfect_list_count, getarraysize($@xmas_child_list);
- set $@xmas_required_list_count, (getarraysize($@xmas_child_list) / 2);
-
- // Santa's Helper
- set $@xmas_sh_bit, (1 << 22);
- set $@xmas_sh_purple_amount, 25;
- set $@xmas_sh_blue_amount, 20;
- set $@xmas_sh_green_amount, 5;
-
- // Main Helper Bit
- set $@xmas_helper_bit, (1 << 30);
- set $@xmas_all_helpers_bit, (1 << 28);
-
- // Acorns
- set $@xmas_helper_bit_acorns, (1 << 21);
- set $@xmas_acorn_amount, 10;
- set $@xmas_iron_potion_amount, 1;
-
- // Bedding
- set $@xmas_helper_bit_bed_starts, (1 << 16);
- set $@xmas_helper_bit_bed_ends, (1 << 17);
- set $@xmas_bedding_amount, 10;
-
- // Boxes
- set $@xmas_log_amount, 2;
-
- // Wrap
- set $@xmas_reed_amount, 2;
- set $@xmas_water_amount, 1;
- set $@xmas_wrap_reward, 1;
-
- // Wrap Dye Amounts
- set $@xmas_poa_amount, 2;
- set $@xmas_wrap_yellow_amount, 2;
- set $@xmas_wrap_ltblue_amount, 2;
- set $@xmas_wrap_purple_amount, 2;
- set $@xmas_wrap_green_amount, 2;
-
- // Present Return
- set $@xmas_present_amount, 5;
-
- // Shipping
- set $@xmas_wrap_amount, 1;
- set $@xmas_empty_box_amount, 1;
- set $@xmas_ship_present_amount, 1;
-
- // Glitter
- set $@xmas_helper_bit_glitter_starts, (1 << 18);
- set $@xmas_helper_bit_glitter_ends, (1 << 19);
- set $@xmas_red_amount, 5;
- set $@xmas_yellow_amount, 5;
-
- // Storage (Daily Xmas)
- set $@xmas_helper_bit_storage, (1 << 20);
- // Good Daily Ammounts
- set $@xmas_good_level, 30;
- set $@xmas_good_cost, 12;
- set $@xmas_good_count, 3;
- set $@xmas_good_name$, "Candy";
- set $@xmas_good_friendly_name$, "Candies";
- set $@xmas_good_money, 500;
- set $@xmas_good_exp, 200;
-
- // Bad Daily Ammounts
- set $@xmas_bad_level, 30;
- set $@xmas_bad_cost, 12;
- set $@xmas_bad_count, 3;
-
- set $@xmas_bad_name$, "RedApple";
- set $@xmas_bad_friendly_name$, "Red Apples";
- set $@xmas_bad_money, 500;
- set $@xmas_bad_exp, 200;
-
- //Boss Fight Reward
- set $@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;
- set $@xmas_perfect_helpers_count, getarraysize($@xmas_helper_list);
- set $@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;
-
- set $@xmas_spawn_x1, 54;
- set $@xmas_spawn_y1, 48;
- set $@xmas_spawn_x2, 79;
- set $@xmas_spawn_y2, 89;
- set $@xmas_respawn_count, 9;
-
- set $@start_month, $@xmas_start_month;
- set $@end_month, $@xmas_end_month;
- set $@start_day, 1;
- set $@end_day, $@xmas_reward_end_day;
- set $@reward_start_month, $@xmas_reward_start_month;
- set $@reward_start_day, $@xmas_reward_start_day;
-
- callfunc "GetEventTime";
- set $@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;
-}
diff --git a/world/map/npc/annuals/xmas/core.txt b/world/map/npc/annuals/xmas/core.txt
deleted file mode 100644
index 4e628bb4..00000000
--- a/world/map/npc/annuals/xmas/core.txt
+++ /dev/null
@@ -1,252 +0,0 @@
-// This file is part of Christmas Event
-// author: Jenalya, Chayenne, cinderweb, wushin
-// please see #XmasConfig
-
-function|script|XmasNaughty
-{
- set @xmas_karma, ((XMASTIME & NIBBLE_1_MASK) >> NIBBLE_1_SHIFT);
- if((@xmas_karma - @karma_bonus) >= 0)
- goto L_SetNaughty;
- goto L_ResetNaughty;
-
-L_SetNaughty:
- set @xmas_karma, (@xmas_karma - @karma_bonus);
- goto L_Return;
-
-L_ResetNaughty:
- set @xmas_karma, 0;
- goto L_Return;
-
-L_Return:
- set XMASTIME, (XMASTIME & ~(NIBBLE_1_MASK) | (@xmas_karma << NIBBLE_1_SHIFT));
- set @karma_bonus, 0;
- return;
-}
-
-function|script|XmasNice
-{
- set @xmas_karma, ((XMASTIME & NIBBLE_1_MASK) >> NIBBLE_1_SHIFT);
- if((@xmas_karma + @karma_bonus) < 16)
- goto L_SetNice;
- goto L_ResetNice;
-
-L_SetNice:
- set @xmas_karma, (@karma_bonus + @xmas_karma);
- goto L_Return;
-
-L_ResetNice:
- set @xmas_karma, 15;
- goto L_Return;
-
-L_Return:
- set XMASTIME, (XMASTIME & ~(NIBBLE_1_MASK) | (@xmas_karma << NIBBLE_1_SHIFT));
- set @karma_bonus, 0;
- return;
-}
-
-// Called for a basic reward for quests state completion
-function|script|XmasXpReward
-{
- if (BaseLevel >= 10)
- goto L_HigherLevel;
- goto L_LowLevel;
-
-L_HigherLevel:
- getexp ((BaseLevel / 10) * ($@xmas_base_bonus_xp * BaseLevel)), 0;
- goto L_Return;
-
-L_LowLevel:
- getexp ($@xmas_base_bonus_xp * BaseLevel), 0;
- goto L_Return;
-
-L_Return:
- return;
-}
-
-function|script|XmasSetState
-{
- set XMASTIME, (XMASTIME & ~(NIBBLE_0_MASK) | (@xmas_state << NIBBLE_0_SHIFT));
- return;
-}
-
-function|script|XmasSetSide
-{
- set XMASTIME, XMASTIME | $@xmas_side_bit;
- return;
-}
-
-function|script|XmasSetRoute
-{
- set XMASTIME, XMASTIME | $@xmas_route_bit;
- return;
-}
-
-function|script|XmasThrowOut
-{
- set XMASTIME, XMASTIME | $@xmas_thrown_out_bit;
- return;
-}
-
-function|script|XmasSetBossStart
-{
- set XMASTIME, XMASTIME | $@xmas_boss_start_bit;
- return;
-}
-
-function|script|XmasSetBossHero
-{
- set XMASTIME, XMASTIME | $@xmas_boss_hero_bit;
- return;
-}
-
-// Tallys the players quest
-function|script|XmasSetReward
-{
- set @xmas_endgame, 0;
- set @xmas_reward_side, 0;
- set @xmas_reward_tally, 0;
- if(@xmas_side)
- goto L_SetSide;
- goto L_NotSetSide;
-
-L_SetSide:
- set @xmas_reward_side, 1;
- set @xmas_reward_tally, (@xmas_reward_tally + ($@xmas_reward_max_karma - @xmas_karma));
- goto L_SetRewardBonus;
-
-L_NotSetSide:
- set @xmas_reward_tally, (@xmas_reward_tally + @xmas_karma);
- goto L_SetRewardBonus;
-
-L_SetRewardBonus:
- if(@xmas_boss_hero)
- set @xmas_reward_tally, (@xmas_reward_tally + $@xmas_reward_hero_boss);
- if(@xmas_all_helpers)
- set @xmas_reward_tally, (@xmas_reward_tally + $@xmas_reward_all_helpers);
- if(@xmas_all_lists)
- set @xmas_reward_tally, (@xmas_reward_tally + $@xmas_reward_all_lists);
- //formula should:
- if (@xmas_reward_tally > 5)
- set @xmas_reward_lower_bound, 2 * @xmas_reward_tally - rand(5);
- if (@xmas_reward_tally <= 5)
- set @xmas_reward_lower_bound, @xmas_reward_tally;
- set @xmas_reward_upper_bound, @xmas_reward_lower_bound + ((Luk) / 5);
- set @xmas_reward, (rand(@xmas_reward_lower_bound, @xmas_reward_upper_bound));
- set @xmas_reward_lower_bound, 0;
- set @xmas_reward_upper_bound, 0;
- return;
-}
-
-// Main quest completion reward
-function|script|XmasMainXpBpReward
-{
- callfunc "XmasSetReward";
-
- if(BaseLevel >= 135)
- goto L_EndGameReward;
- goto L_LevelingReward;
-
-L_EndGameReward:
- set @xmas_bp_reward, 100 + rand(@xmas_reward, 2 * @xmas_reward);
- set BOSS_POINTS, BOSS_POINTS + @xmas_bp_reward;
- message strcharinfo(0), "You gain " + @xmas_bp_reward + " Bosspoints, giving you a total of " + BOSS_POINTS + ".";
- set @xmas_bp_reward, 0;
- return;
-
-L_LevelingReward:
- if(@xmas_reward >= $@xmas_reward_tally_rare)
- goto L_XmasLevel;
- goto L_XmasExp;
-
-L_XmasLevel:
- set BaseLevel, BaseLevel + 1;
- return;
-
-L_XmasExp:
- getexp ((@xmas_reward * BaseLevel * (BaseLevel + 10)) / 10), 0;
- return;
-}
-
-// Final Item reward
-function|script|XmasMainItemReward
-{
- callfunc "XmasSetReward";
-
- if (($@xmas_time == $@xmas_reward_time) && ((@xmas_reward_start_state) || (@xmas_reward1_done_state)))
- goto L_FinalGift;
- if (($@xmas_time == $@xmas_reward_time) && ((@xmas_reward_done_state) || (@xmas_reward2_done_state)))
- goto L_GotGift;
- if ($@xmas_time == $@xmas_reward_time)
- goto L_NoGift;
- goto L_Return;
-
-L_GotGift:
- mes "Hey, this is not for you!";
- goto L_Return;
-
-L_NoGift:
- mes "Oh someone got a present. Maybe you can get one too if help the right person?";
- goto L_Return;
-
-L_FinalGift:
- mes "[To: " + strcharinfo(0) + "]";
- mes "[From: " + $@xmas_present_from$[@xmas_reward_side] + "]";
- mes "O look, a present from " + $@xmas_present_from$[@xmas_reward_side];
- next;
- getinventorylist;
- if (@inventorylist_count > 97)
- goto L_FullInv;
- set @xmas_reward, (@xmas_reward + ((BaseLevel + 10)/10));
- if (debug > 0)
- message strcharinfo(0), "Reward variable: " + @xmas_reward;
- set @xmas_uncommon_slot1, rand(getarraysize($@xmas_uncommon_reward$));
- set @xmas_uncommon_slot2, rand(getarraysize($@xmas_uncommon_reward$));
- if(@xmas_reward >= $@xmas_reward_tally_rare)
- set @xmas_reward_item$, $@xmas_rare_reward$[@xmas_reward_side];
- if(@xmas_reward >= $@xmas_reward_tally_common)
- set @xmas_reward_item1$, $@xmas_uncommon_reward$[@xmas_uncommon_slot1];
- set @xmas_reward_item2$, $@xmas_uncommon_reward$[@xmas_uncommon_slot2];
- if(checkweight("Iten", 1) == 0)
- goto L_FullInv;
- if(@xmas_reward >= $@xmas_reward_tally_rare)
- getitem @xmas_reward_item$, 1;
- if(@xmas_reward >= $@xmas_reward_tally_common)
- getitem @xmas_reward_item1$, 1;
- getitem @xmas_reward_item2$, 1;
- set @xmas_uncommon_slot1, 0;
- set @xmas_uncommon_slot2, 0;
- set @xmas_reward_item$, "";
- set @xmas_reward_item1$, "";
- set @xmas_reward_item2$, "";
- if (@xmas_reward_start_state)
- set @xmas_state, $@xmas_reward2_done;
- if (@xmas_reward1_done_state)
- set @xmas_state, $@xmas_reward_done;
- callfunc "XmasSetState";
- goto L_Return;
-
-L_FullInv:
- mes "\"You have no place to put the present.\"";
- goto L_Return;
-
-L_Return:
- return;
-}
-
-// Checks for an expired event key
-// Each new annual event needs a new key
-// or it will allow completion from last year
-function|script|XmasCheckOld
-{
- if(XMASYEAR == $XMAS_TIME_KEY[5])
- goto L_Return;
- goto L_OldMatch;
-
-L_OldMatch:
- set XMASTIME, 0;
- set XMASYEAR, $XMAS_TIME_KEY[5];
- goto L_Return;
-
-L_Return:
- return;
-}
diff --git a/world/map/npc/annuals/xmas/debug.txt b/world/map/npc/annuals/xmas/debug.txt
deleted file mode 100644
index 6c513ff1..00000000
--- a/world/map/npc/annuals/xmas/debug.txt
+++ /dev/null
@@ -1,228 +0,0 @@
-// This file is part of Christmas Event
-// author: Jenalya, Chayenne, cinderweb, wushin
-// please see #XmasConfig
-
-function|script|XmasDebug
-{
- if(debug)
- goto L_Debug;
- goto L_Live;
-
-L_Live:
- mes "What do you want to do?";
- menu
- "Debug Vars", L_DebugLive,
- "Xmas Time Key Change.", L_XmasTimeKey,
- "Reset Xmas Chamber.", L_XmasChamberReset,
- "Do nothing.", L_Close;
-
-L_DebugLive:
- mes "--Sever--";
- mes "Event State: " + $@xmas_time;
- mes "Event Start" + $XMAS_TIME_KEY[0] + "/1";
- mes "Reward Start: " + $XMAS_TIME_KEY[1] + "/" + $XMAS_TIME_KEY[3];
- mes "Event End: " + $XMAS_TIME_KEY[2] + "/" + $XMAS_TIME_KEY[4];
- mes "Event Time Key (year (CCYY)): " + $XMAS_TIME_KEY[5];
- goto L_Close;
-
-L_Debug:
- mes "What do you want to do?";
- menu
- "Debug Vars", L_DebugVars,
- "Set Quest State.", L_XmasState,
- "Set Karma. [0-15] 15 Nice", L_XmasKarma,
- "Set All Lists", L_SetAllLists,
- "Set All Helpers", L_SetAllHelpers,
- "Set Boss Hero", L_SetBossHero,
- "Reset Quest State.", L_Reset,
- "Set Old Event Flag.", L_LastReset,
- "Xmas Time Key Change.", L_XmasTimeKey,
- "Reset Xmas Chamber.", L_XmasChamberReset,
- "Do nothing.", L_Close;
-
-L_DebugVars:
- callfunc "XmasStates";
- mes "--Sever--";
- mes "Event State: " + $@xmas_time;
- mes "Event Start" + $XMAS_TIME_KEY[0] + "/1";
- mes "Reward Start: " + $XMAS_TIME_KEY[1] + "/" + $XMAS_TIME_KEY[3];
- mes "Event End: " + $XMAS_TIME_KEY[2] + "/" + $XMAS_TIME_KEY[4];
- mes "Event Time Key (year (CCYY)): " + $XMAS_TIME_KEY[5];
- next;
- mes "--Player--";
- mes "Player Event Time Key " + XMASYEAR;
- mes "xmas_state: " + @xmas_state;
- mes "xmas_karma: " + @xmas_karma;
- mes "xmas_side: " + @xmas_side;
- next;
- mes "xmas_list_gather: " + @xmas_list_gather;
- mes "xmas_list_complete: " + @xmas_list_complete;
- mes "xmas_list_deliver: " + @xmas_list_deliver;
- mes "xmas_helper_start_state: " + @xmas_helper_start_state;
- mes "xmas_helper_done_state: " + @xmas_helper_done_state;
- mes "xmas_reagent_start_state: " + @xmas_reagent_start_state;
- mes "xmas_reagent_done_state: " + @xmas_reagent_done_state;
- mes "xmas_boss_door_state: " + @xmas_boss_door_state;
- mes "xmas_reward_start_state " + @xmas_reward_start_state;
- mes "xmas_reward1_done_state " + @xmas_reward1_done_state;
- mes "xmas_reward2_done_state " + @xmas_reward2_done_state;
- mes "xmas_reward_done_state: " + @xmas_reward_done_state;
- next;
- mes "xmas_basement_passage: " + @xmas_basement_passage;
- mes "xmas_thrown_out: " + @xmas_thrown_out;
- mes "xmas_hard_mode: " + @xmas_boss_hero;
- next;
- mes "xmas_sweater: " + @xmas_sh_done;
- next;
- mes "xmas_all_lists: " + @xmas_all_lists;
- next;
- mes "xmas_helper_bit: " + @xmas_helper_bit;
- mes "xmas_all_helpers: " + @xmas_all_helpers;
- mes "xmas_helper_acorn: " + @xmas_helper_acorn;
- mes "xmas_helper_bedding: " + @xmas_helper_bedding;
- mes "xmas_helper_glitter: " + @xmas_helper_glitter;
- mes "xmas_helper_storage: " + @xmas_helper_storage;
- mes "xmas_knows_route: " + @xmas_knows_route;
- goto L_Close;
-
-L_LastReset:
- set XMASTIME, 255;
- set XMASYEAR, 2012;
- goto L_Close;
-
-L_Reset:
- set XMASTIME, 0;
- set XMASYEAR, $XMAS_TIME_KEY[5];
- goto L_Close;
-
-L_XmasTimeKey:
- mes "Xmas Time Key Change.";
- mes "Start Month?";
- input @xmas_time_key_smonth;
- if((@xmas_time_key_smonth == 0) || (@xmas_time_key_smonth > 12))
- goto L_XmasError;
- mes "Reward Start Month?";
- input @xmas_time_key_srmonth;
- if((@xmas_time_key_srmonth == 0) || (@xmas_time_key_srmonth > 12))
- goto L_XmasError;
- mes "End Month?";
- input @xmas_time_key_emonth;
- if((@xmas_time_key_emonth == 0) || (@xmas_time_key_emonth > 12))
- goto L_XmasError;
- mes "Reward Start Day?";
- input @xmas_time_key_rsday;
- if((@xmas_time_key_rsday == 0) || (@xmas_time_key_rsday > 31))
- goto L_XmasError;
- mes "Reward End Day?";
- input @xmas_time_key_reday;
- if((@xmas_time_key_reday == 0) || (@xmas_time_key_reday > 31))
- goto L_XmasError;
- mes "Time Key (CCYY) ";
- input @xmas_time_key_year;
- goto L_SetNewKey;
-
-L_XmasError:
- mes "Incorrect Entry. Try again.";
- goto L_Close;
-
-L_SetNewKey:
- setarray $XMAS_TIME_KEY, @xmas_time_key_smonth, @xmas_time_key_srmonth, @xmas_time_key_emonth, @xmas_time_key_rsday, @xmas_time_key_reday, @xmas_time_key_year;
- donpcevent "#XmasConfig::OnCommandRestartQuest";
- goto L_Close;
-
-L_XmasChamberReset:
- donpcevent "AniManOMat::OnCommandChamberReset";
- goto L_Close;
-
-L_XmasState:
- mes "Quest state?";
- input @xmas_state;
- callfunc "XmasSetState";
- goto L_Close;
-
-L_XmasKarma:
- mes "Karma (0-15) 0: Naughty, 15: Good";
- input @xmas_karma;
- set XMASTIME, (XMASTIME & ~(NIBBLE_1_MASK) | (@xmas_karma << NIBBLE_1_SHIFT));
- goto L_Close;
-
-L_SetAllLists:
- set XMASTIME, XMASTIME | $@xmas_all_lists_bit;
- goto L_Close;
-
-L_SetAllHelpers:
- set XMASTIME, XMASTIME | $@xmas_all_helpers_bit;
- goto L_Close;
-
-L_SetBossHero:
- set XMASTIME, XMASTIME | $@xmas_boss_hero_bit;
- goto L_Close;
-
-L_Close:
- set @xmas_state, 0;
- set @xmas_karma, 0;
- set @xmas_hard_mode, 0;
- set @xmas_time_key_smonth, 0;
- set @xmas_time_key_emonth, 0;
- set @xmas_time_key_rsday, 0;
- set @xmas_time_key_reday, 0;
- set @xmas_time_key_year, 0;
- close2;
- return;
-}
-
-020-1,86,76,0|script|XmasDebug#1|105
-{
- callfunc "XmasDebug";
- goto L_End;
-
-OnInit:
- if(!(debug))
- disablenpc "XmasDebug#1";
- goto L_End;
-
-L_End:
- end;
-}
-
-030-2,193,62,0|script|XmasDebug#2|105
-{
- callfunc "XmasDebug";
- goto L_End;
-
-OnInit:
- if(!(debug))
- disablenpc "XmasDebug#2";
- goto L_End;
-
-L_End:
- end;
-}
-
-030-3,26,26,0|script|XmasDebug#3|105
-{
- callfunc "XmasDebug";
- goto L_End;
-
-OnInit:
- if(!(debug))
- disablenpc "XmasDebug#3";
- goto L_End;
-
-L_End:
- end;
-}
-
-030-4,30,30,0|script|XmasDebug#4|111
-{
- callfunc "XmasDebug";
- goto L_End;
-
-OnInit:
- if(!(debug))
- disablenpc "XmasDebug#4";
- goto L_End;
-
-L_End:
- end;
-}
diff --git a/world/map/npc/annuals/xmas/helpers.txt b/world/map/npc/annuals/xmas/helpers.txt
deleted file mode 100644
index 0d566de7..00000000
--- a/world/map/npc/annuals/xmas/helpers.txt
+++ /dev/null
@@ -1,49 +0,0 @@
-// 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;
- goto L_Loop;
-
-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;
-}
diff --git a/world/map/npc/annuals/xmas/list.txt b/world/map/npc/annuals/xmas/list.txt
deleted file mode 100644
index 1805e6a8..00000000
--- a/world/map/npc/annuals/xmas/list.txt
+++ /dev/null
@@ -1,104 +0,0 @@
-// This file is part of Christmas Event
-// author: Jenalya, Chayenne, cinderweb, wushin
-// please see #XmasConfig
-
-function|script|XmasCheckList
-{
- set @xmas_list_count, 0;
- set @xmas_list_loop, 0;
-
- if((@xmas_list_deliver) || !(@xmas_list_gather))
- goto L_Return;
- goto L_Loop;
-
-L_Loop:
- if(XMASTIME & $@xmas_child_list[@xmas_list_loop])
- goto L_AddOne;
- goto L_LoopAgain;
-
-L_AddOne:
- set @xmas_list_count, (@xmas_list_count + 1);
- goto L_LoopAgain;
-
-L_LoopAgain:
- if((@xmas_list_loop + 1) == getarraysize($@xmas_child_list))
- goto L_ListTally;
- set @xmas_list_loop, (@xmas_list_loop + 1);
- goto L_Loop;
-
-L_ListTally:
- if(@xmas_list_count == $@xmas_perfect_list_count)
- goto L_PerfectList;
- if(@xmas_list_count > $@xmas_required_list_count)
- goto L_SetListState;
- goto L_Return;
-
-L_PerfectList:
- set XMASTIME, XMASTIME | $@xmas_all_lists_bit;
- goto L_SetListState;
-
-L_SetListState:
- set @xmas_state, $@xmas_list_complete_state;
- callfunc "XmasSetState";
- goto L_Return;
-
-L_Return:
- set @xmas_list_loop, 0;
- return;
-}
-
-function|script|XmasList
-{
- callfunc "XmasStates";
-
- if(($@xmas_time) && (@xmas_list_gather) && !(@xmas_list_complete))
- goto L_QuestTime;
- goto L_Return;
-
-L_QuestTime:
- if(XMASTIME & $@xmas_child_list[@child_number])
- goto L_Return;
- goto L_GetList;
-
-L_GetList:
- menu
- "Hey, I have come to collect your wish list for Santa", L_List,
- "Oh sorry, what were you going to say?", L_Return;
-
-L_List:
- mes "[" + $@xmas_child_list_name$[@child_number] + "]";
- mes "Here is my list. Make sure it gets delivered, please!";
- next;
- mes "You store " + $@xmas_child_list_name$[@child_number] + "'s wish list carefully in a hidden pocket of your backpack.";
- set XMASTIME, XMASTIME | $@xmas_child_list[@child_number];
- callfunc "XmasXpReward";
- menu
- "I really should be going.", L_Return;
-
-L_Return:
- return;
-}
-
-function|script|XmasListList
-{
- set @xmas_list_loop, 0;
- set @xmas_child_loop, 0;
- goto L_Loop;
-
-L_Loop:
- set @xmas_child_loop, ($@xmas_child_list[@xmas_list_loop]);
- if ((XMASTIME & @xmas_child_loop) != 0) goto L_LoopAgain;
- mes "\"" + $@xmas_child_list_name$[@xmas_list_loop] + "\"";
- next;
- goto L_LoopAgain;
-
-L_LoopAgain:
- if((@xmas_list_loop + 1) == getarraysize($@xmas_child_list_name$))
- goto L_Return;
- set @xmas_list_loop, (@xmas_list_loop + 1);
- goto L_Loop;
-
-L_Return:
- set @xmas_list_loop, 0;
- return;
-}
diff --git a/world/map/npc/annuals/xmas/mobmanager.txt b/world/map/npc/annuals/xmas/mobmanager.txt
deleted file mode 100644
index bb9f2a3f..00000000
--- a/world/map/npc/annuals/xmas/mobmanager.txt
+++ /dev/null
@@ -1,82 +0,0 @@
-// Spawns mobs
-
-019-1,0,0,0|script|XmasSpawnManager|400
-{
- end;
-
-OnCommandSpawnStart:
- if ($@xmas_spawn_started)
- goto L_End;
- set $@xmas_spawn_started, 1;
- goto L_InitSpawn;
-
-L_InitSpawn:
- initnpctimer;
- set $@xmas_current_count, 0;
- set $@xmas_map_loop, 0;
- goto L_StartLoop;
-
-L_StartLoop:
- set $@xmas_mob_lck, 1;
- set $@mob_count, mobcount($@xmas_map_spawns$[$@xmas_map_loop], "XmasSpawnCounter#" + $@xmas_map_loop + "::OnTally");
- set $@spawn_amount, ($@xmas_mob_counts[$@xmas_map_loop] - ($@mob_count + 1));
- if ($@spawn_amount)
- goto L_Spawn;
- goto L_NextMap;
-
-L_Spawn:
- areamonster $@xmas_map_spawns$[$@xmas_map_loop], $@xmas_spawn_x1, $@xmas_spawn_y1, $@xmas_spawn_x2, $@xmas_spawn_y2, $@xmas_mob_names$[$@xmas_map_loop], $@xmas_mob_spawns[$@xmas_map_loop], $@spawn_amount, "XmasSpawnCounter#" + $@xmas_map_loop + "::OnTally";
- set $@xmas_current_count, ($@xmas_current_count + $@spawn_amount);
- goto L_NextMap;
-
-L_NextMap:
- if (($@xmas_map_loop + 1) == getarraysize($@xmas_map_spawns$))
- goto L_End;
- set $@xmas_map_loop, ($@xmas_map_loop + 1);
- goto L_StartLoop;
-
-OnCommandTally:
- set $@xmas_map_loop, 0;
- set $@xmas_current_count, ($@xmas_current_count - 1);
- if (($@xmas_current_count < $@xmas_respawn_count) && !($@xmas_mob_lck))
- goto L_StartLoop;
- goto L_End;
-
-OnTimer110000:
- initnpctimer;
- goto L_StartLoop;
-
-L_End:
- set $@mob_count, 0;
- set $@spawn_amount, 0;
- set $@xmas_mob_lck, 0;
- set $@xmas_map_loop, 0;
- end;
-}
-
-019-1,0,0,0|script|XmasSpawnCounter#0|400
-{
- end;
-
-OnTally:
- donpcevent "XmasSpawnManager::OnCommandTally";
- end;
-}
-
-019-3,0,0,0|script|XmasSpawnCounter#1|400
-{
- end;
-
-OnTally:
- donpcevent "XmasSpawnManager::OnCommandTally";
- end;
-}
-
-030-3,0,0,0|script|XmasSpawnCounter#2|400
-{
- end;
-
-OnTally:
- donpcevent "XmasSpawnManager::OnCommandTally";
- end;
-}
diff --git a/world/map/npc/annuals/xmas/reagents.txt b/world/map/npc/annuals/xmas/reagents.txt
deleted file mode 100644
index 4adcaf12..00000000
--- a/world/map/npc/annuals/xmas/reagents.txt
+++ /dev/null
@@ -1,146 +0,0 @@
-// This file is part of Christmas Event
-// author: Jenalya, Chayenne, cinderweb, wushin
-// please see #XmasConfig
-
-function|script|CheckReagents
-{
- set @xmas_reagent_loop, 0;
- if((@xmas_reagent_done_state) || !(@xmas_reagent_start_state))
- goto L_Return;
- if(@xmas_side)
- goto L_OneLoop;
- goto L_ZeroLoop;
-
-L_ZeroLoop:
- if(countitem($@xmas_zero_reagents$[@xmas_reagent_loop]) >= $@xmas_zero_reagents_amounts[@xmas_reagent_loop])
- goto L_ZeroLoopAgain;
- goto L_Return;
-
-L_ZeroLoopAgain:
- if((@xmas_reagent_loop + 1) == getarraysize($@xmas_zero_reagents$))
- goto L_AllReagents;
- set @xmas_reagent_loop, (@xmas_reagent_loop + 1);
- goto L_ZeroLoop;
-
-L_OneLoop:
- if(countitem($@xmas_one_reagents$[@xmas_reagent_loop]) >= $@xmas_one_reagents_amounts[@xmas_reagent_loop])
- goto L_OneLoopAgain;
- goto L_Return;
-
-L_OneLoopAgain:
- if((@xmas_reagent_loop + 1) == getarraysize($@xmas_one_reagents$))
- goto L_AllReagents;
- set @xmas_reagent_loop, (@xmas_reagent_loop + 1);
- goto L_OneLoop;
-
-L_AllReagents:
- set @xmas_state, $@xmas_reagents_done;
- callfunc "XmasSetState";
- goto L_Return;
-
-L_Return:
- return;
-}
-
-function|script|DeleteReagents
-{
- set @xmas_reagent_loop, 0;
- if(@xmas_side)
- goto L_OneLoop;
- goto L_ZeroLoop;
-
-L_ZeroLoop:
- delitem $@xmas_zero_reagents$[@xmas_reagent_loop], $@xmas_zero_reagents_amounts[@xmas_reagent_loop];
- goto L_ZeroLoopAgain;
-
-L_ZeroLoopAgain:
- if((@xmas_reagent_loop + 1) == getarraysize($@xmas_zero_reagents$))
- goto L_Return;
- set @xmas_reagent_loop, (@xmas_reagent_loop + 1);
- goto L_ZeroLoop;
-
-L_OneLoop:
- delitem $@xmas_one_reagents$[@xmas_reagent_loop], $@xmas_one_reagents_amounts[@xmas_reagent_loop];
- goto L_OneLoopAgain;
-
-L_OneLoopAgain:
- if((@xmas_reagent_loop + 1) == getarraysize($@xmas_one_reagents$))
- goto L_Return;
- set @xmas_reagent_loop, (@xmas_reagent_loop + 1);
- goto L_OneLoop;
-
-L_Return:
- return;
-}
-
-function|script|ListReagents
-{
- set @xmas_reagent_loop, 0;
- mes "\"I'm going to need \"";
- next;
-
- if(@xmas_side)
- goto L_OneLoop;
- goto L_ZeroLoop;
-
-L_ZeroLoop:
- mes "\"" + $@xmas_zero_reagents_amounts[@xmas_reagent_loop] + " " + $@xmas_zero_reagents_names$[@xmas_reagent_loop] + "\"";
- next;
- goto L_ZeroLoopAgain;
-
-L_ZeroLoopAgain:
- if((@xmas_reagent_loop + 1) == getarraysize($@xmas_zero_reagents$))
- goto L_AllReagents;
- set @xmas_reagent_loop, (@xmas_reagent_loop + 1);
- goto L_ZeroLoop;
-
-L_OneLoop:
- mes "\"" + $@xmas_one_reagents_amounts[@xmas_reagent_loop] + " " + $@xmas_one_reagents_names$[@xmas_reagent_loop] + "\"";
- next;
- goto L_OneLoopAgain;
-
-L_OneLoopAgain:
- if((@xmas_reagent_loop + 1) == getarraysize($@xmas_one_reagents$))
- goto L_AllReagents;
- set @xmas_reagent_loop, (@xmas_reagent_loop + 1);
- goto L_OneLoop;
-
-L_AllReagents:
- return;
-}
-
-function|script|BadPowderMake
-{
- if(countitem("PileOfAsh") < ($@xmas_red_amount + $@xmas_yellow_amount))
- goto L_NotEnough;
- if(countitem("RedDye") < $@xmas_red_amount)
- goto L_NotEnough;
- if(countitem("YellowDye") < $@xmas_yellow_amount)
- goto L_NotEnough;
- getinventorylist;
- if (@inventorylist_count > 100)
- goto L_FullInv;
- goto L_MakePowder;
-
-L_MakePowder:
- delitem "PileOfAsh", ($@xmas_red_amount + $@xmas_yellow_amount);
- delitem "RedDye", $@xmas_red_amount;
- delitem "YellowDye", $@xmas_yellow_amount;
- getitem "RedPowder", $@xmas_red_amount;
- getitem "YellowPowder", $@xmas_yellow_amount;
- mes "\"Here is your powder, now move!\"";
- goto L_Return;
-
-L_FullInv:
- mes "\"... Excuse me but where did you expect you were going to hold these powders...\"";
- mes "\"WAIT! no, I don't want to know. Just come back when you have some room.\"";
- goto L_Return;
-
-L_NotEnough:
- mes "\"You don't have enough of eagents to make the powders.\"";
- mes "\"To replace the glitter we will need get " + ($@xmas_red_amount + $@xmas_yellow_amount) + " Piles of Ash, " + $@xmas_red_amount + " Red Dyes and " + $@xmas_yellow_amount + " Yellow Dyes\"";
- goto L_Return;
-
-L_Return:
- return;
-}
diff --git a/world/map/npc/annuals/xmas/states.txt b/world/map/npc/annuals/xmas/states.txt
deleted file mode 100644
index 49f51000..00000000
--- a/world/map/npc/annuals/xmas/states.txt
+++ /dev/null
@@ -1,55 +0,0 @@
-// This file is part of Christmas Event
-// author: Jenalya, Chayenne, cinderweb, wushin
-// please see #XmasConfig
-
-function|script|XmasStates
-{
- // Check for Old Quest Line Keys. Reset Quest if so.
- callfunc "XmasCheckOld";
- // Main Quest
- set @xmas_state, ((XMASTIME & NIBBLE_0_MASK) >> NIBBLE_0_SHIFT);
- set @xmas_karma, ((XMASTIME & NIBBLE_1_MASK) >> NIBBLE_1_SHIFT);
- set @xmas_side, XMASTIME & $@xmas_side_bit;
-
- set @xmas_list_gather, (@xmas_state >= $@xmas_list_path2_state);
- set @xmas_list_path2, (@xmas_state == $@xmas_list_path2_state);
- set @xmas_list_path1, (@xmas_state == $@xmas_list_path1_state);
- set @xmas_list_both, (@xmas_state == $@xmas_list_both_state);
- set @xmas_list_complete, (@xmas_state >= $@xmas_list_complete_state);
- set @xmas_list_deliver, (@xmas_state >= $@xmas_list_deliver_state);
- set @xmas_helper_start_state, (@xmas_state >= $@xmas_helpers_start_state);
- set @xmas_helper_done_state, (@xmas_state >= $@xmas_helpers_done_state);
- set @xmas_reagent_start_state, (@xmas_state >= $@xmas_reagents_start);
- set @xmas_reagent_done_state, (@xmas_state >= $@xmas_reagents_done);
- set @xmas_boss_door_state, (@xmas_state >= $@xmas_boss_door_open_state);
- set @xmas_reward_start_state, (@xmas_state == $@xmas_reward_start);
- set @xmas_reward1_done_state, (@xmas_state == $@xmas_reward1_done);
- set @xmas_reward2_done_state, (@xmas_state == $@xmas_reward2_done);
- set @xmas_reward_done_state, (@xmas_state == $@xmas_reward_done);
-
- // Basement Passage
- set @xmas_basement_passage, XMASTIME & $@xmas_basement_passage;
- // Thrown Out
- set @xmas_thrown_out, XMASTIME & $@xmas_thrown_out_bit;
- // Learned Route to Orum
- set @xmas_knows_route, XMASTIME & $@xmas_route_bit;
- // Santas Helper
- set @xmas_sh_done, XMASTIME & $@xmas_sh_bit;
- // List Quest
- set @xmas_all_lists, XMASTIME & $@xmas_all_lists_bit;
- // Helper Quest
- set @xmas_helper_bit, XMASTIME & $@xmas_helper_bit;
- set @xmas_all_helpers, XMASTIME & $@xmas_all_helpers_bit;
- // Acorns
- set @xmas_helper_acorn, XMASTIME & $@xmas_helper_bit_acorns;
- // Bedding
- set @xmas_helper_bedding, XMASTIME & $@xmas_helper_bit_bed_starts;
- // Glitter
- set @xmas_helper_glitter, XMASTIME & $@xmas_helper_bit_glitter_starts;
- // Storage
- set @xmas_helper_storage, XMASTIME & $@xmas_helper_bit_storage;
- // Bosses
- set @xmas_boss_start, XMASTIME & $@xmas_boss_start_bit;
- set @xmas_boss_hero, XMASTIME & $@xmas_boss_hero_bit;
- return;
-}