From 112879ece31a385584499263da67f84f98ed29cc Mon Sep 17 00:00:00 2001 From: Sean Hulka Date: Sat, 29 May 2021 16:11:42 +0000 Subject: Implement Brawler Sciences Class and skills --- db/re/skill_db.conf | 41 +++++++++++++++++++ db/re/skill_tree.conf | 1 + npc/027-3/_import.txt | 1 + npc/027-3/angel.txt | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++ npc/functions/hub.txt | 15 +++++++ 5 files changed, 169 insertions(+) create mode 100644 npc/027-3/angel.txt diff --git a/db/re/skill_db.conf b/db/re/skill_db.conf index 8b08621f9..609039aca 100644 --- a/db/re/skill_db.conf +++ b/db/re/skill_db.conf @@ -40342,6 +40342,47 @@ skill_db: ( } }*/ }, +{ + Id: 20076 + Name: "TMW2_STUNNINGSTRIKE" + Description: "Stunning Strike" + MaxLevel: 10 + Range: 2 + SkillType: { + Enemy: true + } + SkillInfo: { + Quest: true + } + Hit: "BDT_SKILL" + AttackType: "Weapon" + Element: "Ele_Neutral" + DamageType: { + NoDamage: true + } + InterruptCast: true + CoolDown: { + Lv1: 7000 + Lv2: 6000 + Lv3: 5000 + Lv4: 4000 + Lv5: 3000 + Lv6: 2500 + Lv7: 2000 + Lv8: 1500 + Lv9: 1000 + Lv10: 500 + } + CastTime: 225 + FixedCastTime: 100 + AfterCastActDelay: 225 + Requirements: { + SPCost: 120 + WeaponTypes: { + NoWeapon: true + } + } +}, diff --git a/db/re/skill_tree.conf b/db/re/skill_tree.conf index 072850f53..1ffa2296a 100644 --- a/db/re/skill_tree.conf +++ b/db/re/skill_tree.conf @@ -109,6 +109,7 @@ Human: { TMW2_BRAWLING: 0 TMW2_BEARSTRIKE: 0 TMW2_ALLINONE: 0 + TMW2_STUNNINGSTRIKE: 0 TMW2_FALKONSTRIKE: 0 TMW2_GROUNDSTRIKE: 0 TMW2_SUPREMEATTACK: 0 diff --git a/npc/027-3/_import.txt b/npc/027-3/_import.txt index 750829745..feb1974d7 100644 --- a/npc/027-3/_import.txt +++ b/npc/027-3/_import.txt @@ -1,4 +1,5 @@ // Map 027-3: Physical Sciences Classroom // This file is generated automatically. All manually added changes will be removed when running the Converter. "npc/027-3/_warps.txt", +"npc/027-3/angel.txt", "npc/027-3/luca.txt", diff --git a/npc/027-3/angel.txt b/npc/027-3/angel.txt new file mode 100644 index 000000000..b811e3d37 --- /dev/null +++ b/npc/027-3/angel.txt @@ -0,0 +1,111 @@ +// TMW2 script. +// Author: +// dangerDuck +// Description: +// Angel, of Physical Science Class. + +027-3,36,28,0 script Angel NPC_PLAYER,{ + function basicMagic; + function standardMagic; + function advancedMagic; + if (!MAGIC_LVL) goto L_NoMagic; + mes l(".:: Physical Sciences Class ::."); + mesc l("Specialized in skills with fist-based damage and unarmed mastery."); + next; + mesn; + mesc l("You have @@ magic skill points available.", sk_points()); + select + l("Basic Magic"), + l("Standard Magic"), + l("Advanced Magic"); + //l("Mastery Magic"); + mes ""; + .@lv=@menu; + do + { + // Display appropriate menu + if (.@lv == 1) + basicMagic(); + else if (.@lv == 2) + standardMagic(); + else if (.@lv == 3) + advancedMagic(); + + // Handle result + mes ""; + if (@menuret) { + if (!learn_magic(@menuret)) { + mesc l("You do not meet all requisites for this skill."), 1; + next; + } + } else { + closeclientdialog; + } + + } while (@menuret); + close; + +L_NoMagic: + next; + mesn; + mesq l("You do not have enough magic power for these classes."); + next; + if ($FIRESOFSTEAM < 9) { + 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."); + next; + } + mesn; + 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 { + if (MAGIC_LVL < 1) goto L_NoMagic; + mes l(".:: Brawling ::."); + mesc l("Three powerful consecutive brawn attacks."); + mes ""; + menuint + l("Brawling"), TMW2_BRAWLING, + l("Cancel"), 0; + return; +} + +function standardMagic { + if (MAGIC_LVL < 2) goto L_NoMagic; + mes l(".:: Bear Strike ::."); + mesc l("Five powerful consecutive brawn attacks."); + mes ""; + mes l(".:: Stunning Strike ::."); + mesc l("Three powerful consecutive brawn attacks with a chance to stun target."); + mes ""; + menuint + l("Bear Strike"), TMW2_BEARSTRIKE, + l("Stunning Strike"), TMW2_STUNNINGSTRIKE, + l("Cancel"), 0; + return; +} + +function advancedMagic { + if (MAGIC_LVL < 3) goto L_NoMagic; + mes l(".:: All In One ::."); + mesc l("Seven consecutive brawn attacks of diff. elements."); + mes ""; + menuint + l("All In One"), TMW2_ALLINONE, + l("Cancel"), 0; + return; +} + +OnInit: + .@npcId = getnpcid(.name$); + setunitdata(.@npcId, UDT_HEADTOP, NPCEyes); + setunitdata(.@npcId, UDT_HEADMIDDLE, AssassinChest); + setunitdata(.@npcId, UDT_HEADBOTTOM, AssassinPants); + setunitdata(.@npcId, UDT_WEAPON, AssassinBoots); + setunitdata(.@npcId, UDT_HAIRSTYLE, 20); + setunitdata(.@npcId, UDT_HAIRCOLOR, 7); + + .sex = G_FEMALE; + .distance = 5; + end; +} diff --git a/npc/functions/hub.txt b/npc/functions/hub.txt index f3ff72983..a2a981da9 100644 --- a/npc/functions/hub.txt +++ b/npc/functions/hub.txt @@ -1,6 +1,7 @@ // TMW2 scripts. // Authors: // Jesusalva +// dangerDuck // TMW Org. // Description: // HUB functions (Login, Logout, Death) @@ -847,6 +848,20 @@ function script HUB_SkillInvoke { // and also hits behind (and on your square) rectharm(@skillTarget, 0, 1, AdjustAttackpower(.@PW/2), HARM_PHYS, Ele_Neutral); break; + case TMW2_STUNNINGSTRIKE: + // 70x3 = 210 + .@PW=65+(5*@skillLv); + .@TM=1600+(@skillLv*200); + // Using a shield, so power is halved + if (getequipid(EQI_HAND_L) > 0) + .@PW=.@PW/2; + harm(@skillTarget, AdjustAttackpower(.@PW), HARM_PHYS, Ele_Neutral); + sleep2(10); + harm(@skillTarget, AdjustAttackpower(.@PW), HARM_PHYS, Ele_Neutral); + sleep2(10); + harm(@skillTarget, AdjustAttackpower(.@PW), HARM_PHYS, Ele_Neutral); + sc_start SC_STUN, .@TM, 1, 3333, SCFLAG_NONE, @skillTarget; + break; //////////////////////////////// // CLASS_OTHER -- cgit v1.2.3-60-g2f50