From 6199b2717c8587c7b0557dfe824ae8c09517d252 Mon Sep 17 00:00:00 2001
From: Adry85 <adrya85@hotmail.it>
Date: Thu, 5 Oct 2017 13:38:39 +0200
Subject: [PATCH] Added EnemyCharge effect parameters.

DP part of
https://bitbucket.org/l2jserver/l2j_server/commits/28ab1911d039ff928e89b1df984e104cd542989d
---
 .../handlers/effecthandlers/EnemyCharge.java  |  6 +++++-
 .../effecthandlers/PhysicalAttack.java        |  9 ---------
 .../effecthandlers/PhysicalSoulAttack.java    |  9 ---------
 .../handlers/effecthandlers/ThrowUp.java      |  1 +
 dist/game/data/stats/skills/00400-00499.xml   | 20 ++++++++++++++-----
 dist/game/data/stats/skills/00600-00699.xml   |  1 +
 dist/game/data/stats/skills/00800-00899.xml   |  1 +
 dist/game/data/stats/skills/00900-00999.xml   | 12 ++++++++---
 dist/game/data/stats/skills/01400-01499.xml   |  1 +
 dist/game/data/stats/skills/04100-04199.xml   |  1 +
 dist/game/data/stats/skills/04600-04699.xml   |  1 +
 dist/game/data/stats/skills/05000-05099.xml   |  5 ++++-
 dist/game/data/stats/skills/05100-05199.xml   |  1 +
 dist/game/data/stats/skills/05200-05299.xml   |  1 +
 dist/game/data/stats/skills/05400-05499.xml   |  2 ++
 dist/game/data/stats/skills/06000-06099.xml   |  4 +++-
 dist/game/data/stats/skills/06200-06299.xml   |  8 ++++++--
 dist/game/data/stats/skills/06600-06699.xml   |  4 +++-
 dist/game/data/stats/skills/07000-07099.xml   |  1 +
 dist/game/data/xsd/skills.xsd                 |  2 --
 20 files changed, 56 insertions(+), 34 deletions(-)

diff --git a/dist/game/data/scripts/handlers/effecthandlers/EnemyCharge.java b/dist/game/data/scripts/handlers/effecthandlers/EnemyCharge.java
index 7af28f1614..07aa929881 100644
--- a/dist/game/data/scripts/handlers/effecthandlers/EnemyCharge.java
+++ b/dist/game/data/scripts/handlers/effecthandlers/EnemyCharge.java
@@ -34,9 +34,13 @@ import com.l2jserver.gameserver.network.serverpackets.ValidateLocation;
  */
 public final class EnemyCharge extends AbstractEffect
 {
+	private final int _flyRadius;
+	
 	public EnemyCharge(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params)
 	{
 		super(attachCond, applyCond, set, params);
+		
+		_flyRadius = params.getInt("flyRadius", 0);
 	}
 	
 	@Override
@@ -72,7 +76,7 @@ public final class EnemyCharge extends AbstractEffect
 			return;
 		}
 		
-		int offset = Math.max((int) distance - info.getSkill().getFlyRadius(), 30);
+		int offset = Math.max((int) distance - _flyRadius, 30);
 		
 		// approximation for moving closer when z coordinates are different
 		// TODO: handle Z axis movement better
diff --git a/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java b/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java
index e89fb47da2..feddffe8fe 100644
--- a/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java
+++ b/dist/game/data/scripts/handlers/effecthandlers/PhysicalAttack.java
@@ -28,7 +28,6 @@ import com.l2jserver.gameserver.model.skills.BuffInfo;
 import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.stats.Formulas;
 import com.l2jserver.gameserver.network.SystemMessageId;
-import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
 
 /**
  * Physical Attack effect implementation.
@@ -79,14 +78,6 @@ public final class PhysicalAttack extends AbstractEffect
 			return;
 		}
 		
-		if (((info.getSkill().getFlyRadius() > 0) || (skill.getFlyType() != null)) && activeChar.isMovementDisabled())
-		{
-			final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_CANNOT_BE_USED);
-			sm.addSkillName(skill);
-			activeChar.sendPacket(sm);
-			return;
-		}
-		
 		if (target.isPlayer() && target.getActingPlayer().isFakeDeath())
 		{
 			target.stopFakeDeath(true);
diff --git a/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java b/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java
index 5660acbf1a..0f709eaf2e 100644
--- a/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java
+++ b/dist/game/data/scripts/handlers/effecthandlers/PhysicalSoulAttack.java
@@ -28,7 +28,6 @@ import com.l2jserver.gameserver.model.skills.BuffInfo;
 import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.stats.Formulas;
 import com.l2jserver.gameserver.network.SystemMessageId;
-import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
 
 /**
  * Physical Soul Attack effect implementation.
@@ -79,14 +78,6 @@ public final class PhysicalSoulAttack extends AbstractEffect
 			return;
 		}
 		
-		if (((skill.getFlyRadius() > 0) || (skill.getFlyType() != null)) && activeChar.isMovementDisabled())
-		{
-			final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_CANNOT_BE_USED);
-			sm.addSkillName(skill);
-			activeChar.sendPacket(sm);
-			return;
-		}
-		
 		if (target.isPlayer() && target.getActingPlayer().isFakeDeath())
 		{
 			target.stopFakeDeath(true);
diff --git a/dist/game/data/scripts/handlers/effecthandlers/ThrowUp.java b/dist/game/data/scripts/handlers/effecthandlers/ThrowUp.java
index fc79b6854e..7eaef9d31a 100644
--- a/dist/game/data/scripts/handlers/effecthandlers/ThrowUp.java
+++ b/dist/game/data/scripts/handlers/effecthandlers/ThrowUp.java
@@ -105,6 +105,7 @@ public final class ThrowUp extends AbstractEffect
 		final Location destination = GeoData.getInstance().moveCheck(curX, curY, curZ, x, y, z, target.getInstanceId());
 		
 		target.broadcastPacket(new FlyToLocation(target, destination, FlyType.THROW_UP));
+		
 		// TODO: Review.
 		target.setXYZ(destination);
 		target.broadcastPacket(new ValidateLocation(target));
diff --git a/dist/game/data/stats/skills/00400-00499.xml b/dist/game/data/stats/skills/00400-00499.xml
index 07b97ac28a..7912c4b446 100644
--- a/dist/game/data/stats/skills/00400-00499.xml
+++ b/dist/game/data/stats/skills/00400-00499.xml
@@ -2882,7 +2882,9 @@
 			</and>
 		</cond>
 		<effects>
-			<effect name="EnemyCharge" />
+			<effect name="EnemyCharge">
+				<param flyRadius="200" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="485" levels="7" name="Disarm" enchantGroup1="1" enchantGroup2="1">
@@ -3240,14 +3242,18 @@
 				<param power="1" />
 			</effect>
 			<effect name="Stun" />
-			<effect name="EnemyCharge" />
+			<effect name="EnemyCharge">
+				<param flyRadius="200" />
+			</effect>
 		</effects>
 		<enchant1Effects>
 			<effect name="PhysicalSoulAttack">
 				<param power="#ench1Power" />
 			</effect>
 			<effect name="Stun" />
-			<effect name="EnemyCharge" />
+			<effect name="EnemyCharge">
+				<param flyRadius="200" />
+			</effect>
 		</enchant1Effects>
 		<enchant7Effects>
 		</enchant7Effects>
@@ -3256,14 +3262,18 @@
 				<param power="#ench7Duel" />
 			</effect>
 			<effect name="Stun" />
-			<effect name="EnemyCharge" />
+			<effect name="EnemyCharge">
+				<param flyRadius="200" />
+			</effect>
 		</enchant7pvpEffects>
 		<enchant7pveEffects>
 			<effect name="PhysicalSoulAttack">
 				<param power="1" />
 			</effect>
 			<effect name="Stun" />
-			<effect name="EnemyCharge" />
+			<effect name="EnemyCharge">
+				<param flyRadius="200" />
+			</effect>
 		</enchant7pveEffects>
 	</skill>
 	<skill id="495" levels="10" name="Blade Rush" enchantGroup1="2" enchantGroup2="2" enchantGroup3="2" enchantGroup4="2">
diff --git a/dist/game/data/stats/skills/00600-00699.xml b/dist/game/data/stats/skills/00600-00699.xml
index 266c6ae4db..c6b9ba31de 100644
--- a/dist/game/data/stats/skills/00600-00699.xml
+++ b/dist/game/data/stats/skills/00600-00699.xml
@@ -541,6 +541,7 @@
 		<!-- High Five Confirmed -->
 		<set name="affectScope" val="SINGLE" />
 		<set name="coolTime" val="200" />
+		<set name="flyType" val="DUMMY" />
 		<set name="hitTime" val="100" />
 		<set name="icon" val="icon.skill0484" />
 		<set name="isMagic" val="1" />
diff --git a/dist/game/data/stats/skills/00800-00899.xml b/dist/game/data/stats/skills/00800-00899.xml
index 1400146be2..c18edc911a 100644
--- a/dist/game/data/stats/skills/00800-00899.xml
+++ b/dist/game/data/stats/skills/00800-00899.xml
@@ -1916,6 +1916,7 @@
 		<set name="affectScope" val="POINT_BLANK" />
 		<set name="coolTime" val="200" />
 		<set name="effectPoint" val="-659" />
+		<set name="flyType" val="DUMMY" />
 		<set name="hitTime" val="100" />
 		<set name="icon" val="icon.skill_transform_etc" />
 		<set name="magicLvl" val="75" />
diff --git a/dist/game/data/stats/skills/00900-00999.xml b/dist/game/data/stats/skills/00900-00999.xml
index 0b49329a1a..9015dd41a9 100644
--- a/dist/game/data/stats/skills/00900-00999.xml
+++ b/dist/game/data/stats/skills/00900-00999.xml
@@ -1998,7 +1998,9 @@
 				<param power="1" />
 			</effect>
 			<effect name="Stun" />
-			<effect name="EnemyCharge" />
+			<effect name="EnemyCharge">
+				<param flyRadius="200" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="979" levels="6" name="Aggression">
@@ -2453,7 +2455,9 @@
 			</and>
 		</cond>
 		<effects>
-			<effect name="EnemyCharge" />
+			<effect name="EnemyCharge">
+				<param flyRadius="200" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="995" levels="1" name="Rush Impact">
@@ -2593,7 +2597,9 @@
 			</and>
 		</cond>
 		<effects>
-			<effect name="EnemyCharge" />
+			<effect name="EnemyCharge">
+				<param flyRadius="200" />
+			</effect>
 		</effects>
 	</skill>
 </list>
diff --git a/dist/game/data/stats/skills/01400-01499.xml b/dist/game/data/stats/skills/01400-01499.xml
index e4f895d81f..4e88605ffe 100644
--- a/dist/game/data/stats/skills/01400-01499.xml
+++ b/dist/game/data/stats/skills/01400-01499.xml
@@ -1832,6 +1832,7 @@
 		<set name="basicProperty" val="CON" />
 		<set name="coolTime" val="200" />
 		<set name="effectPoint" val="-575" />
+		<set name="flyType" val="DUMMY" />
 		<set name="hitTime" val="300" />
 		<set name="icon" val="icon.skill1448" />
 		<set name="isDebuff" val="true" />
diff --git a/dist/game/data/stats/skills/04100-04199.xml b/dist/game/data/stats/skills/04100-04199.xml
index 363b0cc2c6..8bd94a0096 100644
--- a/dist/game/data/stats/skills/04100-04199.xml
+++ b/dist/game/data/stats/skills/04100-04199.xml
@@ -198,6 +198,7 @@
 		<set name="element" val="0" /> <!-- Fire -->
 		<set name="elementPower" val="180" />
 		<set name="fanRange" val="0,180,1500,400" />
+		<set name="flyType" val="THROW_UP" />
 		<set name="hitTime" val="4000" />
 		<set name="icon" val="icon.skill4107" />
 		<set name="isDebuff" val="true" />
diff --git a/dist/game/data/stats/skills/04600-04699.xml b/dist/game/data/stats/skills/04600-04699.xml
index acaac47450..50b2463ecf 100644
--- a/dist/game/data/stats/skills/04600-04699.xml
+++ b/dist/game/data/stats/skills/04600-04699.xml
@@ -2181,6 +2181,7 @@
 		<set name="element" val="0" /> <!-- Fire -->
 		<set name="elementPower" val="180" />
 		<set name="fanRange" val="0,180,250,500" />
+		<set name="flyType" val="THROW_UP" />
 		<set name="hitTime" val="3000" />
 		<set name="icon" val="icon.skill4688" />
 		<set name="isDebuff" val="true" />
diff --git a/dist/game/data/stats/skills/05000-05099.xml b/dist/game/data/stats/skills/05000-05099.xml
index ca65ed5024..041d7f74f0 100644
--- a/dist/game/data/stats/skills/05000-05099.xml
+++ b/dist/game/data/stats/skills/05000-05099.xml
@@ -85,6 +85,7 @@
 		<set name="effectPoint" val="-100" />
 		<set name="element" val="5" /> <!-- Dark -->
 		<set name="elementPower" val="180" />
+		<set name="flyType" val="THROW_UP" />
 		<set name="hitTime" val="5800" />
 		<set name="icon" val="icon.skill0100" />
 		<set name="isDebuff" val="true" />
@@ -337,7 +338,6 @@
 		<set name="element" val="5" /> <!-- Dark -->
 		<set name="elementPower" val="180" />
 		<set name="fanRange" val="#fanRange" />
-		<set name="flyRadius" val="#radius" />
 		<set name="flyType" val="CHARGE" />
 		<set name="hitTime" val="1500" />
 		<set name="magicLvl" val="85" />
@@ -351,6 +351,9 @@
 			<effect name="PhysicalAttack">
 				<param power="#power" />
 			</effect>
+			<effect name="EnemyCharge">
+				<param flyRadius="#radius" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="5016" levels="1" name="Yoke of Scarlet">
diff --git a/dist/game/data/stats/skills/05100-05199.xml b/dist/game/data/stats/skills/05100-05199.xml
index 565263cbc0..31dfeb5b20 100644
--- a/dist/game/data/stats/skills/05100-05199.xml
+++ b/dist/game/data/stats/skills/05100-05199.xml
@@ -1750,6 +1750,7 @@
 		<!-- Confirmed CT2.5 -->
 		<set name="affectRange" val="300" />
 		<set name="effectPoint" val="-100" />
+		<set name="flyType" val="THROW_UP" />
 		<set name="icon" val="icon.skill0100" />
 		<set name="magicLvl" val="85" />
 		<set name="operateType" val="A1" />
diff --git a/dist/game/data/stats/skills/05200-05299.xml b/dist/game/data/stats/skills/05200-05299.xml
index c413936395..9c07868dcc 100644
--- a/dist/game/data/stats/skills/05200-05299.xml
+++ b/dist/game/data/stats/skills/05200-05299.xml
@@ -604,6 +604,7 @@
 		<set name="castRange" val="600" />
 		<set name="effectPoint" val="-100" />
 		<set name="effectRange" val="1100" />
+		<set name="flyType" val="THROW_UP" />
 		<set name="hitTime" val="2800" />
 		<set name="icon" val="icon.skill0100" />
 		<set name="isDebuff" val="true" />
diff --git a/dist/game/data/stats/skills/05400-05499.xml b/dist/game/data/stats/skills/05400-05499.xml
index 30f8764fef..923084e67b 100644
--- a/dist/game/data/stats/skills/05400-05499.xml
+++ b/dist/game/data/stats/skills/05400-05499.xml
@@ -21,6 +21,7 @@
 		<set name="affectRange" val="300" />
 		<set name="affectScope" val="POINT_BLANK" />
 		<set name="effectPoint" val="-100" />
+		<set name="flyType" val="THROW_UP" />
 		<set name="hitTime" val="5800" />
 		<set name="icon" val="icon.skill0100" />
 		<set name="isDebuff" val="true" />
@@ -1291,6 +1292,7 @@
 	<skill id="5494" levels="1" name="Gust">
 		<!-- Confirmed CT2.5 -->
 		<set name="effectPoint" val="1" />
+		<set name="flyType" val="THROW_UP" />
 		<set name="magicLvl" val="86" />
 		<set name="operateType" val="A1" />
 		<set name="rideState" val="NONE" />
diff --git a/dist/game/data/stats/skills/06000-06099.xml b/dist/game/data/stats/skills/06000-06099.xml
index 0bef29da56..dc115af3a5 100644
--- a/dist/game/data/stats/skills/06000-06099.xml
+++ b/dist/game/data/stats/skills/06000-06099.xml
@@ -427,7 +427,9 @@
 			<effect name="PhysicalAttack">
 				<param power="2372" />
 			</effect>
-			<effect name="EnemyCharge" />
+			<effect name="EnemyCharge">
+				<param flyRadius="200" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="6042" levels="1" name="Phoenix Cleanse">
diff --git a/dist/game/data/stats/skills/06200-06299.xml b/dist/game/data/stats/skills/06200-06299.xml
index b52fa997b6..77aa3c5d5e 100644
--- a/dist/game/data/stats/skills/06200-06299.xml
+++ b/dist/game/data/stats/skills/06200-06299.xml
@@ -1302,7 +1302,9 @@
 			<effect name="PhysicalAttack">
 				<param power="4563" />
 			</effect>
-			<effect name="EnemyCharge" />
+			<effect name="EnemyCharge">
+				<param flyRadius="250" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="6293" levels="1" name="Power Strike">
@@ -1387,7 +1389,9 @@
 			<effect name="PhysicalAttack">
 				<param power="4563" />
 			</effect>
-			<effect name="EnemyCharge" />
+			<effect name="EnemyCharge">
+				<param flyRadius="250" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="6297" levels="1" name="Cylinder Throw">
diff --git a/dist/game/data/stats/skills/06600-06699.xml b/dist/game/data/stats/skills/06600-06699.xml
index 69745cbce1..789aa4bbb6 100644
--- a/dist/game/data/stats/skills/06600-06699.xml
+++ b/dist/game/data/stats/skills/06600-06699.xml
@@ -692,7 +692,9 @@
 			<effect name="PhysicalAttack">
 				<param power="2319" />
 			</effect>
-			<effect name="EnemyCharge" />
+			<effect name="EnemyCharge">
+				<param flyRadius="200" />
+			</effect>
 		</effects>
 	</skill>
 	<skill id="6643" levels="1" name="Holy Strike">
diff --git a/dist/game/data/stats/skills/07000-07099.xml b/dist/game/data/stats/skills/07000-07099.xml
index 36b381648c..580ed4396a 100644
--- a/dist/game/data/stats/skills/07000-07099.xml
+++ b/dist/game/data/stats/skills/07000-07099.xml
@@ -1163,6 +1163,7 @@
 		<set name="affectScope" val="RANGE" />
 		<set name="basicProperty" val="CON" />
 		<set name="coolTime" val="200" />
+		<set name="flyType" val="DUMMY" />
 		<set name="hitTime" val="300" />
 		<set name="isMagic" val="1" />
 		<set name="lvlBonusRate" val="1" />
diff --git a/dist/game/data/xsd/skills.xsd b/dist/game/data/xsd/skills.xsd
index 8ba313b9e3..a4023bc69b 100644
--- a/dist/game/data/xsd/skills.xsd
+++ b/dist/game/data/xsd/skills.xsd
@@ -42,8 +42,6 @@
 							<xs:enumeration value="excludedFromCheck" />
 							<xs:enumeration value="fanRange" />
 							<xs:enumeration value="feed" />
-							<xs:enumeration value="flyCourse" />
-							<xs:enumeration value="flyRadius" />
 							<xs:enumeration value="flyType" />
 							<xs:enumeration value="halfKillRate" />
 							<xs:enumeration value="hitTime" />
-- 
GitLab