浏览代码

support for condition player subclass

janiii 16 年之前
父节点
当前提交
e6a05a0df0

+ 5 - 0
L2_GameServer/java/net/sf/l2j/gameserver/skills/DocumentBase.java

@@ -621,6 +621,11 @@ abstract class DocumentBase
                 }
             	cond = joinAnd(cond, new ConditionPlayerClassIdRestriction(array));
             }
+			else if ("subclass".equalsIgnoreCase(a.getNodeName()))
+			{
+				boolean val = Boolean.valueOf(a.getNodeValue());
+				cond = joinAnd(cond, new ConditionPlayerSubclass(val));
+			}
         }
 
         if(forces[0] + forces[1] > 0)

+ 33 - 0
L2_GameServer/java/net/sf/l2j/gameserver/skills/conditions/ConditionPlayerSubclass.java

@@ -0,0 +1,33 @@
+/*
+ * 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 net.sf.l2j.gameserver.skills.conditions;
+
+import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
+import net.sf.l2j.gameserver.skills.Env;
+
+public class ConditionPlayerSubclass extends Condition
+{
+	private final boolean _val;
+	
+	public ConditionPlayerSubclass(boolean val)
+	{
+		_val = val;
+	}
+	
+	@Override
+	public boolean testImpl(Env env) {
+		return (env.player instanceof L2PcInstance) ? ((L2PcInstance) env.player).isSubClassActive() == _val : true;
+	}
+}