package com.aionemu.gameserver.network.aion.clientpackets;
import java.util.Set;
import com.aionemu.gameserver.model.gameobjects.player.Player;
import com.aionemu.gameserver.network.aion.AionClientPacket;
import com.aionemu.gameserver.network.aion.AionConnection.State;
import com.aionemu.gameserver.skillengine.model.Skill;
/**
* @author Cheatkiller
*/
public class CM_USE_CHARGE_SKILL extends AionClientPacket {
public CM_USE_CHARGE_SKILL(int opcode, Set<State> validStates) {
super(opcode, validStates);
}
@Override
protected void readImpl() {
}
@Override
protected void runImpl() {
Player player = getConnection().getActivePlayer();
Skill chargeCastingSkill = player.getCastingSkill();
if (chargeCastingSkill == null || !chargeCastingSkill.getSkillTemplate().isCharge())
return;
long chargeTimeMillis = System.currentTimeMillis() - chargeCastingSkill.getCastStartTime();
player.getController().useChargeSkill(chargeCastingSkill, chargeTimeMillis);
}
}