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, getStruggleMove
public 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
- расчетное повреждение обороняющегося покемона