All pastes #2062819 Raw Edit

Anonymous

public java v1 · immutable
#2062819 ·published 2011-05-17 20:48 UTC
rendered paste body
package com.l2dc.gameserver.skills;import java.util.logging.Logger;import com.l2dc.gameserver.model.L2Object;import com.l2dc.gameserver.model.actor.L2Character;import com.l2dc.gameserver.skills.structure.L2Skill;import com.l2dc.gameserver.skills.structure.L2Skill.AffectScope;import com.l2dc.gameserver.skills.structure.L2Skill.TargetType;import com.l2dc.util.GArray;public class SkillTargetChooser{	private static final Logger _log = Logger.getLogger(SkillUsageManager.class.getName());	//private static final L2Object[] _emptyTargetList = new L2Object[0];	public static final L2Object[] getTargetList(final L2Character caster, final L2Skill skill)	{		final GArray<L2Object> targetList;		final TargetType _targetType = skill.getTargetType();		switch (_targetType)		{		case NONE:			return new L2Character[] { caster };		case ENEMY:		case ENEMY_ONLY:		case ENEMY_NOT:		case SELF:		case HOLYTHING:		case TARGET:		case SUMMON:		case DOOR_TREASURE:		case PC_BODY:		case NPC_BODY:		case OTHERS:		case GROUND:		case ADVANCE_BASE:		case ITEM:		case FORTRESS_FLAGPOLE:		case WYVERN_TARGET:		case ARTILLERY:		}		final AffectScope _affectScope = skill.getAffectScope();		switch (_affectScope)		{		case NONE:		{			_log.warning("Using affectScope none. This should not happen! Skill: " + skill.getName());			return new L2Object[] { caster };		}		case SINGLE:			targetList = getSingleScope(caster, skill);			break;		case POINT_BLANK:		case RANGE:		case RING_RANGE:		case PARTY:		case PLEDGE:		case PARTY_PLEDGE:		case DEAD_PLEDGE:		case FAN:		case SQUARE:		case SQUARE_PB:		case STATIC_OBJECT_SCOPE:		case WYVERN_SCOPE:		case BALAKAS_SCOPE:		default:			targetList = new GArray<L2Object>();		}		return targetList.toNativeArray();	}	private static final GArray<L2Object> getSingleScope(final L2Character caster, final L2Skill skill)	{		final GArray<L2Object> _tmpArray = new GArray<L2Object>();		switch (skill.getTargetType())		{		case ENEMY:		{		}		case ENEMY_ONLY:		case ENEMY_NOT:		case SELF:			_tmpArray.add(caster);			break;		case HOLYTHING:		{			final L2Object target = caster.getTarget();			if (target != null && target.isArtefact())				_tmpArray.add(target);		}		case TARGET:		{			final L2Object target = caster.getTarget();			if (target != null)				_tmpArray.add(target);		}		case SUMMON:		{			final L2Object target = caster.getTarget();			if (target != null && target.isSummon())				_tmpArray.add(target);		}		case DOOR_TREASURE:		{			final L2Object target = caster.getTarget();			if (target != null && target.isSummon())				_tmpArray.add(target);		}		case PC_BODY:		case NPC_BODY:		case OTHERS:		case GROUND:		case ADVANCE_BASE:		case ITEM:		case FORTRESS_FLAGPOLE:		case WYVERN_TARGET:		case ARTILLERY:		}		return _tmpArray;	}}