public class Pokemon
extends java.lang.Object
Type
)Move
)Stat
)- определяют способности покемона, например очки здоровья, скорость,
силу атаки и защиты. Базовые характеристики не изменяются в течение жизни покемона. Однако, их
эффективные значения зависят от уровня покемона.
Есть две скрытые характеристики - точность и уклоняемость. Они устанавливаются на 100% перед боем.
Constructor and Description |
---|
Pokemon()
Конструктор по умолчанию.
|
Pokemon(java.lang.String name,
int level)
Конструктор задает имя и уровень покемона.
|
Modifier and Type | Method and Description |
---|---|
void |
addEffect(Effect e)
Добавляет эффект (
Effect ), влияющий на покемона. |
protected void |
addMove(Move move)
Добавляет покемону атаку.
|
protected void |
addType(Type type)
добавяет покемону тип (
Type ), если у покемона только один тип. |
boolean |
attack(Pokemon foe)
Атакует покемона-соперника.
|
void |
confuse()
Устанавливает состояние растерянности покемона.
|
Status |
getCondition()
Возвращает состояние покемона
|
double |
getHP()
Возвращает количество текущих HP с учетом повреждения.
|
int |
getLevel()
Возвращает уровень покемона
|
protected Move |
getPreparedMove()
возвращает подготовленную атаку
|
double |
getStat(Stat stat)
Возвращает эффективное боевое значение характеристики покемона с учетом его уровня
и воможных действующих на покемона эффектов.
|
Type[] |
getTypes()
Возвращает массив типов покемона
|
boolean |
hasType(Type type)
Проверяет, есть ли у покемона данный тип (
Type ). |
boolean |
isAlive()
Возвращает true, если покемон в сознании
|
void |
prepareMove()
подготавливает для применения одну из доступных атак.
|
void |
restore()
Восстанавливает исходное состояние покемона.
|
void |
setCondition(Effect e)
Устанавливает состояние покемона (
Status ). |
void |
setLevel(int level)
Устанавливает уровень покемона
|
void |
setMod(Stat stat,
int value)
Устанавливает модификатор характеристики.
|
protected void |
setMove(Move... moves)
устанавливает одну или несколько атак
При повторном вызове предыдущие атаки заменяются новыми.
|
void |
setStats(double hp,
double att,
double def,
double spAtt,
double spDef,
double speed)
Устанавливает базовые значения характеристик покемона в виде вещественных чисел
|
protected void |
setType(Type... types)
устанавливает один или два типа покемона
|
java.lang.String |
toString()
возвращает вид и имя покемона
|
void |
turn()
Должен быть вызван в конце каждого хода, в этом методе срабатывают все эффекты
|
public Pokemon(java.lang.String name, int level)
name
- строка, задающая имя покемонаlevel
- целое число, задающее уровеньpublic Pokemon()
public final void setStats(double hp, double att, double def, double spAtt, double spDef, double speed)
hp
- очки здоровья (HP - health points)att
- обычная атака (attack)def
- обычная защита (defense)spAtt
- специальная атака (special attack)spDef
- специальная защита (special defense)speed
- скорость (speed)public final void setLevel(int level)
level
- целочисленный уровень (от 1 до 100)public final double getStat(Stat stat)
stat
- индекс характеристики - одно из значений перечисления Stat
public final boolean hasType(Type type)
Type
).type
- проверяемый типpublic final void addEffect(Effect e)
Effect
), влияющий на покемона. Эффекты могут накапливаться.
Данный метод лучше всего использовать для эффектов, которые либо изменяют несколько характеристик
одновременно, либо продолжаются в течение нескольких ходов.
Для установки состояния следует использовать метод setCondition(Effect)
e
- накладываемый эффектpublic final void setCondition(Effect e)
Status
).
Может быть одного из 6 видов: нормальное, горение, заморозка, паралич, отравление, сон.
Новое состояние заменяет предыдущее.e
- накладываемый эффектpublic final Status getCondition()
public final void confuse()
public final void restore()
public final double getHP()
public final void setMod(Stat stat, int value)
Модификатор | Изменение характеристики | |
---|---|---|
обычной | скрытой | |
+6 | в 4 раза больше | в 3 раза больше |
+4 | в 3 раза больше | в 2.33 раза больше |
+3 | в 2,5 раза больше | в 2 раза больше |
+2 | в 2 раза больше | в 1,67 раза больше |
-2 | в 2 раза меньше | в 1,67 раза меньше |
-3 | в 2,5 раза меньше | в 2 раза меньше |
-4 | в 3 раза меньше | в 2.33 раза меньше |
-6 | в 4 раза меньше | в 3 раза меньше |
stat
- именяемая характеристикаvalue
- величина измененияpublic final Type[] getTypes()
public final int getLevel()
public final void prepareMove()
public final boolean isAlive()
public final boolean attack(Pokemon foe)
foe
- ссылка на атакуемого покемонаpublic final void turn()
protected final void setType(Type... types)
types
- один или несколько типов покемона (Type
).protected final void addType(Type type)
Type
), если у покемона только один тип.
Если у покемона уже есть 2 типа, то метод ничего не делает.type
- тип покемона.protected final void setMove(Move... moves)
moves
- одна или несколько атак (Move
).protected final void addMove(Move move)
move
- добавляемая атакаprotected final Move getPreparedMove()
Move
- атаку, которую покемон собирается применить в этот ход.public final java.lang.String toString()
toString
in class java.lang.Object