Я создаю игру про покемонов для школьного проекта, и мне трудно сделать так, чтобы каждый объект в моем массиве был затронут этим методом.Я хочу, чтобы все огненные персонажи получали двойной урон от водных атак.
Проблема в том, что метод attack
работает только на одном character
.
Я обнаружил, чтоможет быть затронут только 1 объект в массиве, но я хочу, чтобы он был общим для каждого отдельного объекта и символа, которые я делаю.
Мой массив
ArrayList<Attacks> attacks;
ArrayList<Characters> characters;
attacks = new ArrayList<Attacks>();
characters = new ArrayList<Characters>();
Мой класс атаки
//Stats--------------
private int damage;
private int accuracy;
private int critChance;
//Typ----------------------
boolean fire;
boolean water;
public Attacks(int damage , int accuracy , int critChance , boolean fire , boolean water) {
this.accuracy = accuracy;
this.critChance = critChance;
this.damage = damage;
this.fire = fire;
this.water = water;
}
public boolean isFire(){
return fire;
}
public int getDamage(){
return damage;
}
public boolean isWater(){
return water;
}
}
Мой класс персонажей
//Types
private boolean fire;
public int health;
public Characters(int health, boolean fire) {
this.health = health;
this.fire = fire;
}
public boolean characterIsFire()
{
return fire;
}
public int getHealth() {
return health;
}
}
Мои конструкторы для моих объектов
//Construktor for Characters--------------------
final Characters fredrik = new Characters(1000 , false);
characters.add(fredrik);
final Characters jonte = new Characters(1000 , false);
characters.add(jonte);
//Construktor for attacker -------------------
//Fredriks attacks
final Attacks fireball = new Attacks(1 , 10 , 10 , false , true);
attacks.add(fireball);
final Attacks heatwave = new Attacks(1 , 0 , 10 , true , false);
attacks.add(heatwave);
//Jontes attacks
final Attacks waterball = new Attacks(3 , 0, 4, false , true);
attacks.add(waterball);
Мой метод, которым я хочу, чтобы все персонажи и атаки были затронуты.
public int attacking(Attacks a) {
int damage;
Characters attacked = characters.get(//All the characters in the array);
if (attacked.characterIsFire() && a.isWater())
{
damage = (a.getDamage() * 2);
}
else
{
damage = a.getDamage();
}
return damage;
}