From 8379bbcffcf7f0faf2c85796753e4bc40eb80b06 Mon Sep 17 00:00:00 2001
From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com>
Date: Thu, 1 Jul 2021 23:16:42 +0000
Subject: [PATCH] Addition of AddHomunculusPoints effect handler. Contributed
by nasseka.
---
.../scripts/handlers/EffectMasterHandler.java | 1 +
.../effecthandlers/AddHomunculusPoints.java | 62 +++++++++++++++++++
.../game/data/stats/skills/39700-39799.xml | 13 ++++
.../gameserver/network/SystemMessageId.java | 3 +
.../scripts/handlers/EffectMasterHandler.java | 1 +
.../effecthandlers/AddHomunculusPoints.java | 62 +++++++++++++++++++
.../game/data/stats/skills/39700-39799.xml | 13 ++++
.../gameserver/network/SystemMessageId.java | 3 +
8 files changed, 158 insertions(+)
create mode 100644 L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/AddHomunculusPoints.java
create mode 100644 L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/dist/game/data/scripts/handlers/effecthandlers/AddHomunculusPoints.java
diff --git a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/EffectMasterHandler.java
index b7187e803f..f130ad51cf 100644
--- a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/EffectMasterHandler.java
+++ b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/EffectMasterHandler.java
@@ -37,6 +37,7 @@ public class EffectMasterHandler
EffectHandler.getInstance().registerHandler("AbsorbDamage", AbsorbDamage::new);
EffectHandler.getInstance().registerHandler("Accuracy", Accuracy::new);
EffectHandler.getInstance().registerHandler("AddHate", AddHate::new);
+ EffectHandler.getInstance().registerHandler("AddHomunculusPoints", AddHomunculusPoints::new);
EffectHandler.getInstance().registerHandler("AddHuntingTime", AddHuntingTime::new);
EffectHandler.getInstance().registerHandler("AdditionalPotionCp", AdditionalPotionCp::new);
EffectHandler.getInstance().registerHandler("AdditionalPotionHp", AdditionalPotionHp::new);
diff --git a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/AddHomunculusPoints.java b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/AddHomunculusPoints.java
new file mode 100644
index 0000000000..16e8ab018c
--- /dev/null
+++ b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/AddHomunculusPoints.java
@@ -0,0 +1,62 @@
+/*
+ * 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 handlers.effecthandlers;
+
+import org.l2jmobius.gameserver.model.StatSet;
+import org.l2jmobius.gameserver.model.actor.Creature;
+import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
+import org.l2jmobius.gameserver.model.effects.AbstractEffect;
+import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
+import org.l2jmobius.gameserver.model.skills.Skill;
+import org.l2jmobius.gameserver.model.variables.PlayerVariables;
+import org.l2jmobius.gameserver.network.SystemMessageId;
+import org.l2jmobius.gameserver.network.serverpackets.homunculus.ExHomunculusPointInfo;
+
+/**
+ * Item Effect: Increase Homunculus points permanently.
+ * @author `NasSeKa`
+ */
+public class AddHomunculusPoints extends AbstractEffect
+{
+ private final int _amount;
+
+ public AddHomunculusPoints(StatSet params)
+ {
+ _amount = params.getInt("amount", 0);
+ }
+
+ @Override
+ public boolean isInstant()
+ {
+ return true;
+ }
+
+ @Override
+ public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
+ {
+ if (!effected.isPlayer())
+ {
+ return;
+ }
+
+ final PlayerInstance player = effected.getActingPlayer();
+ final int upgradePoints = player.getVariables().getInt(PlayerVariables.HOMUNCULUS_UPGRADE_POINTS, 0) + _amount;
+ player.getVariables().set(PlayerVariables.HOMUNCULUS_UPGRADE_POINTS, upgradePoints);
+ player.sendPacket(SystemMessageId.YOU_VE_OBTAINED_UPGRADE_POINTS);
+ player.sendPacket(new ExHomunculusPointInfo(player));
+ }
+}
diff --git a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/stats/skills/39700-39799.xml b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/stats/skills/39700-39799.xml
index 4f9b52ccfe..41b118fb45 100644
--- a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/stats/skills/39700-39799.xml
+++ b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/dist/game/data/stats/skills/39700-39799.xml
@@ -77,6 +77,19 @@
icon.skill0000
A1
+ 1
+ 4
+ 5
+ 0
+ SELF
+ SINGLE
+ 1
+ 81812
+
+
+ 10
+
+
icon.skill0000
diff --git a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/SystemMessageId.java b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/SystemMessageId.java
index 6b018bd92c..0d40a1b2ef 100644
--- a/L2J_Mobius_9.0_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/SystemMessageId.java
+++ b/L2J_Mobius_9.0_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/network/SystemMessageId.java
@@ -17647,6 +17647,9 @@ public class SystemMessageId
@ClientString(id = 13086, message = "The XP recovery fee has changed. Please try again.")
public static SystemMessageId THE_XP_RECOVERY_FEE_HAS_CHANGED_PLEASE_TRY_AGAIN;
+ @ClientString(id = 13238, message = "You've obtained upgrade points.")
+ public static SystemMessageId YOU_VE_OBTAINED_UPGRADE_POINTS;
+
@ClientString(id = 13136, message = "The enchant value is decreased by 1.")
public static SystemMessageId THE_ENCHANT_VALUE_IS_DECREASED_BY_1;
diff --git a/L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/dist/game/data/scripts/handlers/EffectMasterHandler.java
index b7187e803f..f130ad51cf 100644
--- a/L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/dist/game/data/scripts/handlers/EffectMasterHandler.java
+++ b/L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/dist/game/data/scripts/handlers/EffectMasterHandler.java
@@ -37,6 +37,7 @@ public class EffectMasterHandler
EffectHandler.getInstance().registerHandler("AbsorbDamage", AbsorbDamage::new);
EffectHandler.getInstance().registerHandler("Accuracy", Accuracy::new);
EffectHandler.getInstance().registerHandler("AddHate", AddHate::new);
+ EffectHandler.getInstance().registerHandler("AddHomunculusPoints", AddHomunculusPoints::new);
EffectHandler.getInstance().registerHandler("AddHuntingTime", AddHuntingTime::new);
EffectHandler.getInstance().registerHandler("AdditionalPotionCp", AdditionalPotionCp::new);
EffectHandler.getInstance().registerHandler("AdditionalPotionHp", AdditionalPotionHp::new);
diff --git a/L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/dist/game/data/scripts/handlers/effecthandlers/AddHomunculusPoints.java b/L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/dist/game/data/scripts/handlers/effecthandlers/AddHomunculusPoints.java
new file mode 100644
index 0000000000..16e8ab018c
--- /dev/null
+++ b/L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/dist/game/data/scripts/handlers/effecthandlers/AddHomunculusPoints.java
@@ -0,0 +1,62 @@
+/*
+ * 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 handlers.effecthandlers;
+
+import org.l2jmobius.gameserver.model.StatSet;
+import org.l2jmobius.gameserver.model.actor.Creature;
+import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
+import org.l2jmobius.gameserver.model.effects.AbstractEffect;
+import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
+import org.l2jmobius.gameserver.model.skills.Skill;
+import org.l2jmobius.gameserver.model.variables.PlayerVariables;
+import org.l2jmobius.gameserver.network.SystemMessageId;
+import org.l2jmobius.gameserver.network.serverpackets.homunculus.ExHomunculusPointInfo;
+
+/**
+ * Item Effect: Increase Homunculus points permanently.
+ * @author `NasSeKa`
+ */
+public class AddHomunculusPoints extends AbstractEffect
+{
+ private final int _amount;
+
+ public AddHomunculusPoints(StatSet params)
+ {
+ _amount = params.getInt("amount", 0);
+ }
+
+ @Override
+ public boolean isInstant()
+ {
+ return true;
+ }
+
+ @Override
+ public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
+ {
+ if (!effected.isPlayer())
+ {
+ return;
+ }
+
+ final PlayerInstance player = effected.getActingPlayer();
+ final int upgradePoints = player.getVariables().getInt(PlayerVariables.HOMUNCULUS_UPGRADE_POINTS, 0) + _amount;
+ player.getVariables().set(PlayerVariables.HOMUNCULUS_UPGRADE_POINTS, upgradePoints);
+ player.sendPacket(SystemMessageId.YOU_VE_OBTAINED_UPGRADE_POINTS);
+ player.sendPacket(new ExHomunculusPointInfo(player));
+ }
+}
diff --git a/L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/dist/game/data/stats/skills/39700-39799.xml b/L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/dist/game/data/stats/skills/39700-39799.xml
index 4f9b52ccfe..41b118fb45 100644
--- a/L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/dist/game/data/stats/skills/39700-39799.xml
+++ b/L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/dist/game/data/stats/skills/39700-39799.xml
@@ -77,6 +77,19 @@
icon.skill0000
A1
+ 1
+ 4
+ 5
+ 0
+ SELF
+ SINGLE
+ 1
+ 81812
+
+
+ 10
+
+
icon.skill0000
diff --git a/L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/java/org/l2jmobius/gameserver/network/SystemMessageId.java b/L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/java/org/l2jmobius/gameserver/network/SystemMessageId.java
index 6b018bd92c..0d40a1b2ef 100644
--- a/L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/java/org/l2jmobius/gameserver/network/SystemMessageId.java
+++ b/L2J_Mobius_9.2_ReturnOfTheQueenAnt_Ch2/java/org/l2jmobius/gameserver/network/SystemMessageId.java
@@ -17647,6 +17647,9 @@ public class SystemMessageId
@ClientString(id = 13086, message = "The XP recovery fee has changed. Please try again.")
public static SystemMessageId THE_XP_RECOVERY_FEE_HAS_CHANGED_PLEASE_TRY_AGAIN;
+ @ClientString(id = 13238, message = "You've obtained upgrade points.")
+ public static SystemMessageId YOU_VE_OBTAINED_UPGRADE_POINTS;
+
@ClientString(id = 13136, message = "The enchant value is decreased by 1.")
public static SystemMessageId THE_ENCHANT_VALUE_IS_DECREASED_BY_1;