public abstract class DamageMove extends Move
Move.
Является предком классов PhysicalMove и SpecialMove| Constructor and Description |
|---|
DamageMove() |
DamageMove(Type type,
double pow,
double acc) |
DamageMove(Type type,
double pow,
double acc,
int priority,
int hits) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
applyOppDamage(Pokemon def,
double damage)
Метод, применяющий вычисленное повреждение к обороняющемуся покемону.
|
protected void |
applySelfDamage(Pokemon att,
double damage)
Метод, применяющий вычисленное повреждение к атакующему покемону.
|
void |
attack(Pokemon att,
Pokemon def)
Метод, реализующий атаку.
|
protected abstract double |
calcAttDefFactor(Pokemon att,
Pokemon def)
Абстрактный метод для расчета фактора, учитывающего соотношение атаки и защиты.
|
protected double |
calcBaseDamage(Pokemon att,
Pokemon def)
Метод для расчета базового повреждения.
|
protected double |
calcCriticalHit(Pokemon att,
Pokemon def)
Метод, учитывающий веротность и силу критического удара.
|
protected double |
calcRandomDamage(Pokemon att,
Pokemon def)
Метод для расчета случайной части повреждения.
|
protected double |
calcSameTypeAttackBonus(Pokemon att,
Pokemon def)
Метод для расчета бонуса, если тип атакующего покемона совпадает с типом атаки.
|
protected double |
calcTypeEffect(Pokemon att,
Pokemon def)
Метод для расчета влияния типа атаки и типов покемона.
|
applyOppEffects, applySelfEffects, checkAccuracy, describe, getConfusionMove, getNoMove, getPriority, getStruggleMovepublic DamageMove()
public DamageMove(Type type, double pow, double acc)
public DamageMove(Type type, double pow, double acc, int priority, int hits)
protected double calcBaseDamage(Pokemon att, Pokemon def)
att - атакующий покемонdef - обороняющийся покемонprotected abstract double calcAttDefFactor(Pokemon att, Pokemon def)
att - атакующий покемонdef - обороняющийся покемонprotected double calcTypeEffect(Pokemon att, Pokemon def)
att - атакующий покемонdef - обороняющийся покемонprotected double calcCriticalHit(Pokemon att, Pokemon def)
Может быть переопределен, если для конкретной атаки критический удар работает по-другому.
att - атакующий покемонdef - обороняющийся покемонprotected double calcSameTypeAttackBonus(Pokemon att, Pokemon def)
att - атакующий покемонdef - обороняющийся покемонprotected double calcRandomDamage(Pokemon att, Pokemon def)
return Math.random() + 0.15 + 0.85;
att - атакующий покемонdef - обороняющийся покемонpublic final void attack(Pokemon att, Pokemon def)
Move.checkAccuracy(Pokemon, Pokemon)
Затем считает повреждение, как функцию различных величин, также вычисляемых с помощью методов. При написании
собственных атак некоторые из этих методов нужно будет переопределить:
После вычисления расчетного повреждения вызываются методы:
для применения повреждения и других эффектов к обороняющемуся и атакующему покемонам.protected void applyOppDamage(Pokemon def, double damage)
def.setMod(Stat.HP, (int) Math.round(damage));
def - обороняющийся покемонdamage - расчетное повреждениеprotected void applySelfDamage(Pokemon att, double damage)
att - атакующий покемонdamage - расчетное повреждение обороняющегося покемона