From 8413c5da8ca62235b0c5a2594fe9e0b6c1d47885 Mon Sep 17 00:00:00 2001
From: Jesusaves <jesusalva@themanaworld.org>
Date: Tue, 31 Mar 2020 16:45:48 -0300
Subject: End March Updates (#549)

* Mana Guardian EXP  +750 DEF -6 LUK -160
* Second monster point table
* Banshee Bow no longer crits. Added more damage and a walk speed bonus. Lowered HP penalty in half.
* Release [Sand Cutter] weapon, with power matching Banshee.
PS. If Sand Cutter dealt only 120 damage, it would draw with setzer.

* Add Virus monster (ID 1139)
The main and most annoying attack is poison; otherwise it is quite weak.
More vulnerable to magic than slashing. Drops the following three items:

Acorn, 11.00%
Snapples, 5.00%
Gumi Candy, 0.11%

Range 6.
---
 world/map/db/item_db_weapon.txt        |  4 +--
 world/map/db/mob_db_over_100.txt       |  4 ++-
 world/map/db/mob_skill_db.txt          |  1 +
 world/map/npc/003-4/_import.txt        |  1 +
 world/map/npc/003-4/ashley.txt         | 61 ++++++++++++++++++++++++++++++++++
 world/map/npc/functions/mob_points.txt | 17 +++++++++-
 6 files changed, 84 insertions(+), 4 deletions(-)
 create mode 100644 world/map/npc/003-4/ashley.txt

(limited to 'world/map')

diff --git a/world/map/db/item_db_weapon.txt b/world/map/db/item_db_weapon.txt
index 30566754..e9b98857 100644
--- a/world/map/db/item_db_weapon.txt
+++ b/world/map/db/item_db_weapon.txt
@@ -19,7 +19,7 @@
 575,    DesertBow,                      4,      8000,       4000,       1200,       100,    0,      1,      0,      0,      2,      34,         1,      1,      11,     {},                                                                     {callfunc "UnreleasedItem";set @LauncherType, AMMO_BOW; callfunc "CheckLauncher";}
 576,    Beheader,                       4,      8000,       4000,       2000,       100,    0,      1,      0,      0,      2,      2,          1,      1,      1,      {},                                                                     {callfunc "UnreleasedItem";}
 577,    BoneDarts,                      4,      8000,       4000,       300,        100,    0,      1,      0,      0,      2,      2,          1,      1,      1,      {},                                                                     {callfunc "UnreleasedItem"; }
-578,    SandCutter,                     4,      8000,       4000,       1500,       100,    0,      1,      0,      0,      2,      2,          1,      1,      1,      {},                                                                     {callfunc "UnreleasedItem";}
+578,    SandCutter,                     4,     30000,      15000,       1500,       130,    0,      1,      0,      0,      2,      2,          1,      1,      0,      {},                                                                     {}
 579,    RockKnife,                      4,      15000,      7500,       500,        110,    0,      1,      0,      0,      2,      2,          1,      1,      1,      {},                                                                     {bonus bVit, 3;}
 //ID,   Name___________________,        Type,   Price,      Sell,       Weight,     ATK,    DEF,    Range,  Mbonus, Slot,   Gender, Loc,        wLV,    eLV,    View,   {UseScript},                                                            {EquipScript}
 580,    StaffOfLife,                    4,      8000,       4000,       1500,       100,    0,      1,      0,      0,      2,      2,          1,      1,      1,      {},                                                                     {callfunc "UnreleasedItem";}
@@ -52,7 +52,7 @@
 1171,   Wand,                           4,      400,        200,        100,        1,      0,      1,      5,      0,      2,      2,          1,      1,      1,      {},                                                                     {set @bStat, Int;set @minbStatVal, 5;callfunc "RequireStat";}
 762,    TerraniteArrow,                 10,     80,         20,         1,          50,     0,      0,      0,      0,      2,      32768,      0,      0,      0,      {},                                                                     {bonus bCritical, 10;set @AmmoType, AMMO_BOW; callfunc "CheckAmmo";}
 867,    IceGladius,                     4,      2000,       1000,       1000,       110,    0,      1,      0,      0,      2,      2,          1,      1,      1,      {},                                                                     {bonus bLuk, 1;}
-878,    BansheeBow,                     4,      101000,     40000,      900,        85,     0,      6,      0,      0,      2,      34,         1,      90,     11,     {},                                                                     {set @bStat, Dex;set @minbStatVal, 80;callfunc "RequireStat"; bonus2 bHPDrainRate, 100, -4; bonus bAspdRate, 20; bonus bCritical, 70; bonus bMaxHP, -150; bonus bDefRate, -40; bonus bDef2Rate, -35;set @LauncherType, AMMO_BOW; callfunc "CheckLauncher";}
+878,    BansheeBow,                     4,      101000,     40000,      900,       140,     0,      6,      0,      0,      2,      34,         1,      90,     11,     {},                                                                     {set @bStat, Dex;set @minbStatVal, 80;callfunc "RequireStat"; bonus2 bHPDrainRate, 100, -2; bonus bAspdRate, 20; bonus bMaxHP, -150; bonus bSpeedAddRate, 10; bonus bDefRate, -40; bonus bDef2Rate, -35;set @LauncherType, AMMO_BOW; callfunc "CheckLauncher";}
 903,    SlingShot,                      4,      500,        50,         10,         5,      0,      3,      0,      0,      2,      34,         1,      1,      11,     {},                                                                     {set @LauncherType, AMMO_SLING; callfunc "CheckLauncher";}
 904,    SlingBullet,                    10,     1,          0,          1,          3,      0,      0,      0,      0,      2,      32768,      0,      0,      0,      {},                                                                     {set @AmmoType, AMMO_SLING; callfunc "CheckAmmo";}
 906,    KidBook,                        4,      10000,      5000,       100,        1,      0,      3,      0,      0,      2,      34,         1,      1,      1,      {},                                                                     {}
diff --git a/world/map/db/mob_db_over_100.txt b/world/map/db/mob_db_over_100.txt
index c085904b..bdc8627a 100644
--- a/world/map/db/mob_db_over_100.txt
+++ b/world/map/db/mob_db_over_100.txt
@@ -41,4 +41,6 @@
 1136,   LesserGhost,            LesserGhost,            1,      1,      0,      1,      1,      0,      150,    300,    0,      0,      0,      0,      0,      0,      0,      0,      2,      2,      1,      1,      29,     131,    340,    1800,   672,    950,    0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      4,      20
 1137,   Tormenta,               Tormenta,               200,    18000,  60, 500000,      5000,  5,      360,    374,    48,     90,     1,      32,     60,     255,    255,    255,    31,     30,     1,      0,      69,     181,    210,    1200,   672,    50,     0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0
 //ID,   Name,                   Jname,                  LV,     HP,     SP,     EXP,    JEXP,   Range1, ATK1,   ATK2,   DEF,    MDEF,   STR,    AGI,    VIT,    INT,    DEX,    LUK,    Range2, Range3, Scale,  Race,   Element,Mode,   Speed,  Adelay, Amotion,Dmotion,Drop1id,Drop1per,Drop2id,Drop2%, Drop3id,Drop3%, Drop4id,Drop4%, Drop5id,Drop5%, Drop6id,Drop6%, Drop7id,Drop7%, Drop8id,Drop8%, Item1,  Item2,  MEXP,   ExpPer, MVP1id, MVP1per,MVP2id, MVP2per,MVP3id, MVP3per,mutationcount,mutationstrength
-1138,  ManaGuard,           ManaGuardian,               180,    20000, 280,  21000,      5000,  2,      360,    374,    28,     70,    31,      22,     90,     127,    255,    245,    31,     30,     1,      0,      69,     181,    210,    1200,   672,    50,   759,      1,   5237,     20,   1253,      5,    720,    100,    825,    500,    868,     20,   1172,     15,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0
+1138,  ManaGuard,           ManaGuardian,               180,    20000, 280,  21750,      5000,  2,      360,    374,    22,     70,    31,      22,     90,     127,    255,     95,    31,     30,     1,      0,      69,     181,    210,    1200,   672,    50,   759,      1,   5237,     20,   1253,      5,    720,    100,    825,    500,    868,     20,   1172,     15,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0
+1139,         Virus,                  Virus,            170,    5000,   0,      0,      721,    6,      45,      75,    37,     12,     30,     30,     20,     20,     25,     60,     1,      1,      1,      3,      25,     175,    600,    1872,   672,    480,    787,     500, 743,   1100,   5236,     11,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      0,      4,      20
+
diff --git a/world/map/db/mob_skill_db.txt b/world/map/db/mob_skill_db.txt
index 729b35aa..0cd9107e 100644
--- a/world/map/db/mob_skill_db.txt
+++ b/world/map/db/mob_skill_db.txt
@@ -55,6 +55,7 @@
 1095,WhiteBell@NPC_SUMMONSLAVE,any,198,1,10000,1000,60000,no,self,slavelt,4,1093,0,0,0,0,
 1049,Bee@NPC_POISON,attack,178,20,1000,0,500,yes,target,always,0,0,10,0,0,0,
 1049,Bee@NPC_SELFDESTRUCTION,attack,175,1,1000,0,500,yes,self,notintown,0,30,0,0,0,0,
+1139,Virus@NPC_POISON,attack,178,50,1500,1000,600,yes,target,always,0,0,10,0,0,0,
 // The Lost Abilities
 1073,TheLost@NPC_SUMMONSLAVE_DMUSHX2X,any,198,1,8000,1000,5000,no,self,slavelt,2,1106,0,0,0,0,
 
diff --git a/world/map/npc/003-4/_import.txt b/world/map/npc/003-4/_import.txt
index 77ddeb5a..2199a333 100644
--- a/world/map/npc/003-4/_import.txt
+++ b/world/map/npc/003-4/_import.txt
@@ -4,5 +4,6 @@ map: 003-4
 npc: npc/003-4/_mobs.txt
 npc: npc/003-4/_nodes.txt
 npc: npc/003-4/_warps.txt
+npc: npc/003-4/ashley.txt
 npc: npc/003-4/mapflags.txt
 npc: npc/003-4/time-traveler.txt
diff --git a/world/map/npc/003-4/ashley.txt b/world/map/npc/003-4/ashley.txt
new file mode 100644
index 00000000..48ad10c9
--- /dev/null
+++ b/world/map/npc/003-4/ashley.txt
@@ -0,0 +1,61 @@
+003-4,35,25,0|script|Ashley|139
+{
+    mes "[Ashley]";
+    mes "\"Ah, hello. Your smell is different, you seem to have come from a different time.";
+    mes "Perhaps you have the rare item I'm looking for?\"";
+    menu
+        "Sure!",L_Next,
+        "Sorry, I'm busy.",L_Close;
+
+L_Next:
+    mes "She smiles mischievously.";
+    mes "[Ashley]";
+    mes "\"Oho, I need an item which doesn't exists at this time... It is called Mylarin Dust.\"";
+    next;
+    mes "[Ashley]";
+    mes "Grinning intensifies";
+    mes "\"I'll even give you an old weapon as a reward.\"";
+    next;
+    mes "[Ashley]";
+    mes "\"So, do you have it?\"";
+    menu
+        "Yeah, here is it.",L_Next1,
+        "Not yet.",L_Close;
+
+L_Next1:
+    if (countitem("MylarinDust") < 1)
+        goto L_NoMylarin;
+
+    getinventorylist;
+    if (@inventorylist_count == 100)
+        goto L_FullInv;
+
+    delitem "MylarinDust", 1;
+    getexp 2000, 0;
+    getitem "SandCutter", 1;
+    mes "[Ashley]";
+    mes "Grinning widely";
+    mes "\"Thanks, mortal. This will help me a bit...\"";
+    next;
+    mes "[Ashley]";
+    mes "\"And if you have more Mylarin Dust with you, I will not hesitate to give you another old weapon as a reward.\"";
+    goto L_Close;
+
+L_NoMylarin:
+    mes "[Ashley]";
+    mes "She fakes smiles at you";
+    mes "\"Oh, did you said you wanted me to play with you?\"";
+    next;
+    mes "[Ashley]";
+    mes "\"While I would love to play... I still have to put a prank on Cupid, so you'll have to wait your turn.\"";
+    goto L_Close;
+
+L_FullInv:
+    mes "[Ashley]";
+    mes "\"You're carrying so many things that I feel the urge of stomping you.\"";
+    goto L_Close;
+
+L_Close:
+    set @inventorylist_count, 0;
+    close;
+}
diff --git a/world/map/npc/functions/mob_points.txt b/world/map/npc/functions/mob_points.txt
index 72b5ac23..e60b0588 100644
--- a/world/map/npc/functions/mob_points.txt
+++ b/world/map/npc/functions/mob_points.txt
@@ -135,9 +135,24 @@ function|script|MobPoints
         //   -o11c
         ; // END
 
-    if (MPQUEST == 1)
+    setarray @points_extended,
+        100, // 1130 Moonshroom
+        20, // 1131 ManaBug
+        80, // 1132 LavaSlime
+        80, // 1133 Anne
+        200, // 1134 SUSAN
+        80, // 1135 LovelyMaggot
+        10, // 1136 LesserGhost
+        500, // 1137 Tormenta
+        200 // 1138 ManaGuardian
+    ;
+    
+    if ((MPQUEST == 1) && (@mobID < 1130))
         set Mobpt, Mobpt + @points[@mobID - 1002];
 
+    if ((MPQUEST == 1) && (@mobID > 1129))
+        set Mobpt, Mobpt + @points_extended[@mobID - 1130];
+
     callfunc "ValonCount";
     if (((QL_VALON >= 2) && (QL_VALON < 6)) && (@mobID == $@ValonMob[@valon_mob]))
         goto L_ValonMobKill;
-- 
cgit v1.2.3-70-g09d2