summaryrefslogblamecommitdiff
path: root/npc/034-4/exit.txt
blob: 8afc3392a9e94db9a42e81886fe46c0785c3b850 (plain) (tree)
1
2
3
4
5
6
7
8
9








                                                        





                                                                            
                       








                                                                       
                                                            














































































































                                                                                                                

                                             






                                                   


                                       


        
// TMW2 scripts.
// Authors:
//    Jesusalva
// Description:
//    Gemini Sisters Quest - Final Chamber

034-4,144,82,0	script	#GeminiFExit	NPC_HIDDEN,0,0,{

OnWumpus:
    // TODO FIXME: Instead of 75% chance, a Wumpus Egg only on first victory
    if (any(true, true, true, false))
        getitem WumpusEgg, 1;
    else
        getitem LightGreenDiamond, 1;
    getexp 0, rand2(7500, 9999);
    @forced_sick$ = "";
    end;

OnTouch:
    // if not (quest) end;
    // Create maze and populate (From 45x45 to 60x60)
    CreateMaze(IOT_CHAR, MAZE_SIZE_M | MAZE_SIZE_G);
    .@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 / 10) + 1; // Monster density is a bit random

    /* *** Copied from 006-5/groata.txt & 018-2-2/main.txt! *** */
    .@mb[0] = MagicGoblin;
    .@mb[1] = CaveMaggot;
    array_push(.@mb, BronzeChest);
    array_push(.@mb, SmallMagicBif);
    array_push(.@mb, Bif);
    array_push(.@mb, RobinBandit);
    array_push(.@mb, SilverChest);
    array_push(.@mb, DustGatling);
    array_push(.@mb, MagicBif);
    array_push(.@mb, DustRifle);
    array_push(.@mb, DustRevolver);
    array_push(.@mb, GoldenChest);
    array_push(.@mb, GreatMoubooSlime);
    array_push(.@mb, Piousse);
    array_push(.@mb, ManaPiou);
    array_push(.@mb, ForestPiou);
    array_push(.@mb, HouseMaggot);
    array_push(.@mb, LittleYellowSlime);
    array_push(.@mb, MoubooSlime);
    array_push(.@mb, SmallFrog);
    array_push(.@mb, BigFrog);
    array_push(.@mb, Lavern);
    array_push(.@mb, LittleRedSlime);
    array_push(.@mb, ChocolateSlime);
    array_push(.@mb, Duck);
    array_push(.@mb, Bat);
    array_push(.@mb, CaveMaggot);
    array_push(.@mb, ManaGhost);
    array_push(.@mb, ManaBug);
    array_push(.@mb, FireGoblin);
    array_push(.@mb, ViciousSquirrel);
    array_push(.@mb, RedScorpion);
    array_push(.@mb, WhiteSlime);
    array_push(.@mb, AzulSlime);
    array_push(.@mb, DesertLogHead);
    array_push(.@mb, RedSlime);
    array_push(.@mb, DesertBandit);
    array_push(.@mb, Sarracenus);
    array_push(.@mb, IceMaggot);
    array_push(.@mb, VampireBat);
    array_push(.@mb, Bandit);
    array_push(.@mb, Assassin);
    array_push(.@mb, Skeleton);
    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, RedMushroom);
    array_push(.@mb, CandiedSlime);
    array_push(.@mb, OldSnake);
    array_push(.@mb, GrassSnake);
    array_push(.@mb, Snake);
    array_push(.@mb, BlackSlime);
    array_push(.@mb, Pollet);
    array_push(.@mb, PiouKnight);
    array_push(.@mb, Shrewboo);
    array_push(.@mb, Wolvern);
    array_push(.@mb, FireSkull);
    array_push(.@mb, DarkLizard);
    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);
    array_push(.@mb, FallenGuard2);
    array_push(.@mb, WickedMushroom);
    array_push(.@mb, Archant);
    array_push(.@mb, Scar);
    array_push(.@mb, Crafty);
    array_push(.@mb, Forain);
    array_push(.@mb, GreenDragon);
    array_push(.@mb, Michel);
    array_push(.@mb, Troll);
    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, GoboBear);
    array_push(.@mb, TerraniteProtector);
    array_push(.@mb, WhirlyBird);

    /* 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);

    // Spawn & Configure the boss monster
    .@mob=areamonster(MAZE_MAP$, 60, 60, .@mx-40, .@my-40, "Wumpus?", PanthomLord, 1, "#GeminiFExit::OnWumpus");
    setunitdata(.@mob, UDT_MAXHP,    250000);
    setunitdata(.@mob, UDT_HP,       250000);
    setunitdata(.@mob, UDT_SPEED,       275);
    setunitdata(.@mob, UDT_HIT,        3500);
    setunitdata(.@mob, UDT_DMOTION,      50);

    // Defeating the boss yields a bonus
    InitMaze(7200);
    dispbottom l("It was a trap! We must escape!");
    sleep2(2000);
    @forced_sick$ = getmap();
	doevent "#DungeonCore::OnSick";
    end;
}