Ver Fonte

Some rework of canBeStolen() function, making ManaHealOverTime,CPHealOverTime and Paralyze effects stealable.
Referenced changesets:6825,6827,6834.

_DS_ há 14 anos atrás
pai
commit
5260ab452e

+ 11 - 7
L2J_Server/java/com/l2jserver/gameserver/model/L2Effect.java

@@ -35,11 +35,6 @@ import com.l2jserver.gameserver.network.serverpackets.PartySpelled;
 import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
 import com.l2jserver.gameserver.skills.AbnormalEffect;
 import com.l2jserver.gameserver.skills.Env;
-import com.l2jserver.gameserver.skills.effects.EffectBuff;
-import com.l2jserver.gameserver.skills.effects.EffectChanceSkillTrigger;
-import com.l2jserver.gameserver.skills.effects.EffectHealOverTime;
-import com.l2jserver.gameserver.skills.effects.EffectNoblesseBless;
-import com.l2jserver.gameserver.skills.effects.EffectSilentMove;
 import com.l2jserver.gameserver.skills.funcs.Func;
 import com.l2jserver.gameserver.skills.funcs.FuncTemplate;
 import com.l2jserver.gameserver.skills.funcs.Lambda;
@@ -626,7 +621,7 @@ public abstract class L2Effect
 	
 	public boolean canBeStolen()
 	{
-		if(!(this instanceof EffectBuff || this instanceof EffectChanceSkillTrigger || this instanceof EffectHealOverTime || this instanceof EffectNoblesseBless || this instanceof EffectSilentMove)
+		if(!effectCanBeStolen()
 				|| this.getEffectType() == L2EffectType.TRANSFORMATION
 				|| this.getSkill().isPassive()
 				|| this.getSkill().isToggle()
@@ -639,7 +634,16 @@ public abstract class L2Effect
 			return false;
 		return true;
 	}
-	
+
+	/**
+	 * Return true if effect itself can be stolen
+	 * @return
+	 */
+	protected boolean effectCanBeStolen()
+	{
+		return false;
+	}
+
 	/**
 	 * Return bit flag for current effect
 	 * @return int flag

+ 10 - 0
L2J_Server/java/com/l2jserver/gameserver/skills/effects/EffectBuff.java

@@ -35,6 +35,16 @@ public class EffectBuff extends L2Effect
 		super(env, effect);
 	}
 	
+	/**
+	 * 
+	 * @see com.l2jserver.gameserver.model.L2Effect#effectCanBeStolen()
+	 */
+	@Override
+	protected boolean effectCanBeStolen()
+	{
+		return true;
+	}
+
 	@Override
 	public L2EffectType getEffectType()
 	{

+ 6 - 0
L2J_Server/java/com/l2jserver/gameserver/skills/effects/EffectChanceSkillTrigger.java

@@ -46,6 +46,12 @@ public class EffectChanceSkillTrigger extends L2Effect implements IChanceSkillTr
 		_chanceCondition = effect.getEffectTemplate().chanceCondition;
 	}
 	
+	@Override
+	protected boolean effectCanBeStolen()
+	{
+		return true;
+	}
+
 	@Override
 	public L2EffectType getEffectType()
 	{

+ 16 - 0
L2J_Server/java/com/l2jserver/gameserver/skills/effects/EffectCombatPointHealOverTime.java

@@ -27,6 +27,22 @@ public class EffectCombatPointHealOverTime extends L2Effect
 		super(env, template);
 	}
 	
+	// Special constructor to steal this effect
+	public EffectCombatPointHealOverTime(Env env, L2Effect effect)
+	{
+		super(env, effect);
+	}
+
+	/**
+	 * 
+	 * @see com.l2jserver.gameserver.model.L2Effect#effectCanBeStolen()
+	 */
+	@Override
+	protected boolean effectCanBeStolen()
+	{
+		return true;
+	}
+
 	/**
 	 * 
 	 * @see com.l2jserver.gameserver.model.L2Effect#getEffectType()

+ 11 - 0
L2J_Server/java/com/l2jserver/gameserver/skills/effects/EffectHealOverTime.java

@@ -34,6 +34,17 @@ public class EffectHealOverTime extends L2Effect
 	{
 		super(env, effect);
 	}
+
+	/**
+	 * 
+	 * @see com.l2jserver.gameserver.model.L2Effect#effectCanBeStolen()
+	 */
+	@Override
+	protected boolean effectCanBeStolen()
+	{
+		return true;
+	}
+
 	/**
 	 * 
 	 * @see com.l2jserver.gameserver.model.L2Effect#getEffectType()

+ 16 - 0
L2J_Server/java/com/l2jserver/gameserver/skills/effects/EffectManaHealOverTime.java

@@ -27,6 +27,22 @@ public class EffectManaHealOverTime extends L2Effect
 		super(env, template);
 	}
 	
+	// Special constructor to steal this effect
+	public EffectManaHealOverTime(Env env, L2Effect effect)
+	{
+		super(env, effect);
+	}
+
+	/**
+	 * 
+	 * @see com.l2jserver.gameserver.model.L2Effect#effectCanBeStolen()
+	 */
+	@Override
+	protected boolean effectCanBeStolen()
+	{
+		return true;
+	}
+
 	/**
 	 * 
 	 * @see com.l2jserver.gameserver.model.L2Effect#getEffectType()

+ 10 - 0
L2J_Server/java/com/l2jserver/gameserver/skills/effects/EffectNoblesseBless.java

@@ -37,6 +37,16 @@ public class EffectNoblesseBless extends L2Effect
 		super(env, effect);
 	}
 	
+	/**
+	 * 
+	 * @see com.l2jserver.gameserver.model.L2Effect#effectCanBeStolen()
+	 */
+	@Override
+	protected boolean effectCanBeStolen()
+	{
+		return true;
+	}
+
 	/**
 	 * 
 	 * @see com.l2jserver.gameserver.model.L2Effect#getEffectType()

+ 16 - 0
L2J_Server/java/com/l2jserver/gameserver/skills/effects/EffectParalyze.java

@@ -28,6 +28,22 @@ public class EffectParalyze extends L2Effect
 		super(env, template);
 	}
 	
+	// Special constructor to steal this effect
+	public EffectParalyze(Env env, L2Effect effect)
+	{
+		super(env, effect);
+	}
+	
+	/**
+	 * 
+	 * @see com.l2jserver.gameserver.model.L2Effect#effectCanBeStolen()
+	 */
+	@Override
+	protected boolean effectCanBeStolen()
+	{
+		return true;
+	}
+
 	/**
 	 * 
 	 * @see com.l2jserver.gameserver.model.L2Effect#getEffectType()

+ 10 - 0
L2J_Server/java/com/l2jserver/gameserver/skills/effects/EffectSilentMove.java

@@ -36,6 +36,16 @@ public class EffectSilentMove extends L2Effect
 		super(env, effect);
 	}
 	
+	/**
+	 * 
+	 * @see com.l2jserver.gameserver.model.L2Effect#effectCanBeStolen()
+	 */
+	@Override
+	protected boolean effectCanBeStolen()
+	{
+		return true;
+	}
+
 	/**
 	 * 
 	 * @see com.l2jserver.gameserver.model.L2Effect#onStart()