rendered paste bodypackage net.sf.l2j.gameserver.model.actor.instance;
import java.util.logging.Logger;
import javolution.util.FastList;
import net.sf.l2j.Config;
import net.sf.l2j.gameserver.datatables.BuffTemplateTable;
import net.sf.l2j.gameserver.model.L2Character;
import net.sf.l2j.gameserver.model.L2Effect;
import net.sf.l2j.gameserver.model.L2Object;
import net.sf.l2j.gameserver.model.L2Skill.SkillTargetType;
import net.sf.l2j.gameserver.model.L2Skill.SkillType;
import net.sf.l2j.gameserver.network.SystemMessageId;
import net.sf.l2j.gameserver.serverpackets.MagicSkillUse;
import net.sf.l2j.gameserver.serverpackets.SystemMessage;
import net.sf.l2j.gameserver.templates.L2BuffTemplate;
public class L2BufferInstance
{
static L2PcInstance selfBuffer;
static L2NpcInstance npcBuffer;
public static void makeBuffs(L2PcInstance player, int _templateId, L2Object efector)
{
if (player == null)
return;
getbufferType(efector).setTarget(player);
FastList<L2BuffTemplate> _templateBuffs = new FastList<L2BuffTemplate>();
_templateBuffs = BuffTemplateTable.getInstance().getBuffTemplate(_templateId);
if (_templateBuffs == null || _templateBuffs.size() == 0)
return;
for (L2BuffTemplate _buff:_templateBuffs)
{
getbufferType(efector).setTarget(player);
if ( _buff.checkPlayer(player))
{
player.setCurrentHpMp(player.getMaxHp()+5000, player.getMaxMp()+5000);
SystemMessage sm = new SystemMessage(SystemMessageId.YOU_FEEL_S1_EFFECT);
sm.addSkillName(_buff.getSkill().getId());
player.sendPacket(sm);
sm = null;
if (_buff.getSkill().getTargetType() == SkillTargetType.TARGET_SELF)
{
MagicSkillUse msu = new MagicSkillUse(player, player, _buff.getSkill().getId(), _buff.getSkill().getLevel(), 100, 0);
player.broadcastPacket(msu);
for (L2Effect effect : _buff.getSkill().getEffectsSelf(player))
{
player.addEffect(effect);
}
if (_buff.getSkill().getSkillType() == SkillType.SUMMON)
{
player.doCast(_buff.getSkill());
}
}
else
{
MagicSkillUse msu = new MagicSkillUse(getbufferType(efector), player, _buff.getSkill().getId(), _buff.getSkill().getLevel(), 5, 0);
player.broadcastPacket(msu);
}
for (L2Effect effect : _buff.getSkill().getEffects(getbufferType(efector), player))
{
player.addEffect(effect);
}
try{
Thread.sleep(50);
}catch (Exception e) {}
}
}
}
private static L2Character getbufferType(L2Object efector)
{
if (efector instanceof L2PcInstance)
{
selfBuffer = ((L2PcInstance)efector);
efector = selfBuffer;
}
if (efector instanceof L2NpcInstance)
{
npcBuffer = ((L2NpcInstance)efector);
efector = npcBuffer;
}
return (L2Character) efector;
}
static Logger _log = Logger.getLogger(Config.class.getName());
}