mirror of
https://github.com/Rogiel/l2jserver2
synced 2025-12-13 10:42:54 +00:00
@@ -16,12 +16,15 @@
|
||||
*/
|
||||
package com.l2jserver.model.world.character;
|
||||
|
||||
import com.l2jserver.model.template.ItemTemplate;
|
||||
import com.l2jserver.model.world.L2Character;
|
||||
import com.l2jserver.model.world.actor.calculator.ActorCalculator;
|
||||
import com.l2jserver.model.world.actor.stat.ActorStats;
|
||||
import com.l2jserver.model.world.actor.stat.StatType;
|
||||
import com.l2jserver.model.world.character.CharacterInventory.InventoryPaperdoll;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculator;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculatorContext;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterFormula;
|
||||
import com.l2jserver.model.world.character.calculator.MaximumCPAddCalculator;
|
||||
import com.l2jserver.model.world.character.calculator.MaximumCPBonusCalculator;
|
||||
import com.l2jserver.model.world.character.calculator.MaximumHPAddCalculator;
|
||||
@@ -74,21 +77,21 @@ public class CharacterStats extends ActorStats<CharacterCalculatorContext> {
|
||||
* <u>This calculator does not store any state and thus is safe to be
|
||||
* shared.</u>
|
||||
*/
|
||||
private static final CharacterCalculator BASE_HP_CALCULATOR = new CharacterBaseHPCalculator();
|
||||
private static final CharacterFormula BASE_HP_FORMULA = new CharacterBaseHPCalculator();
|
||||
/**
|
||||
* The calculator for base maximum MP
|
||||
* <p>
|
||||
* <u>This calculator does not store any state and thus is safe to be
|
||||
* shared.</u>
|
||||
*/
|
||||
private static final CharacterCalculator BASE_MP_CALCULATOR = new CharacterBaseMPCalculator();
|
||||
private static final CharacterFormula BASE_MP_FORMULA = new CharacterBaseMPCalculator();
|
||||
/**
|
||||
* The calculator for base maximum CP
|
||||
* <p>
|
||||
* <u>This calculator does not store any state and thus is safe to be
|
||||
* shared.</u>
|
||||
*/
|
||||
private static final CharacterCalculator BASE_CP_CALCULATOR = new CharacterBaseCPCalculator();
|
||||
private static final CharacterFormula BASE_CP_FORMULA = new CharacterBaseCPCalculator();
|
||||
|
||||
/**
|
||||
* The calculator for base intelligence
|
||||
@@ -96,42 +99,42 @@ public class CharacterStats extends ActorStats<CharacterCalculatorContext> {
|
||||
* <u>This calculator does not store any state and thus is safe to be
|
||||
* shared.</u>
|
||||
*/
|
||||
private static final CharacterCalculator BASE_INT_CALCULATOR = new CharacterBaseIntelligenceCalculator();
|
||||
private static final CharacterFormula BASE_INT_FORMULA = new CharacterBaseIntelligenceCalculator();
|
||||
/**
|
||||
* The calculator for base strength
|
||||
* <p>
|
||||
* <u>This calculator does not store any state and thus is safe to be
|
||||
* shared.</u>
|
||||
*/
|
||||
private static final CharacterCalculator BASE_STR_CALCULATOR = new CharacterBaseStrengthCalculator();
|
||||
private static final CharacterFormula BASE_STR_FORMULA = new CharacterBaseStrengthCalculator();
|
||||
/**
|
||||
* The calculator for base concentration
|
||||
* <p>
|
||||
* <u>This calculator does not store any state and thus is safe to be
|
||||
* shared.</u>
|
||||
*/
|
||||
private static final CharacterCalculator BASE_CON_CALCULATOR = new CharacterBaseConcentrationCalculator();
|
||||
private static final CharacterFormula BASE_CON_FORMULA = new CharacterBaseConcentrationCalculator();
|
||||
/**
|
||||
* The calculator for base mentality
|
||||
* <p>
|
||||
* <u>This calculator does not store any state and thus is safe to be
|
||||
* shared.</u>
|
||||
*/
|
||||
private static final CharacterCalculator BASE_MEN_CALCULATOR = new CharacterBaseMentalityCalculator();
|
||||
private static final CharacterFormula BASE_MEN_FORMULA = new CharacterBaseMentalityCalculator();
|
||||
/**
|
||||
* The calculator for base dexterity
|
||||
* <p>
|
||||
* <u>This calculator does not store any state and thus is safe to be
|
||||
* shared.</u>
|
||||
*/
|
||||
private static final CharacterCalculator BASE_DEX_CALCULATOR = new CharacterBaseDexterityCalculator();
|
||||
private static final CharacterFormula BASE_DEX_FORMULA = new CharacterBaseDexterityCalculator();
|
||||
/**
|
||||
* The calculator for base witness
|
||||
* <p>
|
||||
* <u>This calculator does not store any state and thus is safe to be
|
||||
* shared.</u>
|
||||
*/
|
||||
private static final CharacterCalculator BASE_WIT_CALCULATOR = new CharacterBaseWitnessCalculator();
|
||||
private static final CharacterFormula BASE_WIT_FORMULA = new CharacterBaseWitnessCalculator();
|
||||
|
||||
/**
|
||||
* The calculator for base run speed
|
||||
@@ -139,14 +142,14 @@ public class CharacterStats extends ActorStats<CharacterCalculatorContext> {
|
||||
* <u>This calculator does not store any state and thus is safe to be
|
||||
* shared.</u>
|
||||
*/
|
||||
private static final CharacterCalculator BASE_RUN_SPEED_CALCULATOR = new CharacterBaseRunSpeedCalculator();
|
||||
private static final CharacterFormula BASE_RUN_SPEED_FORMULA = new CharacterBaseRunSpeedCalculator();
|
||||
/**
|
||||
* The calculator for base walk speed
|
||||
* <p>
|
||||
* <u>This calculator does not store any state and thus is safe to be
|
||||
* shared.</u>
|
||||
*/
|
||||
private static final CharacterCalculator BASE_WALK_SPEED_CALCULATOR = new CharacterBaseWalkSpeedCalculator();
|
||||
private static final CharacterFormula BASE_WALK_SPEED_FORMULA = new CharacterBaseWalkSpeedCalculator();
|
||||
|
||||
/**
|
||||
* The calculator base physical attack
|
||||
@@ -154,28 +157,28 @@ public class CharacterStats extends ActorStats<CharacterCalculatorContext> {
|
||||
* <u>This calculator does not store any state and thus is safe to be
|
||||
* shared.</u>
|
||||
*/
|
||||
private static final CharacterCalculator BASE_PHYSICAL_ATTACK_CALCULATOR = new CharacterBasePhysicalAttackCalculator();
|
||||
private static final CharacterFormula BASE_PHYSICAL_ATTACK_FORMULA = new CharacterBasePhysicalAttackCalculator();
|
||||
/**
|
||||
* The calculator base physical attack speed
|
||||
* <p>
|
||||
* <u>This calculator does not store any state and thus is safe to be
|
||||
* shared.</u>
|
||||
*/
|
||||
private static final CharacterCalculator BASE_PHYSICAL_ATTACK_SPEED_CALCULATOR = new CharacterBasePhysicalAttackSpeedCalculator();
|
||||
private static final CharacterFormula BASE_PHYSICAL_ATTACK_SPEED_FORMULA = new CharacterBasePhysicalAttackSpeedCalculator();
|
||||
/**
|
||||
* The calculator base physical attack critical rate
|
||||
* <p>
|
||||
* <u>This calculator does not store any state and thus is safe to be
|
||||
* shared.</u>
|
||||
*/
|
||||
private static final CharacterCalculator BASE_PHYSICAL_CRITICAL_RATE_CALCULATOR = new CharacterBasePhysicalCriticalRateCalculator();
|
||||
private static final CharacterFormula BASE_PHYSICAL_CRITICAL_RATE_FORMULA = new CharacterBasePhysicalCriticalRateCalculator();
|
||||
/**
|
||||
* The calculator base physical defense
|
||||
* <p>
|
||||
* <u>This calculator does not store any state and thus is safe to be
|
||||
* shared.</u>
|
||||
*/
|
||||
private static final CharacterCalculator BASE_PHYSICAL_DEFENSE_CALCULATOR = new CharacterBasePhysicalDefenseCalculator();
|
||||
private static final CharacterFormula BASE_PHYSICAL_DEFENSE_FORMULA = new CharacterBasePhysicalDefenseCalculator();
|
||||
|
||||
/**
|
||||
* The calculator base magical attack
|
||||
@@ -183,28 +186,28 @@ public class CharacterStats extends ActorStats<CharacterCalculatorContext> {
|
||||
* <u>This calculator does not store any state and thus is safe to be
|
||||
* shared.</u>
|
||||
*/
|
||||
private static final CharacterCalculator BASE_MAGICAL_ATTACK_CALCULATOR = new CharacterBaseMagicalAttackCalculator();
|
||||
private static final CharacterFormula BASE_MAGICAL_ATTACK_FORMULA = new CharacterBaseMagicalAttackCalculator();
|
||||
/**
|
||||
* The calculator base magical attack speed
|
||||
* <p>
|
||||
* <u>This calculator does not store any state and thus is safe to be
|
||||
* shared.</u>
|
||||
*/
|
||||
private static final CharacterCalculator BASE_MAGICAL_ATTACK_SPEED_CALCULATOR = new CharacterBaseMagicalAttackSpeedCalculator();
|
||||
private static final CharacterFormula BASE_MAGICAL_ATTACK_SPEED_FORMULA = new CharacterBaseMagicalAttackSpeedCalculator();
|
||||
/**
|
||||
* The calculator base magical attack critical rate
|
||||
* <p>
|
||||
* <u>This calculator does not store any state and thus is safe to be
|
||||
* shared.</u>
|
||||
*/
|
||||
private static final CharacterCalculator BASE_MAGICAL_CRITICAL_RATE_CALCULATOR = new CharacterBaseMagicalCriticalRateCalculator();
|
||||
private static final CharacterFormula BASE_MAGICAL_CRITICAL_RATE_FORMULA = new CharacterBaseMagicalCriticalRateCalculator();
|
||||
/**
|
||||
* The calculator base magical defense
|
||||
* <p>
|
||||
* <u>This calculator does not store any state and thus is safe to be
|
||||
* shared.</u>
|
||||
*/
|
||||
private static final CharacterCalculator BASE_MAGICAL_DEFENSE_CALCULATOR = new CharacterBaseMagicalDefenseCalculator();
|
||||
private static final CharacterFormula BASE_MAGICAL_DEFENSE_FORMULA = new CharacterBaseMagicalDefenseCalculator();
|
||||
|
||||
/**
|
||||
* The calculator base attack accuracy
|
||||
@@ -212,14 +215,14 @@ public class CharacterStats extends ActorStats<CharacterCalculatorContext> {
|
||||
* <u>This calculator does not store any state and thus is safe to be
|
||||
* shared.</u>
|
||||
*/
|
||||
private static final CharacterCalculator BASE_ATTACK_ACCURACY_CALCULATOR = new CharacterBaseAttackAccuracyCalculator();
|
||||
private static final CharacterFormula BASE_ATTACK_ACCURACY_FORMULA = new CharacterBaseAttackAccuracyCalculator();
|
||||
/**
|
||||
* The calculator base evasion
|
||||
* <p>
|
||||
* <u>This calculator does not store any state and thus is safe to be
|
||||
* shared.</u>
|
||||
*/
|
||||
private static final CharacterCalculator BASE_ATTACK_EVASION_CALCULATOR = new CharacterBaseAttackEvasionCalculator();
|
||||
private static final CharacterFormula BASE_ATTACK_EVASION_FORMULA = new CharacterBaseAttackEvasionCalculator();
|
||||
|
||||
// BONUS
|
||||
/**
|
||||
@@ -228,7 +231,7 @@ public class CharacterStats extends ActorStats<CharacterCalculatorContext> {
|
||||
* <u>This calculator does not store any state and thus is safe to be
|
||||
* shared.</u>
|
||||
*/
|
||||
private static final CharacterCalculator CP_BONUS_CALCULATOR = new MaximumCPBonusCalculator();
|
||||
private static final CharacterFormula CP_BONUS_FORMULA = new MaximumCPBonusCalculator();
|
||||
|
||||
// ADD
|
||||
/**
|
||||
@@ -237,27 +240,30 @@ public class CharacterStats extends ActorStats<CharacterCalculatorContext> {
|
||||
* <u>This calculator does not store any state and thus is safe to be
|
||||
* shared.</u>
|
||||
*/
|
||||
private static final CharacterCalculator HP_ADD_CALCULATOR = new MaximumHPAddCalculator();
|
||||
private static final CharacterFormula HP_ADD_FORMULA = new MaximumHPAddCalculator();
|
||||
/**
|
||||
* The calculator for MP add
|
||||
* <p>
|
||||
* <u>This calculator does not store any state and thus is safe to be
|
||||
* shared.</u>
|
||||
*/
|
||||
private static final CharacterCalculator MP_ADD_CALCULATOR = new MaximumMPAddCalculator();
|
||||
private static final CharacterFormula MP_ADD_FORMULA = new MaximumMPAddCalculator();
|
||||
/**
|
||||
* The calculator for CP add
|
||||
* <p>
|
||||
* <u>This calculator does not store any state and thus is safe to be
|
||||
* shared.</u>
|
||||
*/
|
||||
private static final CharacterCalculator CP_ADD_CALCULATOR = new MaximumCPAddCalculator();
|
||||
private static final CharacterFormula CP_ADD_FORMULA = new MaximumCPAddCalculator();
|
||||
|
||||
/**
|
||||
* The character
|
||||
*/
|
||||
private final L2Character character;
|
||||
|
||||
private static final CharacterCalculator calculator = new CharacterCalculator(
|
||||
StatType.class);
|
||||
|
||||
/**
|
||||
* Creates a new {@link CharacterStats} and adds default calculators
|
||||
*
|
||||
@@ -267,44 +273,12 @@ public class CharacterStats extends ActorStats<CharacterCalculatorContext> {
|
||||
public CharacterStats(L2Character character) {
|
||||
super();
|
||||
this.character = character;
|
||||
setup();
|
||||
}
|
||||
|
||||
// base
|
||||
add(StatType.MAX_HP, BASE_HP_CALCULATOR);
|
||||
add(StatType.MAX_MP, BASE_MP_CALCULATOR);
|
||||
add(StatType.MAX_CP, BASE_CP_CALCULATOR);
|
||||
|
||||
add(StatType.STAT_INT, BASE_INT_CALCULATOR);
|
||||
add(StatType.STAT_STR, BASE_STR_CALCULATOR);
|
||||
add(StatType.STAT_CON, BASE_CON_CALCULATOR);
|
||||
add(StatType.STAT_MEN, BASE_MEN_CALCULATOR);
|
||||
add(StatType.STAT_DEX, BASE_DEX_CALCULATOR);
|
||||
add(StatType.STAT_WIT, BASE_WIT_CALCULATOR);
|
||||
|
||||
add(StatType.RUN_SPEED, BASE_RUN_SPEED_CALCULATOR);
|
||||
add(StatType.WALK_SPEED, BASE_WALK_SPEED_CALCULATOR);
|
||||
|
||||
add(StatType.POWER_ATTACK, BASE_PHYSICAL_ATTACK_CALCULATOR);
|
||||
add(StatType.POWER_ATTACK_SPEED, BASE_PHYSICAL_ATTACK_SPEED_CALCULATOR);
|
||||
add(StatType.CRITICAL_RATE, BASE_PHYSICAL_CRITICAL_RATE_CALCULATOR);
|
||||
add(StatType.POWER_DEFENSE, BASE_PHYSICAL_DEFENSE_CALCULATOR);
|
||||
|
||||
add(StatType.MAGIC_ATTACK, BASE_MAGICAL_ATTACK_CALCULATOR);
|
||||
add(StatType.MAGIC_ATTACK_SPEED, BASE_MAGICAL_ATTACK_SPEED_CALCULATOR);
|
||||
add(StatType.MCRITICAL_RATE, BASE_MAGICAL_CRITICAL_RATE_CALCULATOR);
|
||||
add(StatType.MAGIC_DEFENSE, BASE_MAGICAL_DEFENSE_CALCULATOR);
|
||||
|
||||
add(StatType.ACCURACY_COMBAT, BASE_ATTACK_ACCURACY_CALCULATOR);
|
||||
add(StatType.EVASION_RATE, BASE_ATTACK_EVASION_CALCULATOR);
|
||||
|
||||
// add hp/mp/cp add functions
|
||||
add(StatType.MAX_HP, HP_ADD_CALCULATOR);
|
||||
add(StatType.MAX_MP, MP_ADD_CALCULATOR);
|
||||
add(StatType.MAX_CP, CP_ADD_CALCULATOR);
|
||||
|
||||
// bonus
|
||||
add(StatType.MAX_CP, CP_BONUS_CALCULATOR);
|
||||
|
||||
// TODO henna stats calculators
|
||||
@Override
|
||||
protected ActorCalculator getCalculator() {
|
||||
return calculator;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -321,15 +295,53 @@ public class CharacterStats extends ActorStats<CharacterCalculatorContext> {
|
||||
return (int) calc(StatType.MAX_LOAD);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateCalculators() {
|
||||
super.updateCalculators();
|
||||
if (character.getInventory().has(InventoryPaperdoll.RIGHT_HAND)) {
|
||||
add(StatType.POWER_ATTACK,
|
||||
character.getInventory()
|
||||
.getItem(InventoryPaperdoll.RIGHT_HAND)
|
||||
.getTemplateID().getTemplate().getPhysicalDamage());
|
||||
}
|
||||
@SuppressWarnings("unchecked")
|
||||
private void setup() {
|
||||
calculator.addNoSort(BASE_HP_FORMULA, BASE_MP_FORMULA,
|
||||
BASE_CP_FORMULA);
|
||||
|
||||
calculator.addNoSort(BASE_INT_FORMULA, BASE_STR_FORMULA,
|
||||
BASE_CON_FORMULA, BASE_MEN_FORMULA, BASE_DEX_FORMULA,
|
||||
BASE_WIT_FORMULA);
|
||||
|
||||
calculator.addNoSort(BASE_RUN_SPEED_FORMULA, BASE_WALK_SPEED_FORMULA);
|
||||
|
||||
calculator.addNoSort(BASE_PHYSICAL_ATTACK_FORMULA,
|
||||
BASE_PHYSICAL_ATTACK_SPEED_FORMULA,
|
||||
BASE_PHYSICAL_CRITICAL_RATE_FORMULA,
|
||||
BASE_PHYSICAL_DEFENSE_FORMULA);
|
||||
|
||||
calculator.addNoSort(BASE_MAGICAL_ATTACK_FORMULA,
|
||||
BASE_MAGICAL_ATTACK_SPEED_FORMULA,
|
||||
BASE_MAGICAL_CRITICAL_RATE_FORMULA,
|
||||
BASE_MAGICAL_DEFENSE_FORMULA);
|
||||
|
||||
calculator.addNoSort(BASE_ATTACK_ACCURACY_FORMULA,
|
||||
BASE_ATTACK_EVASION_FORMULA);
|
||||
|
||||
// add hp/mp/cp add functions
|
||||
calculator.addNoSort(HP_ADD_FORMULA, MP_ADD_FORMULA, CP_ADD_FORMULA);
|
||||
|
||||
// bonus
|
||||
calculator.addNoSort(CP_BONUS_FORMULA);
|
||||
|
||||
addTo(calculator);
|
||||
calculator.sort();
|
||||
}
|
||||
|
||||
public void updateCalculator() {
|
||||
calculator.clear();
|
||||
setup();
|
||||
addItem(InventoryPaperdoll.RIGHT_HAND);
|
||||
}
|
||||
|
||||
private void addItem(InventoryPaperdoll paperdoll) {
|
||||
if (!character.getInventory().has(paperdoll))
|
||||
return;
|
||||
final ItemTemplate item = character.getInventory().getItem(paperdoll)
|
||||
.getTemplate();
|
||||
calculator.add(item.getPhysicalDamage());
|
||||
calculator.add(item.getMagicalDamage());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -17,6 +17,9 @@
|
||||
package com.l2jserver.model.world.character.calculator;
|
||||
|
||||
import com.l2jserver.model.world.actor.calculator.ActorCalculator;
|
||||
import com.l2jserver.model.world.actor.calculator.ActorCalculatorContext;
|
||||
import com.l2jserver.model.world.actor.stat.StatType;
|
||||
import com.l2jserver.util.calculator.Calculator;
|
||||
|
||||
/**
|
||||
* An calculator for character formulas.
|
||||
@@ -24,7 +27,8 @@ import com.l2jserver.model.world.actor.calculator.ActorCalculator;
|
||||
* @author <a href="http://www.rogiel.com">Rogiel</a>
|
||||
*/
|
||||
public class CharacterCalculator extends ActorCalculator {
|
||||
public CharacterCalculator(CharacterCalculatorFunction... functions) {
|
||||
super(functions);
|
||||
public CharacterCalculator(Class<StatType> type,
|
||||
Calculator<ActorCalculatorContext, StatType>... calculators) {
|
||||
super(type, calculators);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.l2jserver.model.template.CharacterTemplate;
|
||||
import com.l2jserver.model.world.Actor;
|
||||
import com.l2jserver.model.world.L2Character;
|
||||
import com.l2jserver.model.world.actor.calculator.ActorCalculatorFunction;
|
||||
import com.l2jserver.model.world.actor.stat.StatType;
|
||||
|
||||
/**
|
||||
* An calculator for character formulas.
|
||||
@@ -29,8 +30,8 @@ import com.l2jserver.model.world.actor.calculator.ActorCalculatorFunction;
|
||||
*/
|
||||
public abstract class CharacterCalculatorFunction extends
|
||||
ActorCalculatorFunction {
|
||||
public CharacterCalculatorFunction(int order) {
|
||||
super(order);
|
||||
public CharacterCalculatorFunction(int order, StatType type) {
|
||||
super(order, type);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
/*
|
||||
* This file is part of l2jserver <l2jserver.com>.
|
||||
*
|
||||
* l2jserver is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* l2jserver is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with l2jserver. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.l2jserver.model.world.character.calculator;
|
||||
|
||||
import com.l2jserver.model.world.actor.stat.StatType;
|
||||
|
||||
/**
|
||||
* An calculator for character formulas.
|
||||
*
|
||||
* @author <a href="http://www.rogiel.com">Rogiel</a>
|
||||
*/
|
||||
public abstract class CharacterFormula extends CharacterCalculatorFunction {
|
||||
public CharacterFormula(int order, StatType type) {
|
||||
super(order, type);
|
||||
}
|
||||
}
|
||||
@@ -18,6 +18,7 @@ package com.l2jserver.model.world.character.calculator;
|
||||
|
||||
import com.l2jserver.model.template.CharacterTemplate;
|
||||
import com.l2jserver.model.world.L2Character;
|
||||
import com.l2jserver.model.world.actor.stat.StatType;
|
||||
|
||||
/**
|
||||
* Calculates the character base CP
|
||||
@@ -32,19 +33,17 @@ import com.l2jserver.model.world.L2Character;
|
||||
*
|
||||
* @author <a href="http://www.rogiel.com">Rogiel</a>
|
||||
*/
|
||||
public class MaximumCPAddCalculator extends CharacterCalculator {
|
||||
public class MaximumCPAddCalculator extends CharacterFormula {
|
||||
public MaximumCPAddCalculator() {
|
||||
super(new CharacterCalculatorFunction(0x100) {
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t,
|
||||
double value) {
|
||||
int lvl = c.getLevel() - t.getMinimumLevel();
|
||||
double mod = t.getBaseCPModifier() * lvl;
|
||||
double max = (t.getBaseCPAdd() + mod) * lvl;
|
||||
double min = (t.getBaseCPAdd() * lvl) + mod;
|
||||
super(0x100, StatType.MAX_CP);
|
||||
}
|
||||
|
||||
return value + (max + min) / 2;
|
||||
}
|
||||
});
|
||||
protected double calculate(L2Character c, CharacterTemplate t, double value) {
|
||||
int lvl = c.getLevel() - t.getMinimumLevel();
|
||||
double mod = t.getBaseCPModifier() * lvl;
|
||||
double max = (t.getBaseCPAdd() + mod) * lvl;
|
||||
double min = (t.getBaseCPAdd() * lvl) + mod;
|
||||
|
||||
return value + (max + min) / 2;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ package com.l2jserver.model.world.character.calculator;
|
||||
import com.l2jserver.model.template.CharacterTemplate;
|
||||
import com.l2jserver.model.world.L2Character;
|
||||
import com.l2jserver.model.world.actor.stat.BaseStats;
|
||||
import com.l2jserver.model.world.actor.stat.StatType;
|
||||
|
||||
/**
|
||||
* Calculates the character base CP
|
||||
@@ -33,16 +34,13 @@ import com.l2jserver.model.world.actor.stat.BaseStats;
|
||||
*
|
||||
* @author <a href="http://www.rogiel.com">Rogiel</a>
|
||||
*/
|
||||
public class MaximumCPBonusCalculator extends CharacterCalculator {
|
||||
public class MaximumCPBonusCalculator extends CharacterFormula {
|
||||
public MaximumCPBonusCalculator() {
|
||||
super(new CharacterCalculatorFunction(0x100) {
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t,
|
||||
double value) {
|
||||
return value
|
||||
* BaseStats.CON.calculateBonus(c.getStats()
|
||||
.getConcentration());
|
||||
}
|
||||
});
|
||||
super(0x100, StatType.MAX_CP);
|
||||
}
|
||||
|
||||
protected double calculate(L2Character c, CharacterTemplate t, double value) {
|
||||
return value
|
||||
* BaseStats.CON.calculateBonus(c.getStats().getConcentration());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ package com.l2jserver.model.world.character.calculator;
|
||||
|
||||
import com.l2jserver.model.template.CharacterTemplate;
|
||||
import com.l2jserver.model.world.L2Character;
|
||||
import com.l2jserver.model.world.actor.stat.StatType;
|
||||
|
||||
/**
|
||||
* Calculates the character maximum HP
|
||||
@@ -32,19 +33,17 @@ import com.l2jserver.model.world.L2Character;
|
||||
*
|
||||
* @author <a href="http://www.rogiel.com">Rogiel</a>
|
||||
*/
|
||||
public class MaximumHPAddCalculator extends CharacterCalculator {
|
||||
public class MaximumHPAddCalculator extends CharacterFormula {
|
||||
public MaximumHPAddCalculator() {
|
||||
super(new CharacterCalculatorFunction(0x100) {
|
||||
@Override
|
||||
public double calculate(L2Character c, CharacterTemplate t,
|
||||
double value) {
|
||||
int lvl = c.getLevel() - t.getMinimumLevel();
|
||||
double mod = t.getBaseHPModifier() * lvl;
|
||||
double max = (t.getBaseHPAdd() + mod) * lvl;
|
||||
double min = (t.getBaseHPAdd() * lvl) + mod;
|
||||
super(0x100, StatType.MAX_HP);
|
||||
}
|
||||
|
||||
return value + (max + min) / 2;
|
||||
}
|
||||
});
|
||||
public double calculate(L2Character c, CharacterTemplate t, double value) {
|
||||
int lvl = c.getLevel() - t.getMinimumLevel();
|
||||
double mod = t.getBaseHPModifier() * lvl;
|
||||
double max = (t.getBaseHPAdd() + mod) * lvl;
|
||||
double min = (t.getBaseHPAdd() * lvl) + mod;
|
||||
|
||||
return value + (max + min) / 2;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,6 +18,7 @@ package com.l2jserver.model.world.character.calculator;
|
||||
|
||||
import com.l2jserver.model.template.CharacterTemplate;
|
||||
import com.l2jserver.model.world.L2Character;
|
||||
import com.l2jserver.model.world.actor.stat.StatType;
|
||||
|
||||
/**
|
||||
* Calculates the character base MP
|
||||
@@ -32,19 +33,18 @@ import com.l2jserver.model.world.L2Character;
|
||||
*
|
||||
* @author <a href="http://www.rogiel.com">Rogiel</a>
|
||||
*/
|
||||
public class MaximumMPAddCalculator extends CharacterCalculator {
|
||||
public class MaximumMPAddCalculator extends CharacterFormula {
|
||||
public MaximumMPAddCalculator() {
|
||||
super(new CharacterCalculatorFunction(0x100) {
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t,
|
||||
double value) {
|
||||
int lvl = c.getLevel() - t.getMinimumLevel();
|
||||
double mod = t.getBaseMPModifier() * lvl;
|
||||
double max = (t.getBaseMPAdd() + mod) * lvl;
|
||||
double min = (t.getBaseMPAdd() * lvl) + mod;
|
||||
super(0x100, StatType.MAX_MP);
|
||||
}
|
||||
|
||||
return value + (max + min) / 2;
|
||||
}
|
||||
});
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t, double value) {
|
||||
int lvl = c.getLevel() - t.getMinimumLevel();
|
||||
double mod = t.getBaseMPModifier() * lvl;
|
||||
double max = (t.getBaseMPAdd() + mod) * lvl;
|
||||
double min = (t.getBaseMPAdd() * lvl) + mod;
|
||||
|
||||
return value + (max + min) / 2;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,8 +18,8 @@ package com.l2jserver.model.world.character.calculator.base;
|
||||
|
||||
import com.l2jserver.model.template.CharacterTemplate;
|
||||
import com.l2jserver.model.world.L2Character;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculator;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunction;
|
||||
import com.l2jserver.model.world.actor.stat.StatType;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterFormula;
|
||||
|
||||
/**
|
||||
* Calculates the character base accuracy.
|
||||
@@ -30,14 +30,13 @@ import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunctio
|
||||
*
|
||||
* @author <a href="http://www.rogiel.com">Rogiel</a>
|
||||
*/
|
||||
public class CharacterBaseAttackAccuracyCalculator extends CharacterCalculator {
|
||||
public class CharacterBaseAttackAccuracyCalculator extends CharacterFormula {
|
||||
public CharacterBaseAttackAccuracyCalculator() {
|
||||
super(new CharacterCalculatorFunction(0x000) {
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t,
|
||||
double value) {
|
||||
return t.getBaseAccuracy();
|
||||
}
|
||||
});
|
||||
super(0x000, StatType.ACCURACY_COMBAT);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t, double value) {
|
||||
return t.getBaseAccuracy();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,8 +18,8 @@ package com.l2jserver.model.world.character.calculator.base;
|
||||
|
||||
import com.l2jserver.model.template.CharacterTemplate;
|
||||
import com.l2jserver.model.world.L2Character;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculator;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunction;
|
||||
import com.l2jserver.model.world.actor.stat.StatType;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterFormula;
|
||||
|
||||
/**
|
||||
* Calculates the character evasion
|
||||
@@ -30,14 +30,13 @@ import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunctio
|
||||
*
|
||||
* @author <a href="http://www.rogiel.com">Rogiel</a>
|
||||
*/
|
||||
public class CharacterBaseAttackEvasionCalculator extends CharacterCalculator {
|
||||
public class CharacterBaseAttackEvasionCalculator extends CharacterFormula {
|
||||
public CharacterBaseAttackEvasionCalculator() {
|
||||
super(new CharacterCalculatorFunction(0x000) {
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t,
|
||||
double value) {
|
||||
return t.getBaseEvasion();
|
||||
}
|
||||
});
|
||||
super(0x000, StatType.EVASION_RATE);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t, double value) {
|
||||
return t.getBaseEvasion();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,8 +18,8 @@ package com.l2jserver.model.world.character.calculator.base;
|
||||
|
||||
import com.l2jserver.model.template.CharacterTemplate;
|
||||
import com.l2jserver.model.world.L2Character;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculator;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunction;
|
||||
import com.l2jserver.model.world.actor.stat.StatType;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterFormula;
|
||||
|
||||
/**
|
||||
* Calculates the character maximum CP
|
||||
@@ -30,14 +30,13 @@ import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunctio
|
||||
*
|
||||
* @author <a href="http://www.rogiel.com">Rogiel</a>
|
||||
*/
|
||||
public class CharacterBaseCPCalculator extends CharacterCalculator {
|
||||
public class CharacterBaseCPCalculator extends CharacterFormula {
|
||||
public CharacterBaseCPCalculator() {
|
||||
super(new CharacterCalculatorFunction(0x000) {
|
||||
@Override
|
||||
public double calculate(L2Character c, CharacterTemplate t,
|
||||
double value) {
|
||||
return t.getBaseCP();
|
||||
}
|
||||
});
|
||||
super(0x000, StatType.MAX_CP);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double calculate(L2Character c, CharacterTemplate t, double value) {
|
||||
return t.getBaseCP();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,8 +18,8 @@ package com.l2jserver.model.world.character.calculator.base;
|
||||
|
||||
import com.l2jserver.model.template.CharacterTemplate;
|
||||
import com.l2jserver.model.world.L2Character;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculator;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunction;
|
||||
import com.l2jserver.model.world.actor.stat.StatType;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterFormula;
|
||||
|
||||
/**
|
||||
* Calculates the character concentration
|
||||
@@ -30,14 +30,13 @@ import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunctio
|
||||
*
|
||||
* @author <a href="http://www.rogiel.com">Rogiel</a>
|
||||
*/
|
||||
public class CharacterBaseConcentrationCalculator extends CharacterCalculator {
|
||||
public class CharacterBaseConcentrationCalculator extends CharacterFormula {
|
||||
public CharacterBaseConcentrationCalculator() {
|
||||
super(new CharacterCalculatorFunction(0x000) {
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t,
|
||||
double value) {
|
||||
return t.getBaseConcentration();
|
||||
}
|
||||
});
|
||||
super(0x000, StatType.STAT_CON);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t, double value) {
|
||||
return t.getBaseConcentration();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,8 +18,8 @@ package com.l2jserver.model.world.character.calculator.base;
|
||||
|
||||
import com.l2jserver.model.template.CharacterTemplate;
|
||||
import com.l2jserver.model.world.L2Character;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculator;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunction;
|
||||
import com.l2jserver.model.world.actor.stat.StatType;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterFormula;
|
||||
|
||||
/**
|
||||
* Calculates the character base dexterity
|
||||
@@ -30,14 +30,13 @@ import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunctio
|
||||
*
|
||||
* @author <a href="http://www.rogiel.com">Rogiel</a>
|
||||
*/
|
||||
public class CharacterBaseDexterityCalculator extends CharacterCalculator {
|
||||
public class CharacterBaseDexterityCalculator extends CharacterFormula {
|
||||
public CharacterBaseDexterityCalculator() {
|
||||
super(new CharacterCalculatorFunction(0x000) {
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t,
|
||||
double value) {
|
||||
return t.getBaseDexterity();
|
||||
}
|
||||
});
|
||||
super(0x000, StatType.STAT_DEX);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t, double value) {
|
||||
return t.getBaseDexterity();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,8 +18,8 @@ package com.l2jserver.model.world.character.calculator.base;
|
||||
|
||||
import com.l2jserver.model.template.CharacterTemplate;
|
||||
import com.l2jserver.model.world.L2Character;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculator;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunction;
|
||||
import com.l2jserver.model.world.actor.stat.StatType;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterFormula;
|
||||
|
||||
/**
|
||||
* Calculates the character maximum HP
|
||||
@@ -30,14 +30,13 @@ import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunctio
|
||||
*
|
||||
* @author <a href="http://www.rogiel.com">Rogiel</a>
|
||||
*/
|
||||
public class CharacterBaseHPCalculator extends CharacterCalculator {
|
||||
public class CharacterBaseHPCalculator extends CharacterFormula {
|
||||
public CharacterBaseHPCalculator() {
|
||||
super(new CharacterCalculatorFunction(0x000) {
|
||||
@Override
|
||||
public double calculate(L2Character c, CharacterTemplate t,
|
||||
double value) {
|
||||
return t.getBaseHP();
|
||||
}
|
||||
});
|
||||
super(0x000, StatType.MAX_HP);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double calculate(L2Character c, CharacterTemplate t, double value) {
|
||||
return t.getBaseHP();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,8 +18,8 @@ package com.l2jserver.model.world.character.calculator.base;
|
||||
|
||||
import com.l2jserver.model.template.CharacterTemplate;
|
||||
import com.l2jserver.model.world.L2Character;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculator;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunction;
|
||||
import com.l2jserver.model.world.actor.stat.StatType;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterFormula;
|
||||
|
||||
/**
|
||||
* Calculates the character base intelligence
|
||||
@@ -30,14 +30,13 @@ import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunctio
|
||||
*
|
||||
* @author <a href="http://www.rogiel.com">Rogiel</a>
|
||||
*/
|
||||
public class CharacterBaseIntelligenceCalculator extends CharacterCalculator {
|
||||
public class CharacterBaseIntelligenceCalculator extends CharacterFormula {
|
||||
public CharacterBaseIntelligenceCalculator() {
|
||||
super(new CharacterCalculatorFunction(0x000) {
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t,
|
||||
double value) {
|
||||
return t.getBaseIntelligence();
|
||||
}
|
||||
});
|
||||
super(0x000, StatType.STAT_INT);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t, double value) {
|
||||
return t.getBaseIntelligence();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,11 +18,11 @@ package com.l2jserver.model.world.character.calculator.base;
|
||||
|
||||
import com.l2jserver.model.template.CharacterTemplate;
|
||||
import com.l2jserver.model.world.L2Character;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculator;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunction;
|
||||
import com.l2jserver.model.world.actor.stat.StatType;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterFormula;
|
||||
|
||||
/**
|
||||
* Calculates the character maximum HP
|
||||
* Calculates the character maximum MP
|
||||
*
|
||||
* <pre>
|
||||
* return c.getTemplate().getBaseMP();
|
||||
@@ -30,14 +30,13 @@ import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunctio
|
||||
*
|
||||
* @author <a href="http://www.rogiel.com">Rogiel</a>
|
||||
*/
|
||||
public class CharacterBaseMPCalculator extends CharacterCalculator {
|
||||
public class CharacterBaseMPCalculator extends CharacterFormula {
|
||||
public CharacterBaseMPCalculator() {
|
||||
super(new CharacterCalculatorFunction(0x000) {
|
||||
@Override
|
||||
public double calculate(L2Character c, CharacterTemplate t,
|
||||
double value) {
|
||||
return t.getBaseBaseMP();
|
||||
}
|
||||
});
|
||||
super(0x000, StatType.MAX_MP);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double calculate(L2Character c, CharacterTemplate t, double value) {
|
||||
return t.getBaseBaseMP();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,8 +18,8 @@ package com.l2jserver.model.world.character.calculator.base;
|
||||
|
||||
import com.l2jserver.model.template.CharacterTemplate;
|
||||
import com.l2jserver.model.world.L2Character;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculator;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunction;
|
||||
import com.l2jserver.model.world.actor.stat.StatType;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterFormula;
|
||||
|
||||
/**
|
||||
* Calculates the character base magical attack
|
||||
@@ -31,14 +31,13 @@ import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunctio
|
||||
*
|
||||
* @author <a href="http://www.rogiel.com">Rogiel</a>
|
||||
*/
|
||||
public class CharacterBaseMagicalAttackCalculator extends CharacterCalculator {
|
||||
public class CharacterBaseMagicalAttackCalculator extends CharacterFormula {
|
||||
public CharacterBaseMagicalAttackCalculator() {
|
||||
super(new CharacterCalculatorFunction(0x000) {
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t,
|
||||
double value) {
|
||||
return t.getBaseMagicalAttack();
|
||||
}
|
||||
});
|
||||
super(0x000, StatType.MAGIC_ATTACK);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t, double value) {
|
||||
return t.getBaseMagicalAttack();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,8 +18,8 @@ package com.l2jserver.model.world.character.calculator.base;
|
||||
|
||||
import com.l2jserver.model.template.CharacterTemplate;
|
||||
import com.l2jserver.model.world.L2Character;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculator;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunction;
|
||||
import com.l2jserver.model.world.actor.stat.StatType;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterFormula;
|
||||
|
||||
/**
|
||||
* Calculates the base magical attack speed
|
||||
@@ -30,14 +30,13 @@ import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunctio
|
||||
*
|
||||
* @author <a href="http://www.rogiel.com">Rogiel</a>
|
||||
*/
|
||||
public class CharacterBaseMagicalAttackSpeedCalculator extends CharacterCalculator {
|
||||
public class CharacterBaseMagicalAttackSpeedCalculator extends CharacterFormula {
|
||||
public CharacterBaseMagicalAttackSpeedCalculator() {
|
||||
super(new CharacterCalculatorFunction(0x000) {
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t,
|
||||
double value) {
|
||||
return t.getBaseMagicalAttackSpeed();
|
||||
}
|
||||
});
|
||||
super(0x000, StatType.MAGIC_ATTACK_SPEED);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t, double value) {
|
||||
return t.getBaseMagicalAttackSpeed();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,8 +18,8 @@ package com.l2jserver.model.world.character.calculator.base;
|
||||
|
||||
import com.l2jserver.model.template.CharacterTemplate;
|
||||
import com.l2jserver.model.world.L2Character;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculator;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunction;
|
||||
import com.l2jserver.model.world.actor.stat.StatType;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterFormula;
|
||||
|
||||
/**
|
||||
* Calculates the base magical attack critical rate
|
||||
@@ -32,14 +32,13 @@ import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunctio
|
||||
* @author <a href="http://www.rogiel.com">Rogiel</a>
|
||||
*/
|
||||
public class CharacterBaseMagicalCriticalRateCalculator extends
|
||||
CharacterCalculator {
|
||||
CharacterFormula {
|
||||
public CharacterBaseMagicalCriticalRateCalculator() {
|
||||
super(new CharacterCalculatorFunction(0x000) {
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t,
|
||||
double value) {
|
||||
return t.getBaseCritical();
|
||||
}
|
||||
});
|
||||
super(0x000, StatType.MCRITICAL_RATE);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t, double value) {
|
||||
return t.getBaseCritical();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,8 +18,8 @@ package com.l2jserver.model.world.character.calculator.base;
|
||||
|
||||
import com.l2jserver.model.template.CharacterTemplate;
|
||||
import com.l2jserver.model.world.L2Character;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculator;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunction;
|
||||
import com.l2jserver.model.world.actor.stat.StatType;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterFormula;
|
||||
|
||||
/**
|
||||
* Calculates the character base magical defense.
|
||||
@@ -41,14 +41,13 @@ import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunctio
|
||||
*
|
||||
* @author <a href="http://www.rogiel.com">Rogiel</a>
|
||||
*/
|
||||
public class CharacterBaseMagicalDefenseCalculator extends CharacterCalculator {
|
||||
public class CharacterBaseMagicalDefenseCalculator extends CharacterFormula {
|
||||
public CharacterBaseMagicalDefenseCalculator() {
|
||||
super(new CharacterCalculatorFunction(0x000) {
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t,
|
||||
double value) {
|
||||
return t.getBaseMagicalDefense();
|
||||
}
|
||||
});
|
||||
super(0x000, StatType.MAGIC_DEFENSE);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t, double value) {
|
||||
return t.getBaseMagicalDefense();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,8 +18,8 @@ package com.l2jserver.model.world.character.calculator.base;
|
||||
|
||||
import com.l2jserver.model.template.CharacterTemplate;
|
||||
import com.l2jserver.model.world.L2Character;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculator;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunction;
|
||||
import com.l2jserver.model.world.actor.stat.StatType;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterFormula;
|
||||
|
||||
/**
|
||||
* Calculates the character base mentality
|
||||
@@ -30,14 +30,13 @@ import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunctio
|
||||
*
|
||||
* @author <a href="http://www.rogiel.com">Rogiel</a>
|
||||
*/
|
||||
public class CharacterBaseMentalityCalculator extends CharacterCalculator {
|
||||
public class CharacterBaseMentalityCalculator extends CharacterFormula {
|
||||
public CharacterBaseMentalityCalculator() {
|
||||
super(new CharacterCalculatorFunction(0x000) {
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t,
|
||||
double value) {
|
||||
return t.getBaseMentality();
|
||||
}
|
||||
});
|
||||
super(0x000, StatType.STAT_MEN);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t, double value) {
|
||||
return t.getBaseMentality();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,8 +18,8 @@ package com.l2jserver.model.world.character.calculator.base;
|
||||
|
||||
import com.l2jserver.model.template.CharacterTemplate;
|
||||
import com.l2jserver.model.world.L2Character;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculator;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunction;
|
||||
import com.l2jserver.model.world.actor.stat.StatType;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterFormula;
|
||||
|
||||
/**
|
||||
* Calculates the character base physical attack
|
||||
@@ -32,14 +32,13 @@ import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunctio
|
||||
*
|
||||
* @author <a href="http://www.rogiel.com">Rogiel</a>
|
||||
*/
|
||||
public class CharacterBasePhysicalAttackCalculator extends CharacterCalculator {
|
||||
public class CharacterBasePhysicalAttackCalculator extends CharacterFormula {
|
||||
public CharacterBasePhysicalAttackCalculator() {
|
||||
super(new CharacterCalculatorFunction(0x000) {
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t,
|
||||
double value) {
|
||||
return t.getBasePhysicalAttack();
|
||||
}
|
||||
});
|
||||
super(0x000, StatType.POWER_ATTACK);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t, double value) {
|
||||
return t.getBasePhysicalAttack();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,8 +18,8 @@ package com.l2jserver.model.world.character.calculator.base;
|
||||
|
||||
import com.l2jserver.model.template.CharacterTemplate;
|
||||
import com.l2jserver.model.world.L2Character;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculator;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunction;
|
||||
import com.l2jserver.model.world.actor.stat.StatType;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterFormula;
|
||||
|
||||
/**
|
||||
* Calculates the character base physical attack speed
|
||||
@@ -32,14 +32,13 @@ import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunctio
|
||||
* @author <a href="http://www.rogiel.com">Rogiel</a>
|
||||
*/
|
||||
public class CharacterBasePhysicalAttackSpeedCalculator extends
|
||||
CharacterCalculator {
|
||||
CharacterFormula {
|
||||
public CharacterBasePhysicalAttackSpeedCalculator() {
|
||||
super(new CharacterCalculatorFunction(0x000) {
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t,
|
||||
double value) {
|
||||
return t.getBasePhysicalAttackSpeed();
|
||||
}
|
||||
});
|
||||
super(0x000, StatType.POWER_ATTACK_SPEED);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t, double value) {
|
||||
return t.getBasePhysicalAttackSpeed();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,8 +18,8 @@ package com.l2jserver.model.world.character.calculator.base;
|
||||
|
||||
import com.l2jserver.model.template.CharacterTemplate;
|
||||
import com.l2jserver.model.world.L2Character;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculator;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunction;
|
||||
import com.l2jserver.model.world.actor.stat.StatType;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterFormula;
|
||||
|
||||
/**
|
||||
* Calculates the character base critical rate
|
||||
@@ -33,14 +33,13 @@ import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunctio
|
||||
* @author <a href="http://www.rogiel.com">Rogiel</a>
|
||||
*/
|
||||
public class CharacterBasePhysicalCriticalRateCalculator extends
|
||||
CharacterCalculator {
|
||||
CharacterFormula {
|
||||
public CharacterBasePhysicalCriticalRateCalculator() {
|
||||
super(new CharacterCalculatorFunction(0x000) {
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t,
|
||||
double value) {
|
||||
return t.getBaseCritical();
|
||||
}
|
||||
});
|
||||
super(0x000, StatType.CRITICAL_RATE);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t, double value) {
|
||||
return t.getBaseCritical();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,8 +18,8 @@ package com.l2jserver.model.world.character.calculator.base;
|
||||
|
||||
import com.l2jserver.model.template.CharacterTemplate;
|
||||
import com.l2jserver.model.world.L2Character;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculator;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunction;
|
||||
import com.l2jserver.model.world.actor.stat.StatType;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterFormula;
|
||||
|
||||
/**
|
||||
* Calculates the character base physical defense
|
||||
@@ -43,14 +43,13 @@ import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunctio
|
||||
*
|
||||
* @author <a href="http://www.rogiel.com">Rogiel</a>
|
||||
*/
|
||||
public class CharacterBasePhysicalDefenseCalculator extends CharacterCalculator {
|
||||
public class CharacterBasePhysicalDefenseCalculator extends CharacterFormula {
|
||||
public CharacterBasePhysicalDefenseCalculator() {
|
||||
super(new CharacterCalculatorFunction(0x000) {
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t,
|
||||
double value) {
|
||||
return t.getBasePhysicalDefense();
|
||||
}
|
||||
});
|
||||
super(0x000, StatType.POWER_DEFENSE);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t, double value) {
|
||||
return t.getBasePhysicalDefense();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,8 +18,8 @@ package com.l2jserver.model.world.character.calculator.base;
|
||||
|
||||
import com.l2jserver.model.template.CharacterTemplate;
|
||||
import com.l2jserver.model.world.L2Character;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculator;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunction;
|
||||
import com.l2jserver.model.world.actor.stat.StatType;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterFormula;
|
||||
|
||||
/**
|
||||
* Calculates the character base run speed
|
||||
@@ -31,14 +31,13 @@ import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunctio
|
||||
*
|
||||
* @author <a href="http://www.rogiel.com">Rogiel</a>
|
||||
*/
|
||||
public class CharacterBaseRunSpeedCalculator extends CharacterCalculator {
|
||||
public class CharacterBaseRunSpeedCalculator extends CharacterFormula {
|
||||
public CharacterBaseRunSpeedCalculator() {
|
||||
super(new CharacterCalculatorFunction(0x000) {
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t,
|
||||
double value) {
|
||||
return t.getBaseRunSpeed();
|
||||
}
|
||||
});
|
||||
super(0x000, StatType.RUN_SPEED);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t, double value) {
|
||||
return t.getBaseRunSpeed();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,8 +18,8 @@ package com.l2jserver.model.world.character.calculator.base;
|
||||
|
||||
import com.l2jserver.model.template.CharacterTemplate;
|
||||
import com.l2jserver.model.world.L2Character;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculator;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunction;
|
||||
import com.l2jserver.model.world.actor.stat.StatType;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterFormula;
|
||||
|
||||
/**
|
||||
* Calculates the character base strength
|
||||
@@ -30,14 +30,13 @@ import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunctio
|
||||
*
|
||||
* @author <a href="http://www.rogiel.com">Rogiel</a>
|
||||
*/
|
||||
public class CharacterBaseStrengthCalculator extends CharacterCalculator {
|
||||
public class CharacterBaseStrengthCalculator extends CharacterFormula {
|
||||
public CharacterBaseStrengthCalculator() {
|
||||
super(new CharacterCalculatorFunction(0x000) {
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t,
|
||||
double value) {
|
||||
return t.getBaseStrength();
|
||||
}
|
||||
});
|
||||
super(0x000, StatType.STAT_STR);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t, double value) {
|
||||
return t.getBaseStrength();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,8 +18,8 @@ package com.l2jserver.model.world.character.calculator.base;
|
||||
|
||||
import com.l2jserver.model.template.CharacterTemplate;
|
||||
import com.l2jserver.model.world.L2Character;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculator;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunction;
|
||||
import com.l2jserver.model.world.actor.stat.StatType;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterFormula;
|
||||
|
||||
/**
|
||||
* Calculates the character base walk speed
|
||||
@@ -31,14 +31,13 @@ import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunctio
|
||||
*
|
||||
* @author <a href="http://www.rogiel.com">Rogiel</a>
|
||||
*/
|
||||
public class CharacterBaseWalkSpeedCalculator extends CharacterCalculator {
|
||||
public class CharacterBaseWalkSpeedCalculator extends CharacterFormula {
|
||||
public CharacterBaseWalkSpeedCalculator() {
|
||||
super(new CharacterCalculatorFunction(0x000) {
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t,
|
||||
double value) {
|
||||
return t.getBaseWalkSpeed();
|
||||
}
|
||||
});
|
||||
super(0x000, StatType.WALK_SPEED);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t, double value) {
|
||||
return t.getBaseWalkSpeed();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,8 +18,8 @@ package com.l2jserver.model.world.character.calculator.base;
|
||||
|
||||
import com.l2jserver.model.template.CharacterTemplate;
|
||||
import com.l2jserver.model.world.L2Character;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculator;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunction;
|
||||
import com.l2jserver.model.world.actor.stat.StatType;
|
||||
import com.l2jserver.model.world.character.calculator.CharacterFormula;
|
||||
|
||||
/**
|
||||
* Calculates the character base witness
|
||||
@@ -30,14 +30,13 @@ import com.l2jserver.model.world.character.calculator.CharacterCalculatorFunctio
|
||||
*
|
||||
* @author <a href="http://www.rogiel.com">Rogiel</a>
|
||||
*/
|
||||
public class CharacterBaseWitnessCalculator extends CharacterCalculator {
|
||||
public class CharacterBaseWitnessCalculator extends CharacterFormula {
|
||||
public CharacterBaseWitnessCalculator() {
|
||||
super(new CharacterCalculatorFunction(0x000) {
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t,
|
||||
double value) {
|
||||
return t.getBaseWitness();
|
||||
}
|
||||
});
|
||||
super(0x000, StatType.STAT_WIT);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected double calculate(L2Character c, CharacterTemplate t, double value) {
|
||||
return t.getBaseWitness();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user