// TMW2 scripts.
// Author:
// Jesusalva
// Description:
// Special Soul Menhir which only allows leaving the map.
001-11,37,31,0 script Soul Stone#001-11 NPC_SOUL_CLEAN,{
mesn;
mes l("(A mystical aura surrounds this stone. It probably can return you home. What do you do?)");
if (is_staff())
mesc l("Current date: %d", numdate()), 9;
if (numdate() < 20200214)
mesc l("Additional Hunting Island will be released on Valentine Day!");
menu
l("Touch it."), L_Warp,
rif(!#VALENTINE_EQUIPMENT2020 && gettime(GETTIME_YEAR) == 2020, l("Obtain event equipment")), L_EVTC2020,
rif($@GM_OVERRIDE && getusers(1) >= 6, l("Warp to a mirror island.")), L_WarpMirror,
rif(numdate() >= 20200214, l("Warp to extra island!")), L_WarpEnchanted,
l("Leave it alone."), -;
close;
L_Warp:
warp "Save", 0, 0;
close;
L_WarpEnchanted:
warp "001-12", 56, 20;
close;
// Done for multiple players
// FIXME This obviously will not work
L_WarpMirror:
.@u=getusers(1);
mesn;
mes l("To which mirrored island you want to warp?");
.@i=0;
.@dest$="Stay here";
// Create instances as needed
while (.@i < .@u/6) {
.@i+=1;
.@dest$+=sprintf(":Mirror Island %d", .@i);
if (!(getd("$@VALENTINE_MI"+.@i) &&
isinstance(getd("$@VALENTINE_MI"+.@i)))) {
debugmes "Create Mirror Island %d", .@i;
.@tmpist = instance_create("001-11@Mirror"+.@i, 0, IOT_NONE);
instance_attachmap("001-11", .@tmpist, 0, "001-11@MI"+.@i);
instance_set_timeout(1000000, 1000000, .@tmpist);
instance_init(.@tmpist);
setd("$@VALENTINE_MI"+.@i, .@tmpist);
}
}
select .@dest$;
if (@menu == 1)
close;
@menu-=1;
warp "001-11@MI"+@menu, 38, 32;
dispbottom l("Mirror Island %d", @menu);
/*
select
rif(.@u >= 6, l("Mirror Island 1")),
*/
closeclientdialog;
close;
// Special labels
L_EVTC2020:
showavatar NPC_BARD_TRUMP;
mes l("Welcome! Here to pick a weapon? You'll be able to select three skill cards as well.");
next;
inventoryplace NPCEyes, 4, Iten, 1, OolongTea, 3, SpearmintTea, 5, CrazyRum, 1, DwarvenSake, 3;
mesc l("Are you sure you want to begin now? (Cannot be changed later)"), 1;
next;
if (askyesno() == ASK_NO)
close;
mes "";
mes l("Select your preferred play-style.");
select
l("A soldier, with a sword and a shield"),
l("A warrior, with a long blade"),
l("A ranger, with a powerful bow"),
l("A wizard, with a might wand");
mes "";
#VALENTINE_EQUIPMENT2020=true;
switch (@menu) {
case 1:
getitembound Event1HSword, 1, 1;
getitem FalkonCard, 1;
break;
case 2:
getitembound Event2HSword, 1, 1;
getitem FalkonCard, 1;
break;
case 3:
getitembound EventBow, 1, 1;
getitem ArrowShowerCard, 1;
getitem TolchiAmmoBox, 5; // 1,000 arrows should be plenty
break;
case 4:
getitembound EventWand, 1, 1;
getitem FireballCard, 1;
break;
}
// Get misc items
getitem HealCard, 1;
getitem OolongTea, 3;
getitem SpearmintTea, 5;
getitem CrazyRum, 1;
getitem DwarvenSake, 3;
// Ask for the skill set
mes "";
mes l("Select a set of skills:");
select
l("I need to survive anything!"),
l("I need support magic!"),
l("I need offensive magic!"),
l("I need supreme warrior skills!"),
l("I need supreme ranger skills!");
mes "";
switch (@menu) {
case 1: // Survival Magic
getitem LastStandCard, 1;
getitem CowardCard, 1;
break;
case 2: // Support Magic
getitem HighPriestCard, 1;
getitem FullPowerCard, 1;
break;
case 3: // Offensive Magic
getitem NatureWallCard, 1;
getitem MagicalMVPCard, 1;
break;
case 4: // Warrior Magic
getitem SupremeWarriorCard, 1;
getitem VersatileCard, 1;
break;
case 5: // Ranger Magic
getitem SupremeRangerCard, 1;
getitem VersatileCard, 1;
break;
}
mesn;
mes l("And, that's all.");
mesc l("Protip: You can trade the cards, but only before inserting them."), 9;
mesc l("You can make any build you want! But inserted cards cannot be removed!"), 9;
next;
mesn;
mes l("To insert a card, select the card and \"use\" it, or, drag and drop them to the weapon.");
mesc l("You can only insert up to 3 (three) cards per weapon!"), 1;
next;
mesn;
mes l("Event weapons and cards will be deleted once event ends.");
close;
OnInit:
.distance = 5;
end;
}