//===== eAthena Script =======================================
//= Thanatos Tower Quest
//===== By: ==================================================
//= [Ishizu-chan]
//===== Current Version: =====================================
//= 1.0 Beta
//===== Compatible With: =====================================
//= Any eAthena Version i guess?
//===== Description: =========================================
//= It's the Thanatos Tower Quest...
//===== Additional Comments: =================================
//= 1.0 - First Release [Ishizu-chan]
//============================================================


// Tour Guide - 1st Floor
tha_t01.gat,149,78,3	script	Tour Guide#1	90,{

  if (ThanaQuest & 1) {

    mes "[Tour Guide]";
    mes "Hello my friend.";
    mes "How are you? Do you enjoy working for the Rekkenber Corporation?";
    close;

  }

  mes "[Tour Guide]";
  mes "Hello there.";
  mes "So you came all the way to investigate the ^777777Thanatos Tower^000000, huh?";
  next;

  mes "[Tour Guide]";
  mes "I'm with the Rekkenber Corporation.";
  mes "We are still searching brave people, who would like to work for us and discover the deeper levels of the ^777777Thanatos Tower^000000.";
  next;

  mes "[Tour Guide]";
  mes "Are you by chance interested to volunteer to the ^777777Thanatos Tower Task Force^000000?";
  next;
  menu "No thanks.",L_End,
       "Yes, sign me up!",-;

  mes "[Tour Guide]";
  mes "Please sign your name here...";
  next;

  set ThanaQuest, ThanaQuest | 1;

  mes "[Tour Guide]";
  mes "Ok, ^000077"+strcharinfo(0)+"^000000, isn't it?";
  mes "Welcome to the ^777777Thanatos Tower Task Force^000000!";
  next;

  mes "[Tour Guide]";
  mes "Please be carefull when investigating the deeper levels of the ^777777Thanatos Tower^000000.";
  mes "The deeper you get, the less is known about it's dangers...";
  close;

  L_End:
  mes "[Tour Guide]";
  mes "Ok, but it was worth a try, wasn't it.";
  mes "Come back when you're interested.";
  close;

}


// Tour Guide - 2nd Floor
tha_t02.gat,231,161,5	script	Tour Guide#2	874,{

  if (ThanaQuest < 1) {

    mes "[Tour Guide]";
    mes "Hello there.";
    mes "Nice day, isn't it?";
    next;

    mes "[Tour Guide]";
    mes "If you want to visit the higher levels, you'll need to volunteer to the ^777777Thanatos Tower Task Force^000000.";
    next;

    mes "[Tour Guide]";
    mes "You can do so by speaking with the nice woman at the counter, near the entrance.";
    mes "See you later~";
    close;

  }

  mes "[Tour Guide]";
  mes "Hello my friend.";
  mes "Oh, you're one of the new volunteers from the ^777777Thanatos Tower Task Force^000000.";
  next;

  mes "[Tour Guide]";
  mes "If you wish to enter the next level, you'll need to form a party.";
  mes "Please gather at least 5 of your Friends around me, so that I can warp you towards the next level.";
  next;

  mes "[Tour Guide]";
  mes "I will warp your whole party, so tell your comrades to stand by.";
  mes "Shall I warp you now?";
  next;
  menu "No, I need some time...",L_End,
       "Yes, please warp us!",-;
  
  set @partyid, getcharid(1);

  if (@partyid == 0) goto L_NoParty;

  getpartymember(@partyid);
  set @partymembercount,$@partymembercount;
  copyarray @partymembername$[0],$@partymembername$[0],@partymembercount;

  if (@partymembercount < 6) goto L_NotEnough;

  for(set @i, 0; @i < @partymembercount; set @i, @i + 1) {
    if (getmapxy(@mapname$,@mapx,@mapy,0,@partymembername$[@i]) != 0) goto L_Offline;
    if (@mapname$ != "tha_t02.gat" || @mapx < 223 || @mapx > 239 || @mapy < 153 || @mapy > 169) goto L_Away;
  }

  warpparty "tha_t03.gat",220,165,@partyid;
  end;

  L_NoParty:
  mes "[Tour Guide]";
  mes "Erm, you need to form a party first.";
  close;

  L_NotEnough:
  mes "[Tour Guide]";
  mes "You'll need to bring at least 5 friends, if you want to enter the next level.";
  close;

  L_Offline:
  mes "[Tour Guide]";
  mes "Hmm, it seems some of your friends aren't online.";
  close;

  L_Away:
  mes "[Tour Guide]";
  mes "I can't find some of your friends.";
  mes "Please tell them to come close to me, so I can see them.";
  close;

  L_End:
  mes "[Tour Guide]";
  mes "Ok, come back whenever you're ready to go.";
  close;

}


// Mechanical Device - Red Key
tha_t03.gat,67,70,0	script	Mechanical Device#1	111,{

  if (ThanaQuest & 2) {

    mes "[Mechanical Device]";
    mes "This is where you found the";
    mes "^EF797BRed Key^000000.";
    close;

  }

  mes "[Mechanical Device]";
  mes "There's a strange mechanical device here.";
  next;
  menu "Investigate the device.",-,
       "Leave it alone.",L_End;

  mes "[Mechanical Device]";
  mes "...";
  next;

  mes "[Mechanical Device]";
  mes "It seems there is something inside, but the device is protected by a mysterious strong power.";
  next;
  menu "Try to get whats inside.",L_Denied,
       "Get rid of the strong power",-,
       "Leave it alone.",L_End;

  if (getequipweaponlv(4) < 4) goto L_NoWeapon;

  mes "[Mechanical Device]";
  mes "As you point your weapon towards the device, the magic power seems to fade.";
  mes "You now can get inside the device.";
  next;

  set ThanaQuest, ThanaQuest | 2;
  getitem 7421,1;  // Red Key

  mes "[Mechanical Device]";
  mes "You found the ^EF797BRed Key^000000.";
  close;

  L_Denied:
  mes "[Mechanical Device]";
  mes "You were pushed away as you tried to get inside.";
  mes "It seems the device is protected by a strong magical force.";
  close;

  L_NoWeapon:
  mes "[Mechanical Device]";
  mes "You tried to get rid of the mysterious power, but your weapon doesn't seem to be strong enough...";
  close;

  L_End:
  mes "[Mechanical Device]";
  mes "You left the mechanical device alone.";
  close;

}


// Mechanical Device - Yellow Key
tha_t04.gat,195,195,0	script	Mechanical Device#2	111,{

  if (ThanaQuest & 4) {

    mes "[Mechanical Device]";
    mes "This is where you found the";
    mes "^DE9673Yellow Key^000000.";
    close;

  }

  mes "[Mechanical Device]";
  mes "There's a strange mechanical device here.";
  next;
  menu "Investigate the device.",-,
       "Leave it alone.",L_End;

  mes "[Mechanical Device]";
  mes "The device started to make a certain noise since you approached to it.";
  mes "Theres a terminal in front of it, where you could enter a number with 3 digits.";
  next;

  mes "[Mechanical Device]";
  mes "The noise sounds very strange, and it seems as if the device doesn't work the way it should.";
  next;
  menu "Use the terminal",-,
       "Leave it alone.",L_End;

  set @number, rand(100,999);
  set @count, 0;

  L_Input:
  set @count, @count + 1;
  if (@count > 10) goto L_Broken;

  input @input;

  if (@input < 100 || @input > 999) goto L_Wrong;

  if (@input > @number) goto L_TooBig;
  if (@input < @number) goto L_TooSmall;

  mes "[Mechanical Device]";
  mes "As you use the terminal to adjust the number on it, the strange noise changed into a pleasant working sound, and a small box near the terminal opened.";
  mes "There's something in that box.";
  next;

  set ThanaQuest, ThanaQuest | 4;
  getitem 7422,1;  // Yellow Key

  mes "[Mechanical Device]";
  mes "You found the ^DE9673Yellow Key^000000.";
  close;

  L_TooBig:
  mes "[Mechanical Device]";
  mes "As you use the terminal to adjust the number on it, the strange noise changed.";
  mes "However, it still sounds wrong. It's a very high sound now.";
  next;

  mes "[Mechanical Device]";
  mes "It seems the number you entered was too big.";
  next;

  goto L_Input;

  L_TooSmall:
  mes "[Mechanical Device]";
  mes "As you use the terminal to adjust the number on it, the strange noise changed.";
  mes "However, it still sounds wrong. It's a very deep sound now.";
  next;

  mes "[Mechanical Device]";
  mes "It seems the number you entered was too small.";
  next;

  goto L_Input;

  L_Broken:
  mes "[Mechanical Device]";
  mes "The Device stoped with an akward sound.";
  mes "It seems the device doesn't work anymore...";
  close;

  L_Wrong:
  mes "[Mechanical Device]";
  mes "You tried to enter the number, but the terminal wasn't able to handle it.";
  mes "It seems the device doesn't work anymore...";
  close;

  L_End:
  mes "[Mechanical Device]";
  mes "You left the mechanical device alone.";
  close;

}


// Mechanical Device - Blue Key
tha_t05.gat,101,37,0	script	Mechanical Device#3	111,{

  if (ThanaQuest & 8) {

    mes "[Mechanical Device]";
    mes "This is where you found the";
    mes "^8CA6EFBlue Key^000000.";
    close;

  }

  mes "[Mechanical Device]";
  mes "There's a strange mechanical device here.";
  next;
  menu "Investigate the device.",-,
       "Leave it alone.",L_End;

  mes "[Mechanical Device]";
  mes "It seems there's something hidden under the device. However, the device is too heavy to lift it up alone.";
  next;
  menu "Try it anyways.",L_Alone,
       "Try it together.",-,
       "Leave it alone.",L_End;

  getmapxy @mapname$,@mapx,@mapy,0,strcharinfo(0);
  if (@mapx < 101 || @mapx > 104 || @mapy < 37 || @mapy > 40) goto L_Away;

  set @help, getareausers("tha_t05.gat",101,40,104,37);
  if (@help == 1) goto L_Alone;
  if (@help < 3) goto L_NotEnough;

  mes "[Mechanical Device]";
  mes "As you manage to lift the device with the help of your friends, you find something underneath, covered in dirt.";
  next;

  set ThanaQuest, ThanaQuest | 8;
  getitem 7423,1;  // Blue Key

  mes "[Mechanical Device]";
  mes "You found a ^8CA6EFBlue Key^000000.";
  close;

  L_Alone:
  getmapxy @mapname$,@mapx,@mapy,0;
  if (@mapx < 101 || @mapx > 104 || @mapy < 37 || @mapy > 40) goto L_Away;

  mes "[Mechanical Device]";
  mes "You coudn't move the device at all...";
  close;

  L_Away:
  mes "[Mechanical Device]";
  mes "You are too far away to move the device...";
  close;

  L_NotEnough:
  mes "[Mechanical Device]";
  mes "Even with some help you coudn't move the device.";
  mes "It seem you'll need more help...";
  close;

  L_End:
  mes "[Mechanical Device]";
  mes "You left the mechanical device alone.";
  close;

}


// Mechanical Device - Green Key
tha_t06.gat,43,152,0	script	Mechanical Device#4	111,{

  setarray @directions$[0],"up","right","down","left";

  if (ThanaQuest & 16) {

    mes "[Mechanical Device]";
    mes "This is where you found the";
    mes "^84A684Green Key^000000.";
    close;

  }

  mes "[Mechanical Device]";
  mes "There's a strange mechanical device here.";
  next;
  menu "Investigate the device.",-,
       "Leave it alone.",L_End;

  mes "[Mechanical Device]";
  mes "There are several switches, cogwheels, tubes and wires.";
  next;
  menu "Investigate the switches.",L_Switches,
       "Investigate the cogwheels.",-,
       "Investigate the tubes and wires.",L_Tubes,
       "Leave it alone.",L_End;

  set @wheel1, rand(1,3);
  if (@wheel1 == 1) set @wheel2,1;
  if (@wheel1 == 2) set @wheel2,0;
  if (@wheel1 == 3) set @wheel2,3;

  set @wheel3, rand(0,3);
  set @wheel4, rand(1,3);
  if (@wheel4 == 1) set @wheel5,3;
  if (@wheel4 == 2) set @wheel5,2;
  if (@wheel4 == 3) set @wheel5,1;

  L_Cogwheels:
  if (@wheel1 == 0 && @wheel2 == 2 && @wheel4 == 0 && @wheel5 == 0) goto L_Work;
  mes "[Mechanical Device]";
  mes "There are five cogwheels here, two small ones and three big ones.";
  mes "They seem to activate the device if they are adjusted the right way.";
  next;
  menu "Adjust the small ones.",L_Small,
       "Adjust the big ones.",L_Big,
       "Leave it alone.",L_End;

  L_Small:
  mes "[Mechanical Device]";
  mes "The first wheel points ^0000AA"+@directions$[@wheel1]+"^000000,";
  mes "the second one points ^0000AA"+@directions$[@wheel2]+"^000000.";
  next;
  menu "Spin them clockwise.",L_Small_Clock,
       "Spin them counterclockwise.",L_Small_Counter,
       "Adjust the other ones.",L_Big,
       "Go back.",L_Cogwheels;

  L_Small_Clock:
  set @wheel1, @wheel1 + 1;
  if (@wheel1 > 3) set @wheel1, @wheel1 - 4;
  set @wheel2, @wheel2 - 1;
  if (@wheel2 < 0) set @wheel2, @wheel2 + 4;
  goto L_Small;

  L_Small_Counter:
  set @wheel1, @wheel1 - 1;
  if (@wheel1 < 0) set @wheel1, @wheel1 + 4;
  set @wheel2, @wheel2 + 1;
  if (@wheel2 > 3) set @wheel2, @wheel2 - 4;
  goto L_Small;

  L_Big:
  mes "[Mechanical Device]";
  mes "The first wheel points ^0000AA"+@directions$[@wheel3]+"^000000,";
  mes "the second one points ^0000AA"+@directions$[@wheel4]+"^000000 and";
  mes "the third one points ^0000AA"+@directions$[@wheel5]+"^000000.";
  next;
  menu "Spin them clockwise.",L_Big_Clock,
       "Spin them counterclockwise.",L_Big_Counter,
       "Adjust the other ones.",L_Small,
       "Go back.",L_Cogwheels;

  L_Big_Clock:
  set @wheel3, @wheel3 + 1;
  if (@wheel3 > 3) set @wheel3, @wheel3 - 4;
  set @wheel4, @wheel4 - 1;
  if (@wheel4 < 0) set @wheel4, @wheel4 + 4;
  set @wheel5, @wheel5 + 1;
  if (@wheel5 > 3) set @wheel5, @wheel5 - 4;
  goto L_Big;

  L_Big_Counter:
  set @wheel3, @wheel3 - 1;
  if (@wheel3 < 0) set @wheel3, @wheel3 + 4;
  set @wheel4, @wheel4 + 1;
  if (@wheel4 > 3) set @wheel4, @wheel4 - 4;
  set @wheel5, @wheel5 - 1;
  if (@wheel5 < 0) set @wheel5, @wheel5 + 4;
  goto L_Big;

  L_Work:
  mes "[Mechanical Device]";
  mes "After you've adjusted the cogwheels this way, the device started to work.";
  mes "It produced a small metal object.";
  next;

  set ThanaQuest, ThanaQuest | 16;
  getitem 7424,1;  // Green Key

  mes "[Mechanical Device]";
  mes "You found the ^84A684Green Key^000000.";
  close;

  L_Switches:
  mes "[Mechanical Device]";
  mes "There are many switches, but most of them are stuck or seem to have no effect on the device.";
  close;

  L_Tubes:
  mes "[Mechanical Device]";
  mes "There are some tubes and wires which are connected to the other parts of the device.";
  mes "It seems all tubes and wires are as they are supposed to be.";
  close;

  L_End:
  mes "[Mechanical Device]";
  mes "You left the mechanical device alone.";
  close;

}


// Mechanical Device - Black Key
tha_t09.gat,19,158,0	script	Mechanical Device#5	111,{

  if (ThanaQuest & 32) {

    mes "[Mechanical Device]";
    mes "This is where you found the";
    mes "^9C716BBlack Key^000000.";
    close;

  }

  mes "[Mechanical Device]";
  mes "There's a small mechanical device here.";
  next;
  menu "Investigate the device.",-,
       "Leave it alone.",L_End;

  mes "[Mechanical Device]";
  mes "After investigating it closely, you find a small drawer with something in it.";
  mes "You take it out of the drawer.";
  next;

  set ThanaQuest, ThanaQuest | 32;
  getitem 7425,1;  // Black Key

  mes "[Mechanical Device]";
  mes "You found the ^84A684Black Key^000000.";
  close;

  L_End:
  mes "[Mechanical Device]";
  mes "You left the mechanical device alone.";
  close;

}


// Seal - Blue Magical Stone
tha_t04.gat,150,44,0	script	Seal#1	111,{

  if (ThanaQuest < 63) {

    mes "[Seal]";
    mes "There is a seal here, but it seems it cannot be revealed.";
    close;

  }

  if (ThanaQuest & 64) {

    mes "[Seal]";
    mes "This is where you found the";
    mes "^738EE7Blue Magical Stone^000000.";
    close;

  }

  mes "[Seal]";
  mes "There's a seal here.";
  next;

  mes "[Seal]";
  mes "It seems it can be revealed with a certain ^8CA6EFKey^000000...";
  next;

  input @input$;

  if (@input$ != "Blue Key" || countitem(7423) < 1) goto L_Wrong;

  mes "[Seal]";
  mes "After you've inserted the ^8CA6EFBlue Key^000000, the seal opened and revealed a beautiful Crystal.";
  next;

  set ThanaQuest, ThanaQuest | 64;
  delitem 7423,1; // Blue Key
  getitem 7428,1; // Blue Magical Stone

  mes "[Seal]";
  mes "You found the ^738EE7Blue Magical Stone^000000.";
  close;

  L_Wrong:
  mes "[Seal]";
  mes "Nothing happened.";
  close;

}


// Seal - Red Magical Stone
tha_t05.gat,218,116,0	script	Seal#2	111,{

  if (ThanaQuest < 63) {

    mes "[Seal]";
    mes "There is a seal here, but it seems it cannot be revealed.";
    close;

  }

  if (ThanaQuest & 128) {

    mes "[Seal]";
    mes "This is where you found the";
    mes "^CE6163Red Magical Stone^000000.";
    close;

  }

  mes "[Seal]";
  mes "There's a seal here.";
  next;

  mes "[Seal]";
  mes "It seems it can be revealed with a certain ^EF797BKey^000000...";
  next;

  input @input$;

  if (@input$ != "Red Key" || countitem(7421) < 1) goto L_Wrong;

  mes "[Seal]";
  mes "After you've inserted the ^EF797BRed Key^000000, the seal opened and revealed a beautiful Crystal.";
  next;

  set ThanaQuest, ThanaQuest | 128;
  delitem 7421,1; // Red Key
  getitem 7426,1; // Red Magical Stone

  mes "[Seal]";
  mes "You found the ^CE6163Red Magical Stone^000000.";
  close;

  L_Wrong:
  mes "[Seal]";
  mes "Nothing happened.";
  close;

}


// Seal - Black Magical Stone
tha_t06.gat,226,230,0	script	Seal#3	111,{

  if (ThanaQuest < 63) {

    mes "[Seal]";
    mes "There is a seal here, but it seems it cannot be revealed.";
    close;

  }

  if (ThanaQuest & 256) {

    mes "[Seal]";
    mes "This is where you found the";
    mes "^7B698CBlack Magical Stone^000000.";
    close;

  }

  mes "[Seal]";
  mes "There's a seal here.";
  next;

  mes "[Seal]";
  mes "It seems it can be revealed with a certain ^84A684Key^000000...";
  next;

  input @input$;

  if (@input$ != "Black Key" || countitem(7425) < 1) goto L_Wrong;

  mes "[Seal]";
  mes "After you've inserted the ^84A684Black Key^000000, the seal opened and revealed a beautiful Crystal.";
  next;

  set ThanaQuest, ThanaQuest | 256;
  delitem 7425,1; // Black Key
  getitem 7430,1; // Black Magical Stone

  mes "[Seal]";
  mes "You found the ^7B698CBlack Magical Stone^000000.";
  close;

  L_Wrong:
  mes "[Seal]";
  mes "Nothing happened.";
  close;

}


// Seal - Yellow Magical Stone
tha_t07.gat,113,129,0	script	Seal#4	111,{

  if (ThanaQuest < 63) {

    mes "[Seal]";
    mes "There is a seal here, but it seems it cannot be revealed.";
    close;

  }

  if (ThanaQuest & 512) {

    mes "[Seal]";
    mes "This is where you found the";
    mes "^EFA673Yellow Magical Stone^000000.";
    close;

  }

  mes "[Seal]";
  mes "There's a seal here.";
  next;

  mes "[Seal]";
  mes "It seems it can be revealed with a certain ^DE9673Key^000000...";
  next;

  input @input$;

  if (@input$ != "Yellow Key" || countitem(7422) < 1) goto L_Wrong;

  mes "[Seal]";
  mes "After you've inserted the ^DE9673Yellow Key^000000, the seal opened and revealed a beautiful Crystal.";
  next;

  set ThanaQuest, ThanaQuest | 512;
  delitem 7422,1; // Yellow Key
  getitem 7427,1; // Yellow Magical Stone

  mes "[Seal]";
  mes "You found the ^EFA673Yellow Magical Stone^000000.";
  close;

  L_Wrong:
  mes "[Seal]";
  mes "Nothing happened.";
  close;

}

// Seal - Green Magical Stone
tha_t10.gat,129,159,0	script	Seal#5	111,{

  if (ThanaQuest < 63) {

    mes "[Seal]";
    mes "There is a seal here, but it seems it cannot be revealed.";
    close;

  }

  if (ThanaQuest & 1024) {

    mes "[Seal]";
    mes "This is where you found the";
    mes "^738652Green Magical Stone^000000.";
    close;

  }

  mes "[Seal]";
  mes "There's a seal here.";
  next;

  mes "[Seal]";
  mes "It seems it can be revealed with a certain ^84A684Key^000000...";
  next;

  input @input$;

  if (@input$ != "Green Key" || countitem(7424) < 1) goto L_Wrong;

  mes "[Seal]";
  mes "After you've inserted the ^84A684Green Key^000000, the seal opened and revealed a beautiful Crystal.";
  next;

  set ThanaQuest, ThanaQuest | 1024;
  delitem 7424,1; // Green Key
  getitem 7429,1; // Green Magical Stone

  mes "[Seal]";
  mes "You found the ^738652Green Magical Stone^000000.";
  close;

  L_Wrong:
  mes "[Seal]";
  mes "Nothing happened.";
  close;

}


// Stone Statue - Floor 9
tha_t09.gat,82,99,0	script	Stone Statue#09a	111,{

  mes "[Stone Statue]";
  mes "There is a lever here.";
  if (ThanaSteps & 1) mes "It is pointing up.";
  else mes "It is pointing down.";
  next;
  menu "Pull the lever.",-,
       "Leave it as it is.",L_End;

  set ThanaSteps, ThanaSteps ^ 1;

  mes "[Stone Statue]";
  mes "You decided to pull the lever.";
  mes "It sounded as if it started some mechanical process.";
  close;

  L_End:
  mes "[Stone Statue]";
  mes "You decided to leave the lever as it is.";
  close;

}


// Stone Statue - Floor 10 (A)
tha_t10.gat,159,97,0	script	Stone Statue#10a	111,{

  mes "[Stone Statue]";
  mes "There is a lever here.";
  if (ThanaSteps & 2) mes "It is pointing up.";
  else mes "It is pointing down.";
  next;
  menu "Pull the lever.",-,
       "Leave it as it is.",L_End;

  set ThanaSteps, ThanaSteps ^ 2;
  if (ThanaSteps & 4) set ThanaSteps, ThanaSteps ^ 4;

  mes "[Stone Statue]";
  mes "You decided to pull the lever.";
  mes "It sounded as if it started some mechanical process.";
  close;

  L_End:
  mes "[Stone Statue]";
  mes "You decided to leave the lever as it is.";
  close;

}


// Stone Statue - Floor 10 (B)
tha_t10.gat,97,97,0	script	Stone Statue#10b	111,{

  if (ThanaSteps & 2) {

    mes "[Stone Statue]";
    mes "There is a lever here.";
    if (ThanaSteps & 4) mes "It is pointing up.";
    else mes "It is pointing down.";
    next;
    menu "Pull the lever.",-,
         "Leave it as it is.",L_End;

    if (ThanaSteps & 4) set ThanaSteps, ThanaSteps ^ 2;
    set ThanaSteps, ThanaSteps ^ 4;

    mes "[Stone Statue]";
    mes "You decided to pull the lever.";
    mes "It sounded as if it started some mechanical process.";
    close;

  }

  mes "[Stone Statue]";
  mes "There is a lever here, but it cannot be moved.";
  close;

  L_End:
  mes "[Stone Statue]";
  mes "You decided to leave the lever as it is.";
  close;

}


// Stone Statue - Floor 11 (A)
tha_t11.gat,85,85,0	script	Stone Statue#11a	111,{

  mes "[Stone Statue]";
  mes "There is a lever here.";
  if (ThanaSteps & 8) mes "It is pointing up.";
  else mes "It is pointing down.";
  next;
  menu "Pull the lever.",-,
       "Leave it as it is.",L_End;

  if (ThanaSteps & 8) {
    if (ThanaSteps & 64) set ThanaSteps, ThanaSteps ^ 64;
    if (ThanaSteps & 32) set ThanaSteps, ThanaSteps ^ 32;
    if (ThanaSteps & 16) set ThanaSteps, ThanaSteps ^ 16;
  }
  set ThanaSteps, ThanaSteps ^ 8;

  mes "[Stone Statue]";
  mes "You decided to pull the lever.";
  mes "It sounded as if it started some mechanical process.";
  close;

  L_End:
  mes "[Stone Statue]";
  mes "You decided to leave the lever as it is.";
  close;

}


// Stone Statue - Floor 11 (B)
tha_t11.gat,16,16,0	script	Stone Statue#11b	111,{

  if (ThanaSteps & 8) {

    mes "[Stone Statue]";
    mes "There is a lever here.";
    if (ThanaSteps & 16) mes "It is pointing up.";
    else mes "It is pointing down.";
    next;
    menu "Pull the lever.",-,
         "Leave it as it is.",L_End;

    if (ThanaSteps & 16) {
      if (ThanaSteps & 64) set ThanaSteps, ThanaSteps ^ 64;
      if (ThanaSteps & 32) set ThanaSteps, ThanaSteps ^ 32;
      set ThanaSteps, ThanaSteps ^ 8;
    }
    set ThanaSteps, ThanaSteps ^ 16;

    mes "[Stone Statue]";
    mes "You decided to pull the lever.";
    mes "It sounded as if it started some mechanical process.";
    close;

  }

  mes "[Stone Statue]";
  mes "There is a lever here, but it cannot be moved.";
  close;

  L_End:
  mes "[Stone Statue]";
  mes "You decided to leave the lever as it is.";
  close;

}


// Stone Statue - Floor 11 (C)
tha_t11.gat,85,16,0	script	Stone Statue#11c	111,{

  if (ThanaSteps & 16) {

    mes "[Stone Statue]";
    mes "There is a lever here.";
    if (ThanaSteps & 32) mes "It is pointing up.";
    else mes "It is pointing down.";
    next;
    menu "Pull the lever.",-,
         "Leave it as it is.",L_End;

    if (ThanaSteps & 32) {
      if (ThanaSteps & 64) set ThanaSteps, ThanaSteps ^ 64;
      set ThanaSteps, ThanaSteps ^ 16;
      set ThanaSteps, ThanaSteps ^ 8;
    }
    set ThanaSteps, ThanaSteps ^ 32;

    mes "[Stone Statue]";
    mes "You decided to pull the lever.";
    mes "It sounded as if it started some mechanical process.";
    close;

  }

  mes "[Stone Statue]";
  mes "There is a lever here, but it cannot be moved.";
  close;

  L_End:
  mes "[Stone Statue]";
  mes "You decided to leave the lever as it is.";
  close;

}


// Stone Statue - Floor 11 (D)
tha_t11.gat,16,85,0	script	Stone Statue#11d	111,{

  if (ThanaSteps & 32) {

    mes "[Stone Statue]";
    mes "There is a lever here.";
    if (ThanaSteps & 64) mes "It is pointing up.";
    else mes "It is pointing down.";
    next;
    menu "Pull the lever.",-,
         "Leave it as it is.",L_End;

    if (ThanaSteps & 64) {
      set ThanaSteps, ThanaSteps ^ 32;
      set ThanaSteps, ThanaSteps ^ 16;
      set ThanaSteps, ThanaSteps ^ 8;
    }
    set ThanaSteps, ThanaSteps ^ 64;

    mes "[Stone Statue]";
    mes "You decided to pull the lever.";
    mes "It sounded as if it started some mechanical process.";
    close;

  }

  mes "[Stone Statue]";
  mes "There is a lever here, but it cannot be moved.";
  close;

  L_End:
  mes "[Stone Statue]";
  mes "You decided to leave the lever as it is.";
  close;

}


// Stone Statue - Red Magical Stone
tha_t12.gat,96,58,0	script	Stone Statue#12a	111,{

  if (ThanaQuest < 2047) {

    mes "[Stone Statue]";
    mes "There is a socket here, but you don't know what to do.";
    close;

  }

  if (ThanaQuest & 2048) {

    mes "[Stone Statue]";
    mes "This is where you inserted the ^CE6163Red Magical Stone^000000.";
    close;

  }

  mes "[Stone Statue]";
  mes "There's a socket here.";
  next;

  input @input$;

  if (@input$ != "Red Magical Stone" || countitem(7426) < 1) goto L_Wrong;

  set ThanaQuest, ThanaQuest | 2048;
  delitem 7426,1; // Red Magical Stone

  mes "[Stone Statue]";
  mes "You've inserted the ^CE6163Red Magical Stone^000000 into the socket and it fits perfectly.";
  close;

  L_Wrong:
  mes "[Stone Statue]";
  mes "Nothing happened.";
  close;

}


// Stone Statue - Yellow Magical Stone
tha_t12.gat,161,58,0	script	Stone Statue#12b	111,{

  if (ThanaQuest < 2047) {

    mes "[Stone Statue]";
    mes "There is a socket here, but you don't know what to do.";
    close;

  }

  if (ThanaQuest & 4096) {

    mes "[Stone Statue]";
    mes "This is where you inserted the ^EFA673Yellow Magical Stone^000000.";
    close;

  }

  mes "[Stone Statue]";
  mes "There's a socket here.";
  next;

  input @input$;

  if (@input$ != "Yellow Magical Stone" || countitem(7427) < 1) goto L_Wrong;

  set ThanaQuest, ThanaQuest | 4096;
  delitem 7427,1; // Yellow Magical Stone

  mes "[Stone Statue]";
  mes "You've inserted the ^EFA673Yellow Magical Stone^000000 into the socket and it fits perfectly.";
  close;

  L_Wrong:
  mes "[Stone Statue]";
  mes "Nothing happened.";
  close;

}


// Stone Statue - Blue Magical Stone
tha_t12.gat,104,18,0	script	Stone Statue#12c	111,{

  if (ThanaQuest < 2047) {

    mes "[Stone Statue]";
    mes "There is a socket here, but you don't know what to do.";
    close;

  }

  if (ThanaQuest & 8192) {

    mes "[Stone Statue]";
    mes "This is where you inserted the ^738EE7Blue Magical Stone^000000.";
    close;

  }

  mes "[Stone Statue]";
  mes "There's a socket here.";
  next;

  input @input$;

  if (@input$ != "Blue Magical Stone" || countitem(7428) < 1) goto L_Wrong;

  set ThanaQuest, ThanaQuest | 8192;
  delitem 7428,1; // Blue Magical Stone

  mes "[Stone Statue]";
  mes "You've inserted the ^738EE7Blue Magical Stone^000000 into the socket and it fits perfectly.";
  close;

  L_Wrong:
  mes "[Stone Statue]";
  mes "Nothing happened.";
  close;

}


// Stone Statue - Green Magical Stone
tha_t12.gat,154,18,0	script	Stone Statue#12d	111,{

  if (ThanaQuest < 2047) {

    mes "[Stone Statue]";
    mes "There is a socket here, but you don't know what to do.";
    close;

  }

  if (ThanaQuest & 16384) {

    mes "[Stone Statue]";
    mes "This is where you inserted the ^738652Green Magical Stone^000000.";
    close;

  }

  mes "[Stone Statue]";
  mes "There's a socket here.";
  next;

  input @input$;

  if (@input$ != "Green Magical Stone" || countitem(7429) < 1) goto L_Wrong;

  set ThanaQuest, ThanaQuest | 16384;
  delitem 7429,1; // Green Magical Stone

  mes "[Stone Statue]";
  mes "You've inserted the ^738652Green Magical Stone^000000 into the socket and it fits perfectly.";
  close;

  L_Wrong:
  mes "[Stone Statue]";
  mes "Nothing happened.";
  close;

}


// Stone Statue - Black Magical Stone
tha_t12.gat,128,86,0	script	Stone Statue#12e	111,{

  if (ThanaQuest < 2047) {

    mes "[Stone Statue]";
    mes "There is a socket here, but you don't know what to do.";
    close;

  }

  if (ThanaQuest & 32768) {

    mes "[Stone Statue]";
    mes "This is where you inserted the ^7B698CBlack Magical Stone^000000.";
    close;

  }

  mes "[Stone Statue]";
  mes "There's a socket here.";
  next;

  input @input$;

  if (@input$ != "Black Magical Stone" || countitem(7430) < 1) goto L_Wrong;

  set ThanaQuest, ThanaQuest | 32768;
  delitem 7430,1; // Black Magical Stone

  mes "[Stone Statue]";
  mes "You've inserted the ^7B698CBlack Magical Stone^000000 into the socket and it fits perfectly.";
  close;

  L_Wrong:
  mes "[Stone Statue]";
  mes "Nothing happened.";
  close;

}


// Carvings
tha_t12.gat,130,52,0	script	Carvings#1	111,{

  mes "[Carvings]";
  mes "There are some beautifull carvings here.";
  next;

  mes "[Carvings]";
  mes "As you look closer at the carvings, a portal opens and takes you away...";
  next;

  if (ThanaQuest < 65535) {

    warp "thana_step.gat",185,15;
    end;

  }

  warp "thana_step.gat",73,288;
  end;

}


// Seal of Sorrow
thana_boss.gat,217,167,0	script	Carvings#2	111,{

  if ($Thana & 1) {

    mes "[Carvings]";
    mes "This is where you inserted the ^CE86C6Fragment of Sorrow^000000.";
    close;

  }

  mes "[Carvings]";
  mes "There's a hole in the floor, which seems to be made for something to fit in.";
  mes "It twinkles in ^CE86C6violet color^000000.";
  next;

  menu "Insert ^CE86C6Fragment of Sorrow^000000",L_Sorrow,
       "Insert ^7B9663Fragment of Agony^000000",L_Agony,
       "Insert ^8C79ADFragment of Hatred^000000",L_Hatred,
       "Insert ^F7865AFragment of Despair^000000",L_Despair,
       "Don't insert something.",L_End;

  L_Sorrow:
  if (countitem(7437) == 0) goto L_NoFragment;

  delitem 7437,1;
  stopnpctimer "TimerThana";
  set $Thana, $Thana | 1;
  initnpctimer "TimerThana";
  mapannounce "thana_boss.gat", "The Seal of Sorrow has been broken.",bc_npc;

  mes "[Carvings]";
  mes "You've inserted the ^CE86C6Fragment of Sorrow^000000 into the hole and it fits perfectly.";
  mes "It now glows in bright ^CE86C6violet color^000000.";
  if ($Thana >= 15) close;
  next;

  mes "[Carvings]";
  mes "Hurry now, tell your comrades to insert the other fragments.";
  close;

  L_Agony:
  if (countitem(7436) == 0) goto L_NoFragment;
  mes "[Carvings]";
  mes "You've tried to insert the ^7B9663Fragment of Agony^000000 into the hole, but it didn't fit.";
  close;

  L_Hatred:
  if (countitem(7438) == 0) goto L_NoFragment;
  mes "[Carvings]";
  mes "You've tried to insert the ^8C79ADFragment of Hatred^000000 into the hole, but it didn't fit.";
  close;

  L_Despair:
  if (countitem(7439) == 0) goto L_NoFragment;
  mes "[Carvings]";
  mes "You've tried to insert the ^F7865AFragment of Despair^000000 into the hole, but it didn't fit.";
  close;

  L_NoFragment:
  mes "[Carvings]";
  mes "You don't have this fragment.";
  close;

  L_End:
  mes "[Carvings]";
  mes "You left the cravings alone.";
  close;

  OnInit:
  set $Thana, 0;
  end;

}


// Seal of Agony
thana_boss.gat,202,75,0	script	Carvings#3	111,{

  if ($Thana & 2) {

    mes "[Carvings]";
    mes "This is where you inserted the ^7B9663Fragment of Agony^000000.";
    close;

  }

  mes "[Carvings]";
  mes "There's a hole in the floor, which seems to be made for something to fit in.";
  mes "It twinkles in ^7B9663green color^000000.";
  next;

  menu "Insert ^CE86C6Fragment of Sorrow^000000",L_Sorrow,
       "Insert ^7B9663Fragment of Agony^000000",L_Agony,
       "Insert ^8C79ADFragment of Hatred^000000",L_Hatred,
       "Insert ^F7865AFragment of Despair^000000",L_Despair,
       "Don't insert something.",L_End;

  L_Sorrow:
  if (countitem(7437) == 0) goto L_NoFragment;
  mes "[Carvings]";
  mes "You've tried to insert the ^CE86C6Fragment of Sorrow^000000 into the hole, but it didn't fit.";
  close;

  L_Agony:
  if (countitem(7436) == 0) goto L_NoFragment;

  delitem 7436,1;
  stopnpctimer "TimerThana";
  set $Thana, $Thana | 2;
  initnpctimer "TimerThana";
  mapannounce "thana_boss.gat", "The Seal of Agony has been broken.",bc_npc;

  mes "[Carvings]";
  mes "You've inserted the ^7B9663Fragment of Agony^000000 into the hole and it fits perfectly.";
  mes "It now glows in bright ^7B9663green color^000000.";
  if ($Thana >= 15) close;
  next;

  mes "[Carvings]";
  mes "Hurry now, tell your comrades to insert the other fragments.";
  close;

  L_Hatred:
  if (countitem(7438) == 0) goto L_NoFragment;
  mes "[Carvings]";
  mes "You've tried to insert the ^8C79ADFragment of Hatred^000000 into the hole, but it didn't fit.";
  close;

  L_Despair:
  if (countitem(7439) == 0) goto L_NoFragment;
  mes "[Carvings]";
  mes "You've tried to insert the ^F7865AFragment of Despair^000000 into the hole, but it didn't fit.";
  close;

  L_NoFragment:
  mes "[Carvings]";
  mes "You don't have this fragment.";
  close;

  L_End:
  mes "[Carvings]";
  mes "You left the cravings alone.";
  close;

}


// Seal of Hatred
thana_boss.gat,80,76,0	script	Carvings#4	111,{

  if ($Thana & 4) {

    mes "[Carvings]";
    mes "This is where you inserted the ^8C79ADFragment of Hatred^000000.";
    close;

  }

  mes "[Carvings]";
  mes "There's a hole in the floor, which seems to be made for something to fit in.";
  mes "It twinkles in ^8C79ADblue color^000000.";
  next;

  menu "Insert ^CE86C6Fragment of Sorrow^000000",L_Sorrow,
       "Insert ^7B9663Fragment of Agony^000000",L_Agony,
       "Insert ^8C79ADFragment of Hatred^000000",L_Hatred,
       "Insert ^F7865AFragment of Despair^000000",L_Despair,
       "Don't insert something.",L_End;

  L_Sorrow:
  if (countitem(7437) == 0) goto L_NoFragment;
  mes "[Carvings]";
  mes "You've tried to insert the ^CE86C6Fragment of Sorrow^000000 into the hole, but it didn't fit.";
  close;

  L_Agony:
  if (countitem(7436) == 0) goto L_NoFragment;
  mes "[Carvings]";
  mes "You've tried to insert the ^7B9663Fragment of Agony^000000 into the hole, but it didn't fit.";
  close;

  L_Hatred:
  if (countitem(7438) == 0) goto L_NoFragment;

  delitem 7438,1;
  stopnpctimer "TimerThana";
  set $Thana, $Thana | 4;
  initnpctimer "TimerThana";
  mapannounce "thana_boss.gat", "The Seal of Hatred has been broken.",bc_npc;

  mes "[Carvings]";
  mes "You've inserted the ^8C79ADFragment of Hatred^000000 into the hole and it fits perfectly.";
  mes "It now glows in bright ^8C79ADblue color^000000.";
  if ($Thana >= 15) close;
  next;

  mes "[Carvings]";
  mes "Hurry now, tell your comrades to insert the other fragments.";
  close;

  L_Despair:
  if (countitem(7439) == 0) goto L_NoFragment;
  mes "[Carvings]";
  mes "You've tried to insert the ^F7865AFragment of Despair^000000 into the hole, but it didn't fit.";
  close;

  L_NoFragment:
  mes "[Carvings]";
  mes "You don't have this fragment.";
  close;

  L_End:
  mes "[Carvings]";
  mes "You left the cravings alone.";
  close;

}


// Seal of Despair
thana_boss.gat,62,171,0	script	Carvings#5	111,{

  if ($Thana & 8) {

    mes "[Carvings]";
    mes "This is where you inserted the ^F7865AFragment of Despair^000000.";
    close;

  }

  mes "[Carvings]";
  mes "There's a hole in the floor, which seems to be made for something to fit in.";
  mes "It twinkles in ^F7865Ared color^000000.";
  next;

  menu "Insert ^CE86C6Fragment of Sorrow^000000",L_Sorrow,
       "Insert ^7B9663Fragment of Agony^000000",L_Agony,
       "Insert ^8C79ADFragment of Hatred^000000",L_Hatred,
       "Insert ^F7865AFragment of Despair^000000",L_Despair,
       "Don't insert something.",L_End;

  L_Sorrow:
  if (countitem(7437) == 0) goto L_NoFragment;
  mes "[Carvings]";
  mes "You've tried to insert the ^CE86C6Fragment of Sorrow^000000 into the hole, but it didn't fit.";
  close;

  L_Agony:
  if (countitem(7436) == 0) goto L_NoFragment;
  mes "[Carvings]";
  mes "You've tried to insert the ^7B9663Fragment of Agony^000000 into the hole, but it didn't fit.";
  close;

  L_Hatred:
  if (countitem(7438) == 0) goto L_NoFragment;
  mes "[Carvings]";
  mes "You've tried to insert the ^8C79ADFragment of Hatred^000000 into the hole, but it didn't fit.";
  close;

  L_Despair:
  if (countitem(7439) == 0) goto L_NoFragment;

  delitem 7439,1;
  stopnpctimer "TimerThana";
  set $Thana, $Thana | 8;
  initnpctimer "TimerThana";
  mapannounce "thana_boss.gat", "The Seal of Despair has been broken.",bc_npc;

  mes "[Carvings]";
  mes "You've inserted the ^F7865AFragment of Despair^000000 into the hole and it fits perfectly.";
  mes "It now glows in bright ^F7865Ared color^000000.";
  if ($Thana >= 15) close;
  next;

  mes "[Carvings]";
  mes "Hurry now, tell your comrades to insert the other fragments.";
  close;

  L_NoFragment:
  mes "[Carvings]";
  mes "You don't have this fragment.";
  close;

  L_End:
  mes "[Carvings]";
  mes "You left the cravings alone.";
  close;

}


// Seal of Thanatos
thana_boss.gat,141,217,0	script	Carvings#6	111,{

	if ($Thana == 15) {

		mes "[Carvings]";
		mes "You stepped on the plate, and it seems it activated some sort of mechanism.";
		next;

		if (!getmapmobs("thana_boss.gat")) {
			monster "thana_boss.gat",135,119,"Thanatos",1708,1,"TimerThana::OnThanaDead";
			stopnpctimer "TimerThana";
			set $Thana, $Thana | 16; 
			mapannounce "thana_boss.gat", "The Seal of Thanatos has been broken.",bc_npc;
			mes "[Carvings]";
			mes "You hear the screams of the undead coming from below...";
			close;
		} else {
			mes "[Carvings]";
			mes "But nothing happened...";
			close;
		}
	}

	mes "[Carvings]";
	mes "There is a plate here, which seems to be some sort of switch, but it doesn't move.";
	close;

}


// NPC Timer
thana_boss.gat,1,1,1	script	TimerThana	-1,{

  // 10 secs
  OnTimer10000:

    if ($Thana >= 15) end;
    stopnpctimer;
    mapannounce "thana_boss.gat", "You didn't manage to break all four Seals in time...",bc_npc;
    set $Thana, 0;
    end;

  OnThanaDead:

    initnpctimer;
    end;

  // 600 secs = 10 mins
  OnTimer600000:

    stopnpctimer;
    set $Thana, 0;
    end;

}
