Lineage Justice

Spells & Skills

Lookup and validate skills and spells.

Entangle
MP: 20 HP: 0 Item: 40319 Amount: 1 Duration: 64 Skill Type: Probability
Delay: 0 Cast Invis: No Ignores CM: No Element: Earth Range: 10 Area: N/A
Dmg Value: 0.0 Dmg Dice: 0 Dice Count: 0 Prob Value: 33 Prob Dice: 30 Prob Max: N/A
L1SkillUse Execution:

if (_skillId == SLOW || _skillId == MASS_SLOW
		|| _skillId == ENTANGLE) {
	if (cha instanceof L1PcInstance) {
		L1PcInstance pc = (L1PcInstance) cha;
		if (pc.getHasteItemEquipped() > 0) {
			continue;
		}
	}
	if (cha.getMoveSpeed() == 0) {
		_skill.newBuffSkillExecutor().addEffect(_user, cha, buffIconDuration);
	} else if (cha.getMoveSpeed() == 1) {
		int skillNum = 0;
		if (cha.hasSkillEffect(HASTE)) {
			skillNum = HASTE;
		} else if (cha.hasSkillEffect(GREATER_HASTE)) {
			skillNum = GREATER_HASTE;
		} else if (cha.hasSkillEffect(STATUS_HASTE)) {
			skillNum = STATUS_HASTE;
		}
		if (skillNum != 0) {
			cha.removeSkillEffect(skillNum);
			cha.removeSkillEffect(_skillId);
			cha.setMoveSpeed(0);
			continue;
		}
	}
}
Add Effect:

@Override
public void addEffect(L1Character user, L1Character target,
		int durationSeconds) {
	
	if (target instanceof L1PcInstance) {
		L1PcInstance pc = (L1PcInstance) target;
		pc.sendPackets(new S_SkillHaste(pc.getId(), 2,
				durationSeconds));
	}
	target.broadcastPacket(new S_SkillHaste(target.getId(), 2,
			durationSeconds));
	target.setMoveSpeed(2);
	
}
Remove Effect:

@Override
public void removeEffect(L1Character target) {
	
	if (target instanceof L1PcInstance) {
		L1PcInstance pc = (L1PcInstance) target;
		pc.sendPackets(new S_SkillHaste(pc.getId(), 0, 0));
		pc.broadcastPacket(new S_SkillHaste(pc.getId(), 0, 0));
	}
	target.setMoveSpeed(0);
	
}