Complete lab2
This commit is contained in:
parent
a8b51c559a
commit
e50b766563
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
*.iml
|
||||
out
|
||||
.idea
|
||||
16
Main.java
16
Main.java
@ -1,9 +1,17 @@
|
||||
import Pokemons.Gallade;
|
||||
import Pokemons.Kirlia;
|
||||
import Pokemons.Volcanion;
|
||||
import ru.ifmo.se.pokemon.*;
|
||||
|
||||
// Вариант 6310199
|
||||
|
||||
public class Main {
|
||||
static public void main(String args[]) {
|
||||
System.out.println("Hello world");
|
||||
};
|
||||
}
|
||||
static public void main(String[] args) {
|
||||
Battle b = new Battle();
|
||||
Pokemon p1 = new Gallade("Чужой", 1);
|
||||
Pokemon p2 = new Volcanion("Хищник", 1);
|
||||
b.addAlly(p1);
|
||||
b.addFoe(p2);
|
||||
b.go();
|
||||
}
|
||||
}
|
||||
|
||||
24
Moves/Blizzard.java
Normal file
24
Moves/Blizzard.java
Normal file
@ -0,0 +1,24 @@
|
||||
package Moves;
|
||||
|
||||
import ru.ifmo.se.pokemon.Effect;
|
||||
import ru.ifmo.se.pokemon.Pokemon;
|
||||
import ru.ifmo.se.pokemon.SpecialMove;
|
||||
import ru.ifmo.se.pokemon.Type;
|
||||
|
||||
public class Blizzard extends SpecialMove {
|
||||
public Blizzard() {
|
||||
super(Type.ICE, 110, 70);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void applyOppEffects(Pokemon p) {
|
||||
if (Math.random() < 0.1) {
|
||||
Effect.freeze(p);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String describe() {
|
||||
return "близзует";
|
||||
}
|
||||
}
|
||||
24
Moves/BodySlam.java
Normal file
24
Moves/BodySlam.java
Normal file
@ -0,0 +1,24 @@
|
||||
package Moves;
|
||||
|
||||
import ru.ifmo.se.pokemon.Effect;
|
||||
import ru.ifmo.se.pokemon.PhysicalMove;
|
||||
import ru.ifmo.se.pokemon.Pokemon;
|
||||
import ru.ifmo.se.pokemon.Type;
|
||||
|
||||
public class BodySlam extends PhysicalMove {
|
||||
public BodySlam() {
|
||||
super(Type.NORMAL, 85, 100);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void applyOppEffects(Pokemon p) {
|
||||
if (Math.random() < 0.3) {
|
||||
Effect.paralyze(p);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String describe() {
|
||||
return "слэмит";
|
||||
}
|
||||
}
|
||||
18
Moves/CalmMind.java
Normal file
18
Moves/CalmMind.java
Normal file
@ -0,0 +1,18 @@
|
||||
package Moves;
|
||||
|
||||
import ru.ifmo.se.pokemon.Effect;
|
||||
import ru.ifmo.se.pokemon.Pokemon;
|
||||
import ru.ifmo.se.pokemon.Stat;
|
||||
import ru.ifmo.se.pokemon.StatusMove;
|
||||
|
||||
public class CalmMind extends StatusMove {
|
||||
@Override
|
||||
public void applySelfEffects(Pokemon p) {
|
||||
p.addEffect(new Effect().stat(Stat.SPECIAL_ATTACK, 1).stat(Stat.SPECIAL_DEFENSE, 1));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String describe() {
|
||||
return "выносит мозг";
|
||||
}
|
||||
}
|
||||
15
Moves/DazzlingGleam.java
Normal file
15
Moves/DazzlingGleam.java
Normal file
@ -0,0 +1,15 @@
|
||||
package Moves;
|
||||
|
||||
import ru.ifmo.se.pokemon.SpecialMove;
|
||||
import ru.ifmo.se.pokemon.Type;
|
||||
|
||||
public class DazzlingGleam extends SpecialMove {
|
||||
public DazzlingGleam() {
|
||||
super(Type.FAIRY, 80, 100);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String describe() {
|
||||
return "глемует";
|
||||
}
|
||||
}
|
||||
18
Moves/DoubleTeam.java
Normal file
18
Moves/DoubleTeam.java
Normal file
@ -0,0 +1,18 @@
|
||||
package Moves;
|
||||
|
||||
import ru.ifmo.se.pokemon.Effect;
|
||||
import ru.ifmo.se.pokemon.Pokemon;
|
||||
import ru.ifmo.se.pokemon.Stat;
|
||||
import ru.ifmo.se.pokemon.StatusMove;
|
||||
|
||||
public class DoubleTeam extends StatusMove {
|
||||
@Override
|
||||
public void applyOppEffects(Pokemon p) {
|
||||
p.addEffect(new Effect().stat(Stat.EVASION, 1));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String describe() {
|
||||
return "кооперируется";
|
||||
}
|
||||
}
|
||||
19
Moves/DrainingKiss.java
Normal file
19
Moves/DrainingKiss.java
Normal file
@ -0,0 +1,19 @@
|
||||
package Moves;
|
||||
|
||||
import ru.ifmo.se.pokemon.*;
|
||||
|
||||
public class DrainingKiss extends SpecialMove {
|
||||
public DrainingKiss() {
|
||||
super(Type.FAIRY, 50, 100);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void applySelfEffects(Pokemon p) {
|
||||
p.setMod(Stat.HP, -(int)(p.getHP()*0.75));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String describe() {
|
||||
return "целует";
|
||||
}
|
||||
}
|
||||
19
Moves/FocusBlast.java
Normal file
19
Moves/FocusBlast.java
Normal file
@ -0,0 +1,19 @@
|
||||
package Moves;
|
||||
|
||||
import ru.ifmo.se.pokemon.*;
|
||||
|
||||
public class FocusBlast extends SpecialMove {
|
||||
public FocusBlast() {
|
||||
super(Type.FIGHTING, 120, 70);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void applyOppEffects(Pokemon p) {
|
||||
p.addEffect(new Effect().chance(0.1).stat(Stat.SPECIAL_DEFENSE, -1));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String describe() {
|
||||
return "фокусируется";
|
||||
}
|
||||
}
|
||||
18
Moves/Growl.java
Normal file
18
Moves/Growl.java
Normal file
@ -0,0 +1,18 @@
|
||||
package Moves;
|
||||
|
||||
import ru.ifmo.se.pokemon.Effect;
|
||||
import ru.ifmo.se.pokemon.Pokemon;
|
||||
import ru.ifmo.se.pokemon.Stat;
|
||||
import ru.ifmo.se.pokemon.StatusMove;
|
||||
|
||||
public class Growl extends StatusMove {
|
||||
@Override
|
||||
public void applyOppEffects(Pokemon p) {
|
||||
p.addEffect(new Effect().stat(Stat.ATTACK, -6).turns(1));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String describe() {
|
||||
return "орёт";
|
||||
}
|
||||
}
|
||||
15
Moves/HydroPump.java
Normal file
15
Moves/HydroPump.java
Normal file
@ -0,0 +1,15 @@
|
||||
package Moves;
|
||||
|
||||
import ru.ifmo.se.pokemon.SpecialMove;
|
||||
import ru.ifmo.se.pokemon.Type;
|
||||
|
||||
public class HydroPump extends SpecialMove {
|
||||
public HydroPump() {
|
||||
super(Type.WATER, 110, 80);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String describe() {
|
||||
return "плюётся";
|
||||
}
|
||||
}
|
||||
19
Moves/Swagger.java
Normal file
19
Moves/Swagger.java
Normal file
@ -0,0 +1,19 @@
|
||||
package Moves;
|
||||
|
||||
import ru.ifmo.se.pokemon.Effect;
|
||||
import ru.ifmo.se.pokemon.Pokemon;
|
||||
import ru.ifmo.se.pokemon.Stat;
|
||||
import ru.ifmo.se.pokemon.StatusMove;
|
||||
|
||||
public class Swagger extends StatusMove {
|
||||
@Override
|
||||
public void applyOppEffects(Pokemon p) {
|
||||
Effect.confuse(p);
|
||||
p.addEffect(new Effect().stat(Stat.ATTACK, 2));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String describe() {
|
||||
return "кичлюет";
|
||||
}
|
||||
}
|
||||
23
Moves/ZenHeadbutt.java
Normal file
23
Moves/ZenHeadbutt.java
Normal file
@ -0,0 +1,23 @@
|
||||
package Moves;
|
||||
|
||||
import ru.ifmo.se.pokemon.Effect;
|
||||
import ru.ifmo.se.pokemon.PhysicalMove;
|
||||
import ru.ifmo.se.pokemon.Pokemon;
|
||||
import ru.ifmo.se.pokemon.Type;
|
||||
|
||||
public class ZenHeadbutt extends PhysicalMove {
|
||||
public ZenHeadbutt() {
|
||||
super(Type.PSYCHIC, 80, 90);
|
||||
}
|
||||
@Override
|
||||
public void applyOppEffects(Pokemon p) {
|
||||
if (Math.random() < 0.2) {
|
||||
Effect.flinch(p);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String describe() {
|
||||
return "головокрушит";
|
||||
}
|
||||
}
|
||||
14
Pokemons/Gallade.java
Normal file
14
Pokemons/Gallade.java
Normal file
@ -0,0 +1,14 @@
|
||||
package Pokemons;
|
||||
|
||||
import Moves.Swagger;
|
||||
import ru.ifmo.se.pokemon.Type;
|
||||
|
||||
public class Gallade extends Kirlia {
|
||||
|
||||
public Gallade(String name, int level) {
|
||||
super(name, level);
|
||||
setType(Type.PSYCHIC, Type.FIGHTING);
|
||||
setStats(68, 125, 65, 65, 115, 80);
|
||||
addMove(new Swagger());
|
||||
}
|
||||
}
|
||||
12
Pokemons/Kirlia.java
Normal file
12
Pokemons/Kirlia.java
Normal file
@ -0,0 +1,12 @@
|
||||
package Pokemons;
|
||||
|
||||
import Moves.DrainingKiss;
|
||||
|
||||
public class Kirlia extends Ralts {
|
||||
|
||||
public Kirlia(String name, int level) {
|
||||
super(name, level);
|
||||
setStats(38, 35, 35, 65, 55, 50);
|
||||
addMove(new DrainingKiss());
|
||||
}
|
||||
}
|
||||
15
Pokemons/Ralts.java
Normal file
15
Pokemons/Ralts.java
Normal file
@ -0,0 +1,15 @@
|
||||
package Pokemons;
|
||||
|
||||
import Moves.CalmMind;
|
||||
import Moves.DazzlingGleam;
|
||||
import ru.ifmo.se.pokemon.Pokemon;
|
||||
import ru.ifmo.se.pokemon.Type;
|
||||
|
||||
public class Ralts extends Pokemon {
|
||||
public Ralts(String name, int level) {
|
||||
super(name, level);
|
||||
setType(Type.PSYCHIC, Type.FAIRY);
|
||||
setStats(28, 25, 25, 45, 35, 40);
|
||||
setMove(new CalmMind(), new DazzlingGleam());
|
||||
}
|
||||
}
|
||||
11
Pokemons/Slowking.java
Normal file
11
Pokemons/Slowking.java
Normal file
@ -0,0 +1,11 @@
|
||||
package Pokemons;
|
||||
|
||||
import Moves.FocusBlast;
|
||||
|
||||
public class Slowking extends Slowpoke {
|
||||
public Slowking(String name, int level) {
|
||||
super(name, level);
|
||||
setStats(95, 75, 80, 110, 110, 30);
|
||||
addMove(new FocusBlast());
|
||||
}
|
||||
}
|
||||
16
Pokemons/Slowpoke.java
Normal file
16
Pokemons/Slowpoke.java
Normal file
@ -0,0 +1,16 @@
|
||||
package Pokemons;
|
||||
|
||||
import Moves.Blizzard;
|
||||
import Moves.Growl;
|
||||
import Moves.ZenHeadbutt;
|
||||
import ru.ifmo.se.pokemon.Pokemon;
|
||||
import ru.ifmo.se.pokemon.Type;
|
||||
|
||||
public class Slowpoke extends Pokemon {
|
||||
public Slowpoke(String name, int level) {
|
||||
super(name, level);
|
||||
setType(Type.WATER, Type.PSYCHIC);
|
||||
setStats(90, 65, 65, 40, 40, 15);
|
||||
setMove(new ZenHeadbutt(), new Growl(), new Blizzard());
|
||||
}
|
||||
}
|
||||
16
Pokemons/Volcanion.java
Normal file
16
Pokemons/Volcanion.java
Normal file
@ -0,0 +1,16 @@
|
||||
package Pokemons;
|
||||
|
||||
import Moves.BodySlam;
|
||||
import Moves.DoubleTeam;
|
||||
import Moves.HydroPump;
|
||||
import Moves.Swagger;
|
||||
import ru.ifmo.se.pokemon.*;
|
||||
|
||||
public class Volcanion extends Pokemon {
|
||||
public Volcanion(String name, int level) {
|
||||
super(name, level);
|
||||
setType(Type.FIRE, Type.WATER);
|
||||
setStats(80, 110, 120, 130, 90, 70);
|
||||
setMove(new Swagger(), new HydroPump(), new BodySlam(), new DoubleTeam());
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user