Dr. Helvetica:
+I have bad news. We might have to drop everything and just take off.... Worst-case scenario, we will be lucky to return alive.
+Umm... If you would help me...
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32641-02.htm b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32641-02.htm
new file mode 100644
index 0000000000..41f88f7041
--- /dev/null
+++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32641-02.htm
@@ -0,0 +1,4 @@
+Dr. Helvetica:
+The Seal of Punishment and Shilen. There are signs of the Seal of Punishment here. If it opens, that's the end for all of us.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32641-03.htm b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32641-03.htm
new file mode 100644
index 0000000000..1bbd313bba
--- /dev/null
+++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32641-03.htm
@@ -0,0 +1,4 @@
+Dr. Helvetica:
+We've been working work with Giant's Minions to investigate the seal. Only because our lives are at stake, you understand. But the accursed Mucrokians are everywhere, disrupting our investigation. If we could reduce their numbers... Will you help me?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32641-04.htm b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32641-04.htm
new file mode 100644
index 0000000000..ce29a17bf5
--- /dev/null
+++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32641-04.htm
@@ -0,0 +1,3 @@
+Dr. Helvetica:
+Yes! That's what I wanted to hear. Get rid of the Mucrokian Fanatics, Mucrokian Ascetics, Mucrokian Saviors, Mucrokian Prophets, Contaminated Mucrokians and Awakened Mucrokians around here. About 50 of them should be fine.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32641-05.html b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32641-05.html
new file mode 100644
index 0000000000..a92cdcb1e5
--- /dev/null
+++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32641-05.html
@@ -0,0 +1,3 @@
+Dr. Helvetica:
+Get rid of the Mucrokian Fanatics, Mucrokian Ascetics, Mucrokian Saviors, Mucrokian Prophets, Contaminated Mucrokians and Awakened Mucrokians around here. About 50 of them should be fine.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32641-06.html b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32641-06.html
new file mode 100644
index 0000000000..8a7eb95c75
--- /dev/null
+++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32641-06.html
@@ -0,0 +1,9 @@
+Dr. Helvetica:
+Unreal! I didn't think anyone could do it. Well done, well done. What would you like for your reward?
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32641-07.html b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32641-07.html
new file mode 100644
index 0000000000..6de80f5d25
--- /dev/null
+++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32641-07.html
@@ -0,0 +1,3 @@
+Dr. Helvetica:
+Here you go! You made my day, haha!
+
\ No newline at end of file
diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32643-01.htm b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32643-01.htm
new file mode 100644
index 0000000000..ca8066e7ba
--- /dev/null
+++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32643-01.htm
@@ -0,0 +1,4 @@
+Priestess Athenia:
+So I need to tell you up front; it's not safe here. We may have to abandon our efforts to complete the ritual. Walking away would save a lot of lives, but if you're willing to do something a bit dangerous, we might be able to do both.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32643-02.htm b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32643-02.htm
new file mode 100644
index 0000000000..e4686bb033
--- /dev/null
+++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32643-02.htm
@@ -0,0 +1,4 @@
+Priestess Athenia:
+Rumor has it that Shilen's final seal, the Seal of Punishment, was discovered near here. If it opens, not just the Reed Field will be threatened -- the entire continent will face death.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32643-03.htm b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32643-03.htm
new file mode 100644
index 0000000000..3e86f190bc
--- /dev/null
+++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32643-03.htm
@@ -0,0 +1,5 @@
+Priestess Athenia:
+Fortunately, we've got an agreement with the Giant's Minions. They have information about the seal, and we have information about nearby areas. We're joining forces to help them with their investigation.
+I'm sure you understand how important this is. Can we count on you?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32643-04.htm b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32643-04.htm
new file mode 100644
index 0000000000..b927787363
--- /dev/null
+++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32643-04.htm
@@ -0,0 +1,3 @@
+Priestess Athenia:
+It seems Eva hasn't abandoned us after all. If you kill some Mucrokian Fanatics, Mucrokian Ascetics, Mucrokian Saviors, Mucrokian Prophets, Contaminated Mucrokians, and Awakened Mucrokians around here, it will take pressure off the Giant's Minions. About 50 of them should be enough.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32643-05.html b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32643-05.html
new file mode 100644
index 0000000000..586945cfb8
--- /dev/null
+++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32643-05.html
@@ -0,0 +1,3 @@
+Priestess Athenia:
+Kill 50Mucrokian Fanatics, Mucrokian Ascetics, Mucrokian Saviors, Mucrokian Prophets, Contaminated Mucrokians, and Awakened Mucrokians to take pressure off the Giant's Minions.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32643-06.html b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32643-06.html
new file mode 100644
index 0000000000..2010728d15
--- /dev/null
+++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32643-06.html
@@ -0,0 +1,9 @@
+Priestess Athenia:
+You're incredible! Those things looked like nothing in front of you. Wow. Oh, tell me what you want and I'll give you what I can as a token of thanks.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32643-07.html b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32643-07.html
new file mode 100644
index 0000000000..d06bc61d46
--- /dev/null
+++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/32643-07.html
@@ -0,0 +1,3 @@
+Priestess Athenia:
+Thank you! Here, I hope you find these useful.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/Q10440_TheSealOfPunishmentTheFields.java b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/Q10440_TheSealOfPunishmentTheFields.java
new file mode 100644
index 0000000000..2fc4ba6624
--- /dev/null
+++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/Q10440_TheSealOfPunishmentTheFields.java
@@ -0,0 +1,268 @@
+/*
+ * 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.Q10440_TheSealOfPunishmentTheFields;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.gameserver.enums.CategoryType;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.enums.Race;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.network.NpcStringId;
+
+/**
+ * The Seal of Punishment: The Fields (10440)
+ * @author Stayway
+ */
+public class Q10440_TheSealOfPunishmentTheFields extends Quest
+{
+ // NPCs
+ private static final int HELVETICA = 32641;
+ private static final int ATHENIA = 32643;
+ // Monsters
+ private static final int MUCROKIAN_FANATIC = 22650;
+ private static final int MUCROKIAN_ASCETIC = 22651;
+ private static final int MUCROKIAN_SAVIOR = 22652;
+ private static final int MUCROKIAN_PROPHET = 22653;
+ private static final int CONTAMINATED_MUCROKIAN = 22654;
+ private static final int AWAKENED_MUCROKIAN = 22655;
+ // Misc
+ private static final String KILL_COUNT_VAR = "KillCounts";
+ private static final int MIN_LEVEL = 81;
+ private static final int MAX_LEVEL = 84;
+
+ public Q10440_TheSealOfPunishmentTheFields()
+ {
+ super(10440);
+ addStartNpc(HELVETICA, ATHENIA);
+ addTalkId(HELVETICA, ATHENIA);
+ addKillId(MUCROKIAN_FANATIC, MUCROKIAN_ASCETIC, MUCROKIAN_SAVIOR, MUCROKIAN_PROPHET, CONTAMINATED_MUCROKIAN, AWAKENED_MUCROKIAN);
+ addCondMaxLevel(MAX_LEVEL, "noLevel.html");
+ addCondMinLevel(MIN_LEVEL, "noLevel.html");
+ addCondNotRace(Race.ERTHEIA, "noErtheia.html");
+ addCondInCategory(CategoryType.MAGE_GROUP, "noLevel.html");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return getNoQuestMsg(player);
+ }
+ String htmltext = event;
+ switch (event)
+ {
+ case "32641-02.htm":
+ case "32641-03.htm":
+ case "32643-02.htm":
+ case "32643-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "32641-04.htm":
+ {
+ qs.startQuest();
+ qs.setMemoState(1);
+ qs.set(Integer.toString(MUCROKIAN_FANATIC), 0);
+ htmltext = event;
+ break;
+ }
+ case "32643-04.htm":
+ {
+ qs.startQuest();
+ qs.setMemoState(2);
+ qs.set(Integer.toString(MUCROKIAN_FANATIC), 0);
+ htmltext = event;
+ break;
+ }
+ case "reward_9546":
+ case "reward_9547":
+ case "reward_9548":
+ case "reward_9549":
+ case "reward_9550":
+ case "reward_9551":
+ {
+ final int stoneId = Integer.parseInt(event.replaceAll("reward_", ""));
+ giveItems(player, stoneId, 15);
+ giveStoryQuestReward(player, 60);
+ int count = qs.getInt(KILL_COUNT_VAR);
+ if ((count >= 50) && (count < 100))
+ {
+ addExpAndSp(player, 28240800, 6777);
+ }
+ else if ((count >= 100) && (count < 200))
+ {
+ addExpAndSp(player, 56481600, 13554);
+ }
+ else if ((count >= 200) && (count < 300))
+ {
+ addExpAndSp(player, 84722400, 20331);
+ }
+ else if ((count >= 300) && (count < 400))
+ {
+ addExpAndSp(player, 112963200, 27108);
+ }
+ else if ((count >= 400) && (count < 500))
+ {
+ addExpAndSp(player, 141204000, 33835);
+ }
+ else if ((count >= 500) && (count < 600))
+ {
+ addExpAndSp(player, 169444800, 40662);
+ }
+ else if ((count >= 600) && (count < 700))
+ {
+ addExpAndSp(player, 197685600, 47439);
+ }
+ else if ((count >= 700) && (count < 800))
+ {
+ addExpAndSp(player, 225926400, 54216);
+ }
+ else if ((count >= 800) && (count < 900))
+ {
+ addExpAndSp(player, 254167200, 60993);
+ }
+ else if (count >= 900)
+ {
+ addExpAndSp(player, 282408000, 67770);
+ }
+ qs.exitQuest(false, true);
+ if ((qs.isCond(2)) && (qs.isMemoState(1)))
+ {
+ htmltext = "32641-07.html";
+ }
+ else if ((qs.isCond(3)) && (qs.isMemoState(2)))
+ {
+ htmltext = "32643-07.html";
+ }
+ break;
+ }
+
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (npc.getId())
+ {
+ case HELVETICA:
+ {
+ if (qs.isCreated())
+ {
+ htmltext = "32641-01.htm";
+ }
+ else if (qs.isCond(1))
+ {
+ htmltext = "32641-05.html";
+
+ }
+ else if (qs.isCond(2))
+ {
+ htmltext = "32641-06.html";
+
+ }
+ else if (qs.isCompleted())
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ }
+ break;
+ }
+ case ATHENIA:
+ {
+ if (qs.isCreated())
+ {
+ htmltext = "32643-01.htm";
+ }
+ else if (qs.isCond(1))
+ {
+ htmltext = "32643-05.html";
+
+ }
+ else if (qs.isCond(3))
+ {
+ htmltext = "32643-06.html";
+
+ }
+ else if (qs.isCompleted())
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ final QuestState qs = getQuestState(killer, false);
+ if ((qs != null) && (qs.getCond() > 0))
+ {
+ int count = qs.getInt(KILL_COUNT_VAR) + 1;
+ qs.set(KILL_COUNT_VAR, count);
+ if ((count >= 50) && (qs.isMemoState(1)))
+ {
+ qs.setCond(2, true);
+ sendNpcLogList(killer);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ else if ((count >= 50) && (qs.isMemoState(2)))
+ {
+ qs.setCond(3, true);
+ sendNpcLogList(killer);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ else
+ {
+ sendNpcLogList(killer);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && (qs.getCond() > 0))
+ {
+ final int killCounts = qs.getInt(KILL_COUNT_VAR);
+ if (killCounts > 0)
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(NpcStringId.ELIMINATING_THE_MUCROKIANS, killCounts));
+ return holder;
+ }
+ }
+ return super.getNpcLogList(player);
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/noErtheia.html b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/noErtheia.html
new file mode 100644
index 0000000000..2719358934
--- /dev/null
+++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/noErtheia.html
@@ -0,0 +1,4 @@
+
+This wasn't good news at all. I might have to take my research and leave this place. If worse comes to worst, it may not be a bad thing to go back. Mm, but, why am I telling you all this? I talk too much when I'm upset. Now, go away.
+(Ertheia classes cannot perform this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/noLevel.html b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/noLevel.html
new file mode 100644
index 0000000000..e17f8f76cb
--- /dev/null
+++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10440_TheSealOfPunishmentTheFields/noLevel.html
@@ -0,0 +1,5 @@
+
+Bad news, bad news. We might have to drop everything and run. We might be lucky to even survive on our way out. Oh, this is bad...
+Wait, why are you standing around listening? Go away!
+(This quest can only be performed by characters Lv. 81 or above, who are either an Archmage, Soultaker, Arcana Lord, Cardinal, Hierophant, Mystic Muse, Elemental Master, Eva's Saint, Storm Screamer, Spectral Master, Shillien Saint, Dominator, or Doomcryer.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/QuestMasterHandler.java b/L2J_Mobius_Underground/dist/game/data/scripts/quests/QuestMasterHandler.java
index 4c1706ca86..ddb8f5db23 100644
--- a/L2J_Mobius_Underground/dist/game/data/scripts/quests/QuestMasterHandler.java
+++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/QuestMasterHandler.java
@@ -298,6 +298,7 @@ import quests.Q10433_KekropusLetterRegardingASeal.Q10433_KekropusLetterRegarding
import quests.Q10436_KekropusLetterTheSealOfPunishment.Q10436_KekropusLetterTheSealOfPunishment;
import quests.Q10437_TheSealOfPunishmentPlainsOfTheLizardmen.Q10437_TheSealOfPunishmentPlainsOfTheLizardmen;
import quests.Q10439_KekropusLetterTheOriginsOfARumor.Q10439_KekropusLetterTheOriginsOfARumor;
+import quests.Q10440_TheSealOfPunishmentTheFields.Q10440_TheSealOfPunishmentTheFields;
import quests.Q10442_TheAnnihilatedPlains1.Q10442_TheAnnihilatedPlains1;
import quests.Q10443_TheAnnihilatedPlains2.Q10443_TheAnnihilatedPlains2;
import quests.Q10444_TheOriginOfMonsters.Q10444_TheOriginOfMonsters;
@@ -680,6 +681,7 @@ public class QuestMasterHandler
Q10436_KekropusLetterTheSealOfPunishment.class,
Q10437_TheSealOfPunishmentPlainsOfTheLizardmen.class,
Q10439_KekropusLetterTheOriginsOfARumor.class,
+ Q10440_TheSealOfPunishmentTheFields.class,
Q10442_TheAnnihilatedPlains1.class,
Q10443_TheAnnihilatedPlains2.class,
Q10444_TheOriginOfMonsters.class,