From 1ac91de53c6baec599e11fefc29158db80ea9a94 Mon Sep 17 00:00:00 2001 From: MobiusDev <8391001+MobiusDevelopment@users.noreply.github.com> Date: Tue, 26 May 2015 09:09:41 +0000 Subject: [PATCH] Added physicalSkillPowerAdd, mCritPowerAdd, reflectDamageRes and receivedDamageModifier stats. New Talismans. --- .../game/data/buylists/custom/0011072.xml | 1 + .../game/data/stats/items/34900-34999.xml | 56 ++++++++++++++++ .../game/data/stats/items/39500-39599.xml | 11 +++ .../game/data/stats/skills/08800-08899.xml | 67 ++++++++++++++++++- .../game/data/stats/skills/13300-13399.xml | 12 ++-- .../game/data/stats/skills/17900-17999.xml | 3 +- trunk/dist/game/data/xsd/skills.xsd | 4 ++ trunk/dist/game/data_classic/xsd/skills.xsd | 4 ++ .../gameserver/model/actor/L2Character.java | 15 ++++- .../model/skills/AbnormalVisualEffect.java | 1 + .../gameserver/model/stats/Formulas.java | 14 ++++ .../gameserver/model/stats/Stats.java | 4 ++ 12 files changed, 178 insertions(+), 14 deletions(-) diff --git a/trunk/dist/game/data/buylists/custom/0011072.xml b/trunk/dist/game/data/buylists/custom/0011072.xml index d426a7841d..b85c794890 100644 --- a/trunk/dist/game/data/buylists/custom/0011072.xml +++ b/trunk/dist/game/data/buylists/custom/0011072.xml @@ -18,4 +18,5 @@ + diff --git a/trunk/dist/game/data/stats/items/34900-34999.xml b/trunk/dist/game/data/stats/items/34900-34999.xml index 35e684d106..74fd77992e 100644 --- a/trunk/dist/game/data/stats/items/34900-34999.xml +++ b/trunk/dist/game/data/stats/items/34900-34999.xml @@ -572,7 +572,18 @@ + + + + + + + + + + + @@ -586,6 +597,7 @@ + @@ -593,25 +605,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/trunk/dist/game/data/stats/items/39500-39599.xml b/trunk/dist/game/data/stats/items/39500-39599.xml index c6943d456f..378d022ad1 100644 --- a/trunk/dist/game/data/stats/items/39500-39599.xml +++ b/trunk/dist/game/data/stats/items/39500-39599.xml @@ -381,7 +381,18 @@ + + + + + + + + + + + diff --git a/trunk/dist/game/data/stats/skills/08800-08899.xml b/trunk/dist/game/data/stats/skills/08800-08899.xml index fbe13f8785..16420eb031 100644 --- a/trunk/dist/game/data/stats/skills/08800-08899.xml +++ b/trunk/dist/game/data/stats/skills/08800-08899.xml @@ -448,14 +448,75 @@ - - - + + + + + + + + icon.r85_talisman_pa_up_passive icon.r85_talisman_pa_up_passive icon.r85_talisman_pa_up_passive icon.r85_talisman_pa_up_passive icon.r85_talisman_pa_up_passive icon.r85_talisman_pa_up_passive icon.accessory_punishment_talisman_i01
+ TALISMAN_DECO_DARK_PURPLE TALISMAN_DECO_DARK_PURPLE TALISMAN_DECO_GOLD TALISMAN_DECO_ORANGE TALISMAN_DECO_BLUE TALISMAN_DECO_LIGHT_PURPLE TALISMAN_DECO_DARK_PURPLE
+ 100 100 300 400 500 600 800
+ 1 2 2 2 2 2 2
+ 2 2 3 3 3 3 5
+ 10 10 20 30 40 50 60
+ 0 30 30 30 30 30 30
+ 0 10 10 10 10 10 10
+ 0 0 103 103 203 303 638
+ 0 0 156 156 256 356 742
+ 1 1 1 1.01 1.02 1.04 1.05
+ 0 0 0 10 20 30 30
+ 0 0 0 20 40 60 563
+ 0 0 0 20 40 60 368
+ 1 1 1 1 0.99 0.97 0.97
+ 0 0 0 0 0 2 2
+ 0 0 0 0 0 0 2
+ 1 1 1 1 1 1 0.9
+ 1 1 1 1 1 1 0.97
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/trunk/dist/game/data/stats/skills/13300-13399.xml b/trunk/dist/game/data/stats/skills/13300-13399.xml index b21b2dc807..6dbab4f2b6 100644 --- a/trunk/dist/game/data/stats/skills/13300-13399.xml +++ b/trunk/dist/game/data/stats/skills/13300-13399.xml @@ -744,7 +744,7 @@ - + @@ -752,7 +752,7 @@ - +
@@ -760,7 +760,7 @@ - + @@ -768,7 +768,7 @@ - + @@ -776,7 +776,7 @@ - + @@ -784,7 +784,7 @@ - + diff --git a/trunk/dist/game/data/stats/skills/17900-17999.xml b/trunk/dist/game/data/stats/skills/17900-17999.xml index cce716256e..e09dedd727 100644 --- a/trunk/dist/game/data/stats/skills/17900-17999.xml +++ b/trunk/dist/game/data/stats/skills/17900-17999.xml @@ -915,10 +915,9 @@ - - + diff --git a/trunk/dist/game/data/xsd/skills.xsd b/trunk/dist/game/data/xsd/skills.xsd index fceaa8e3fa..7f6d93cc77 100644 --- a/trunk/dist/game/data/xsd/skills.xsd +++ b/trunk/dist/game/data/xsd/skills.xsd @@ -313,11 +313,13 @@ + + @@ -384,6 +386,8 @@ + + diff --git a/trunk/dist/game/data_classic/xsd/skills.xsd b/trunk/dist/game/data_classic/xsd/skills.xsd index fceaa8e3fa..7f6d93cc77 100644 --- a/trunk/dist/game/data_classic/xsd/skills.xsd +++ b/trunk/dist/game/data_classic/xsd/skills.xsd @@ -313,11 +313,13 @@ + + @@ -384,6 +386,8 @@ + + diff --git a/trunk/java/com/l2jserver/gameserver/model/actor/L2Character.java b/trunk/java/com/l2jserver/gameserver/model/actor/L2Character.java index 60d6b6b666..3ccae361b0 100644 --- a/trunk/java/com/l2jserver/gameserver/model/actor/L2Character.java +++ b/trunk/java/com/l2jserver/gameserver/model/actor/L2Character.java @@ -5006,7 +5006,6 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe { // Reduce HP of the target and calculate reflection damage to reduce HP of attacker if necessary double reflectPercent = target.getStat().calcStat(Stats.REFLECT_DAMAGE_PERCENT, 0, null, null); - if (reflectPercent > 0) { reflectedDamage = (int) ((reflectPercent / 100.) * damage); @@ -5016,6 +5015,13 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe reflectedDamage = target.getMaxHp(); } } + + // Reflect resistance + double reflectResistance = target.getStat().calcStat(Stats.REFLECT_DAMAGE_RESISTANCE, 0, null, null); + if (reflectResistance > 0) + { + reflectedDamage -= reflectResistance; + } } } @@ -6472,13 +6478,16 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe public void reduceCurrentHp(double i, L2Character attacker, boolean awake, boolean isDOT, Skill skill) { + // Damage modifier + final double damage = getStat().calcStat(Stats.RECEIVED_DAMAGE_MODIFIER, i, null, null); + if (Config.L2JMOD_CHAMPION_ENABLE && isChampion() && (Config.L2JMOD_CHAMPION_HP != 0)) { - getStatus().reduceHp(i / Config.L2JMOD_CHAMPION_HP, attacker, awake, isDOT, false); + getStatus().reduceHp((damage / Config.L2JMOD_CHAMPION_HP), attacker, awake, isDOT, false); } else { - getStatus().reduceHp(i, attacker, awake, isDOT, false); + getStatus().reduceHp(damage, attacker, awake, isDOT, false); } } diff --git a/trunk/java/com/l2jserver/gameserver/model/skills/AbnormalVisualEffect.java b/trunk/java/com/l2jserver/gameserver/model/skills/AbnormalVisualEffect.java index 5a90b1aaa7..2759c07559 100644 --- a/trunk/java/com/l2jserver/gameserver/model/skills/AbnormalVisualEffect.java +++ b/trunk/java/com/l2jserver/gameserver/model/skills/AbnormalVisualEffect.java @@ -91,6 +91,7 @@ public enum AbnormalVisualEffect HERB_OF_POWER(69), HERB_OF_MAGIC(70), TALISMAN_DECO_DARK_PURPLE(71), + TALISMAN_POWER2(72), // removed? TALISMAN_DECO_GOLD(73), TALISMAN_DECO_ORANGE(74), TALISMAN_DECO_BLUE(75), diff --git a/trunk/java/com/l2jserver/gameserver/model/stats/Formulas.java b/trunk/java/com/l2jserver/gameserver/model/stats/Formulas.java index a5360147e5..9d541c9852 100644 --- a/trunk/java/com/l2jserver/gameserver/model/stats/Formulas.java +++ b/trunk/java/com/l2jserver/gameserver/model/stats/Formulas.java @@ -827,6 +827,13 @@ public final class Formulas } } } + + // Physical skill dmg add + if (skill != null) + { + damage += attacker.calcStat(Stats.PHYSICAL_SKILL_POWER_ADD, 0, null, null); + } + return damage; } @@ -936,6 +943,13 @@ public final class Formulas } } } + + // Magical Crit dmg add + if (mcrit) + { + damage += attacker.calcStat(Stats.MAGIC_CRIT_DMG_ADD, 0, null, null); + } + return damage; } diff --git a/trunk/java/com/l2jserver/gameserver/model/stats/Stats.java b/trunk/java/com/l2jserver/gameserver/model/stats/Stats.java index 3381001f9c..359144bfba 100644 --- a/trunk/java/com/l2jserver/gameserver/model/stats/Stats.java +++ b/trunk/java/com/l2jserver/gameserver/model/stats/Stats.java @@ -47,6 +47,7 @@ public enum Stats POWER_ATTACK("pAtk"), MAGIC_ATTACK("mAtk"), PHYSICAL_SKILL_POWER("physicalSkillPower"), + PHYSICAL_SKILL_POWER_ADD("physicalSkillPowerAdd"), POWER_ATTACK_SPEED("pAtkSpd"), MAGIC_ATTACK_SPEED("mAtkSpd"), // Magic Skill Casting Time Rate ATK_REUSE("atkReuse"), // Bows Hits Reuse Rate @@ -57,6 +58,7 @@ public enum Stats CRITICAL_DAMAGE("cAtk"), CRITICAL_DAMAGE_ADD("cAtkAdd"), // this is another type for special critical damage mods - vicious stance, critical power and critical damage SA MAGIC_CRIT_DMG("mCritPower"), + MAGIC_CRIT_DMG_ADD("mCritPowerAdd"), // PVP BONUS PVP_PHYSICAL_DMG("pvpPhysDmg"), @@ -147,6 +149,7 @@ public enum Stats REFLECT_DAMAGE_PERCENT("reflectDam"), REFLECT_SKILL_MAGIC("reflectSkillMagic"), REFLECT_SKILL_PHYSIC("reflectSkillPhysic"), + REFLECT_DAMAGE_RESISTANCE("reflectDamageRes"), VENGEANCE_SKILL_MAGIC_DAMAGE("vengeanceMdam"), VENGEANCE_SKILL_PHYSICAL_DAMAGE("vengeancePdam"), ABSORB_DAMAGE_PERCENT("absorbDam"), @@ -154,6 +157,7 @@ public enum Stats MANA_SHIELD_PERCENT("manaShield"), TRANSFER_DAMAGE_TO_PLAYER("transDamToPlayer"), ABSORB_MANA_DAMAGE_PERCENT("absorbDamMana"), + RECEIVED_DAMAGE_MODIFIER("receivedDamageModifier"), WEIGHT_LIMIT("weightLimit"), WEIGHT_PENALTY("weightPenalty"),