// TMW2 scripts.
// Authors:
// Jesusalva
// Description:
// Arcmage Cards Enhancer
017-3,37,84,0 script Nico Goethe NPC_PLAYER,{
mesn;
mesq l("My name is Nico Goethe, an %s card player.", "[@@https://arcmage.org|Arcmage@@]");
next;
mesn;
mesq l("Would love to invite you to a card minigame... But alas, Kenton told me that minigames are a waste of time, and that I should not bother adventurers with it.");
next;
mesn;
mesq l("However, I am still up for trading cards, if you wish.");
next;
goto L_Main;
L_Main:
select
l("Trade a card"),
l("Evolve a card"),
l("Lets play!"),
l("Bye.");
mes "";
switch (@menu) {
// Trade Card
case 1:
mesn;
mesq l("Give me a card and select another card of same class. I charge %d GP for simple exchanges.", 5000);
next;
if (Zeny < 5000)
break;
mes "##B" + l("Drag and drop an item from your inventory.") + "##b";
.@card = requestitem();
if (.@card <= 1) break;
@menuret = 0;
switch (.@card) {
case HeroCard:
case KnightCard:
case ClericCard:
case DruidCard:
case MageCard:
case NinjaCard:
case NatureCard:
case NecromancerCard:
menuint
"Sorry, I don't want to trade it.", 0,
getitemname(HeroCard), HeroCard,
getitemname(KnightCard), KnightCard,
getitemname(ClericCard), ClericCard,
getitemname(DruidCard), DruidCard,
getitemname(MageCard), MageCard,
getitemname(NinjaCard), NinjaCard,
getitemname(NatureCard), NatureCard,
getitemname(NecromancerCard), NecromancerCard;
mes "";
break;
case SpeedCard:
case ReflectCard:
case PowerCard:
case WallCard:
menuint
"Sorry, I don't want to trade it.", 0,
getitemname(SpeedCard), SpeedCard,
getitemname(ReflectCard), ReflectCard,
getitemname(PowerCard), PowerCard,
getitemname(WallCard), WallCard;
mes "";
break;
case HeroCardS:
case KnightCardS:
case ClericCardS:
case DruidCardS:
case MageCardS:
case NinjaCardS:
case NatureCardS:
case NecromancerCardS:
menuint
"Sorry, I don't want to trade it.", 0,
getitemname(HeroCardS), HeroCardS,
getitemname(KnightCardS), KnightCardS,
getitemname(ClericCardS), ClericCardS,
getitemname(DruidCardS), DruidCardS,
getitemname(MageCardS), MageCardS,
getitemname(NinjaCardS), NinjaCardS,
getitemname(NatureCardS), NatureCardS,
getitemname(NecromancerCardS), NecromancerCardS;
mes "";
break;
case SpeedCardS:
case ReflectCardS:
case PowerCardS:
case WallCardS:
menuint
"Sorry, I don't want to trade it.", 0,
getitemname(SpeedCardS), SpeedCardS,
getitemname(ReflectCardS), ReflectCardS,
getitemname(PowerCardS), PowerCardS,
getitemname(WallCardS), WallCardS;
mes "";
break;
case HeroCardX:
case KnightCardX:
case ClericCardX:
case DruidCardX:
case MageCardX:
case NinjaCardX:
case NatureCardX:
case NecromancerCardX:
menuint
"Sorry, I don't want to trade it.", 0,
getitemname(HeroCardX), HeroCardX,
getitemname(KnightCardX), KnightCardX,
getitemname(ClericCardX), ClericCardX,
getitemname(DruidCardX), DruidCardX,
getitemname(MageCardX), MageCardX,
getitemname(NinjaCardX), NinjaCardX,
getitemname(NatureCardX), NatureCardX,
getitemname(NecromancerCardX), NecromancerCardX;
mes "";
break;
case SpeedCardX:
case ReflectCardX:
case PowerCardX:
case WallCardX:
menuint
"Sorry, I don't want to trade it.", 0,
getitemname(SpeedCardX), SpeedCardX,
getitemname(ReflectCardX), ReflectCardX,
getitemname(PowerCardX), PowerCardX,
getitemname(WallCardX), WallCardX;
mes "";
break;
default:
mesn;
mesq l("Sorry, I only deal with Arcmage cards.");
break;
}
if (@menuret < 1)
break;
Zeny -= 5000;
delitem .@card, 1;
getitem @menuret, 1;
break;
// Evolve Card
case 2:
mesn;
mesq l("Give me %s copies of the same card and %s GP, and I'll improve its tier.", b(l("three")), fnum(25000));
mesc l("Normal Cards can be upgraded to S-Tier, and S Cards can be upgraded to X-Tier. X-Tier cards cannot be upgraded.");
next;
if (Zeny < 25000)
break;
mes "##B" + l("Drag and drop an item from your inventory.") + "##b";
.@card = requestitem();
if (.@card <= 1) break;
if (countitem(.@card) < 3) {
mesn;
mesq l("You don't have enough cards of this type to upgrade.");
next;
break;
}
switch (.@card) {
case HeroCard:
delitem .@card, 3; Zeny -= 25000;
getitem HeroCardS, 1;
break;
case KnightCard:
delitem .@card, 3; Zeny -= 25000;
getitem KnightCardS, 1;
break;
case ClericCard:
delitem .@card, 3; Zeny -= 25000;
getitem ClericCardS, 1;
break;
case DruidCard:
delitem .@card, 3; Zeny -= 25000;
getitem DruidCardS, 1;
break;
case MageCard:
delitem .@card, 3; Zeny -= 25000;
getitem MageCardS, 1;
break;
case NinjaCard:
delitem .@card, 3; Zeny -= 25000;
getitem NinjaCardS, 1;
break;
case NatureCard:
delitem .@card, 3; Zeny -= 25000;
getitem NatureCardS, 1;
break;
case NecromancerCard:
delitem .@card, 3; Zeny -= 25000;
getitem NecromancerCardS, 1;
break;
case SpeedCard:
delitem .@card, 3; Zeny -= 25000;
getitem SpeedCardS, 1;
break;
case ReflectCard:
delitem .@card, 3; Zeny -= 25000;
getitem ReflectCardS, 1;
break;
case PowerCard:
delitem .@card, 3; Zeny -= 25000;
getitem PowerCardS, 1;
break;
case WallCard:
delitem .@card, 3; Zeny -= 25000;
getitem WallCardS, 1;
break;
case HeroCardS:
delitem .@card, 3; Zeny -= 25000;
getitem HeroCardX, 1;
break;
case KnightCardS:
delitem .@card, 3; Zeny -= 25000;
getitem KnightCardX, 1;
break;
case ClericCardS:
delitem .@card, 3; Zeny -= 25000;
getitem ClericCardX, 1;
break;
case DruidCardS:
delitem .@card, 3; Zeny -= 25000;
getitem DruidCardX, 1;
break;
case MageCardS:
delitem .@card, 3; Zeny -= 25000;
getitem MageCardX, 1;
break;
case NinjaCardS:
delitem .@card, 3; Zeny -= 25000;
getitem NinjaCardX, 1;
break;
case NatureCardS:
delitem .@card, 3; Zeny -= 25000;
getitem NatureCardX, 1;
break;
case NecromancerCardS:
delitem .@card, 3; Zeny -= 25000;
getitem NecromancerCardX, 1;
break;
case SpeedCardS:
delitem .@card, 3; Zeny -= 25000;
getitem SpeedCardX, 1;
break;
case ReflectCardS:
delitem .@card, 3; Zeny -= 25000;
getitem ReflectCardX, 1;
break;
case PowerCardS:
delitem .@card, 3; Zeny -= 25000;
getitem PowerCardX, 1;
break;
case WallCardS:
delitem .@card, 3; Zeny -= 25000;
getitem WallCardX, 1;
break;
default:
mesn;
mesq l("Sorry, I only deal with Arcmage cards.");
break;
}
break;
// TODO: Play minigame
case 3:
mesn;
mesq l("...Are you trying to troll me?");
next;
break;
// Leave
default:
closeclientdialog;
goodbye;
close;
break;
}
goto L_Main;
OnInit:
.@npcId = getnpcid(.name$);
setunitdata(.@npcId, UDT_HEADTOP, TopHat);
setunitdata(.@npcId, UDT_HEADMIDDLE, GoldenLightPlatemail);
setunitdata(.@npcId, UDT_HEADBOTTOM, LeatherTrousers);
setunitdata(.@npcId, UDT_WEAPON, ManaGloves);
setunitdata(.@npcId, UDT_HAIRSTYLE, 24);
setunitdata(.@npcId, UDT_HAIRCOLOR, 4);
npcsit;
.sex = G_MALE;
.distance = 4;
end;
}