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 - индекс характеристики - одно из значений перечисления Statpublic 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