summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--db/quest_db.conf4
-rw-r--r--npc/001-5/_mobs.txt2
-rw-r--r--npc/003-1/_mobs.txt2
-rw-r--r--npc/006-0/core.txt16
-rw-r--r--npc/006-3/core.txt5
-rw-r--r--npc/006-5/_import.txt1
-rw-r--r--npc/006-5/groata.txt477
7 files changed, 497 insertions, 10 deletions
diff --git a/db/quest_db.conf b/db/quest_db.conf
index 3468d3cae..9ca5f7d0f 100644
--- a/db/quest_db.conf
+++ b/db/quest_db.conf
@@ -159,6 +159,10 @@ quest_db: (
Id: 43
Name: "CandorQuest_Marggo"
},
+{
+ Id: 44
+ Name: "CandorQuest_Groata"
+},
// ID 51 to 70: Tulimshar quests
{
diff --git a/npc/001-5/_mobs.txt b/npc/001-5/_mobs.txt
index df3e2af17..bae3b0755 100644
--- a/npc/001-5/_mobs.txt
+++ b/npc/001-5/_mobs.txt
@@ -1,6 +1,6 @@
// This file is generated automatically. All manually added changes will be removed when running the Converter.
// Map 001-5: Contributor's Cave mobs
-001-5,49,49,29,29 monster Blob 1008,2,35000,60000
+001-5,49,49,29,29 monster Blub 1008,2,35000,60000
001-5,53,50,25,29 monster Snake 1122,1,35000,120000
001-5,54,51,25,29 monster Night Scorpion 1077,1,35000,150000
001-5,51,49,29,29 monster Stray Little Blub 1007,3,35000,180000
diff --git a/npc/003-1/_mobs.txt b/npc/003-1/_mobs.txt
index 7fa05644b..979fa58e1 100644
--- a/npc/003-1/_mobs.txt
+++ b/npc/003-1/_mobs.txt
@@ -7,7 +7,7 @@
003-1,85,136,8,11 monster Duck 1029,2,30000,20000
003-1,109,145,7,4 monster Giant Maggot 1031,1,30000,20000
003-1,67,121,2,3 monster Croc 1006,1,35000,90000
-003-1,39,101,8,11 monster Blob 1008,2,35000,150000
+003-1,39,101,8,11 monster Blub 1008,2,35000,150000
003-1,25,73,8,25 monster Little Blub 1007,6,35000,150000
003-1,37,70,3,13 monster Toppy Blub 1009,2,35000,150000
003-1,64,58,4,1 monster Croc 1006,1,35000,90000
diff --git a/npc/006-0/core.txt b/npc/006-0/core.txt
index 322023cb6..baa3478b7 100644
--- a/npc/006-0/core.txt
+++ b/npc/006-0/core.txt
@@ -6,15 +6,8 @@
end;
OnTouch:
- if (CRAZYPOINTS) goto L_Accept; // FIXME
- // Reject
- specialeffect(5000, SELF, getcharid(3));
- dispbottom l("The power which lies in Candor rejects your strength.");
- sleep2(3000);
- specialeffect(5002, SELF, getcharid(3));
- end;
+ if (CRAZYPOINTS < 1) goto L_Reject; // FIXME
-L_Accept:
specialeffect(5000, SELF, getcharid(3));
dispbottom l("The power which lies in Candor acknowledges your strength.");
sleep2(2500);
@@ -22,4 +15,11 @@ L_Accept:
sleep2(500);
specialeffect(5001, SELF, getcharid(3));
end;
+
+L_Reject:
+ specialeffect(5000, SELF, getcharid(3));
+ dispbottom l("The power which lies in Candor rejects your strength.");
+ sleep2(3000);
+ specialeffect(5002, SELF, getcharid(3));
+ end;
}
diff --git a/npc/006-3/core.txt b/npc/006-3/core.txt
index 016d80739..da6021a48 100644
--- a/npc/006-3/core.txt
+++ b/npc/006-3/core.txt
@@ -6,6 +6,11 @@
end;
OnTouch:
+ if (!getq(CandorQuest_Groata)) goto L_Reject; // FIXME
+
+
+ // FIXME: B3F is not ready, so fallthrough to L_Reject
+L_Reject:
//warp "006-3", 49, 52;
specialeffect(5000, SELF, getcharid(3));
dispbottom l("The power which lies in Candor rejects your strength.");
diff --git a/npc/006-5/_import.txt b/npc/006-5/_import.txt
index e0c3f4199..94dce7e92 100644
--- a/npc/006-5/_import.txt
+++ b/npc/006-5/_import.txt
@@ -1,3 +1,4 @@
// Map 006-5: Groata Grotto
// This file is generated automatically. All manually added changes will be removed when running the Converter.
"npc/006-5/_warps.txt",
+"npc/006-5/groata.txt",
diff --git a/npc/006-5/groata.txt b/npc/006-5/groata.txt
new file mode 100644
index 000000000..645238eaa
--- /dev/null
+++ b/npc/006-5/groata.txt
@@ -0,0 +1,477 @@
+// TMW2 Script
+// Author:
+// Jesusalva
+// Note:
+// Groata Grotto is NOT instanced, NOT timed, and meant to be weird.
+
+function script GroataGrotto {
+ .@lv = getarg(0, BaseLevel) + ($@GROTTO/3);
+
+ .@mb[0] = MagicGoblin;
+ .@mb[1] = IceMaggot;
+
+ // Artillery
+ if (.@lv > 40)
+ array_push(.@mb, RobinBandit);
+ if (.@lv > 50)
+ array_push(.@mb, DustGatling);
+ if (.@lv > 60)
+ array_push(.@mb, DustRifle);
+ if (.@lv > 70)
+ array_push(.@mb, DustRevolver);
+ if (.@lv > 80)
+ array_push(.@mb, DustBoss);
+ if (.@lv > 90)
+ array_push(.@mb, GreatMoubooSlime);
+ if (.@lv > 100)
+ array_push(.@mb, Jhon);
+
+ // Monsters
+ if (is_between(0, .@lv, 30)) {
+ array_push(.@mb, Piou);
+ array_push(.@mb, Piousse);
+ array_push(.@mb, Squirrel);
+ array_push(.@mb, ManaPiou);
+ array_push(.@mb, ForestPiou);
+ array_push(.@mb, RedButterfly);
+ array_push(.@mb, Maggot);
+ array_push(.@mb, CandorScorpion);
+ array_push(.@mb, HouseMaggot);
+ array_push(.@mb, LittleYellowSlime);
+ array_push(.@mb, Ratto);
+ array_push(.@mb, RudolphSlime);
+ array_push(.@mb, MoubooSlime);
+ array_push(.@mb, Croc);
+ array_push(.@mb, Scorpion);
+ array_push(.@mb, SmallFrog);
+ }
+ if (is_between(10, .@lv, 40)) {
+ array_push(.@mb, BigFrog);
+ array_push(.@mb, Lavern);
+ array_push(.@mb, LittleRedSlime);
+ array_push(.@mb, ChocolateSlime);
+ array_push(.@mb, Blub);
+ array_push(.@mb, Duck);
+ array_push(.@mb, Bat);
+ array_push(.@mb, CaveMaggot);
+ array_push(.@mb, ManaGhost);
+ array_push(.@mb, ManaBug);
+ array_push(.@mb, Fluffy);
+ array_push(.@mb, FireGoblin);
+ array_push(.@mb, ViciousSquirrel);
+ array_push(.@mb, RedScorpion);
+ array_push(.@mb, WhiteSlime);
+ array_push(.@mb, AzulSlime);
+ array_push(.@mb, DesertLogHead);
+ }
+ if (is_between(20, .@lv, 50)) {
+ array_push(.@mb, RedSlime);
+ array_push(.@mb, PoisonSpikyMushroom);
+ array_push(.@mb, DesertBandit);
+ array_push(.@mb, OceanCroc);
+ array_push(.@mb, ToppyBlub);
+ array_push(.@mb, Sarracenus);
+ array_push(.@mb, IceMaggot);
+ array_push(.@mb, VampireBat);
+ array_push(.@mb, Bandit);
+ array_push(.@mb, Pinkie);
+ array_push(.@mb, LivingPotato);
+ array_push(.@mb, Assassin);
+ array_push(.@mb, Skeleton);
+ }
+ if (is_between(30, .@lv, 60)) {
+ array_push(.@mb, CaveSnake);
+ array_push(.@mb, GreenSlime);
+ array_push(.@mb, CopperSlime);
+ array_push(.@mb, YellowSlime);
+ array_push(.@mb, SantaSlime);
+ array_push(.@mb, LavaSlime);
+ array_push(.@mb, Bluepar);
+ array_push(.@mb, DeathCat);
+ array_push(.@mb, Moggun);
+ array_push(.@mb, SeaSlime);
+ array_push(.@mb, RedMushroom);
+ array_push(.@mb, Mouboo);
+ array_push(.@mb, LogHead);
+ array_push(.@mb, CandiedSlime);
+ array_push(.@mb, OldSnake);
+ array_push(.@mb, GrassSnake);
+ }
+ if (is_between(40, .@lv, 70)) {
+ array_push(.@mb, GiantMaggot);
+ array_push(.@mb, IcedFluffy);
+ array_push(.@mb, Snake);
+ array_push(.@mb, BlackSlime);
+ array_push(.@mb, Tipiou);
+ array_push(.@mb, AlphaMouboo);
+ array_push(.@mb, Pollet);
+ array_push(.@mb, PiouKnight);
+ array_push(.@mb, Shrewboo);
+ }
+ if (is_between(40, .@lv, 80)) {
+ array_push(.@mb, Wolvern);
+ array_push(.@mb, FireSkull);
+ array_push(.@mb, DarkLizard);
+ }
+ if (is_between(50, .@lv, 90)) {
+ array_push(.@mb, ArmoredSkeleton);
+ array_push(.@mb, BlackScorpion);
+ array_push(.@mb, ElectroWorm);
+ array_push(.@mb, EarthFairy);
+ array_push(.@mb, FireFairy);
+ array_push(.@mb, WaterFairy);
+ array_push(.@mb, WindFairy);
+ array_push(.@mb, PoisonFairy);
+ array_push(.@mb, MountainSnake);
+ array_push(.@mb, HoodedNinja);
+ array_push(.@mb, ForestMushroom);
+ array_push(.@mb, GoldenScorpion);
+ }
+ if (is_between(60, .@lv, 100)) {
+ array_push(.@mb, Yeti);
+ array_push(.@mb, FallenGuard1);
+ array_push(.@mb, GreenSlimeMother);
+ array_push(.@mb, SnowFlower);
+ array_push(.@mb, BlueSlimeMother);
+ array_push(.@mb, WickedMushroom);
+ array_push(.@mb, CopperSlimeMother);
+ array_push(.@mb, YellowSlimeMother);
+ array_push(.@mb, RedSlimeMother);
+ array_push(.@mb, ChocolateSlimeMother);
+ array_push(.@mb, WhiteSlimeMother);
+ array_push(.@mb, Archant);
+ array_push(.@mb, Scar);
+ }
+ if (is_between(70, .@lv, 110)) {
+ array_push(.@mb, AzulSlimeMother);
+ array_push(.@mb, SeaSlimeMother);
+ array_push(.@mb, LavaSlimeMother);
+ array_push(.@mb, BlackSlimeMother);
+ array_push(.@mb, Crafty);
+ array_push(.@mb, Forain);
+ array_push(.@mb, GreenDragon);
+ array_push(.@mb, Michel);
+ array_push(.@mb, Troll);
+ }
+ if (is_between(80, .@lv, 120)) {
+ array_push(.@mb, EliteDuck);
+ array_push(.@mb, AzulSkullSlime);
+ array_push(.@mb, Moonshroom);
+ array_push(.@mb, RedSkullSlime);
+ array_push(.@mb, Terranite);
+ array_push(.@mb, JackO);
+ array_push(.@mb, BlackMamba);
+ array_push(.@mb, GreenSkullSlime);
+ array_push(.@mb, BloodyMouboo);
+ array_push(.@mb, Centaur);
+ array_push(.@mb, GoboBear);
+ }
+ if (is_between(90, .@lv, 130)) {
+ array_push(.@mb, CopperSkullSlime);
+ array_push(.@mb, LavaSkullSlime);
+ array_push(.@mb, BlackSkullSlime);
+ array_push(.@mb, GiantCaveMaggot);
+ array_push(.@mb, TerraniteProtector);
+ array_push(.@mb, VanityPixie);
+ array_push(.@mb, HolyPixie);
+ }
+ if (is_between(100, .@lv, 140)) {
+ array_push(.@mb, ShadowPixie);
+ array_push(.@mb, NulityPixie);
+ array_push(.@mb, Reaper);
+ array_push(.@mb, NightmareDragon);
+ array_push(.@mb, Snail);
+ array_push(.@mb, WhirlyBird);
+ }
+ if (is_between(110, .@lv, 150)) {
+ array_push(.@mb, PinkieSuseran);
+ array_push(.@mb, Mandragora);
+ array_push(.@mb, PinkieMaximus);
+ }
+ if (.@lv > 120) {
+ array_push(.@mb, Junglefowl);
+ array_push(.@mb, Tengu);
+ array_push(.@mb, Moubi);
+ }
+ if (.@lv > 130) {
+ array_push(.@mb, SuperiorShroom);
+ array_push(.@mb, Nutcracker);
+ array_push(.@mb, Golem);
+ }
+ if (.@lv > 140) {
+ array_push(.@mb, SiegeTower);
+ array_push(.@mb, GreenhornAbomination);
+ array_push(.@mb, ShadowTortuga);
+ array_push(.@mb, FireElement);
+ array_push(.@mb, WaterElement);
+ array_push(.@mb, EarthElement);
+ array_push(.@mb, WindElement);
+ }
+ if (.@lv > 150) {
+ array_push(.@mb, SacredWisp);
+ array_push(.@mb, EvilWisp);
+ array_push(.@mb, PanthomWisp);
+ array_push(.@mb, EpiphanyWisp);
+ }
+ if (.@lv > 175)
+ array_push(.@mb, Tortuga);
+
+ /* Spawn them and make hostile */
+ freeloop(true);
+ for (.@i = 0; .@i < 1+($@GROTTO*2/3); .@i++) {
+ .@mid = any_of(.@mb);
+ .@m=areamonster("006-5", 20, 20, getmapinfo(MAPINFO_SIZE_X,"006-5"), getmapinfo(MAPINFO_SIZE_Y,"006-5"), strmobinfo(1, .@mid), .@mid, 1);
+ set_aggro(.@m);
+ }
+ freeloop(false);
+
+ // TODO: Boss Logic if needed
+ // One boss each 10 grottos or something?
+ if (is_between(10, $@GROTTO, 15)) {
+ .@m=areamonster("006-5", 20, 20, getmapinfo(MAPINFO_SIZE_X,"006-5"), getmapinfo(MAPINFO_SIZE_Y,"006-5"), "Groata?", MonsterSergeant, 1);
+ set_aggro(.@m);
+ }
+ if ($@GROTTO > 15) {
+ .@m=areamonster("006-5", 20, 20, getmapinfo(MAPINFO_SIZE_X,"006-5"), getmapinfo(MAPINFO_SIZE_Y,"006-5"), "Groata?", SaxsoGhost, 1);
+ set_aggro(.@m);
+ }
+ if ($@GROTTO > 20) {
+ .@m=areamonster("006-5", 20, 20, getmapinfo(MAPINFO_SIZE_X,"006-5"), getmapinfo(MAPINFO_SIZE_Y,"006-5"), "Groata?", BlueSlime, 1);
+ set_aggro(.@m);
+ }
+ if ($@GROTTO > 25) {
+ .@m=areamonster("006-5", 20, 20, getmapinfo(MAPINFO_SIZE_X,"006-5"), getmapinfo(MAPINFO_SIZE_Y,"006-5"), "Groata?", MurdererScorpion, 1);
+ set_aggro(.@m);
+ }
+ if ($@GROTTO > 30) {
+ .@m=areamonster("006-5", 20, 20, getmapinfo(MAPINFO_SIZE_X,"006-5"), getmapinfo(MAPINFO_SIZE_Y,"006-5"), "Groata?", NightScorpion, 1);
+ set_aggro(.@m);
+ }
+ if ($@GROTTO > 35) {
+ .@m=areamonster("006-5", 20, 20, getmapinfo(MAPINFO_SIZE_X,"006-5"), getmapinfo(MAPINFO_SIZE_Y,"006-5"), "Groata?", SpiderQueen, 1);
+ set_aggro(.@m);
+ }
+ if ($@GROTTO > 40) {
+ .@m=areamonster("006-5", 20, 20, getmapinfo(MAPINFO_SIZE_X,"006-5"), getmapinfo(MAPINFO_SIZE_Y,"006-5"), "Groata?", HoodedAssassin, 1);
+ set_aggro(.@m);
+ }
+ if ($@GROTTO > 45) {
+ .@m=areamonster("006-5", 20, 20, getmapinfo(MAPINFO_SIZE_X,"006-5"), getmapinfo(MAPINFO_SIZE_Y,"006-5"), "Groata?", BanditLord, 1);
+ set_aggro(.@m);
+ }
+ if ($@GROTTO > 50) {
+ .@m=areamonster("006-5", 20, 20, getmapinfo(MAPINFO_SIZE_X,"006-5"), getmapinfo(MAPINFO_SIZE_Y,"006-5"), "Groata?", Tipiu, 1);
+ set_aggro(.@m);
+ maptimer2("006-5", 10, "Torch#0065::OnLv50");
+ }
+ if ($@GROTTO > 55) {
+ .@m=areamonster("006-5", 20, 20, getmapinfo(MAPINFO_SIZE_X,"006-5"), getmapinfo(MAPINFO_SIZE_Y,"006-5"), "Groata?", FafiDragon, 1);
+ set_aggro(.@m);
+ }
+ if ($@GROTTO > 60) {
+ .@m=areamonster("006-5", 20, 20, getmapinfo(MAPINFO_SIZE_X,"006-5"), getmapinfo(MAPINFO_SIZE_Y,"006-5"), "Groata?", NightDragon, 1);
+ set_aggro(.@m);
+ }
+ if ($@GROTTO > 65) {
+ .@m=areamonster("006-5", 20, 20, getmapinfo(MAPINFO_SIZE_X,"006-5"), getmapinfo(MAPINFO_SIZE_Y,"006-5"), "Groata?", GiantMutatedBat, 1);
+ set_aggro(.@m);
+ }
+ if ($@GROTTO > 70) {
+ .@m=areamonster("006-5", 20, 20, getmapinfo(MAPINFO_SIZE_X,"006-5"), getmapinfo(MAPINFO_SIZE_Y,"006-5"), "Groata?", EvilScythe, 1);
+ set_aggro(.@m);
+ }
+ if ($@GROTTO > 75) {
+ .@m=areamonster("006-5", 20, 20, getmapinfo(MAPINFO_SIZE_X,"006-5"), getmapinfo(MAPINFO_SIZE_Y,"006-5"), "Groata?", AndreiSakar, 1);
+ set_aggro(.@m);
+ }
+ if ($@GROTTO > 80) {
+ .@m=areamonster("006-5", 20, 20, getmapinfo(MAPINFO_SIZE_X,"006-5"), getmapinfo(MAPINFO_SIZE_Y,"006-5"), "Groata?", Yetifly, 1);
+ set_aggro(.@m);
+ }
+ if ($@GROTTO > 85) {
+ .@m=areamonster("006-5", 20, 20, getmapinfo(MAPINFO_SIZE_X,"006-5"), getmapinfo(MAPINFO_SIZE_Y,"006-5"), "Groata?", DemureFirstForm, 1);
+ set_aggro(.@m);
+ }
+ if ($@GROTTO > 90) {
+ .@m=areamonster("006-5", 20, 20, getmapinfo(MAPINFO_SIZE_X,"006-5"), getmapinfo(MAPINFO_SIZE_Y,"006-5"), "Groata?", YetiKing, 1);
+ set_aggro(.@m);
+ }
+ if ($@GROTTO > 95) {
+ .@m=areamonster("006-5", 20, 20, getmapinfo(MAPINFO_SIZE_X,"006-5"), getmapinfo(MAPINFO_SIZE_Y,"006-5"), "Groata?", FallenKing1, 1);
+ set_aggro(.@m);
+ }
+ if ($@GROTTO > 100) {
+ .@m=areamonster("006-5", 20, 20, getmapinfo(MAPINFO_SIZE_X,"006-5"), getmapinfo(MAPINFO_SIZE_Y,"006-5"), "Groata?", PsiConscience, 1);
+ set_aggro(.@m);
+ maptimer2("006-5", 10, "Torch#0065::OnLv100");
+ }
+ if ($@GROTTO > 105) {
+ .@m=areamonster("006-5", 20, 20, getmapinfo(MAPINFO_SIZE_X,"006-5"), getmapinfo(MAPINFO_SIZE_Y,"006-5"), "Groata?", Isbamuth, 1);
+ set_aggro(.@m);
+ }
+ if ($@GROTTO > 110) {
+ .@m=areamonster("006-5", 20, 20, getmapinfo(MAPINFO_SIZE_X,"006-5"), getmapinfo(MAPINFO_SIZE_Y,"006-5"), "Groata?", TerraniteKing, 1);
+ set_aggro(.@m);
+ }
+ if ($@GROTTO > 120) {
+ .@m=areamonster("006-5", 20, 20, getmapinfo(MAPINFO_SIZE_X,"006-5"), getmapinfo(MAPINFO_SIZE_Y,"006-5"), "Groata?", PinkieEmperor, 1);
+ set_aggro(.@m);
+ }
+ if ($@GROTTO > 130) {
+ .@m=areamonster("006-5", 20, 20, getmapinfo(MAPINFO_SIZE_X,"006-5"), getmapinfo(MAPINFO_SIZE_Y,"006-5"), "Groata?", PanthomLord, 1);
+ set_aggro(.@m);
+ }
+ if ($@GROTTO > 140) {
+ .@m=areamonster("006-5", 20, 20, getmapinfo(MAPINFO_SIZE_X,"006-5"), getmapinfo(MAPINFO_SIZE_Y,"006-5"), "Groata?", MonsterKing, 1);
+ set_aggro(.@m);
+ }
+ if ($@GROTTO > 150)
+ maptimer2("006-5", 10, "Torch#0065::OnLv150");
+ return;
+}
+
+006-5,49,36,0 script Torch#0065 NPC_NO_SPRITE,{
+ if (!mobcount("006-5", "all")) {
+ if ($@GROTTO) {
+ mesc l("The torch is currently lit.");
+ mesc l("Do you want to put it out, or to make it brighter?");
+ next;
+ select
+ l("I have to think."),
+ l("Put it out"),
+ l("Make it brighter");
+ mes "";
+ // Put it out
+ if (@menu == 2) {
+ $@GROTTO = 0;
+ $@GROATA = 0;
+ enablenpc "#006-5_49_54";
+ }
+ // I do not want to continue
+ if (@menu != 3)
+ close;
+ } else {
+ mesc l("Lit the torch?");
+ if (askyesno() == ASK_NO) close;
+ disablenpc "#006-5_49_54";
+ }
+ if (!getq(CandorQuest_Groata)) {
+ getitem any(Coal, SulfurPowder, FluoPowder, PileOfAsh, Pearl), 2;
+ setq CandorQuest_Groata, 1;
+ }
+ $@GROTTO += 1;
+ // Create monsters based on GROTTO
+ $@GROATA = max(BaseLevel, $@GROATA);
+ GroataGrotto($@GROATA);
+ close;
+ }
+ mesc l("The torch is lit.");
+ close;
+
+// Rewards
+OnLv50:
+ if (getq(CandorQuest_Groata) == 1) {
+ dispbottom l("This is ridiculous. Groata is not here, I am wasting my time!");
+ sleep2(5000);
+ if (getmap() != "006-5") end;
+ dispbottom l("Uh? Hey, look! A platinum card! This should be worth something with the Guild Merchant Guild, right?");
+ sleep2(5000);
+ if (getmap() != "006-5") end;
+ dispbottom l("...I'll take it.");
+ Zeny+=7500;
+ Mobpt+=2500;
+ getexp 0, 10000;
+ setq CandorQuest_Groata, 2;
+ }
+ end;
+
+OnLv100:
+ if (getq(CandorQuest_Groata) == 2) {
+ dispbottom l("Groata : Uh. What's happening here?");
+ sleep2(5000);
+ if (getmap() != "006-5") end;
+ dispbottom l("Groata : Hey. I live here. Why are you spawning monsters in my home??");
+ sleep2(5000);
+ if (getmap() != "006-5") end;
+ dispbottom l("Groata : This is rude. Seriously, stop doing this.");
+ sleep2(5000);
+ if (getmap() != "006-5") end;
+ dispbottom l("Groata : Let's make a deal. Take this, clear my house, and get out.");
+ getitem Mustache, 1;
+ setq CandorQuest_Groata, 3;
+ }
+ end;
+
+OnLv150:
+ if (getq(CandorQuest_Groata) == 3) {
+ dispbottom l("Groata : You must be idiotic in keeping spawning.");
+ sleep2(5000);
+ if (getmap() != "006-5") end;
+ dispbottom l("Groata : I wonder for how long you can survive here...");
+ sleep2(5000);
+ if (getmap() != "006-5") end;
+ dispbottom l("Groata : ...Will you seriously just keep running around? Like a headless chicken?");
+ sleep2(5000);
+ if (getmap() != "006-5") end;
+ dispbottom l("Groata : C'mon, that is boring. What I need to do to get you out of my house?");
+ sleep2(5000);
+ if (getmap() != "006-5") end;
+ dispbottom l("Groata : ...Meh. I'll give you this... stuff, and for the last time, don't bother me again...");
+ sleep2(5000);
+ if (getmap() != "006-5") end;
+ dispbottom l("Groata : ...Because I am out of freebies and need to sleep. So shoo.");
+ getitembound MylarinDust, 1, 1;
+ setq CandorQuest_Groata, 4;
+ }
+ end;
+
+OnInit:
+ .sex = G_OTHER;
+ .distance = 1;
+ end;
+}
+
+006-5,52,36,0 script Crystal#0065 NPC_NO_SPRITE,{
+ if (!mobcount("006-5", "all")) {
+ if ($@GROTTO) {
+ mesc l("The crystal looks damaged.");
+ mesc l("Do you want to restore it, or to keep breaking it?");
+ next;
+ select
+ l("I have to think."),
+ l("Restore it"),
+ l("Keep breaking");
+ mes "";
+ // Restore it
+ if (@menu == 2) {
+ $@GROTTO = 0;
+ $@GROATA = 0;
+ enablenpc "#006-5_49_54";
+ }
+ // I do not want to continue
+ if (@menu != 3)
+ close;
+ } else {
+ mesc l("Break the crystal?");
+ if (askyesno() == ASK_NO) close;
+ disablenpc "#006-5_49_54";
+ }
+ if (!getq(CandorQuest_Groata)) {
+ getitem any(WurtziteOre, DarkCrystal, CandorWarpCrystal), 1;
+ setq CandorQuest_Groata, 1;
+ }
+ $@GROTTO += 5;
+ // Create monsters based on GROTTO
+ $@GROATA = max(BaseLevel, $@GROATA);
+ GroataGrotto($@GROATA);
+ close;
+ }
+ mesc l("The crystal has a shard missing.");
+ close;
+
+OnInit:
+ .sex = G_OTHER;
+ .distance = 1;
+ end;
+}
+