summaryrefslogtreecommitdiff
path: root/npc/001-14/ctrl.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/001-14/ctrl.txt')
-rw-r--r--npc/001-14/ctrl.txt247
1 files changed, 2 insertions, 245 deletions
diff --git a/npc/001-14/ctrl.txt b/npc/001-14/ctrl.txt
index 715cf8cc8..070c1c5a2 100644
--- a/npc/001-14/ctrl.txt
+++ b/npc/001-14/ctrl.txt
@@ -332,235 +332,8 @@ OnInit:
@moly_chall = 8;
CreateMaze(IOT_CHAR);
- .@mx=getmapinfo(MAPINFO_SIZE_X, MAZE_MAP$)-20;
- .@my=getmapinfo(MAPINFO_SIZE_Y, MAZE_MAP$)-20;
- .@tl=(20-.@mx)*(20-.@my) * 3 / 10; // Total tiles + collision guess
- .@tl=.@tl / rand2(12,16) + 1; // Monster density is a bit random
-
- /* *** Copied from 006-5/groata.txt & 018-2-2/main.txt! *** */
- /* ********** Spawn monsters based on your level ********** */
- .@lv = max(6, BaseLevel) - 5;
- .@mb[0] = MagicGoblin;
- .@mb[1] = CaveMaggot;
-
- // 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_between2(0, .@lv, 40)) {
- 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_between2(10, .@lv, 50)) {
- 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_between2(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_between2(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_between2(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_between2(40, .@lv, 80)) {
- array_push(.@mb, Wolvern);
- array_push(.@mb, FireSkull);
- array_push(.@mb, DarkLizard);
- }
- if (is_between2(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_between2(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_between2(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_between2(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_between2(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_between2(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_between2(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);
-
- // Initialize instance but without InitMaze and short lived
- instance_set_timeout(900, 900, MAZE_INST);
- instance_init(MAZE_INST);
-
- /* Spawn them and make hostile */
- freeloop(true);
- for (.@i = 0; .@i < 1+(.@tl); .@i++) {
- .@mid = any_of(.@mb);
- .@m=areamonster(MAZE_MAP$, 20, 20, .@mx, .@my, strmobinfo(1, .@mid), .@mid, 1);
- set_aggro(.@m);
- }
- freeloop(false);
+ MazeMobs((max(6, BaseLevel) - 5), false, rand2(12,16));
+ InitMaze(900, false, false);
// Create the target boss
.@mx=getmapinfo(MAPINFO_SIZE_X, MAZE_MAP$)-20;
@@ -571,22 +344,6 @@ OnInit:
setunitdata(.@m, UDT_LEVEL, 1);
setunitdata(.@m, UDT_MODE, MD_BOSS);
setunitdata(.@m, UDT_LUK, 32760);
-
- // Find random, warpable coordinates from the nearby zone
- .@e=0; .@x=0; .@y=0;
- .@mx=40;
- .@my=40;
- do {
- .@x = rand2(20, .@mx);
- .@y = rand2(20, .@my);
- .@e += 1;
- if (.@e > 30) {
- consolebug("Olympics - Too many failures at Maze \"%s\"! Trying anyway!", MAZE_MAP$);
- break;
- }
- } while (!checknpccell(MAZE_MAP$, .@x, .@y, cell_chkpass));
-
- warp MAZE_MAP$, .@x, .@y;
closeclientdialog;
end;