Grand Magister Jurek:
+Hello there, have you come to learn how to enhance the abilities of your weapon?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-02.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-02.htm
new file mode 100644
index 0000000000..f7fa29d93f
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-02.htm
@@ -0,0 +1,7 @@
+Grand Magister Jurek:
+I have a growing sense of dread of late. Something terrible is coming. Can you hear it? The trees in the forest, the birds in the sky and the fish in the ocean...They know of what I speak...
+I fear for the survival of the whole Human race, but I don't know what threatens it! This dark foreboding will not give me any peace whatsoever. I hope I am wrong but I fear I am not...
+I must do what I can to save my race! I will find like-minded individuals to join my preperations for the coming apocolypse. If only we knew when...
+Will you join my cause? Are you willing to lend a hand in preparing to fight the imminent darkness?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-03.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-03.htm
new file mode 100644
index 0000000000..45c862b824
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-03.htm
@@ -0,0 +1,5 @@
+Grand Magister Jurek:
+You must hurry and collect the souls of evil creatures in the soul crystal. You will find the evil ones in the northern part of Oren, the Forest of Mirrors, the Cave of Giants, the Devastated Castle, the higher reaches of the Tower of Insolence, deep within the Lair of Antharas, Eva's Underwater Garden and Devil's Isle etc...Take the crystal filled with souls to any blacksmith and he will enhance a weapon for you.
+It is imperative that you build as much strength as possible to prepare yourself for the coming apocolypse. After growing each of your individual strength, if you put together all of your strengths, I think you will have enough force to fight against the approaching apocolypse. Then, next time we meet, I hope to see you stronger...
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-04.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-04.htm
new file mode 100644
index 0000000000..36dd43a0f9
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-04.htm
@@ -0,0 +1,5 @@
+Grand Magister Jurek:
+Oh, marvelous! If we all develop our strengths and work together, we will triumph over the coming cataclysm. My colleagues and I have recently developed a method of enhancing weaponry that should prove quite useful to all of us.
+This weapons enhancement boosts strength noticeably in combat.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-05.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-05.htm
new file mode 100644
index 0000000000..b7d3b6e657
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-05.htm
@@ -0,0 +1,6 @@
+Grand Magister Jurek:
+To enhance a weapon you will need some magical souls. You must collect the souls of evil creatures and trap them in the soul crystal I will give you. You will then take the crystal to a blacksmith and he will extract the magic from the crystal and apply it to a weapon for you.
+All blacksmiths know how to do this, but, obviously, they don't work for free.
+You can collect the souls of the evil ones in the northern part of Oren, the Forest of Mirrors, the Cave of Giants, the Devastated Castle, the upper floors of the Tower of Insolence, deep within the Lair of Antharas, Eva's Underwater Garden and Devil's Isle. Enhanced weapons would greatly aid your mission.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-06.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-06.htm
new file mode 100644
index 0000000000..743e25be87
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-06.htm
@@ -0,0 +1,5 @@
+Grand Magister Jurek:
+After you have sapped the evil one's strength in battle, apply the crystal to his skin. His soul will be absorbed into the crystal. His mortal body is easily dispatched. Each soul crystal can contain up to 10 souls. A more precise explanation would be that it can contain up to 10 souls with regular usage. I will tell you the detailed story later when you bring back the soul crystal with 10 souls.
+Actually, collecting souls for the purpose of bestowing a weapon with a special power is not as easy as it sounds.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-07.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-07.htm
new file mode 100644
index 0000000000..1c8e35d825
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-07.htm
@@ -0,0 +1,6 @@
+Grand Magister Jurek:
+The collection of a soul doesn't always go as planned. Some evil souls will simply not be absorbed, and, if you happen to collect the wrong soul, the crystal will shatter...
+Soul crystals develop refined tastes, and will reject weaker souls after a while. When this happens you must seek the souls of creatures of greater evil to satisfy your crystal.
+Remember that you may not absorb a soul with more than one crystal because a resonance effect is created between the crystals that prevents proper absorbtion.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-08.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-08.htm
new file mode 100644
index 0000000000..232ffdb9d9
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-08.htm
@@ -0,0 +1,7 @@
+Grand Magister Jurek:
+Please choose one of the following three types of crystals:
+
+
+
+Each crystal bestows a different power upon the weapon it enhances, and the powers may vary from weapon to weapon.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-09.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-09.htm
new file mode 100644
index 0000000000..566bfab3ff
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-09.htm
@@ -0,0 +1,4 @@
+Grand Magister Jurek:
+Here is a red soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.
+Next time we meet I hope you have gained more strength.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-10.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-10.htm
new file mode 100644
index 0000000000..04c6ac98a3
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-10.htm
@@ -0,0 +1,4 @@
+Grand Magister Jurek:
+Here is a green soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.
+Next time we meet I hope you have gained more strength.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-11.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-11.htm
new file mode 100644
index 0000000000..bcbbfd77ae
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-11.htm
@@ -0,0 +1,4 @@
+Grand Magister Jurek:
+Here is a blue soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.
+Next time we meet I hope you have gained more strength.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-12.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-12.htm
new file mode 100644
index 0000000000..b344fb6e47
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-12.htm
@@ -0,0 +1,11 @@
+Grand Magister Jurek:
+From the following areas, which area's evil creatures would you like to obtain more information about?
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-13.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-13.htm
new file mode 100644
index 0000000000..2f808003ab
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-13.htm
@@ -0,0 +1,4 @@
+Grand Magister Jurek:
+It seems that the most evil creatures in northern Oren are the Timak Orcs.
+Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-14.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-14.htm
new file mode 100644
index 0000000000..74d78e8a6b
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-14.htm
@@ -0,0 +1,4 @@
+Grand Magister Jurek:
+It seems that the most evil creatures in the Forest of Mirrors are the Forest of Mirror ghosts, mirrors and Harit Lizardmen.
+Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-15.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-15.htm
new file mode 100644
index 0000000000..155e712f2a
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-15.htm
@@ -0,0 +1,4 @@
+Grand Magister Jurek:
+It seems that the most evil creatures in the Cave of Giants are the Halingkas, Yintzus, Paliotes, Hamruts, and Kranrots.
+Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-16.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-16.htm
new file mode 100644
index 0000000000..a918814103
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-16.htm
@@ -0,0 +1,4 @@
+Grand Magister Jurek:
+It seems that the most evil creatures in the Devastated Castle are the Doom Servants, Doom Guards, Doom Archers, Doom Troopers, Doom Warriors, and Doom Knights.
+Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-17.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-17.htm
new file mode 100644
index 0000000000..9c67c2356b
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-17.htm
@@ -0,0 +1,4 @@
+Grand Magister Jurekn:
+It seems that the most evil creatures in the Tower of Insolence are the Erin Ediunce, members of the Platinum Tribe and their Angels.
+Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-18.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-18.htm
new file mode 100644
index 0000000000..c679f856f4
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-18.htm
@@ -0,0 +1,4 @@
+Grand Magister Jurek:
+It seems that the most evil creatures in the Lair of Antharas are the Malruk Knights, Malruk Berserkers, Malruk Lords, Limal Karinness, Kariks, Pytans, and Pytan Knights.
+Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-19.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-19.htm
new file mode 100644
index 0000000000..b0d58f16a3
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-19.htm
@@ -0,0 +1,4 @@
+Grand Magister Jurek:
+It seems that all of the evil creatures inhabiting Eva's Underwater Garden are appropriate soul donors.
+Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-20.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-20.htm
new file mode 100644
index 0000000000..a6838c554a
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-20.htm
@@ -0,0 +1,4 @@
+Grand Magister Jurek:
+It seems that all of the evil creatures inhabiting Devil's Isle are appropriate soul donors.
+Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-21.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-21.htm
new file mode 100644
index 0000000000..024e3e548d
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30115-21.htm
@@ -0,0 +1,5 @@
+Grand Magister Jurek:
+How is your mission going? Oh, I see that you need a new crystal!
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-01.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-01.htm
new file mode 100644
index 0000000000..fce4024ea6
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-01.htm
@@ -0,0 +1,4 @@
+Master Gideon:
+Hello there, have you come to learn how to enhance the abilities of your weapon?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-02.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-02.htm
new file mode 100644
index 0000000000..4adb714d83
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-02.htm
@@ -0,0 +1,7 @@
+Master Gideon:
+I have a growing sense of dread of late. Something terrible is coming. Can you hear it? The trees in the forest, the birds in the sky and the fish in the ocean...They know of what I speak...
+I fear for the survival of the whole Human race, but I don't know what threatens it! This dark foreboding will not give me any peace whatsoever. I hope I am wrong but I fear I am not...
+I must do what I can to save my race! I will find like-minded individuals to join my preperations for the coming apocolypse. If only we knew when...
+Will you join my cause? Are you willing to lend a hand in preparing to fight the imminent darkness?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-03.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-03.htm
new file mode 100644
index 0000000000..c76a668944
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-03.htm
@@ -0,0 +1,5 @@
+Master Gideon:
+You must hurry and collect the souls of evil creatures in the soul crystal. You will find the evil ones in the northern part of Oren, the Forest of Mirrors, the Cave of Giants, the Devastated Castle, the higher reaches of the Tower of Insolence, deep within the Lair of Antharas, Eva's Underwater Garden and Devil's Isle etc...Take the crystal filled with souls to any blacksmith and he will enhance a weapon for you.
+It is imperative that you build as much strength as possible to prepare yourself for the coming apocolypse. After growing each of your individual strength, if you put together all of your strengths, I think you will have enough force to fight against the approaching apocolypse. Then, next time we meet, I hope to see you stronger...
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-04.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-04.htm
new file mode 100644
index 0000000000..1bdbfc14ca
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-04.htm
@@ -0,0 +1,5 @@
+Master Gideon:
+Oh, marvelous! If we all develop our strengths and work together, we will triumph over the coming cataclysm. My colleagues and I have recently developed a method of enhancing weaponry that should prove quite useful to all of us.
+This weapons enhancement boosts strength noticeably in combat.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-05.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-05.htm
new file mode 100644
index 0000000000..46406f784d
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-05.htm
@@ -0,0 +1,6 @@
+Master Gideon:
+To enhance a weapon you will need some magical souls. You must collect the souls of evil creatures and trap them in the soul crystal I will give you. You will then take the crystal to a blacksmith and he will extract the magic from the crystal and apply it to a weapon for you.
+All blacksmiths know how to do this, but, obviously, they don't work for free.
+You can collect the souls of the evil ones in the northern part of Oren, the Forest of Mirrors, the Cave of Giants, the Devastated Castle, the upper floors of the Tower of Insolence, deep within the Lair of Antharas, Eva's Underwater Garden and Devil's Isle. Enhanced weapons would greatly aid your mission.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-06.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-06.htm
new file mode 100644
index 0000000000..4151622b03
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-06.htm
@@ -0,0 +1,5 @@
+Master Gideon:
+After you have sapped the evil one's strength in battle, apply the crystal to his skin. His soul will be absorbed into the crystal. His mortal body is easily dispatched. Each soul crystal can contain up to 10 souls. A more precise explanation would be that it can contain up to 10 souls with regular usage. I will tell you the detailed story later when you bring back the soul crystal with 10 souls.
+Actually, collecting souls for the purpose of bestowing a weapon with a special power is not as easy as it sounds.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-07.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-07.htm
new file mode 100644
index 0000000000..abec3f72dc
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-07.htm
@@ -0,0 +1,6 @@
+Master Gideon:
+The collection of a soul doesn't always go as planned. Some evil souls will simply not be absorbed, and, if you happen to collect the wrong soul, the crystal will shatter...
+Soul crystals develop refined tastes, and will reject weaker souls after a while. When this happens you must seek the souls of creatures of greater evil to satisfy your crystal.
+Remember that you may not absorb a soul with more than one crystal because a resonance effect is created between the crystals that prevents proper absorbtion.
+
+
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-08.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-08.htm
new file mode 100644
index 0000000000..a1577ba335
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-08.htm
@@ -0,0 +1,7 @@
+Master Gideon:
+Please choose one of the following three types of crystals:
+
+
+
+Each crystal bestows a different power upon the weapon it enhances, and the powers may vary from weapon to weapon.
+
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-09.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-09.htm
new file mode 100644
index 0000000000..e2ca6757b4
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-09.htm
@@ -0,0 +1,4 @@
+Master Gideon:
+Here is a red soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.
+Next time we meet I hope you have gained more strength.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-10.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-10.htm
new file mode 100644
index 0000000000..a78dff8cb5
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-10.htm
@@ -0,0 +1,4 @@
+Master Gideon:
+Here is a green soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.
+Next time we meet I hope you have gained more strength.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-11.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-11.htm
new file mode 100644
index 0000000000..029dc6a8e2
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-11.htm
@@ -0,0 +1,4 @@
+Master Gideon:
+Here is a blue soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.
+Next time we meet I hope you have gained more strength.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-12.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-12.htm
new file mode 100644
index 0000000000..5eb25028e4
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-12.htm
@@ -0,0 +1,11 @@
+Master Gideon:
+From the following areas, which area's evil creatures would you like to obtain more information about?
+
+
+
+
+
+
+
+
+
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-13.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-13.htm
new file mode 100644
index 0000000000..2f8bfdb62f
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-13.htm
@@ -0,0 +1,4 @@
+Master Gideon:
+It seems that the most evil creatures in northern Oren are the Timak Orcs.
+Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-14.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-14.htm
new file mode 100644
index 0000000000..645e2cd7bd
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-14.htm
@@ -0,0 +1,4 @@
+Master Gideon:
+It seems that the most evil creatures in the Forest of Mirrors are the Forest of Mirror ghosts, mirrors and Harit Lizardmen.
+Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-15.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-15.htm
new file mode 100644
index 0000000000..82cfa10493
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-15.htm
@@ -0,0 +1,4 @@
+Master Gideon:
+It seems that the most evil creatures in the Cave of Giants are the Halingkas, Yintzus, Paliotes, Hamruts, and Kranrots.
+Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-16.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-16.htm
new file mode 100644
index 0000000000..e46643c68e
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-16.htm
@@ -0,0 +1,4 @@
+Master Gideon:
+It seems that the most evil creatures in the Devastated Castle are the Doom Servants, Doom Guards, Doom Archers, Doom Troopers, Doom Warriors, and Doom Knights.
+Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-17.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-17.htm
new file mode 100644
index 0000000000..c4b51b5e62
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-17.htm
@@ -0,0 +1,4 @@
+Master Gideon:
+It seems that the most evil creatures in the Tower of Insolence are the Erin Ediunce, members of the Platinum Tribe and their Angels.
+Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-18.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-18.htm
new file mode 100644
index 0000000000..a624a26a48
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-18.htm
@@ -0,0 +1,4 @@
+Master Gideon:
+It seems that the most evil creatures in the Lair of Antharas are the Malruk Knights, Malruk Berserkers, Malruk Lords, Limal Karinness, Kariks, Pytans, and Pytan Knights.
+Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-19.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-19.htm
new file mode 100644
index 0000000000..0a97707b77
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-19.htm
@@ -0,0 +1,4 @@
+Master Gideon:
+It seems that all of the evil creatures inhabiting Eva's Underwater Garden are appropriate soul donors.
+Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-20.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-20.htm
new file mode 100644
index 0000000000..87121bcbe1
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-20.htm
@@ -0,0 +1,4 @@
+Master Gideon:
+It seems that all of the evil creatures inhabiting Devil's Isle are appropriate soul donors.
+Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-21.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-21.htm
new file mode 100644
index 0000000000..21f53ddd6e
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30194-21.htm
@@ -0,0 +1,5 @@
+Master Gideon:
+How is your mission going? Oh, I see that you need a new crystal!
+
+
+
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-01.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-01.htm
new file mode 100644
index 0000000000..afb627c6c0
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-01.htm
@@ -0,0 +1,4 @@
+Magister Winonin:
+Hello there, have you come to learn how to enhance the abilities of your weapon?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-02.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-02.htm
new file mode 100644
index 0000000000..3e5545e84b
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-02.htm
@@ -0,0 +1,7 @@
+Magister Winonin:
+I have a growing sense of dread of late. Something terrible is coming. Can you hear it? The trees in the forest, the birds in the sky and the fish in the ocean...They know of what I speak...
+I fear for the survival of the whole Human race, but I don't know what threatens it! This dark foreboding will not give me any peace whatsoever. I hope I am wrong but I fear I am not...
+I must do what I can to save my race! I will find like-minded individuals to join my preperations for the coming apocolypse. If only we knew when...
+Will you join my cause? Are you willing to lend a hand in preparing to fight the imminent darkness?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-03.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-03.htm
new file mode 100644
index 0000000000..5c4f1cc13d
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-03.htm
@@ -0,0 +1,5 @@
+Magister Winonin:
+You must hurry and collect the souls of evil creatures in the soul crystal. You will find the evil ones in the northern part of Oren, the Forest of Mirrors, the Cave of Giants, the Devastated Castle, the higher reaches of the Tower of Insolence, deep within the Lair of Antharas, Eva's Underwater Garden and Devil's Isle etc...Take the crystal filled with souls to any blacksmith and he will enhance a weapon for you.
+It is imperative that you build as much strength as possible to prepare yourself for the coming apocolypse. After growing each of your individual strength, if you put together all of your strengths, I think you will have enough force to fight against the approaching apocolypse. Then, next time we meet, I hope to see you stronger...
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-04.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-04.htm
new file mode 100644
index 0000000000..58eb5936ca
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-04.htm
@@ -0,0 +1,5 @@
+Magister Winonin:
+Oh, marvelous! If we all develop our strengths and work together, we will triumph over the coming cataclysm. My colleagues and I have recently developed a method of enhancing weaponry that should prove quite useful to all of us.
+This weapons enhancement boosts strength noticeably in combat.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-05.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-05.htm
new file mode 100644
index 0000000000..9d15ecf7a0
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-05.htm
@@ -0,0 +1,6 @@
+Magister Winonin:
+To enhance a weapon you will need some magical souls. You must collect the souls of evil creatures and trap them in the soul crystal I will give you. You will then take the crystal to a blacksmith and he will extract the magic from the crystal and apply it to a weapon for you.
+All blacksmiths know how to do this, but, obviously, they don't work for free.
+You can collect the souls of the evil ones in the northern part of Oren, the Forest of Mirrors, the Cave of Giants, the Devastated Castle, the upper floors of the Tower of Insolence, deep within the Lair of Antharas, Eva's Underwater Garden and Devil's Isle. Enhanced weapons would greatly aid your mission.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-06.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-06.htm
new file mode 100644
index 0000000000..c29e965285
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-06.htm
@@ -0,0 +1,5 @@
+Magister Winonin:
+After you have sapped the evil one's strength in battle, apply the crystal to his skin. His soul will be absorbed into the crystal. His mortal body is easily dispatched. Each soul crystal can contain up to 10 souls. A more precise explanation would be that it can contain up to 10 souls with regular usage. I will tell you the detailed story later when you bring back the soul crystal with 10 souls.
+Actually, collecting souls for the purpose of bestowing a weapon with a special power is not as easy as it sounds.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-07.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-07.htm
new file mode 100644
index 0000000000..ea882ce514
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-07.htm
@@ -0,0 +1,6 @@
+Magister Winonin:
+The collection of a soul doesn't always go as planned. Some evil souls will simply not be absorbed, and, if you happen to collect the wrong soul, the crystal will shatter...
+Soul crystals develop refined tastes, and will reject weaker souls after a while. When this happens you must seek the souls of creatures of greater evil to satisfy your crystal.
+Remember that you may not absorb a soul with more than one crystal because a resonance effect is created between the crystals that prevents proper absorbtion.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-08.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-08.htm
new file mode 100644
index 0000000000..f3904c23c7
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-08.htm
@@ -0,0 +1,7 @@
+Magister Winonin:
+Please choose one of the following three types of crystals:
+
+
+
+Each crystal bestows a different power upon the weapon it enhances, and the powers may vary from weapon to weapon.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-09.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-09.htm
new file mode 100644
index 0000000000..8cc450aa93
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-09.htm
@@ -0,0 +1,4 @@
+Magister Winonin:
+Here is a red soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.
+Next time we meet I hope you have gained more strength.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-10.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-10.htm
new file mode 100644
index 0000000000..c950f99c78
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-10.htm
@@ -0,0 +1,4 @@
+Magister Winonin:
+Here is a green soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.
+Next time we meet I hope you have gained more strength.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-11.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-11.htm
new file mode 100644
index 0000000000..7b4a1521ed
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-11.htm
@@ -0,0 +1,4 @@
+Magister Winonin:
+Here is a blue soul crystal. Collect souls into it and take it to a blacksmith along with the weapon you wish to enhance. The stronger the weapon, the more souls needed to enhance it.
+Next time we meet I hope you have gained more strength.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-12.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-12.htm
new file mode 100644
index 0000000000..65bed945c3
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-12.htm
@@ -0,0 +1,11 @@
+Magister Winonin:
+From the following areas, which area's evil creatures would you like to obtain more information about?
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-13.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-13.htm
new file mode 100644
index 0000000000..b86e2ecfc8
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-13.htm
@@ -0,0 +1,4 @@
+Magister Winonin:
+It seems that the most evil creatures in northern Oren are the Timak Orcs.
+Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-14.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-14.htm
new file mode 100644
index 0000000000..0628d445ef
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-14.htm
@@ -0,0 +1,4 @@
+Magister Winonin:
+It seems that the most evil creatures in the Forest of Mirrors are the Forest of Mirror ghosts, mirrors and Harit Lizardmen.
+Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-15.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-15.htm
new file mode 100644
index 0000000000..33de9d589a
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-15.htm
@@ -0,0 +1,4 @@
+Magister Winonin:
+It seems that the most evil creatures in the Cave of Giants are the Halingkas, Yintzus, Paliotes, Hamruts, and Kranrots.
+Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-16.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-16.htm
new file mode 100644
index 0000000000..129fd0bd89
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-16.htm
@@ -0,0 +1,4 @@
+Magister Winonin:
+It seems that the most evil creatures in the Devastated Castle are the Doom Servants, Doom Guards, Doom Archers, Doom Troopers, Doom Warriors, and Doom Knights.
+Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-17.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-17.htm
new file mode 100644
index 0000000000..464e6bfcd1
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-17.htm
@@ -0,0 +1,4 @@
+Magister Winonin:
+It seems that the most evil creatures in the Tower of Insolence are the Erin Ediunce, members of the Platinum Tribe and their Angels.
+Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-18.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-18.htm
new file mode 100644
index 0000000000..122b39a4d1
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-18.htm
@@ -0,0 +1,4 @@
+Magister Winonin:
+It seems that the most evil creatures in the Lair of Antharas are the Malruk Knights, Malruk Berserkers, Malruk Lords, Limal Karinness, Kariks, Pytans, and Pytan Knights.
+Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-19.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-19.htm
new file mode 100644
index 0000000000..c92ccb23aa
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-19.htm
@@ -0,0 +1,4 @@
+Magister Winonin:
+It seems that all of the evil creatures inhabiting Eva's Underwater Garden are appropriate soul donors.
+Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-20.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-20.htm
new file mode 100644
index 0000000000..f39a795ceb
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-20.htm
@@ -0,0 +1,4 @@
+Magister Winonin:
+It seems that all of the evil creatures inhabiting Devil's Isle are appropriate soul donors.
+Remember that you cannot fill your crystal with the souls of weaker creatures. The crystal develops a refined taste and demands souls of greater evil. If you notice that your crystal has stopped absorbing souls, seek out creatures of greater evil.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-21.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-21.htm
new file mode 100644
index 0000000000..7181703e70
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/30856-21.htm
@@ -0,0 +1,5 @@
+Magister Winonin:
+How is your mission going? Oh, I see that you need a new crystal!
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/Q00350_EnhanceYourWeapon.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/Q00350_EnhanceYourWeapon.java
new file mode 100644
index 0000000000..ca30a274fe
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/Q00350_EnhanceYourWeapon.java
@@ -0,0 +1,662 @@
+/*
+ * This file is part of the L2J Mobius project.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package quests.Q00350_EnhanceYourWeapon;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.StringTokenizer;
+import java.util.logging.Level;
+
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+
+import org.l2jmobius.Config;
+import org.l2jmobius.gameserver.model.AbsorberInfo;
+import org.l2jmobius.gameserver.model.WorldObject;
+import org.l2jmobius.gameserver.model.actor.Attackable;
+import org.l2jmobius.gameserver.model.actor.Npc;
+import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
+import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
+import org.l2jmobius.gameserver.model.quest.Quest;
+import org.l2jmobius.gameserver.model.quest.QuestState;
+import org.l2jmobius.gameserver.model.quest.State;
+import org.l2jmobius.gameserver.model.skills.Skill;
+import org.l2jmobius.gameserver.network.SystemMessageId;
+import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
+import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
+
+/**
+ * Enhance Your Weapon (350)
+ * @author Gigiikun
+ */
+public class Q00350_EnhanceYourWeapon extends Quest
+{
+ private enum AbsorbCrystalType
+ {
+ LAST_HIT,
+ FULL_PARTY,
+ PARTY_ONE_RANDOM,
+ PARTY_RANDOM
+ }
+
+ private static final class LevelingInfo
+ {
+ private final AbsorbCrystalType _absorbCrystalType;
+ private final boolean _isSkillNeeded;
+ private final int _chance;
+
+ public LevelingInfo(AbsorbCrystalType absorbCrystalType, boolean isSkillNeeded, int chance)
+ {
+ _absorbCrystalType = absorbCrystalType;
+ _isSkillNeeded = isSkillNeeded;
+ _chance = chance;
+ }
+
+ public AbsorbCrystalType getAbsorbCrystalType()
+ {
+ return _absorbCrystalType;
+ }
+
+ public int getChance()
+ {
+ return _chance;
+ }
+
+ public boolean isSkillNeeded()
+ {
+ return _isSkillNeeded;
+ }
+ }
+
+ private static final class SoulCrystal
+ {
+ private final int _level;
+ private final int _itemId;
+ private final int _leveledItemId;
+
+ public SoulCrystal(int level, int itemId, int leveledItemId)
+ {
+ _level = level;
+ _itemId = itemId;
+ _leveledItemId = leveledItemId;
+ }
+
+ public int getItemId()
+ {
+ return _itemId;
+ }
+
+ public int getLevel()
+ {
+ return _level;
+ }
+
+ public int getLeveledItemId()
+ {
+ return _leveledItemId;
+ }
+ }
+
+ // NPCs
+ private static final int[] STARTING_NPCS =
+ {
+ 30115,
+ 30856,
+ 30194
+ };
+ // Items
+ private static final int RED_SOUL_CRYSTAL0_ID = 4629;
+ private static final int GREEN_SOUL_CRYSTAL0_ID = 4640;
+ private static final int BLUE_SOUL_CRYSTAL0_ID = 4651;
+
+ private static final Map SOUL_CRYSTALS = new HashMap<>();
+ // >
+ private static final Map> NPC_LEVELING_INFO = new HashMap<>();
+
+ public Q00350_EnhanceYourWeapon()
+ {
+ super(350);
+ addStartNpc(STARTING_NPCS);
+ addTalkId(STARTING_NPCS);
+ load();
+ for (int npcId : NPC_LEVELING_INFO.keySet())
+ {
+ addSkillSeeId(npcId);
+ addKillId(npcId);
+ }
+ }
+
+ @Override
+ public String onAdvEvent(String event, Npc npc, PlayerInstance player)
+ {
+ final String htmltext = event;
+ final QuestState qs = getQuestState(player, false);
+ if (event.endsWith("-04.htm"))
+ {
+ qs.startQuest();
+ }
+ else if (event.endsWith("-09.htm"))
+ {
+ giveItems(player, RED_SOUL_CRYSTAL0_ID, 1);
+ }
+ else if (event.endsWith("-10.htm"))
+ {
+ giveItems(player, GREEN_SOUL_CRYSTAL0_ID, 1);
+ }
+ else if (event.endsWith("-11.htm"))
+ {
+ giveItems(player, BLUE_SOUL_CRYSTAL0_ID, 1);
+ }
+ else if (event.equalsIgnoreCase("exit.htm"))
+ {
+ qs.exitQuest(false, true);
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
+ {
+ if (npc.isAttackable() && NPC_LEVELING_INFO.containsKey(npc.getId()))
+ {
+ levelSoulCrystals((Attackable) npc, killer);
+ }
+
+ return null;
+ }
+
+ @Override
+ public String onSkillSee(Npc npc, PlayerInstance caster, Skill skill, WorldObject[] targets, boolean isSummon)
+ {
+ super.onSkillSee(npc, caster, skill, targets, isSummon);
+
+ if ((skill == null) || (skill.getId() != 2096))
+ {
+ return null;
+ }
+ else if ((caster == null) || caster.isDead())
+ {
+ return null;
+ }
+ if (!npc.isAttackable() || npc.isDead() || !NPC_LEVELING_INFO.containsKey(npc.getId()))
+ {
+ return null;
+ }
+
+ try
+ {
+ ((Attackable) npc).addAbsorber(caster);
+ }
+ catch (Exception e)
+ {
+ LOGGER.log(Level.SEVERE, "", e);
+ }
+ return null;
+ }
+
+ @Override
+ public String onTalk(Npc npc, PlayerInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ if (qs.getState() == State.CREATED)
+ {
+ qs.set("cond", "0");
+ }
+ if (qs.getInt("cond") == 0)
+ {
+ htmltext = npc.getId() + "-01.htm";
+ }
+ else if (check(player))
+ {
+ htmltext = npc.getId() + "-03.htm";
+ }
+ else if (!hasQuestItems(player, RED_SOUL_CRYSTAL0_ID) && !hasQuestItems(player, GREEN_SOUL_CRYSTAL0_ID) && !hasQuestItems(player, BLUE_SOUL_CRYSTAL0_ID))
+ {
+ htmltext = npc.getId() + "-21.htm";
+ }
+ return htmltext;
+ }
+
+ private static boolean check(PlayerInstance player)
+ {
+ for (int i = 4629; i < 4665; i++)
+ {
+ if (hasQuestItems(player, i))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private static void exchangeCrystal(PlayerInstance player, Attackable mob, int takeid, int giveid, boolean broke)
+ {
+ ItemInstance Item = player.getInventory().destroyItemByItemId("SoulCrystal", takeid, 1, player, mob);
+ if (Item != null)
+ {
+ // Prepare inventory update packet
+ final InventoryUpdate playerIU = new InventoryUpdate();
+ playerIU.addRemovedItem(Item);
+
+ // Add new crystal to the killer's inventory
+ Item = player.getInventory().addItem("SoulCrystal", giveid, 1, player, mob);
+ playerIU.addItem(Item);
+
+ // Send a sound event and text message to the player
+ if (broke)
+ {
+ player.sendPacket(SystemMessageId.THE_SOUL_CRYSTAL_BROKE_BECAUSE_IT_WAS_NOT_ABLE_TO_ENDURE_THE_SOUL_ENERGY);
+ }
+ else
+ {
+ player.sendPacket(SystemMessageId.THE_SOUL_CRYSTAL_SUCCEEDED_IN_ABSORBING_A_SOUL);
+ }
+
+ // Send system message
+ final SystemMessage sms = new SystemMessage(SystemMessageId.YOU_HAVE_EARNED_S1);
+ sms.addItemName(giveid);
+ player.sendPacket(sms);
+
+ // Send inventory update packet
+ player.sendPacket(playerIU);
+ }
+ }
+
+ private static SoulCrystal getSCForPlayer(PlayerInstance player)
+ {
+ final QuestState qs = player.getQuestState(Q00350_EnhanceYourWeapon.class.getSimpleName());
+ if ((qs == null) || !qs.isStarted())
+ {
+ return null;
+ }
+
+ final Collection inv = player.getInventory().getItems();
+ SoulCrystal ret = null;
+ for (ItemInstance item : inv)
+ {
+ final int itemId = item.getId();
+ if (!SOUL_CRYSTALS.containsKey(itemId))
+ {
+ continue;
+ }
+
+ if (ret != null)
+ {
+ return null;
+ }
+ ret = SOUL_CRYSTALS.get(itemId);
+ }
+ return ret;
+ }
+
+ private static boolean isPartyLevelingMonster(int npcId)
+ {
+ for (LevelingInfo li : NPC_LEVELING_INFO.get(npcId).values())
+ {
+ if (li.getAbsorbCrystalType() != AbsorbCrystalType.LAST_HIT)
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private static void levelCrystal(PlayerInstance player, SoulCrystal sc, Attackable mob)
+ {
+ if ((sc == null) || !NPC_LEVELING_INFO.containsKey(mob.getId()))
+ {
+ return;
+ }
+
+ // If the crystal level is way too high for this mob, say that we can't increase it
+ if (!NPC_LEVELING_INFO.get(mob.getId()).containsKey(sc.getLevel()))
+ {
+ player.sendPacket(SystemMessageId.THE_SOUL_CRYSTAL_IS_REFUSING_TO_ABSORB_THE_SOUL);
+ return;
+ }
+
+ if (getRandom(100) <= NPC_LEVELING_INFO.get(mob.getId()).get(sc.getLevel()).getChance())
+ {
+ exchangeCrystal(player, mob, sc.getItemId(), sc.getLeveledItemId(), false);
+ }
+ else
+ {
+ player.sendPacket(SystemMessageId.THE_SOUL_CRYSTAL_WAS_NOT_ABLE_TO_ABSORB_THE_SOUL);
+ }
+ }
+
+ /**
+ * Calculate the leveling chance of Soul Crystals based on the attacker that killed this Attackable
+ * @param mob
+ * @param killer The player that last killed this Attackable $ Rewrite 06.12.06 - Yesod $ Rewrite 08.01.10 - Gigiikun
+ */
+ public static void levelSoulCrystals(Attackable mob, PlayerInstance killer)
+ {
+ // Only PlayerInstance can absorb a soul
+ if (killer == null)
+ {
+ mob.resetAbsorbList();
+ return;
+ }
+
+ final Map players = new HashMap<>();
+ int maxSCLevel = 0;
+
+ // TODO: what if mob support last_hit + party?
+ if (isPartyLevelingMonster(mob.getId()) && (killer.getParty() != null))
+ {
+ // firts get the list of players who has one Soul Cry and the quest
+ for (PlayerInstance pl : killer.getParty().getMembers())
+ {
+ if (pl == null)
+ {
+ continue;
+ }
+
+ final SoulCrystal sc = getSCForPlayer(pl);
+ if (sc == null)
+ {
+ continue;
+ }
+
+ players.put(pl, sc);
+ if ((maxSCLevel < sc.getLevel()) && NPC_LEVELING_INFO.get(mob.getId()).containsKey(sc.getLevel()))
+ {
+ maxSCLevel = sc.getLevel();
+ }
+ }
+ }
+ else
+ {
+ final SoulCrystal sc = getSCForPlayer(killer);
+ if (sc != null)
+ {
+ players.put(killer, sc);
+ if ((maxSCLevel < sc.getLevel()) && NPC_LEVELING_INFO.get(mob.getId()).containsKey(sc.getLevel()))
+ {
+ maxSCLevel = sc.getLevel();
+ }
+ }
+ }
+ // Init some useful vars
+ final LevelingInfo mainlvlInfo = NPC_LEVELING_INFO.get(mob.getId()).get(maxSCLevel);
+
+ if (mainlvlInfo == null)
+ {
+ /* throw new NullPointerException("Target: "+mob+ " player: "+killer+" level: "+maxSCLevel); */
+ return;
+ }
+
+ // If this mob is not require skill, then skip some checkings
+ if (mainlvlInfo.isSkillNeeded())
+ {
+ // Fail if this Attackable isn't absorbed or there's no one in its _absorbersList
+ if (!mob.isAbsorbed() /* || _absorbersList == null */)
+ {
+ mob.resetAbsorbList();
+ return;
+ }
+
+ // Fail if the killer isn't in the _absorbersList of this Attackable and mob is not boss
+ final AbsorberInfo ai = mob.getAbsorbersList().get(killer.getObjectId());
+ boolean isSuccess = true;
+ if ((ai == null) || (ai.getObjectId() != killer.getObjectId()))
+ {
+ isSuccess = false;
+ }
+
+ // Check if the soul crystal was used when HP of this Attackable wasn't higher than half of it
+ if ((ai != null) && (ai.getAbsorbedHp() > (mob.getMaxHp() / 2.0)))
+ {
+ isSuccess = false;
+ }
+
+ if (!isSuccess)
+ {
+ mob.resetAbsorbList();
+ return;
+ }
+ }
+
+ switch (mainlvlInfo.getAbsorbCrystalType())
+ {
+ case PARTY_ONE_RANDOM:
+ {
+ // This is a naive method for selecting a random member. It gets any random party member and
+ // then checks if the member has a valid crystal. It does not select the random party member
+ // among those who have crystals, only. However, this might actually be correct (same as retail).
+ if (killer.getParty() != null)
+ {
+ final PlayerInstance lucky = killer.getParty().getMembers().get(getRandom(killer.getParty().getMemberCount()));
+ levelCrystal(lucky, players.get(lucky), mob);
+ }
+ else
+ {
+ levelCrystal(killer, players.get(killer), mob);
+ }
+ break;
+ }
+ case PARTY_RANDOM:
+ {
+ if (killer.getParty() != null)
+ {
+ final List luckyParty = new ArrayList<>();
+ luckyParty.addAll(killer.getParty().getMembers());
+ while ((getRandom(100) < 33) && !luckyParty.isEmpty())
+ {
+ final PlayerInstance lucky = luckyParty.remove(getRandom(luckyParty.size()));
+ if (players.containsKey(lucky))
+ {
+ levelCrystal(lucky, players.get(lucky), mob);
+ }
+ }
+ }
+ else if (getRandom(100) < 33)
+ {
+ levelCrystal(killer, players.get(killer), mob);
+ }
+ break;
+ }
+ case FULL_PARTY:
+ {
+ if (killer.getParty() != null)
+ {
+ for (PlayerInstance pl : killer.getParty().getMembers())
+ {
+ levelCrystal(pl, players.get(pl), mob);
+ }
+ }
+ else
+ {
+ levelCrystal(killer, players.get(killer), mob);
+ }
+ break;
+ }
+ case LAST_HIT:
+ {
+ levelCrystal(killer, players.get(killer), mob);
+ break;
+ }
+ }
+ }
+
+ /**
+ * TODO: Implement using DocumentParser.
+ */
+ private void load()
+ {
+ try
+ {
+ final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ factory.setValidating(false);
+ factory.setIgnoringComments(true);
+
+ final File file = new File(Config.DATAPACK_ROOT, "data/LevelUpCrystalData.xml");
+ if (!file.exists())
+ {
+ LOGGER.severe("[EnhanceYourWeapon] Missing LevelUpCrystalData.xml. The quest wont work without it!");
+ return;
+ }
+
+ final Document doc = factory.newDocumentBuilder().parse(file);
+ final Node first = doc.getFirstChild();
+ if ((first != null) && "list".equalsIgnoreCase(first.getNodeName()))
+ {
+ for (Node n = first.getFirstChild(); n != null; n = n.getNextSibling())
+ {
+ if ("crystal".equalsIgnoreCase(n.getNodeName()))
+ {
+ for (Node d = n.getFirstChild(); d != null; d = d.getNextSibling())
+ {
+ if ("item".equalsIgnoreCase(d.getNodeName()))
+ {
+ final NamedNodeMap attrs = d.getAttributes();
+ Node att = attrs.getNamedItem("itemId");
+ if (att == null)
+ {
+ LOGGER.severe("[EnhanceYourWeapon] Missing itemId in Crystal List, skipping");
+ continue;
+ }
+ final int itemId = Integer.parseInt(attrs.getNamedItem("itemId").getNodeValue());
+
+ att = attrs.getNamedItem("level");
+ if (att == null)
+ {
+ LOGGER.severe("[EnhanceYourWeapon] Missing level in Crystal List itemId: " + itemId + ", skipping");
+ continue;
+ }
+ final int level = Integer.parseInt(attrs.getNamedItem("level").getNodeValue());
+
+ att = attrs.getNamedItem("leveledItemId");
+ if (att == null)
+ {
+ LOGGER.severe("[EnhanceYourWeapon] Missing leveledItemId in Crystal List itemId: " + itemId + ", skipping");
+ continue;
+ }
+ final int leveledItemId = Integer.parseInt(attrs.getNamedItem("leveledItemId").getNodeValue());
+
+ SOUL_CRYSTALS.put(itemId, new SoulCrystal(level, itemId, leveledItemId));
+ }
+ }
+ }
+ else if ("npc".equalsIgnoreCase(n.getNodeName()))
+ {
+ for (Node d = n.getFirstChild(); d != null; d = d.getNextSibling())
+ {
+ if ("item".equalsIgnoreCase(d.getNodeName()))
+ {
+ NamedNodeMap attrs = d.getAttributes();
+ Node att = attrs.getNamedItem("npcId");
+ if (att == null)
+ {
+ LOGGER.severe("[EnhanceYourWeapon] Missing npcId in NPC List, skipping");
+ continue;
+ }
+
+ final int npcId = Integer.parseInt(att.getNodeValue());
+ final Map temp = new HashMap<>();
+ for (Node cd = d.getFirstChild(); cd != null; cd = cd.getNextSibling())
+ {
+ boolean isSkillNeeded = false;
+ int chance = 5;
+ AbsorbCrystalType absorbType = AbsorbCrystalType.LAST_HIT;
+
+ if ("detail".equalsIgnoreCase(cd.getNodeName()))
+ {
+ attrs = cd.getAttributes();
+
+ att = attrs.getNamedItem("absorbType");
+ if (att != null)
+ {
+ absorbType = Enum.valueOf(AbsorbCrystalType.class, att.getNodeValue());
+ }
+
+ att = attrs.getNamedItem("chance");
+ if (att != null)
+ {
+ chance = Integer.parseInt(att.getNodeValue());
+ }
+
+ att = attrs.getNamedItem("skill");
+ if (att != null)
+ {
+ isSkillNeeded = Boolean.parseBoolean(att.getNodeValue());
+ }
+
+ final Node att1 = attrs.getNamedItem("maxLevel");
+ final Node att2 = attrs.getNamedItem("levelList");
+ if ((att1 == null) && (att2 == null))
+ {
+ LOGGER.severe("[EnhanceYourWeapon] Missing maxlevel/levelList in NPC List npcId: " + npcId + ", skipping");
+ continue;
+ }
+ final LevelingInfo info = new LevelingInfo(absorbType, isSkillNeeded, chance);
+ if (att1 != null)
+ {
+ final int maxLevel = Integer.parseInt(att1.getNodeValue());
+ for (int i = 0; i <= maxLevel; i++)
+ {
+ temp.put(i, info);
+ }
+ }
+ else if (att2 != null)
+ {
+ final StringTokenizer st = new StringTokenizer(att2.getNodeValue(), ",");
+ final int tokenCount = st.countTokens();
+ for (int i = 0; i < tokenCount; i++)
+ {
+ Integer value = Integer.decode(st.nextToken().trim());
+ if (value == null)
+ {
+ LOGGER.severe("[EnhanceYourWeapon] Bad Level value!! npcId: " + npcId + " token: " + i);
+ value = 0;
+ }
+ temp.put(value, info);
+ }
+ }
+ }
+ }
+
+ if (temp.isEmpty())
+ {
+ LOGGER.severe("[EnhanceYourWeapon] No leveling info for npcId: " + npcId + ", skipping");
+ continue;
+ }
+ NPC_LEVELING_INFO.put(npcId, temp);
+ }
+ }
+ }
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ LOGGER.log(Level.WARNING, "[EnhanceYourWeapon] Could not parse LevelUpCrystalData.xml file: " + e.getMessage(), e);
+ }
+ LOGGER.info("[EnhanceYourWeapon] Loaded " + SOUL_CRYSTALS.size() + " Soul Crystal data.");
+ LOGGER.info("[EnhanceYourWeapon] Loaded " + NPC_LEVELING_INFO.size() + " npc Leveling info data.");
+ }
+}
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/exit.htm b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/exit.htm
new file mode 100644
index 0000000000..eb075fc421
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/Q00350_EnhanceYourWeapon/exit.htm
@@ -0,0 +1,2 @@
+Goodbye
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/QuestMasterHandler.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/QuestMasterHandler.java
index b59f6b8f52..d5644217e6 100644
--- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/QuestMasterHandler.java
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/quests/QuestMasterHandler.java
@@ -132,6 +132,7 @@ import quests.Q00331_ArrowOfVengeance.Q00331_ArrowOfVengeance;
import quests.Q00333_HuntOfTheBlackLion.Q00333_HuntOfTheBlackLion;
import quests.Q00344_1000YearsTheEndOfLamentation.Q00344_1000YearsTheEndOfLamentation;
import quests.Q00348_AnArrogantSearch.Q00348_AnArrogantSearch;
+import quests.Q00350_EnhanceYourWeapon.Q00350_EnhanceYourWeapon;
import quests.Q00354_ConquestOfAlligatorIsland.Q00354_ConquestOfAlligatorIsland;
import quests.Q00355_FamilyHonor.Q00355_FamilyHonor;
import quests.Q00356_DigUpTheSeaOfSpores.Q00356_DigUpTheSeaOfSpores;
@@ -342,6 +343,7 @@ public class QuestMasterHandler
Q00333_HuntOfTheBlackLion.class,
Q00344_1000YearsTheEndOfLamentation.class,
Q00348_AnArrogantSearch.class,
+ Q00350_EnhanceYourWeapon.class,
Q00354_ConquestOfAlligatorIsland.class,
Q00355_FamilyHonor.class,
Q00356_DigUpTheSeaOfSpores.class,
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/items/04600-04699.xml b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/items/04600-04699.xml
index 31a8b7504e..2e4c31031f 100644
--- a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/items/04600-04699.xml
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/items/04600-04699.xml
@@ -333,7 +333,7 @@
-
+
@@ -348,7 +348,7 @@
-
+
@@ -363,7 +363,7 @@
-
+
@@ -378,7 +378,7 @@
-
+
@@ -393,7 +393,7 @@
-
+
@@ -408,7 +408,7 @@
-
+
@@ -423,7 +423,7 @@
-
+
@@ -438,7 +438,7 @@
-
+
@@ -453,7 +453,7 @@
-
+
@@ -468,7 +468,7 @@
-
+
@@ -483,7 +483,7 @@
-
+
@@ -498,7 +498,7 @@
-
+
@@ -513,7 +513,7 @@
-
+
@@ -528,7 +528,7 @@
-
+
@@ -543,7 +543,7 @@
-
+
@@ -558,7 +558,7 @@
-
+
@@ -573,7 +573,7 @@
-
+
@@ -588,7 +588,7 @@
-
+
@@ -603,7 +603,7 @@
-
+
@@ -618,7 +618,7 @@
-
+
@@ -633,7 +633,7 @@
-
+
@@ -648,7 +648,7 @@
-
+
@@ -663,7 +663,7 @@
-
+
@@ -678,7 +678,7 @@
-
+
@@ -693,7 +693,7 @@
-
+
@@ -708,7 +708,7 @@
-
+
@@ -723,7 +723,7 @@
-
+
@@ -738,7 +738,7 @@
-
+
@@ -753,7 +753,7 @@
-
+
@@ -768,7 +768,7 @@
-
+
@@ -783,7 +783,7 @@
-
+
@@ -798,7 +798,7 @@
-
+
@@ -813,7 +813,7 @@
-
+
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/items/05500-05599.xml b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/items/05500-05599.xml
index 7f8b90b669..0617d080b4 100644
--- a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/items/05500-05599.xml
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/items/05500-05599.xml
@@ -877,7 +877,7 @@
-
+
@@ -892,7 +892,7 @@
-
+
@@ -907,7 +907,7 @@
-
+
@@ -921,8 +921,8 @@
-
+
@@ -936,8 +936,8 @@
-
+
@@ -951,8 +951,8 @@
-
+
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/items/05900-05999.xml b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/items/05900-05999.xml
index 62541449b0..06a175bebb 100644
--- a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/items/05900-05999.xml
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/items/05900-05999.xml
@@ -150,7 +150,7 @@
-
+
@@ -208,8 +208,8 @@
-
+
@@ -268,7 +268,7 @@
-
+
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/items/09500-09599.xml b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/items/09500-09599.xml
index 706d99a27c..4e08650934 100644
--- a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/items/09500-09599.xml
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/items/09500-09599.xml
@@ -1036,8 +1036,8 @@
-
+
@@ -1051,8 +1051,8 @@
-
+
@@ -1066,8 +1066,8 @@
-
+
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/items/10400-10499.xml b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/items/10400-10499.xml
index 396eaa3941..137c0737b1 100644
--- a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/items/10400-10499.xml
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/items/10400-10499.xml
@@ -2084,8 +2084,8 @@
-
+
@@ -2099,8 +2099,8 @@
-
+
@@ -2114,8 +2114,8 @@
-
+
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/items/13000-13099.xml b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/items/13000-13099.xml
index adc34b87c3..5304efbf2b 100644
--- a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/items/13000-13099.xml
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/items/13000-13099.xml
@@ -1543,8 +1543,8 @@
-
+
@@ -1557,8 +1557,8 @@
-
+
@@ -1571,8 +1571,8 @@
-
+
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/items/15500-15599.xml b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/items/15500-15599.xml
index e0a1b24220..6055f19e18 100644
--- a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/items/15500-15599.xml
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/items/15500-15599.xml
@@ -662,8 +662,8 @@
-
+
@@ -677,8 +677,8 @@
-
+
@@ -692,8 +692,8 @@
-
+
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/items/15800-15899.xml b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/items/15800-15899.xml
index 69d176e78f..3ae82fedde 100644
--- a/L2J_Mobius_Classic_Interlude/dist/game/data/stats/items/15800-15899.xml
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/stats/items/15800-15899.xml
@@ -374,7 +374,7 @@
-
+
@@ -389,7 +389,7 @@
-
+
@@ -404,7 +404,7 @@
-
+
diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/xsd/LevelUpCrystalData.xsd b/L2J_Mobius_Classic_Interlude/dist/game/data/xsd/LevelUpCrystalData.xsd
new file mode 100644
index 0000000000..ae8419a69d
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/dist/game/data/xsd/LevelUpCrystalData.xsd
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/AbsorberInfo.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/AbsorberInfo.java
new file mode 100644
index 0000000000..4ae48c784b
--- /dev/null
+++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/AbsorberInfo.java
@@ -0,0 +1,67 @@
+/*
+ * This file is part of the L2J Mobius project.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package org.l2jmobius.gameserver.model;
+
+import org.l2jmobius.gameserver.model.interfaces.IUniqueId;
+
+/**
+ * @author xban1x
+ */
+public class AbsorberInfo implements IUniqueId
+{
+ private int _objectId;
+ private double _absorbedHp;
+
+ public AbsorberInfo(int objectId, double pAbsorbedHp)
+ {
+ _objectId = objectId;
+ _absorbedHp = pAbsorbedHp;
+ }
+
+ public double getAbsorbedHp()
+ {
+ return _absorbedHp;
+ }
+
+ public void setAbsorbedHp(double absorbedHp)
+ {
+ _absorbedHp = absorbedHp;
+ }
+
+ @Override
+ public int getObjectId()
+ {
+ return _objectId;
+ }
+
+ public void setObjectId(int objectId)
+ {
+ _objectId = objectId;
+ }
+
+ @Override
+ public boolean equals(Object obj)
+ {
+ return (this == obj) || ((obj instanceof AbsorberInfo) && (((AbsorberInfo) obj).getObjectId() == _objectId));
+ }
+
+ @Override
+ public int hashCode()
+ {
+ return _objectId;
+ }
+}
diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/Attackable.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/Attackable.java
index fe6b02119a..957f695873 100644
--- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/Attackable.java
+++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/actor/Attackable.java
@@ -42,6 +42,7 @@ import org.l2jmobius.gameserver.enums.Team;
import org.l2jmobius.gameserver.instancemanager.CursedWeaponsManager;
import org.l2jmobius.gameserver.instancemanager.PcCafePointsManager;
import org.l2jmobius.gameserver.instancemanager.WalkingManager;
+import org.l2jmobius.gameserver.model.AbsorberInfo;
import org.l2jmobius.gameserver.model.AggroInfo;
import org.l2jmobius.gameserver.model.CommandChannel;
import org.l2jmobius.gameserver.model.DamageDoneInfo;
@@ -105,6 +106,9 @@ public class Attackable extends Npc
private CommandChannel _firstCommandChannelAttacked = null;
private CommandChannelTimer _commandChannelTimer = null;
private long _commandChannelLastAttack = 0;
+ // Soul crystal
+ private boolean _absorbed;
+ private final Map _absorbersList = new ConcurrentHashMap<>();
// Misc
private boolean _mustGiveExpSp;
@@ -1287,6 +1291,56 @@ public class Attackable extends Npc
return _overhit;
}
+ /**
+ * Activate the absorbed soul condition on the Attackable.
+ */
+ public void absorbSoul()
+ {
+ _absorbed = true;
+ }
+
+ /**
+ * @return True if the Attackable had his soul absorbed.
+ */
+ public boolean isAbsorbed()
+ {
+ return _absorbed;
+ }
+
+ /**
+ * Adds an attacker that successfully absorbed the soul of this Attackable into the _absorbersList.
+ * @param attacker
+ */
+ public void addAbsorber(PlayerInstance attacker)
+ {
+ // If we have no _absorbersList initiated, do it
+ final AbsorberInfo ai = _absorbersList.get(attacker.getObjectId());
+
+ // If the Creature attacker isn't already in the _absorbersList of this Attackable, add it
+ if (ai == null)
+ {
+ _absorbersList.put(attacker.getObjectId(), new AbsorberInfo(attacker.getObjectId(), getCurrentHp()));
+ }
+ else
+ {
+ ai.setAbsorbedHp(getCurrentHp());
+ }
+
+ // Set this Attackable as absorbed
+ absorbSoul();
+ }
+
+ public void resetAbsorbList()
+ {
+ _absorbed = false;
+ _absorbersList.clear();
+ }
+
+ public Map getAbsorbersList()
+ {
+ return _absorbersList;
+ }
+
/**
* Calculate the Experience and SP to distribute to attacker (PlayerInstance, ServitorInstance or Party) of the Attackable.
* @param charLevel The killer level