-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTortoise.java
47 lines (40 loc) · 1.67 KB
/
Tortoise.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import javafx.scene.paint.Color;
import java.util.List;
public class Tortoise extends Animal {
Tortoise(MyField[][] fields, List<Organism> organisms) {
super(fields, AllOrganisms.TORTOISE.strength, AllOrganisms.TORTOISE.initiation, AllOrganisms.TORTOISE.color, AllOrganisms.TORTOISE.name, organisms);
}
Tortoise(MyField[][] fields, List<Organism> organisms, int posX, int posY) {
super(fields, AllOrganisms.TORTOISE.strength, AllOrganisms.TORTOISE.initiation, AllOrganisms.TORTOISE.color, AllOrganisms.TORTOISE.name, organisms, posX, posY);
}
Tortoise(MyField[][] fields, List<Organism> organisms, int posX, int posY, int str, int init, String name, Color color, boolean toDelete, int cooldown, int age) {
super(fields, organisms, str, init, color, name, posX, posY, toDelete, age, cooldown);
}
@Override
int reflectedAttack(Organism opponent) {
if (opponent.strength < 5) {
return -1;
}
return 0;
}
@Override
void reproduction(Organism parent) {
MyField emptyFieldForChild = getNearbyEmptyField(parent);
if (emptyFieldForChild != null && (age >= 0 || parent.age >= 0)) {
announcements += (name + " reproduces\n");
Tortoise child = new Tortoise(fields, organisms, emptyFieldForChild.getX(), emptyFieldForChild.getY());
organisms.add(child);
}
}
@Override
void setMovePosition() {
addToX = 0;
addToY = 0;
if (generator.nextInt(4) == 1) {
if (generator.nextBoolean())
addToX = getRandomMovement();
else
addToY = getRandomMovement();
}
}
}