// TMW2 scripts.
// Author:
// Jesusalva
// Description:
// Fires of Steam: The Death of Andrei Sakar
//////////////////////////////////////////
// Monster Control
- script SteamFire#Ctrl 32767,{
function SFsetup1;
function SFsetup2;
function SFsetup3;
function SFsetup4;
function SFsetup5;
function SFsetup6;
function SFsetup7;
function SFsetup8;
function SFreset;
end;
OnInit:
.e1$="SteamFire#Ctrl::OnEvent1";
.e2$="SteamFire#Ctrl::OnEvent2";
.e3$="SteamFire#Ctrl::OnEvent3";
.e4$="SteamFire#Ctrl::OnEvent4";
.e5$="SteamFire#Ctrl::OnEvent5";
.e6$="SteamFire#Ctrl::OnEvent6";
.e7$="SteamFire#Ctrl::OnEvent7";
.e8$="SteamFire#Ctrl::OnEvent8";
SFsetup1();
SFsetup2();
SFsetup3();
SFsetup4();
SFsetup5();
SFsetup6();
SFsetup7();
SFsetup8();
end;
function SFsetup1 {
areamonster("029-1", 15, 15, 77, 120, strmobinfo(1, Scar), Scar, 60, .e1$);
areamonster("029-1", 15, 15, 255, 255, strmobinfo(1, Crafty), Crafty, 320, .e1$);
areamonster("029-1", 15, 15, 255, 255, strmobinfo(1, GiantMutatedBat), GiantMutatedBat, 30, .e1$);
areamonster("029-1", 15, 15, 255, 255, strmobinfo(1, Scar), Scar, 100, .e1$);
areamonster("029-1", 195, 15, 290, 100, strmobinfo(1, Forain), Forain, 54, .e1$);
areamonster("029-1", 77, 15, 195, 75, strmobinfo(1, GreenDragon), GreenDragon, 45, .e1$);
areamonster("029-1", 75, 75, 205, 100, strmobinfo(1, EliteDuck), EliteDuck, 40, .e1$);
areamonster("029-1", 15, 90, 75, 280, strmobinfo(1, Terranite), Terranite, 90, .e1$);
areamonster("029-1", 177, 140, 280, 280, strmobinfo(1, JackO), JackO, 80, .e1$);
areamonster("029-1", 175, 75, 280, 200, strmobinfo(1, RedSkullSlime), RedSkullSlime, 60, .e1$);
areamonster("029-1", 75, 175, 185, 280, strmobinfo(1, Michel), Michel, 60, .e1$);
areamonster("029-1", 80, 100, 180, 160, strmobinfo(1, CopperSkullSlime), CopperSkullSlime, 60, .e1$);
// MAP BOSS
monster("029-1", 147, 153, "Level Boss", MonsterGeneral, 1, .e1$);
return;
}
function SFsetup2 {
areamonster("029-2", 20, 28, 51, 33, strmobinfo(1, BlackMamba), BlackMamba, 15, .e2$);
areamonster("029-2", 20, 34, 51, 42, strmobinfo(1, GreenSkullSlime), GreenSkullSlime, 20, .e2$);
areamonster("029-2", 20, 42, 32, 70, strmobinfo(1, Centaur), Centaur, 15, .e2$);
areamonster("029-2", 39, 42, 51, 70, strmobinfo(1, TerraniteProtector), TerraniteProtector, 15, .e2$);
areamonster("029-2", 32, 42, 40, 70, strmobinfo(1, GoboBear), GoboBear, 13, .e2$);
areamonster("029-2", 20, 20, 35, 70, strmobinfo(1, Moonshroom), Moonshroom, 5, .e2$);
areamonster("029-2", 20, 20, 35, 70, strmobinfo(1, RobinBandit), RobinBandit, 5, .e2$);
// MAP BOSS
monster("029-2", 46, 68, "Level Boss", YetiKing, 1, .e2$);
return;
}
function SFsetup3 {
// MAP BOSS
monster("029-3", 82, 89, "Level Boss", FallenKing2, 1, .e3$);
return;
}
function SFsetup4 {
// MAP BOSS
monster("029-4", 73, 77, "Level Boss", PsiConscience, 1, .e4$);
return;
}
function SFsetup5 {
// MAP BOSS
monster("029-5", 70, 26, "Level Boss", TerraniteKing, 1, .e5$);
return;
}
function SFsetup6 {
// MAP BOSS
monster("029-6", 31+9, 91, "Level Boss", PinkieEmperor, 1, .e6$);
return;
}
function SFsetup7 {
// MAP BOSS
monster("029-7", 66, 35, "Level Boss", PanthomLord, 1, .e7$);
return;
}
function SFsetup8 {
// MAP BOSS
monster("029-8", 206, 149, "Level Boss", Tortuga, 1, .e8$);
return;
}
// SFreset(map, state)
function SFreset {
.@m$=getarg(0);
.@s=getarg(1);
.@m=mobcount(.@m$, "all");
if (!.@m) {
if ($FIRESOFSTEAM == .@s) {
$FIRESOFSTEAM+=1;
$FIRESOFSTEAM_CD=gettimetick(2)+10800; // 3 hours cooldown (180 min)
return 2;
} else {
return 1;
}
} else if (.@m % 25 == 0) {
mapannounce(.@m$, sprintf("%s monster(s) left", fnum(.@m)), 0);
}
return 0;
}
OnEvent1:
.@f=SFreset("029-1", .e1$, 1);
if (.@f == 2)
mapannounce("029-1", "Dracula's Castle magical seal has dissipated!", 0);
if (.@f)
SFsetup1();
end;
OnEvent2:
.@f=SFreset("029-2", .e2$, 2);
if (.@f == 2)
mapannounce("029-2", "Map cleared!", 0);
if (.@f)
SFsetup2();
end;
OnEvent3:
.@f=SFreset("029-3", .e3$, 3);
if (.@f == 2)
mapannounce("029-3", "Map cleared!", 0);
if (.@f)
SFsetup3();
end;
OnEvent4:
.@f=SFreset("029-4", .e4$, 4);
if (.@f == 2)
mapannounce("029-4", "Map cleared!", 0);
if (.@f)
SFsetup4();
end;
OnEvent5:
.@f=SFreset("029-5", .e5$, 5);
if (.@f == 2)
mapannounce("029-5", "Map cleared!", 0);
if (.@f)
SFsetup5();
end;
OnEvent6:
.@f=SFreset("029-6", .e6$, 6);
if (.@f == 2)
mapannounce("029-6", "Map cleared! You'll need a Druid Tree Branch to use the tree warp to next area.", 0);
if (.@f)
SFsetup6();
end;
OnEvent7:
.@f=SFreset("029-7", .e7$, 7);
if (.@f == 2)
mapannounce("029-7", "Swamps cleared! Meet Andrei Sakar on the other side!", 0);
if (.@f)
SFsetup7();
end;
OnEvent8:
.@f=SFreset("029-8", .e8$, 8);
if (.@f == 2)
mapannounce("029-8", "Map cleared! Contact a GM in Migglemire Town!", 0);
if (.@f)
SFsetup8();
end;
}