summaryrefslogtreecommitdiff
path: root/npc/029-9
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2021-03-18 01:11:56 -0300
committerJesusaves <cpntb1@ymail.com>2021-03-18 01:11:56 -0300
commit6ddb573269bc7b0af11bbada28d769eb04ce7bad (patch)
treec19b81ff39ecf5ffee7aa00595d1190babce1679 /npc/029-9
parentfe9ddbaa6acea3854f6da32b4aa47276a5fb1620 (diff)
downloadserverdata-6ddb573269bc7b0af11bbada28d769eb04ce7bad.tar.gz
serverdata-6ddb573269bc7b0af11bbada28d769eb04ce7bad.tar.bz2
serverdata-6ddb573269bc7b0af11bbada28d769eb04ce7bad.tar.xz
serverdata-6ddb573269bc7b0af11bbada28d769eb04ce7bad.zip
Fires Of Steam, Final Showdown - Initial Version
Diffstat (limited to 'npc/029-9')
-rw-r--r--npc/029-9/boss.txt451
1 files changed, 438 insertions, 13 deletions
diff --git a/npc/029-9/boss.txt b/npc/029-9/boss.txt
index ad98c7c6d..ed4e93e7a 100644
--- a/npc/029-9/boss.txt
+++ b/npc/029-9/boss.txt
@@ -3,6 +3,12 @@
// Jesusalva
// Description:
// Fires of Steam: The Death of Andrei Sakar
+/* *****************************************
+$@FIRESOFSTEAM_BOSS
+0 = Off; 1 = Moubootaur summoning; 2 = Moubootaur summoned
+$@FIRESOFSTEAM_DIFF
+Level of difficulty setting (100/130/160/190/220)
+***************************************** */
//////////////////////////////////////////
// Boss Room
@@ -13,36 +19,455 @@
select
l("Ignore this book"),
l("Begin classic mode"),
- l("Begin endless mode");
+ l("Skip prologue");
+ mes "";
+ $@FIRESOFSTEAM_BOSS=(@menu-1);
+ if ($@FIRESOFSTEAM_BOSS == 0) close;
+ select
+ l("Easy Mode"),
+ l("Crazy Mode"),
+ l("Cadis Mode"),
+ l("Crazy Cadis Ultimate Pandorica Mode"),
+ l("Portable Apocalypsis");
mes "";
- $@FIRESOFSTEAM_BOSS=@menu;
+ $@FIRESOFSTEAM_DIFF=70+(@menu*30);
+ closeclientdialog;
+ // Dispose of the GM
+ //warp "029-8", 175, 80; // TODO FIXME
+ sleep(200);
+ // PC no longer attached
+ // Start the event
mapwarp("029-9", "029-9", 96, 41);
maptimer2("029-9", 200, "Book#FoS::OnMFStun");
- initnpctimer;
sleep(200);
- // PC no longer attached
- // TODO: Spawn Isbamuth
- // TODO: Dialog - You are too late! I did it!! Muahahaha!
- // The power of the Moubootaur will be mine... And you no longer can stop me!
+ // Cleanup previous data (if any)
+ $@FOS_ISB=0;
+ $@FOS_MOB=0;
+ $@FOS_AND=0;
+ .Support1=0;
+ .Support2=0;
+ .Support3=0;
+ .Support4=0;
+ .Support5=0;
+ // Lockdown
+ disablenpc "#029-9_97_49"; // Exit
+ disablenpc "#029-9_103_48"; // To Storage
+ disablenpc "#029-9_91_26"; // To Moubootaur
+ disablenpc "#029-9_34_23"; // From Moubootaur
+ disablenpc "#029-9_137_41"; // From Storage
+ // Summon Andrei, and handle prologue skips
+ $@FOS_AND=monster("029-9", 96, 35, "Andrei Sakar", AndreiSakar, 1);
+ if ($@FIRESOFSTEAM_BOSS == 2) goto OnProlEnd;
+ // Spawn Isbamuth and his support
+ $@FOS_ISB=monster("029-9", 96, 32, "Isbamuth", Isbamuth, 1, "Book#FoS::OnProlEnd");
+ .Support1=monster("029-9", 95, 31, "Hooded Assassin", HoodedAssassin, 1);
+ .Support2=monster("029-9", 97, 31, "Hooded Assassin", HoodedAssassin, 1);
+ .Support3=monster("029-9", 95, 27, "Assassin", Assassin, 1);
+ .Support4=monster("029-9", 96, 27, "Assassin", Assassin, 1);
+ .Support5=monster("029-9", 97, 27, "Assassin", Assassin, 1);
+ // Freeze everyone!
+ sc_start(SC_STUN, .firstime, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK, $@FOS_AND);
+ sc_start(SC_STUN, .firstime, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK, $@FOS_ISB);
+ sc_start(SC_STUN, .firstime, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK, .Support1);
+ sc_start(SC_STUN, .firstime, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK, .Support2);
+ sc_start(SC_STUN, .firstime, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK, .Support3);
+ sc_start(SC_STUN, .firstime, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK, .Support4);
+ sc_start(SC_STUN, .firstime, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK, .Support5);
+ // Boost Isbamuth stats
+ .@avg=$@FIRESOFSTEAM_DIFF;
+ // Reconfigure the monster
+ setunitdata($@FOS_ISB, UDT_LEVEL, .@avg);
+ setunitdata($@FOS_ISB, UDT_STR, 1+.@avg/2);
+ setunitdata($@FOS_ISB, UDT_AGI, 1+.@avg/2);
+ setunitdata($@FOS_ISB, UDT_VIT, 1+.@avg/2);
+ setunitdata($@FOS_ISB, UDT_INT, 1+.@avg/2);
+ setunitdata($@FOS_ISB, UDT_DEX, 1+.@avg/2);
+ setunitdata($@FOS_ISB, UDT_LUK, 1+.@avg/2);
+ setunitdata($@FOS_ISB, UDT_ADELAY, 1072);
+ setunitdata($@FOS_ISB, UDT_ATKRANGE, 4);
+ // Battle Status
+ setunitdata($@FOS_ISB, UDT_MAXHP, .@avg*700);
+ setunitdata($@FOS_ISB, UDT_HP, .@avg*700);
+ setunitdata($@FOS_ISB, UDT_ATKMIN, .@avg*6);
+ setunitdata($@FOS_ISB, UDT_ATKMAX, .@avg*8);
+ setunitdata($@FOS_ISB, UDT_DEF, 4+.@avg);
+ setunitdata($@FOS_ISB, UDT_MDEF, 1+.@avg);
+ setunitdata($@FOS_ISB, UDT_HIT, .@avg*12); // Advised: x18
+ setunitdata($@FOS_ISB, UDT_FLEE, .@avg*4); // Advised: x5
+ setunitdata($@FOS_ISB, UDT_CRIT, 20+.@avg);
+ // Reconfigure the AI
+ .@opt=getunitdata($@FOS_ISB, UDT_MODE);
+ // Disable looting
+ if (.@opt & MD_LOOTER)
+ .@opt=.@opt^MD_LOOTER;
+ // Add knockback immunity
+ .@opt=.@opt|MD_NOKNOCKBACK;
+ // Mark as boss
+ .@opt=.@opt|MD_BOSS;
+ // Mark as aggressive
+ .@opt=.@opt|MD_AGGRESSIVE;
+ .@opt=.@opt|MD_ANGRY;
+ // Make it crazy
+ .@opt=.@opt|MD_RANDOMTARGET;
+ setunitdata($@FOS_ISB, UDT_MODE, .@opt);
+
+ // Begin Isbamuth's monologue
+ unittalk($@FOS_ISB, "You are too late! I did it!! Muahahaha!");
+ sleep(1000);
+ unittalk(.Support1, "Yeah, you did it!");
+ sleep(400);
+ unittalk(.Support2, "Yeah, you are the best!");
+ sleep(600);
+ unittalk($@FOS_ISB, "Silence!");
+ sleep(1000);
+ unittalk($@FOS_ISB, "You did well tracking me down... However the rite is almost complete.");
+ sleep(3000);
+ unittalk($@FOS_ISB, "The power of the Moubootaur will be mine...");
+ sleep(2000);
+ unittalk($@FOS_ISB, "And you no longer can stop me!! Muahahahaha!");
+ sleep(1000);
+ unittalk(.Support1, "Yeah, that's our boss!");
+ sleep(600);
+ unittalk(.Support2, "Yeah, none is like boss!");
+ sleep(400);
+ unittalk($@FOS_AND, "Your evil plans shall never prevail, Isbamuth!");
+ sleep(2500);
+ unittalk($@FOS_AND, "Adventurers! I'll go ahead, you shall buy me time!");
+ maptimer2("029-9", 200, "Book#FoS::OnMFAndreiMagic");
+ sleep(500);
+ sc_end(SC_STUN, $@FOS_AND);
+ unitwalk($@FOS_AND, 96, 24);
+ sleep(1000);
+ unitwalk($@FOS_AND, 96, 24);
+ sleep(1000);
+ unittalk($@FOS_AND, "I'm sure Isbamuth will be no match for all of you!");
+ unitwalk($@FOS_AND, 90, 26);
+ sleep(1500);
+ unitwarp($@FOS_AND, "029-9", 39, 21);
+ unittalk($@FOS_ISB, "Hahaha... YOU THINK YOU CAN DEFEAT ME??");
+ sc_start(SC_STUN, INT_MAX, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK, $@FOS_AND);
+ sleep(1000);
+ unittalk($@FOS_ISB, "We will see! Engarde!!");
+ initnpctimer;
+ // TODO: Andrei Sakar was ambushed by Valia and Luvia, the Gemini Assassins
// ...
end;
+////////////// Prologue End //////////////
+OnProlEnd:
+ if (playerattached())
+ getexp 200000, 50000;
+ mapannounce("029-9", "##1##BA huge sound is heard from the basement.", 0);
+ $@FIRESOFSTEAM_BOSS=2;
+ enablenpc "#029-9_91_26"; // To Moubootaur
+ // Cleanup previous data (if any)
+ $@FOS_ISB=0;
+ $@FOS_MOB=0;
+ .Support1=0;
+ .Support2=0;
+ .Support3=0;
+ .Support4=0;
+ .Support5=0;
+ maptimer2("029-9", 10000, "Book#FoS::OnMFMark");
+ maptimer2("029-9", .firstime, "Book#FoS::OnMFScene");
+ // Ensure Andrei Sakar is at his place and stunned
+ unitwarp($@FOS_AND, "029-9", 39, 21);
+ sc_start(SC_STUN, INT_MAX, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK, $@FOS_AND);
+ // Bring on the Gemini Assassins
+ .Support1=monster("029-9", 38, 21, "Valia", Sagratha, 1);
+ .Support2=monster("029-9", 40, 21, "Luvia", Sagratha, 1);
+ sc_start(SC_STUN, INT_MAX, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK, .Support1);
+ sc_start(SC_STUN, INT_MAX, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK, .Support2);
+ setunitdata($@FOS_AND, UDT_MAXHP, 999999);
+ setunitdata($@FOS_AND, UDT_HP, 999999);
+ setunitdata(.Support1, UDT_MAXHP, 999999);
+ setunitdata(.Support1, UDT_HP, 999999);
+ setunitdata(.Support2, UDT_MAXHP, 999999);
+ setunitdata(.Support2, UDT_HP, 999999);
+ sleep(.firstime+100); // Wait for cutscene to start + latebloomers
+ //////////////////////////////////////////////////////////////
+ unittalk(.Support1, "...I'm sorry!");
+ sleep(1000);
+ unittalk(.Support2, "...But Isbamuth told us to kill you!");
+ sleep(1000);
+ unittalk(.Support1, "...Die for us!");
+ sleep(1000);
+ unitkill($@FOS_AND); // DEAD
+ $@FOS_AND=0;
+ maptimer2("029-9", 3000, "Book#FoS::OnMFShake");
+ sleep(3200); // Dramatic Silence
+ mapannounce("029-9", "##1##BGRRRRRRRRR!!!!", 0);
+ sleep(800);
+ mapannounce("029-9", "##1##BHUMANS!!!!", 0);
+ sleep(2000);
+ unittalk(.Support2, "Sister, we should go.");
+ sleep(3000);
+ unittalk(.Support1, "...Yes, sister, let's go!");
+ sleep(3000);
+ unitwarp(.Support1, "029-9", 130, 32);
+ unitwarp(.Support2, "029-9", 131, 32);
+ sleep(1000); // Dramatic Silence
+ unitkill(.Support1);
+ unitkill(.Support2);
+ $@FOS_MOB=monster("029-9", 39, 36, "Moubootaur (Sealed)", MobMoubootaur, 1, "Book#FoS::OnEventEnd");
+ sc_start(SC_STUN, 31000, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK, $@FOS_MOB);
+ sleep(1000); // Dramatic Silence
+ unittalk($@FOS_MOB, "##1Who dares awake me from my slumber...");
+ sleep(3000);
+ unittalk($@FOS_MOB, "##1It was just a few nights since I turned a nearby town in Mouboos for their insolence...");
+ sleep(5000);
+ maptimer2("029-9", 2000, "Book#FoS::OnMFShake");
+ sleep(2000);
+ unittalk($@FOS_MOB, "##1AND YOU DARE TO NOT LEARN YOUR LESSON?? %%e");
+ sleep(2000);
+ unittalk($@FOS_MOB, "##1USELESS, UNWORTHY CREATURES!! %%e");
+ sleep(6000);
+ unittalk($@FOS_MOB, "##1I SHALL TURN THIS WHOLE WORLD INTO MOUBOOS...");
+ sleep(6000);
+ unittalk($@FOS_MOB, "##1THE PROPHECY... OF MY RETURN... IS FULFILLED AT LEAST!!");
+ .@avg=$@FIRESOFSTEAM_DIFF*12/10; // Moubootaur: +20% bonus (+20~40 lvls)
+ // Reconfigure the monster (otherwise it is night immortal)
+ setunitdata($@FOS_MOB, UDT_LEVEL, .@avg);
+ setunitdata($@FOS_MOB, UDT_STR, 1+.@avg*2/3);
+ setunitdata($@FOS_MOB, UDT_AGI, 1+.@avg*2/3);
+ setunitdata($@FOS_MOB, UDT_VIT, 1+.@avg*2/3);
+ setunitdata($@FOS_MOB, UDT_INT, 1+.@avg*2/3);
+ setunitdata($@FOS_MOB, UDT_DEX, 1+.@avg*2/3);
+ setunitdata($@FOS_MOB, UDT_LUK, 1+.@avg*2/3);
+ setunitdata($@FOS_MOB, UDT_ADELAY, 1472);
+ setunitdata($@FOS_MOB, UDT_ATKRANGE, 5);
+ // Battle Status
+ setunitdata($@FOS_MOB, UDT_MAXHP, .@avg*1500);
+ setunitdata($@FOS_MOB, UDT_HP, .@avg*1500);
+ setunitdata($@FOS_MOB, UDT_ATKMIN, .@avg*8);
+ setunitdata($@FOS_MOB, UDT_ATKMAX, .@avg*10);
+ setunitdata($@FOS_MOB, UDT_DEF, 12+.@avg*4/3);
+ setunitdata($@FOS_MOB, UDT_MDEF, 1+.@avg);
+ setunitdata($@FOS_MOB, UDT_HIT, .@avg*18); // Advised: x18
+ setunitdata($@FOS_MOB, UDT_FLEE, .@avg*4); // Advised: x5
+ setunitdata($@FOS_MOB, UDT_CRIT, 60+.@avg*4/3);
+ // Reconfigure the AI
+ .@opt=getunitdata($@FOS_MOB, UDT_MODE);
+ // Disable looting
+ if (.@opt & MD_LOOTER)
+ .@opt=.@opt^MD_LOOTER;
+ // Add knockback immunity
+ .@opt=.@opt|MD_NOKNOCKBACK;
+ // Mark as boss
+ .@opt=.@opt|MD_BOSS;
+ // Mark as aggressive
+ .@opt=.@opt|MD_AGGRESSIVE;
+ .@opt=.@opt|MD_ANGRY;
+ // Make it more op
+ .@opt=.@opt|MD_DETECTOR;
+ .@opt=.@opt|MD_CASTSENSOR_CHASE;
+ .@opt=.@opt|MD_CASTSENSOR_IDLE;
+ .@opt=.@opt|MD_CHANGECHASE;
+ .@opt=.@opt|MD_CHANGETARGET_MELEE;
+ .@opt=.@opt|MD_CHANGETARGET_CHASE;
+ setunitdata($@FOS_MOB, UDT_MODE, .@opt);
+ sleep(1000);
+ mapannounce("029-9", "##1##BON YOUR MARKS...", 0);
+ sleep(2000);
+ mapannounce("029-9", "##1##B3...", 0);
+ sleep(1000);
+ mapannounce("029-9", "##1##B2...", 0);
+ sleep(1000);
+ mapannounce("029-9", "##1##B1...", 0);
+ sleep(1000);
+ mapannounce("029-9", "##1##BBEGIN!!", 0);
+ .Support3=monster("029-9", 25, 29, "Magic Commander", Moubi, 1);
+ .Support4=monster("029-9", 53, 29, "Army Commander", BloodyMouboo, 1);
+ .Support5=monster("029-9", 39, 45, "Mouboo Governor", AlphaMouboo, 1);
+ setunitdata(.Support3, UDT_MAXHP, .@avg*300);
+ setunitdata(.Support3, UDT_HP, .@avg*300);
+ setunitdata(.Support4, UDT_MAXHP, .@avg*300);
+ setunitdata(.Support4, UDT_HP, .@avg*300);
+ setunitdata(.Support5, UDT_MAXHP, .@avg*300);
+ setunitdata(.Support5, UDT_HP, .@avg*300);
+ setunitdata(.Support3, UDT_RACE, RC_Legendary);
+ setunitdata(.Support4, UDT_RACE, RC_Legendary);
+ setunitdata(.Support5, UDT_RACE, RC_Legendary);
+ initnpctimer;
+ end;
+
+OnEventEnd:
+ stopnpctimer;
+ mapannounce("029-9", "Moubootaur : ##1##BThis is not the place...", 0);
+ sleep(2000);
+ mapannounce("029-9", "Moubootaur : ##1##BMy powers are weak here...", 0);
+ sleep(2000);
+ mapannounce("029-9", "Moubootaur : ##1##BHowever... I know where I must go.", 0);
+ sleep(3000);
+ mapannounce("029-9", "Moubootaur : ##1##BThe prophecy... LIVES!", 0);
+ sleep(3000);
+ // TODO Reward cycle
+ // This can be slow, beware
+ .@c = getunits(BL_PC, .@players, MAX_CYCLE_PC);
+ for (.@i = 0; .@i < .@c; .@i++) {
+ attachrid(.@players[.@i]);
+ if ($FIRESOFSTEAM >= 10) {
+ getexp 50000, 5000;
+ } else {
+ getexp 1000000, 500000;
+ getitem StrangeCoin, 2000;
+ Mobpt+=1500000;
+ Zeny+=1000000;
+ }
+ dispbottom l("Congratulations! You've received participation rewards due to the Moubootaur Death.");
+ detachrid();
+ }
+ if ($FIRESOFSTEAM < 10) {
+ kamibroadcast("The Moubootaur has been awakened. The gears of destiny are on motion.", "Jesusalva");
+ sleep(5000);
+ kamibroadcast("Great calamity shall soon befall upon this world.", "Jesusalva");
+ sleep(5000);
+ kamibroadcast("But if we all fight togheter, we might have a chance!", "Saulc");
+ sleep(5000);
+ kamibroadcast("At due time... The Secret of Mana will be revealed.", "Jesusalva");
+ sleep(5000);
+ kamibroadcast("May the apocalypse begin: The revelation of this world!", "Jesusalva");
+ kamibroadcast("MOUBOOTAUR LEGENDS, FIFTH ACT - THE WORLD'S CURSE");
+ $FIRESOFSTEAM=10;
+ $GAME_STORYLINE=4;
+ $MANA_BLVL-=5; // Set level to 15~25
+ $MANA_JLVL-=5; // Set job level to 10
+ $MANA_BINT-=15; // Set min. int to 15
+ }
+ end;
+
+////////////// Map Broadcast //////////////
OnMFStun:
- sc_start(SC_STUN, 60000, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK);
+ sc_start(SC_STUN, .firstime, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK);
+ end;
+
+OnMFAndreiMagic:
+ .@stat=max(1, 5-((100-$@FIRESOFSTEAM_DIFF)/30));
+ dispbottom col(l("Enemies stunned!"), 3);
+ dispbottom col(l("All Stats temporarily raised!"), 2);
+ dispbottom l("Andrei Sakar used magic: Triumph of the Eternals");
+ sc_start(SC_INCALLSTATUS, .boostime, .@stat, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK);
+ end;
+
+OnMFMark:
+ dispbottom col(l("On your marks..."), 1);
end;
-// TODO: Heartbeat. I think there's no real need to lock the door?
-OnTimer5000:
+OnMFScene:
+ if (!isin("029-9", 20, 20, 60, 50))
+ warp "029-9", rand2(33,34), rand2(24,26);
+ sc_start(SC_STUN, .subitime, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK);
+ end;
+
+OnMFShake:
+ sshake();
+ closeclientdialog;
+ sleep2(1000);
+ sshake();
+ sshake();
+ closeclientdialog;
+ end;
+
+////////////// Heartbeat //////////////
+OnTimer15000:
+ if ($@FIRESOFSTEAM_BOSS == 1) {
+ monster("029-9", 102, 47, "Assassin", Assassin, 1);
+ } else if ($@FIRESOFSTEAM_BOSS == 2) {
+ // Handle Moubootaur Magic
+ // But only if .Support3 was defined (control variable)
+ if (!.Support3) {initnpctimer; end;}
+ // Select random magic from arsenal
+ .@r=rand2(16);
+ switch (.@r) {
+ case 1:
+ mapannounce("029-9", "Moubootaur : ##BAncient Magic: Bleeding", 0);
+ areasc2("029-9", 40, 35, 20, 15000, SC_BLOODING, BL_PC, 1);
+ break;
+ case 2:
+ mapannounce("029-9", "Moubootaur : ##BAncient Magic: Blind", 0);
+ areasc2("029-9", 40, 35, 20, 15000, SC_BLIND, BL_PC, 1);
+ break;
+ case 3:
+ mapannounce("029-9", "Moubootaur : ##BAncient Magic: Lag", 0);
+ areasc2("029-9", 40, 35, 20, 15000, SC_CONFUSION, BL_PC, 1);
+ break;
+ case 4:
+ mapannounce("029-9", "Moubootaur : ##BAncient Magic: Curse", 0);
+ areasc2("029-9", 40, 35, 20, 15000, SC_CURSE, BL_PC, 1);
+ break;
+ case 5:
+ mapannounce("029-9", "Moubootaur : ##BAncient Magic: Poison", 0);
+ areasc2("029-9", 40, 35, 20, 15000, SC_POISON, BL_PC, 1);
+ break;
+ case 6:
+ mapannounce("029-9", "Moubootaur : ##BAncient Magic: Sleep", 0);
+ areasc2("029-9", 40, 35, 20, 15000, SC_SLEEP, BL_PC, 1);
+ break;
+ case 7:
+ mapannounce("029-9", "Moubootaur : ##BAncient Magic: Deadly Poison", 0);
+ areasc2("029-9", 40, 35, 20, 15000, SC_DPOISON, BL_PC, 1);
+ break;
+ case 8:
+ mapannounce("029-9", "Moubootaur : ##BAncient Magic: Chilling", 0);
+ areasc2("029-9", 40, 35, 20, 15000, SC_COLD, BL_PC, 1);
+ break;
+ case 9:
+ mapannounce("029-9", "Moubootaur : ##BAncient Magic: Burning", 0);
+ areasc2("029-9", 40, 35, 20, 15000, SC_BURNING, BL_PC, 1);
+ break;
+ case 10:
+ mapannounce("029-9", "Moubootaur : ##BAncient Magic: Fear", 0);
+ areasc2("029-9", 40, 35, 20, 15000, SC_FEAR, BL_PC, 1);
+ break;
+ case 11:
+ mapannounce("029-9", "Moubootaur : ##BAncient Magic: Obliterate", 0);
+ rectharm($@FOS_MOB, 7, 7, rand2(700, 900), HARM_MISC, Ele_Holy, "filter_always", BL_PC | BL_MER | BL_HOM);
+ break;
+ case 12:
+ mapannounce("029-9", "Moubootaur : ##BAncient Magic: Disarm Homun", 0);
+ areasc2("029-9", 40, 35, 20, 15000, SC_STUN, BL_HOM, 1);
+ break;
+ case 13:
+ mapannounce("029-9", "Moubootaur : ##BAncient Magic: Exterminate Lesserform", 0);
+ rectharm($@FOS_MOB, 7, 7, rand2(800, 1400), HARM_MISC, Ele_Holy, "filter_always", BL_MER | BL_HOM);
+ break;
+ case 14:
+ mapannounce("029-9", "Moubootaur : ##BAncient Magic: Summon Reinforcement", 0);
+ for (.@i=0;.@i <= rand2(4);.@i++) {
+ .@m=monster("029-9", 39, 36, "Reinforcement",
+ any(AlphaMouboo, Moubi, BloodyMouboo, Moubi), 1);
+ setunitdata(.@m, UDT_RACE, RC_Legendary);
+ }
+ break;
+ case 15:
+ mapannounce("029-9", "Moubootaur : ##BAncient Magic: Wizcat", 0);
+ for (.@i=0;.@i <= 2+rand2(7);.@i++) {
+ .@m=monster("029-9", rand2(35,43), rand2(35,38),
+ "Reinforcement", BlackCat, 1);
+ setunitdata(.@m, UDT_RACE, RC_Legendary);
+ }
+ break;
+ case 16:
+ mapannounce("029-9", "Moubootaur : ##BAncient Magic: Nuke", 0);
+ rectharm($@FOS_MOB, 14, 14, rand2(450, 750), HARM_MISC, Ele_Holy, "filter_always", BL_PC | BL_MER | BL_HOM);
+ break;
+ default: // case 0
+ mapannounce("029-9", "Moubootaur : ##BAncient Magic: Seal", 0);
+ areasc2("029-9", 40, 35, 20, 15000, SC_SILENCE, BL_PC, 1);
+ break;
+ }
+ sleep(rand2(45000)); // Wait a bit longer between magic (random)
+ }
initnpctimer;
end;
OnInit:
+ .firstime = 18000;
+ .boostime = 900000;
+ .subitime = 47000;
.distance = 5;
.sex = G_OTHER;
end;
}
-/* *****************************************
-0 = Off; 1 = Moubootaur leaves; 2 = Moubootaur stays
-***************************************** */