summaryrefslogtreecommitdiff
path: root/world/map/npc/easter/2009
diff options
context:
space:
mode:
Diffstat (limited to 'world/map/npc/easter/2009')
-rw-r--r--world/map/npc/easter/2009/bunny.txt89
-rw-r--r--world/map/npc/easter/2009/object.txt407
2 files changed, 496 insertions, 0 deletions
diff --git a/world/map/npc/easter/2009/bunny.txt b/world/map/npc/easter/2009/bunny.txt
new file mode 100644
index 00000000..62644f23
--- /dev/null
+++ b/world/map/npc/easter/2009/bunny.txt
@@ -0,0 +1,89 @@
+// The Easter Bunny
+
+007-1.gat,32,30, 0 script Easter Bunny 173,{
+ callfunc "ClearVariables";
+ if (QUEST_Easter09 == 1) goto L_CheckEggs;
+ if (QUEST_Easter09 == 2) goto L_Done;
+
+ mes "[Easter Bunny]";
+ mes "Oh dear! Oh dear! I shall be too late!";
+ next;
+
+ menu
+ "What do you mean?", -,
+ "Goodbye then.", close;
+
+ mes "[Easter Bunny]";
+ mes "It's already Easter and I haven't hid a single Easter egg yet. And the worst part is, they already started searching for the eggs. What am I going to do? I seriously need a miracle. I mean, there are so many people searching and I haven't even begun yet. What am I going to do?";
+ next;
+
+ menu
+ "Maybe I can help.", -,
+ "I'll leave you to it then.", close;
+
+ mes "[Easter Bunny]";
+ mes "It's hopeless, you can't help me, it's to late!";
+ next;
+
+ menu
+ "I'm sure they haven't searched everywhere. What about that stone over there?", -,
+ "You're probably right.", close;
+
+ mes "[Easter Bunny]";
+ mes "Maybe you're right. Here, go hide these 10 Easter eggs for me.";
+
+ getitem "EasterEgg", 10;
+ set QUEST_Easter09, 1;
+
+ close;
+
+L_CheckEggs:
+ set @count, 0;
+ set @temp, QUEST_Easter09_slots;
+ set @i, 0;
+
+L_CheckEggs_Loop:
+ if (@temp & 1) set @count, @count + 1;
+ set @i, @i + 1;
+ if (@i == 31) goto L_CheckEggs_Continue;
+ set @temp, @temp >> 1;
+ goto L_CheckEggs_Loop;
+
+L_CheckEggs_Continue:
+ if (@count > 10) goto L_ManyEggs;
+ if (@count == 10) goto L_EnoughEggs;
+ mes "[Easter Bunny]";
+ mes "Please place " + (10 - @count) + " more eggs!";
+
+ set @temp, 10 - @count - countitem("EasterEgg");
+
+ if (@temp > 0) goto L_GiveMoreEggs;
+ close;
+
+L_GiveMoreEggs:
+ mes "[Easter Bunny]";
+ mes "What happened to " + @temp + " of your eggs?";
+ next;
+
+ mes "[Easter Bunny]";
+ mes "Never mind that. Take these and get them placed!";
+ getitem "EasterEgg", @temp;
+ close;
+
+L_ManyEggs:
+ mes "[Easter Bunny]";
+ mes "How did you manage to place more eggs than I gave you?";
+ next;
+
+L_EnoughEggs:
+ mes "[Easter Bunny]";
+ mes "Thanks! I'm saved. Now I don't need to be scared anymore. And I just came with the great plan to hide myself under a paper bag. Oh well, maybe you can use it.";
+ getitem "PaperBagHelm", 1;
+ set QUEST_Easter09, 2;
+ close;
+
+L_Done:
+ mes "[Easter Bunny]";
+ mes "Thank you for placing those eggs for me!";
+ close;
+}
diff --git a/world/map/npc/easter/2009/object.txt b/world/map/npc/easter/2009/object.txt
new file mode 100644
index 00000000..263321aa
--- /dev/null
+++ b/world/map/npc/easter/2009/object.txt
@@ -0,0 +1,407 @@
+//
+
+function script Easter2009Object {
+ if (@action == 1) goto L_TryPlace;
+
+ set @result, $Easter2009 >> @object;
+ set @result, @result & 1;
+
+ if (@result == 1) goto L_GiveEgg;
+ return;
+
+L_GiveEgg:
+ set $Easter2009, $Easter2009 & ~(1 << @object);
+ getitem "EasterEgg", 1;
+ return;
+
+L_TryPlace:
+ set @has, QUEST_Easter09_slots >> @object;
+ set @has, @has & 1;
+
+ if (@has == 1) goto L_AlreadyPlaced;
+
+ set @has, $Easter2009 >> @object;
+ set @has, @has & 1;
+
+ if (@has == 0) goto L_DoPlace;
+ set @result, 0;
+ return;
+
+L_DoPlace:
+ if (countitem("EasterEgg") > 0) goto L_DoPlace_Finish;
+
+ mes "You don't have any eggs to place!";
+ close;
+
+L_DoPlace_Finish:
+ delitem "EasterEgg", 1;
+ set @has, 1 << @object;
+ set QUEST_Easter09_slots, QUEST_Easter09_slots | @has;
+ set $Easter2009, $Easter2009 | @has;
+ set @result, 1;
+ return;
+
+L_AlreadyPlaced:
+ set @result, 2;
+ return;
+}
+
+function script Easter2009Rock {
+ if (QUEST_Easter09 == 1) goto L_PlaceEgg;
+ mes "Do you want to examine this rock?";
+ next;
+ menu
+ "Yes", -,
+ "No", close;
+
+ set @action, 0;
+ callfunc "Easter2009Object";
+ if (@result == 1) goto L_Found;
+ mes "There is nothing strange about this rock.";
+ close;
+
+L_Found:
+ mes "You found an egg under the rock.";
+ close;
+
+L_PlaceEgg:
+ mes "Do you want to put an egg under this rock?";
+ next;
+ menu
+ "Yes", -,
+ "No", close;
+
+ set @action, 1;
+ callfunc "Easter2009Object";
+ if (@result == 1) goto L_Placed;
+ if (@result == 2) goto L_AlreadyPlaced;
+ mes "Strange, there is already an egg under this rock.";
+ close;
+
+L_Placed:
+ mes "You placed an egg under the rock.";
+ close;
+
+L_AlreadyPlaced:
+ mes "You already placed an egg under this rock!";
+ close;
+}
+
+function script Easter2009Tree {
+ if (QUEST_Easter09 == 1) goto L_PlaceEgg;
+ mes "Do you want to examine this tree?";
+ next;
+ menu
+ "Yes", -,
+ "No", close;
+
+ set @action, 0;
+ callfunc "Easter2009Object";
+ if (@result == 1) goto L_Found;
+ mes "There is nothing strange about this tree.";
+ close;
+
+L_Found:
+ mes "You found an egg in the tree.";
+ close;
+
+L_PlaceEgg:
+ mes "Do you want to put an egg in this tree?";
+ next;
+ menu
+ "Yes", -,
+ "No", close;
+
+ set @action, 1;
+ callfunc "Easter2009Object";
+ if (@result == 1) goto L_Placed;
+ if (@result == 2) goto L_AlreadyPlaced;
+ mes "Strange, there is already an egg in this tree.";
+ close;
+
+L_Placed:
+ mes "You placed an egg in the tree.";
+ close;
+
+L_AlreadyPlaced:
+ mes "You already placed an egg in this tree!";
+ close;
+}
+
+function script Easter2009Flower {
+ if (QUEST_Easter09 == 1) goto L_PlaceEgg;
+ mes "Do you want to examine these flowers?";
+ next;
+ menu
+ "Yes", -,
+ "No", close;
+
+ set @action, 0;
+ callfunc "Easter2009Object";
+ if (@result == 1) goto L_Found;
+ mes "There is nothing strange about these flowers.";
+ close;
+
+L_Found:
+ mes "You found an egg among the flowers.";
+ close;
+
+L_PlaceEgg:
+ mes "Do you want to hide an egg with these flowers?";
+ next;
+ menu
+ "Yes", -,
+ "No", close;
+
+ set @action, 1;
+ callfunc "Easter2009Object";
+ if (@result == 1) goto L_Placed;
+ if (@result == 2) goto L_AlreadyPlaced;
+ mes "Strange, there is already an egg here.";
+ close;
+
+L_Placed:
+ mes "You placed an egg with the flowers.";
+ close;
+
+L_AlreadyPlaced:
+ mes "You already placed an egg among these flowers!";
+ close;
+}
+
+function script Easter2009Pot {
+ if (QUEST_Easter09 == 1) goto L_PlaceEgg;
+ mes "Do you want to examine this pot?";
+ next;
+ menu
+ "Yes", -,
+ "No", close;
+
+ set @action, 0;
+ callfunc "Easter2009Object";
+ if (@result == 1) goto L_Found;
+ mes "There is nothing strange about this pot.";
+ close;
+
+L_Found:
+ mes "You found an egg in the pot.";
+ close;
+
+L_PlaceEgg:
+ mes "Do you want to put an egg in this pot?";
+ next;
+ menu
+ "Yes", -,
+ "No", close;
+
+ set @action, 1;
+ callfunc "Easter2009Object";
+ if (@result == 1) goto L_Placed;
+ if (@result == 2) goto L_AlreadyPlaced;
+ mes "Strange, there is already an egg in this pot.";
+ close;
+
+L_Placed:
+ mes "You placed an egg in the pot.";
+ close;
+
+L_AlreadyPlaced:
+ mes "You already placed an egg in this pot!";
+ close;
+}
+
+function script Easter2009Sign {
+ if (QUEST_Easter09 == 1) goto L_PlaceEgg;
+ mes "Do you want to examine this sign?";
+ next;
+ menu
+ "Yes", -,
+ "No", close;
+
+ set @action, 0;
+ callfunc "Easter2009Object";
+ if (@result == 1) goto L_Found;
+ mes "There is nothing strange about this sign.";
+ close;
+
+L_Found:
+ mes "You found an egg near the sign.";
+ close;
+
+L_PlaceEgg:
+ mes "Do you want to put an egg near this sign?";
+ next;
+ menu
+ "Yes", -,
+ "No", close;
+
+ set @action, 1;
+ callfunc "Easter2009Object";
+ if (@result == 1) goto L_Placed;
+ if (@result == 2) goto L_AlreadyPlaced;
+ mes "Strange, there is already an egg near this sign.";
+ close;
+
+L_Placed:
+ mes "You placed an egg near the sign.";
+ close;
+
+L_AlreadyPlaced:
+ mes "You already placed an egg near this sign!";
+ close;
+}
+
+007-1.gat,126,63,0 script Rock 127,{
+ set @object, 0;
+ callfunc "Easter2009Rock";
+}
+
+009-1.gat,66,33,0 script Pot 127,{
+ set @object, 1;
+ callfunc "Easter2009Pot";
+}
+
+009-1.gat,93,52,0 script Tree 127,{
+ set @object, 2;
+ callfunc "Easter2009Tree";
+}
+
+007-1.gat,37,22,0 script Flowers 127,{
+ set @object, 3;
+ callfunc "Easter2009Flower";
+}
+
+008-1.gat,38,32,0 script Tree 127,{
+ set @object, 4;
+ callfunc "Easter2009Tree";
+}
+
+008-1.gat,43,21,0 script Flowers 127,{
+ set @object, 5;
+ callfunc "Easter2009Flower";
+}
+
+018-1.gat,121,88,0 script Tree 127,{
+ set @object, 6;
+ callfunc "Easter2009Tree";
+}
+
+010-1.gat,103,73,0 script Flowers 127,{
+ set @object, 7;
+ callfunc "Easter2009Flower";
+}
+
+010-1.gat,31,45,0 script Rock 127,{
+ set @object, 8;
+ callfunc "Easter2009Rock";
+}
+
+011-1.gat,83,39,0 script Pot 127,{
+ set @object, 9;
+ callfunc "Easter2009Pot";
+}
+
+011-1.gat,33,78,0 script Tree 127,{
+ set @object, 10;
+ callfunc "Easter2009Tree";
+}
+
+018-1.gat,64,98,0 script Rock 127,{
+ set @object, 11;
+ callfunc "Easter2009Rock";
+}
+
+012-1.gat,88,122,0 script Flowers 127,{
+ set @object, 12;
+ callfunc "Easter2009Flower";
+}
+
+012-1.gat,97,32,0 script Rock 127,{
+ set @object, 13;
+ callfunc "Easter2009Rock";
+}
+
+012-1.gat,153,101,0 script Tree 127,{
+ set @object, 14;
+ callfunc "Easter2009Tree";
+}
+
+013-1.gat,118,92,0 script Rock 127,{
+ set @object, 15;
+ callfunc "Easter2009Rock";
+}
+
+013-1.gat,104,36,0 script Flowers 127,{
+ set @object, 16;
+ callfunc "Easter2009Flower";
+}
+
+014-1.gat,100,37,0 script Flowers 127,{
+ set @object, 17;
+ callfunc "Easter2009Flower";
+}
+
+014-1.gat,38,102,0 script Tree 127,{
+ set @object, 18;
+ callfunc "Easter2009Tree";
+}
+
+014-1.gat,54,50,0 script Sign 127,{
+ set @object, 19;
+ callfunc "Easter2009Sign";
+}
+
+015-1.gat,59,97,0 script Rock 127,{
+ set @object, 20;
+ callfunc "Easter2009Rock";
+}
+
+015-1.gat,29,25,0 script Flowers 127,{
+ set @object, 21;
+ callfunc "Easter2009Flower";
+}
+
+016-1.gat,83,54,0 script Pot 127,{
+ set @object, 22;
+ callfunc "Easter2009Pot";
+}
+
+016-1.gat,62,83,0 script Sign 127,{
+ set @object, 23;
+ callfunc "Easter2009Sign";
+}
+
+016-1.gat,20,51,0 script Tree 127,{
+ set @object, 24;
+ callfunc "Easter2009Tree";
+}
+
+017-1.gat,77,32,0 script Sign 127,{
+ set @object, 25;
+ callfunc "Easter2009Sign";
+}
+
+017-1.gat,104,90,0 script Tree 127,{
+ set @object, 26;
+ callfunc "Easter2009Tree";
+}
+
+017-1.gat,37,76,0 script Flowers 127,{
+ set @object, 27;
+ callfunc "Easter2009Flower";
+}
+
+009-1.gat,29,48,0 script Flowers 127,{
+ set @object, 28;
+ callfunc "Easter2009Flower";
+}
+
+010-1.gat,127,99,0 script Tree 127,{
+ set @object, 29;
+ callfunc "Easter2009Tree";
+}
+
+011-1.gat,34,95,0 script Rock 127,{
+ set @object, 30;
+ callfunc "Easter2009Rock";
+}