public static double calcPhysDam(L2Character attacker, L2Character target)
{
L2PcInstance targetPlayer = target.getActingPlayer();
L2PcInstance attackerPlayer = attacker.getActingPlayer();
boolean isPvP = attacker.isPlayable() && target.isPlayable();
final L2Weapon weapon = attacker.getActiveWeaponItem();
L2Armor armor = targetPlayer.getActiveChestArmorItem();
if (isPvP)
{
if (weapon != null)
{
if (armor != null)
{
switch (attackerPlayer.getClassId())
{
/**
* HUMAN CLASSES
*/
case duelist:
{
switch (weapon.getItemType())
{
case DUAL:
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
default:
return 0.6;
}
}
case dreadnought:
{
switch (weapon.getItemType())
{
case POLE:
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
default:
return 0.6;
}
}
case phoenixKnight:
{
switch (weapon.getItemType())
{
case SWORD:
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
case BLUNT:
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
default:
return 0.6;
}
}
case hellKnight:
{
switch (weapon.getItemType())
{
case SWORD:
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
case BLUNT:
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
default:
return 0.6;
}
}
case sagittarius:
{
switch (weapon.getItemType())
{
case BOW:
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
case DAGGER:
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
default:
return 0.6;
}
}
case adventurer:
{
switch (weapon.getItemType())
{
case DUALDAGGER:
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
case DAGGER:
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
case BOW:
return targetPlayer.isWearingHeavyArmor() ? 0.9 : targetPlayer.isWearingLightArmor() ? 0.9 : targetPlayer.isWearingMagicArmor() ? 0.9 : 0.7;
default:
return 0.6;
}
}
/**
* ELF CLASSES
*/
case evaTemplar:
{
switch (weapon.getItemType())
{
case SWORD:
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
case BLUNT:
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
default:
return 0.6;
}
}
case swordMuse:
{
switch (weapon.getItemType())
{
case SWORD:
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
default:
return 0.6;
}
}
case windRider:
{
switch (weapon.getItemType())
{
case DUALDAGGER:
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
case DAGGER:
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
case BOW:
return targetPlayer.isWearingHeavyArmor() ? 0.9 : targetPlayer.isWearingLightArmor() ? 0.9 : targetPlayer.isWearingMagicArmor() ? 0.9 : 0.7;
default:
return 0.6;
}
}
case moonlightSentinel:
{
switch (weapon.getItemType())
{
case BOW:
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
case DAGGER:
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
default:
return 0.6;
}
}
/**
* DARK ELF CLASSES
*/
case shillienTemplar:
{
switch (weapon.getItemType())
{
case SWORD:
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
case BLUNT:
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
default:
return 0.6;
}
}
case spectralDancer:
{
switch (weapon.getItemType())
{
case DUAL:
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
default:
return 0.6;
}
}
case ghostHunter:
{
switch (weapon.getItemType())
{
case DUALDAGGER:
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
case DAGGER:
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
case BOW:
return targetPlayer.isWearingHeavyArmor() ? 0.9 : targetPlayer.isWearingLightArmor() ? 0.9 : targetPlayer.isWearingMagicArmor() ? 0.9 : 0.7;
default:
return 0.6;
}
}
case ghostSentinel:
{
switch (weapon.getItemType())
{
case BOW:
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
case DAGGER:
return targetPlayer.isWearingHeavyArmor() ? 0.9 : targetPlayer.isWearingLightArmor() ? 0.9 : targetPlayer.isWearingMagicArmor() ? 0.9 : 0.7;
default:
return 0.6;
}
}
/**
* ORC CLASSES
*/
case titan:
{
switch (weapon.getItemType())
{
case TWOHAND_SWORD:
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
default:
return 0.6;
}
}
case grandKhavatari:
{
switch (weapon.getItemType())
{
case DUALFIST:
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
default:
return 0.6;
}
}
/**
* DWARF CLASSES
*/
case fortuneSeeker:
{
switch (weapon.getItemType())
{
case BLUNT:
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
default:
return 0.6;
}
}
case maestro:
{
switch (weapon.getItemType())
{
case BLUNT:
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
default:
return 0.6;
}
}
/**
* KAMAEL CLASSES
*/
case doombringer:
{
switch (weapon.getItemType())
{
case ANCIENTSWORD:
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
default:
return 0.6;
}
}
case maleSoulhound:
{
switch (weapon.getItemType())
{
case RAPIER:
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
default:
return 0.6;
}
}
case femaleSoulhound:
{
switch (weapon.getItemType())
{
case RAPIER:
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
default:
return 0.6;
}
}
case trickster:
{
switch (weapon.getItemType())
{
case CROSSBOW:
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
default:
return 0.6;
}
}
case judicator:
{
switch (weapon.getItemType())
{
case RAPIER:
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
default:
return 0.6;
}
}
}
}
return 0.7; // if armor == null, return this.
}
return 1.0; // if weapon == null, return this.
}
return 1.0; // Never change this value.
}
/**
* @param attacker
* @param target
* @param skill
* @return double
*/
public static double calcMagicDam(L2Character attacker, L2Character target, Skill skill)
{
L2PcInstance targetPlayer = (L2PcInstance) target;
L2PcInstance attackerPlayer = (L2PcInstance) attacker;
boolean isPvP = attacker.isPlayable() && target.isPlayable();
L2Armor armor = targetPlayer.getActiveChestArmorItem();
if (isPvP)
{
if ((skill != null) && skill.isMagic())
{
if (armor != null)
{
switch (attackerPlayer.getClassId())
{
/**
* HUMAN CLASSES
*/
case archmage:
{
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
}
case soultaker:
{
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
}
case arcanaLord:
{
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
}
case cardinal:
{
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
}
case hierophant:
{
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
}
/**
* ELF CLASSES
*/
case mysticMuse:
{
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
}
case elementalMaster:
{
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
}
case evaSaint:
{
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
}
/**
* DARK ELF CLASSES
*/
case stormScreamer:
{
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
}
case spectralMaster:
{
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
}
case shillienSaint:
{
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
}
/**
* ORC CLASSES
*/
case dominator:
{
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
}
case doomcryer:
{
return targetPlayer.isWearingHeavyArmor() ? 1.0 : targetPlayer.isWearingLightArmor() ? 1.0 : targetPlayer.isWearingMagicArmor() ? 1.0 : 0.7;
}
}
}
return 0.7; // if armor == null, return this.
}
return 1.0; // if skill == null, return this.
}
return 1.0; // Never change this value.
}
By sponer