浏览代码

New effect "IncreaseCharges".
Usage sample: <effect name="IncreaseCharges" val="1" count="7" />
Number of charges in "val", maximum in "count".

_DS_ 15 年之前
父节点
当前提交
1afe05cfed

+ 74 - 0
L2_GameServer/java/com/l2jserver/gameserver/skills/effects/EffectIncreaseCharges.java

@@ -0,0 +1,74 @@
+/*
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+package com.l2jserver.gameserver.skills.effects;
+
+import com.l2jserver.gameserver.model.L2Effect;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.skills.Env;
+import com.l2jserver.gameserver.templates.effects.EffectTemplate;
+import com.l2jserver.gameserver.templates.skills.L2EffectType;
+
+/**
+ * 
+ * @author DS
+ * 
+ * Effect will generate charges for L2PcInstance targets
+ * Number of charges in "value", maximum number in "count" effect variables
+ *
+ */
+public class EffectIncreaseCharges extends L2Effect
+{
+	public EffectIncreaseCharges(Env env, EffectTemplate template)
+	{
+		super(env, template);
+	}
+
+	/**
+	 * 
+	 * @see com.l2jserver.gameserver.model.L2Effect#getEffectType()
+	 */
+	@Override
+	public L2EffectType getEffectType()
+	{
+		return L2EffectType.INCREASE_CHARGES;
+	}
+
+	/**
+	 * 
+	 * @see com.l2jserver.gameserver.model.L2Effect#onStart()
+	 */
+	@Override
+	public boolean onStart()
+	{
+		if (getEffected() == null)
+			return false;
+
+		if (!(getEffected() instanceof L2PcInstance))
+			return false;
+
+		((L2PcInstance)getEffected()).increaseCharges((int)calc(), getCount());
+		return true;
+	}
+
+	/**
+	 * 
+	 * @see com.l2jserver.gameserver.model.L2Effect#onActionTime()
+	 */
+	@Override
+	public boolean onActionTime()
+	{
+		return false; // abort effect even if count > 1
+	}
+}

+ 2 - 1
L2_GameServer/java/com/l2jserver/gameserver/templates/skills/L2EffectType.java

@@ -70,5 +70,6 @@ public enum L2EffectType
 	NEGATE,
 	THROW_UP,
 	HIDE,
-	ABORT_CAST
+	ABORT_CAST,
+	INCREASE_CHARGES
 }