From 24a3362c7358aac4a97efab4674d4e112dccd4cb Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Thu, 25 Jun 2020 06:18:42 -0300 Subject: Refactor Trickmaster skills --- npc/003-0/trickmaster.txt | 94 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 78 insertions(+), 16 deletions(-) (limited to 'npc/003-0/trickmaster.txt') 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; -- cgit v1.2.3-70-g09d2