summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2020-06-25 06:18:42 -0300
committerJesusaves <cpntb1@ymail.com>2020-06-25 06:18:42 -0300
commit24a3362c7358aac4a97efab4674d4e112dccd4cb (patch)
tree7974b16dfdd1351ebda94123041b43e82840cba6 /npc
parent168601c7727279e7d29540aae09e71875998afdd (diff)
downloadserverdata-24a3362c7358aac4a97efab4674d4e112dccd4cb.tar.gz
serverdata-24a3362c7358aac4a97efab4674d4e112dccd4cb.tar.bz2
serverdata-24a3362c7358aac4a97efab4674d4e112dccd4cb.tar.xz
serverdata-24a3362c7358aac4a97efab4674d4e112dccd4cb.zip
Refactor Trickmaster skills
Diffstat (limited to 'npc')
-rw-r--r--npc/003-0/trickmaster.txt94
1 files changed, 78 insertions, 16 deletions
diff --git a/npc/003-0/trickmaster.txt b/npc/003-0/trickmaster.txt
index a0ec104e2..da0c5dd3b 100644
--- a/npc/003-0/trickmaster.txt
+++ b/npc/003-0/trickmaster.txt
@@ -5,29 +5,35 @@
// Trickmaster of Tricksters Class
003-0,35,42,0 script Trickmaster NPC_SITTED_NINJA,{
- //if (!MAGIC_LVL) goto L_NoMagic;
+ function basicMagic;
+ function standardMagic;
+ function advancedMagic;
mes l(".:: Trickster Class ::.");
mesc l("Specialized in miscellaneous skills.");
next;
mesn;
mesc l("You have @@ magic skill points available.", sk_points());
- mesc l("Trickster uses an experimental window, you might need to resize it to see all skills.");
- do {
- next;
- setskin "academy_trickster";
- menuint
- "freecast", SA_FREECAST,
- "backslide", TF_BACKSLIDING,
- "firewall", MG_FIREWALL,
- "vulture", AC_VULTURE,
- "fullthrottle", ALL_FULL_THROTTLE,
- "darkillusion", GC_DARKILLUSION,
- "trickdead", NV_TRICKDEAD,
- "Cancel", 0;
+ select
+ l("Basic Tricks"),
+ l("Standard Tricks"),
+ l("Advanced Tricks");
mes "";
- setskin "";
+ .@lv=@menu;
+ do {
+ // Display appropriate menu
+ if (.@lv == 1)
+ basicMagic();
+ else if (.@lv == 2)
+ standardMagic();
+ else if (.@lv == 3)
+ advancedMagic();
+ // Handle result
switch (@menuret) {
+ case TMW2_MANABOMB:
+ if (!mlearn(TMW2_MANABOMB, 1, 1, SulfurPowder, 1))
+ mesc l("You do not meet all requisites for this skill."), 1;
+ break;
case SA_FREECAST:
if (!mlearn(SA_FREECAST, 1, 1, Lockpicks, 1))
mesc l("You do not meet all requisites for this skill."), 1;
@@ -48,6 +54,7 @@
if (!mlearn(ALL_FULL_THROTTLE, 1, 1, Lockpicks, 1))
mesc l("You do not meet all requisites for this skill."), 1;
break;
+
case GC_DARKILLUSION:
if (!mlearn(GC_DARKILLUSION, 3, 2, Lockpicks, 1))
mesc l("You do not meet all requisites for this skill."), 1;
@@ -69,7 +76,7 @@
L_NoMagic:
next;
mesn;
- mesq l("Your lack of magical power is critical. I dare say, you might never in your life get access to a Mana Stone.");
+ mesq l("You do not have enough magic power for these classes.");
next;
mesn;
mesq l("Besides the Magic Council, Andrei Sakar have his own Mana Stone, but I doubt he would train the likes of you, or share his Mana Stone.");
@@ -78,6 +85,61 @@ L_NoMagic:
mesq l("Perhaps, in the city, someone knows rumors about Mana Stones and can teach you. Other than that, you're on your own.");
close;
+function basicMagic {
+ mes l(".:: Mana Bomb ::.");
+ mesc l("Converts all your mana in damage. Damages all enemies in same tile.");
+ mes "";
+ mes l(".:: Free Cast ::.");
+ mesc l("Allows to attack right after casting.");
+ mes "";
+ mes l(".:: Backsliding ::.");
+ mesc l("Instantly jumps 5 tiles backwards.");
+ mes "";
+ mes l(".:: Nature Wall ::.");
+ mesc l("Create a natural wall under the cursor, to delay your enemies.");
+ mes "";
+ mes l(".:: Archers Eye ::.");
+ mesc l("Increase bow range and accuracy.");
+ mes "";
+ menuint
+ "Mana Bomb", TMW2_MANABOMB,
+ "Free Cast", SA_FREECAST,
+ "Backslidng", TF_BACKSLIDING,
+ "Nature Wall", MG_FIREWALL,
+ "Archers Eye", AC_VULTURE,
+ "Cancel", 0;
+ return;
+}
+
+function standardMagic {
+ if (!MAGIC_LVL) goto L_NoMagic;
+ mes l(".:: Full Throttle ::.");
+ mesc l("An emergency skill which temporaly raises all your stats.");
+ mes "";
+ mes l(".:: Sudden Attack ::.");
+ mesc l("Instantly jumps to target and delivers an attack.");
+ mes "";
+ mes l(".:: Trick Dead ::.");
+ mesc l("Plop dead in the ground. Enemies won't attack you this way.");
+ mes "";
+ menuint
+ "Full Throttle", ALL_FULL_THROTTLE,
+ "Sudden Attack", GC_DARKILLUSION,
+ "Trick Dead", NV_TRICKDEAD,
+ "Cancel", 0;
+ return;
+}
+
+function advancedMagic {
+ if (MAGIC_LVL < 2) goto L_NoMagic;
+ mes l(".:: There are no skills ::.");
+ mesc l("You can bug Jesusalva to extend the Battlefield Control skills.");
+ mes "";
+ menuint
+ "none", 0;
+ return;
+}
+
OnInit:
.sex = G_FEMALE;
.distance = 5;