浏览代码

BETA: Moving effect flags out of CharEffectList into EffectType enum.
* Reviewed by: Zoey76

Rumen Nikiforov 12 年之前
父节点
当前提交
5ed93bfc08

+ 4 - 26
L2J_Server_BETA/java/com/l2jserver/gameserver/model/CharEffectList.java

@@ -35,6 +35,7 @@ import com.l2jserver.gameserver.model.actor.L2Playable;
 import com.l2jserver.gameserver.model.actor.L2Summon;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.effects.L2Effect;
+import com.l2jserver.gameserver.model.effects.EffectFlag;
 import com.l2jserver.gameserver.model.effects.L2EffectType;
 import com.l2jserver.gameserver.model.olympiad.OlympiadGameManager;
 import com.l2jserver.gameserver.model.olympiad.OlympiadGameTask;
@@ -51,29 +52,6 @@ public class CharEffectList
 	protected static final Logger _log = Logger.getLogger(CharEffectList.class.getName());
 	private static final L2Effect[] EMPTY_EFFECTS = new L2Effect[0];
 	
-	public static final int EFFECT_FLAG_CHARM_OF_COURAGE = 0x1;
-	public static final int EFFECT_FLAG_CHARM_OF_LUCK = 0x2;
-	public static final int EFFECT_FLAG_PHOENIX_BLESSING = 0x4;
-	public static final int EFFECT_FLAG_NOBLESS_BLESSING = 0x8;
-	public static final int EFFECT_FLAG_SILENT_MOVE = 0x10;
-	public static final int EFFECT_FLAG_PROTECTION_BLESSING = 0x20;
-	public static final int EFFECT_FLAG_RELAXING = 0x40;
-	public static final int EFFECT_FLAG_FEAR = 0x80;
-	public static final int EFFECT_FLAG_CONFUSED = 0x100;
-	public static final int EFFECT_FLAG_MUTED = 0x200;
-	public static final int EFFECT_FLAG_PSYCHICAL_MUTED = 0x400;
-	// public static final int EFFECT_FLAG_PARALYZE = 2048; //too much abuse in code
-	public static final int EFFECT_FLAG_PSYCHICAL_ATTACK_MUTED = 0x800;
-	public static final int EFFECT_FLAG_DISARMED = 0x1000;
-	public static final int EFFECT_FLAG_ROOTED = 0x2000;
-	public static final int EFFECT_FLAG_SLEEP = 0x4000;
-	public static final int EFFECT_FLAG_STUNNED = 0x8000;
-	public static final int EFFECT_FLAG_BETRAYED = 0x10000;
-	public static final int EFFECT_FLAG_INVUL = 0x40000;
-	public static final int EFFECT_FLAG_PARALYZED = 0x80000;
-	public static final int EFFECT_FLAG_BLOCK_RESURRECTION = 0x100000;
-	public static final int EFFECT_FLAG_SERVITOR_SHARE = 0x200000;
-	
 	private FastList<L2Effect> _buffs;
 	private FastList<L2Effect> _debuffs;
 	private FastList<L2Effect> _passives; // They bypass most of the actions, keep in mind that those arent included in getAllEffects()
@@ -1461,12 +1439,12 @@ public class CharEffectList
 	
 	/**
 	 * Check if target is affected with special buff
-	 * @param bitFlag flag of special buff
+	 * @param flag of special buff
 	 * @return boolean true if affected
 	 */
-	public boolean isAffected(int bitFlag)
+	public boolean isAffected(EffectFlag flag)
 	{
-		return (_effectFlags & bitFlag) != 0;
+		return (_effectFlags & flag.getMask()) != 0;
 	}
 	
 	/**

+ 18 - 17
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Character.java

@@ -82,6 +82,7 @@ import com.l2jserver.gameserver.model.actor.templates.L2CharTemplate;
 import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
 import com.l2jserver.gameserver.model.effects.AbnormalEffect;
 import com.l2jserver.gameserver.model.effects.L2Effect;
+import com.l2jserver.gameserver.model.effects.EffectFlag;
 import com.l2jserver.gameserver.model.effects.L2EffectType;
 import com.l2jserver.gameserver.model.entity.Instance;
 import com.l2jserver.gameserver.model.holders.SkillHolder;
@@ -2374,7 +2375,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder
 			{
 				getActingPlayer().reviveRequest(getActingPlayer(), null, false);
 			}
-			else if (isAffected(CharEffectList.EFFECT_FLAG_CHARM_OF_COURAGE) && getActingPlayer().isInSiege())
+			else if (isAffected(EffectFlag.CHARM_OF_COURAGE) && getActingPlayer().isInSiege())
 			{
 				getActingPlayer().reviveRequest(getActingPlayer(), null, false);
 			}
@@ -2588,7 +2589,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder
 	
 	public final boolean isAfraid()
 	{
-		return isAffected(CharEffectList.EFFECT_FLAG_FEAR);
+		return isAffected(EffectFlag.FEAR);
 	}
 	
 	/**
@@ -2614,7 +2615,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder
 	
 	public final boolean isConfused()
 	{
-		return isAffected(CharEffectList.EFFECT_FLAG_CONFUSED);
+		return isAffected(EffectFlag.CONFUSED);
 	}
 	
 	/**
@@ -2650,17 +2651,17 @@ public abstract class L2Character extends L2Object implements ISkillsHolder
 	
 	public final boolean isMuted()
 	{
-		return isAffected(CharEffectList.EFFECT_FLAG_MUTED);
+		return isAffected(EffectFlag.MUTED);
 	}
 	
 	public final boolean isPhysicalMuted()
 	{
-		return isAffected(CharEffectList.EFFECT_FLAG_PSYCHICAL_MUTED);
+		return isAffected(EffectFlag.PSYCHICAL_MUTED);
 	}
 	
 	public final boolean isPhysicalAttackMuted()
 	{
-		return isAffected(CharEffectList.EFFECT_FLAG_PSYCHICAL_ATTACK_MUTED);
+		return isAffected(EffectFlag.PSYCHICAL_ATTACK_MUTED);
 	}
 	
 	/**
@@ -2696,7 +2697,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder
 	
 	public final boolean isParalyzed()
 	{
-		return _isParalyzed || isAffected(CharEffectList.EFFECT_FLAG_PARALYZED);
+		return _isParalyzed || isAffected(EffectFlag.PARALYZED);
 	}
 	
 	public final void setIsParalyzed(boolean value)
@@ -2716,7 +2717,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder
 	
 	public final boolean isDisarmed()
 	{
-		return isAffected(CharEffectList.EFFECT_FLAG_DISARMED);
+		return isAffected(EffectFlag.DISARMED);
 	}
 	
 	/**
@@ -2729,7 +2730,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder
 	
 	public final boolean isRooted()
 	{
-		return isAffected(CharEffectList.EFFECT_FLAG_ROOTED);
+		return isAffected(EffectFlag.ROOTED);
 	}
 	
 	/**
@@ -2787,17 +2788,17 @@ public abstract class L2Character extends L2Object implements ISkillsHolder
 	
 	public final boolean isSleeping()
 	{
-		return isAffected(CharEffectList.EFFECT_FLAG_SLEEP);
+		return isAffected(EffectFlag.SLEEP);
 	}
 	
 	public final boolean isStunned()
 	{
-		return isAffected(CharEffectList.EFFECT_FLAG_STUNNED);
+		return isAffected(EffectFlag.STUNNED);
 	}
 	
 	public final boolean isBetrayed()
 	{
-		return isAffected(CharEffectList.EFFECT_FLAG_BETRAYED);
+		return isAffected(EffectFlag.BETRAYED);
 	}
 	
 	public final boolean isTeleporting()
@@ -2817,7 +2818,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder
 	
 	public boolean isInvul()
 	{
-		return _isInvul || _isTeleporting || isAffected(CharEffectList.EFFECT_FLAG_INVUL);
+		return _isInvul || _isTeleporting || isAffected(EffectFlag.INVUL);
 	}
 	
 	public void setIsMortal(boolean b)
@@ -2837,7 +2838,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder
 	
 	public boolean isResurrectionBlocked()
 	{
-		return isAffected(CharEffectList.EFFECT_FLAG_BLOCK_RESURRECTION);
+		return isAffected(EffectFlag.BLOCK_RESURRECTION);
 	}
 	
 	public final boolean isFlying()
@@ -4285,7 +4286,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder
 						broadcastPacket(su);
 					}
 				}
-				if ((getSummon() != null) && isAffected(CharEffectList.EFFECT_FLAG_SERVITOR_SHARE))
+				if ((getSummon() != null) && isAffected(EffectFlag.SERVITOR_SHARE))
 				{
 					getSummon().broadcastStatusUpdate();
 				}
@@ -7777,11 +7778,11 @@ public abstract class L2Character extends L2Object implements ISkillsHolder
 	
 	/**
 	 * Check if target is affected with special buff
-	 * @see CharEffectList#isAffected(int)
+	 * @see CharEffectList#isAffected(EffectFlag)
 	 * @param flag int
 	 * @return boolean
 	 */
-	public boolean isAffected(int flag)
+	public boolean isAffected(EffectFlag flag)
 	{
 		return _effects.isAffected(flag);
 	}

+ 6 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Playable.java

@@ -19,13 +19,13 @@
 package com.l2jserver.gameserver.model.actor;
 
 import com.l2jserver.gameserver.ai.CtrlEvent;
-import com.l2jserver.gameserver.model.CharEffectList;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.actor.knownlist.PlayableKnownList;
 import com.l2jserver.gameserver.model.actor.stat.PlayableStat;
 import com.l2jserver.gameserver.model.actor.status.PlayableStatus;
 import com.l2jserver.gameserver.model.actor.templates.L2CharTemplate;
 import com.l2jserver.gameserver.model.effects.L2Effect;
+import com.l2jserver.gameserver.model.effects.EffectFlag;
 import com.l2jserver.gameserver.model.effects.L2EffectType;
 import com.l2jserver.gameserver.model.quest.QuestState;
 import com.l2jserver.gameserver.model.skills.L2Skill;
@@ -263,7 +263,7 @@ public abstract class L2Playable extends L2Character
 	// after resurrect
 	public final boolean isNoblesseBlessed()
 	{
-		return _effects.isAffected(CharEffectList.EFFECT_FLAG_NOBLESS_BLESSING);
+		return _effects.isAffected(EffectFlag.NOBLESS_BLESSING);
 	}
 	
 	public final void stopNoblesseBlessing(L2Effect effect)
@@ -282,7 +282,7 @@ public abstract class L2Playable extends L2Character
 	// Support for Soul of the Phoenix and Salvation skills
 	public final boolean isPhoenixBlessed()
 	{
-		return _effects.isAffected(CharEffectList.EFFECT_FLAG_PHOENIX_BLESSING);
+		return _effects.isAffected(EffectFlag.PHOENIX_BLESSING);
 	}
 	
 	public final void stopPhoenixBlessing(L2Effect effect)
@@ -304,13 +304,13 @@ public abstract class L2Playable extends L2Character
 	 */
 	public boolean isSilentMoving()
 	{
-		return _effects.isAffected(CharEffectList.EFFECT_FLAG_SILENT_MOVE);
+		return _effects.isAffected(EffectFlag.SILENT_MOVE);
 	}
 	
 	// for Newbie Protection Blessing skill, keeps you safe from an attack by a chaotic character >= 10 levels apart from you
 	public final boolean getProtectionBlessing()
 	{
-		return _effects.isAffected(CharEffectList.EFFECT_FLAG_PROTECTION_BLESSING);
+		return _effects.isAffected(EffectFlag.PROTECTION_BLESSING);
 	}
 	
 	/**
@@ -333,7 +333,7 @@ public abstract class L2Playable extends L2Character
 	// Charm of Luck - During a Raid/Boss war, decreased chance for death penalty
 	public final boolean getCharmOfLuck()
 	{
-		return _effects.isAffected(CharEffectList.EFFECT_FLAG_CHARM_OF_LUCK);
+		return _effects.isAffected(EffectFlag.CHARM_OF_LUCK);
 	}
 	
 	public final void stopCharmOfLuck(L2Effect effect)

+ 5 - 5
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java

@@ -102,7 +102,6 @@ import com.l2jserver.gameserver.instancemanager.SiegeManager;
 import com.l2jserver.gameserver.instancemanager.TerritoryWarManager;
 import com.l2jserver.gameserver.instancemanager.ZoneManager;
 import com.l2jserver.gameserver.model.BlockList;
-import com.l2jserver.gameserver.model.CharEffectList;
 import com.l2jserver.gameserver.model.L2AccessLevel;
 import com.l2jserver.gameserver.model.L2Clan;
 import com.l2jserver.gameserver.model.L2ClanMember;
@@ -160,6 +159,7 @@ import com.l2jserver.gameserver.model.base.SubClass;
 import com.l2jserver.gameserver.model.effects.AbnormalEffect;
 import com.l2jserver.gameserver.model.effects.EffectTemplate;
 import com.l2jserver.gameserver.model.effects.L2Effect;
+import com.l2jserver.gameserver.model.effects.EffectFlag;
 import com.l2jserver.gameserver.model.effects.L2EffectType;
 import com.l2jserver.gameserver.model.entity.Castle;
 import com.l2jserver.gameserver.model.entity.Duel;
@@ -3468,7 +3468,7 @@ public final class L2PcInstance extends L2Playable
 		}
 		else if (_waitTypeSitting && !isInStoreMode() && !isAlikeDead())
 		{
-			if (_effects.isAffected(CharEffectList.EFFECT_FLAG_RELAXING))
+			if (_effects.isAffected(EffectFlag.RELAXING))
 			{
 				stopEffects(L2EffectType.RELAXING);
 			}
@@ -5985,7 +5985,7 @@ public final class L2PcInstance extends L2Playable
 		
 		AntiFeedManager.getInstance().setLastDeathTime(getObjectId());
 		
-		if (isPhoenixBlessed() || (isAffected(CharEffectList.EFFECT_FLAG_CHARM_OF_COURAGE) && isInSiege()))
+		if (isPhoenixBlessed() || (isAffected(EffectFlag.CHARM_OF_COURAGE) && isInSiege()))
 		{
 			reviveRequest(this, null, false);
 		}
@@ -11783,7 +11783,7 @@ public final class L2PcInstance extends L2Playable
 			{
 				_revivePower = 100;
 			}
-			else if (isAffected(CharEffectList.EFFECT_FLAG_CHARM_OF_COURAGE))
+			else if (isAffected(EffectFlag.CHARM_OF_COURAGE))
 			{
 				_revivePower = 0;
 			}
@@ -11796,7 +11796,7 @@ public final class L2PcInstance extends L2Playable
 			
 			_revivePet = Pet;
 			
-			if (isAffected(CharEffectList.EFFECT_FLAG_CHARM_OF_COURAGE))
+			if (isAffected(EffectFlag.CHARM_OF_COURAGE))
 			{
 				ConfirmDlg dlg = new ConfirmDlg(SystemMessageId.RESURRECT_USING_CHARM_OF_COURAGE.getId());
 				dlg.addTime(60000);

+ 53 - 0
L2J_Server_BETA/java/com/l2jserver/gameserver/model/effects/EffectFlag.java

@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2004-2013 L2J Server
+ * 
+ * This file is part of L2J Server.
+ * 
+ * L2J Server 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.
+ * 
+ * L2J Server 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.model.effects;
+
+/**
+ * @author UnAfraid
+ */
+public enum EffectFlag
+{
+	NONE,
+	CHARM_OF_COURAGE,
+	CHARM_OF_LUCK,
+	PHOENIX_BLESSING,
+	NOBLESS_BLESSING,
+	SILENT_MOVE,
+	PROTECTION_BLESSING,
+	RELAXING,
+	FEAR,
+	CONFUSED,
+	MUTED,
+	PSYCHICAL_MUTED,
+	PSYCHICAL_ATTACK_MUTED,
+	DISARMED,
+	ROOTED,
+	SLEEP,
+	STUNNED,
+	BETRAYED,
+	INVUL,
+	PARALYZED,
+	BLOCK_RESURRECTION,
+	SERVITOR_SHARE;
+	
+	public int getMask()
+	{
+		return 1 << ordinal();
+	}
+}

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/model/effects/L2Effect.java

@@ -702,7 +702,7 @@ public abstract class L2Effect implements IChanceSkillTrigger
 	 */
 	public int getEffectFlags()
 	{
-		return 0;
+		return EffectFlag.NONE.getMask();
 	}
 	
 	@Override

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/network/serverpackets/EtcStatusUpdate.java

@@ -18,8 +18,8 @@
  */
 package com.l2jserver.gameserver.network.serverpackets;
 
-import com.l2jserver.gameserver.model.CharEffectList;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.model.effects.EffectFlag;
 import com.l2jserver.gameserver.model.zone.ZoneId;
 
 /**
@@ -44,7 +44,7 @@ public class EtcStatusUpdate extends L2GameServerPacket
 		writeD(_activeChar.isInsideZone(ZoneId.DANGER_AREA) ? 1 : 0); // 1 = danger area
 		writeD(_activeChar.getExpertiseWeaponPenalty()); // Weapon Grade Penalty [1-4]
 		writeD(_activeChar.getExpertiseArmorPenalty()); // Armor Grade Penalty [1-4]
-		writeD(_activeChar.isAffected(CharEffectList.EFFECT_FLAG_CHARM_OF_COURAGE) ? 1 : 0); // 1 = charm of courage (allows resurrection on the same spot upon death on the siege battlefield)
+		writeD(_activeChar.isAffected(EffectFlag.CHARM_OF_COURAGE) ? 1 : 0); // 1 = charm of courage (allows resurrection on the same spot upon death on the siege battlefield)
 		writeD(_activeChar.getDeathPenaltyBuffLevel()); // 1-15 death penalty, lvl (combat ability decreased due to death)
 		writeD(_activeChar.getSouls());
 	}