1.Weapon
public class Weapon {
private String name;
private Damage damage;
public Weapon (String name, int physical, int fire,int ice){
this.name = name;
this.damage = new Damage(physical,fire,ice);
}
void hit(Target target) {
target.setPhysicalDamage(this.damage.getWeaponPhysicalDamage());
target.setFireDamage(this.damage.getWeaponFireDamage());
target.setIceDamage(this.damage.getWeaponIceDamage());
}
}
2.Damage
public class Damage {
private int physicalDamage;
private int fireDamage;
private int iceDamage;
Damage (int physicalDamage, int fireDamage, int iceDamage) {
this.physicalDamage = physicalDamage;
this.fireDamage = fireDamage;
this.iceDamage = iceDamage;
}
public int getWeaponPhysicalDamage() {
return physicalDamage;
}
public int getWeaponFireDamage() {
return fireDamage;
}
public int getWeaponIceDamage() {
return iceDamage;
}
}
3.Target
public class Target {
private int physicalDamage;
private int fireDamage;
private int iceDamage;
public void setPhysicalDamage(int physicaltarget) {
physicalDamage = physicaltarget;
}
public void setFireDamage(int firetarget) {
fireDamage = firetarget;
}
public void setIceDamage(int icetarget) {
iceDamage = icetarget;
}
public int getPhysicalDamage() {
return physicalDamage;
}
public int getFireDamage() {
return fireDamage;
}
public int getIceDamage() {
return iceDamage;
}
}
4.IceGiant
public class IceGiant extends Target {
@Override
public void setIceDamage(int icetarget) {
System.out.println("\nЛедяной великан-игнорирует ледяной урон");
}
}
5.Ifrit
public class Ifrit extends Target {
@Override
public void setFireDamage(int firetarget) {
System.out.println("\nЭфрит-игнорирует огненный урон");
}
}
6.WeaponTest
public class WeaponTest {
@Test
public void Weapon () {
Weapon sword1 = new Weapon("Пылающий асфальт",50,50,0);
Weapon sword2 = new Weapon("Меч ночи в якутске",50,0,50);
IceGiant i = new IceGiant();
Ifrit f = new Ifrit();
sword1.hit(i);
System.out.println("Полученный урон от меча Пылающий асвальт: "+" " + "Физ.урон-"+ i.getPhysicalDamage() + " " +"Урон огнем-"+i.getFireDamage()+" "+
"Ледяной урон-" + i.getIceDamage());
sword2.hit(f);
System.out.println("Полученый урон от меча Ночь в Якутске: "+" " + "Физ.урон-"+ f.getPhysicalDamage() + " " +"Урон огнем-"+f.getFireDamage()+" "+
"Ледяной урон-" + f.getIceDamage());
}
}
Seryoga Zinovyev
1 уровень
Срочно нужна помощь.Как сделать так что бы урон накапливался а не только сохранялся последний урон?
Обсуждается
Комментарии (12)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ksenia Volkova Java Developer в DXC Master
25 марта 2020, 20:30
Прибавлять новый damage к имеющемуся?
0
Seryoga Zinovyev
25 марта 2020, 20:36
если бы я знал
0
Ksenia Volkova Java Developer в DXC Master
25 марта 2020, 20:39
У Damage есть сеттеры и геттеры. Через геттер получаешь текущее значение, прибавляешь к нему нужное значение, через сеттер устанавливаешь результат.
0
Seryoga Zinovyev
26 марта 2020, 06:02
Можно пример пожалуйста что то вообще не могу сообразить
0
Seryoga Zinovyev
29 марта 2020, 14:41
Сможешь подсказать?
0
Ksenia Volkova Java Developer в DXC Master
29 марта 2020, 15:31
А ты уверен, что не хочешь потратить немного времени и почитать про те же геттеры и сеттеры, поля класса?
Ничего сложного же нет. Я и так уже в предыдущем комментарии написала все, что нужно сделать. Осталось только на java перевести.
0
Seryoga Zinovyev
29 марта 2020, 15:34
То есть работать надо именно с классом Damage?
0
Ksenia Volkova Java Developer в DXC Master
29 марта 2020, 16:03
У тебя там участвуют 2 класса (кроме самого Weapon) - Damage и Target.
Из damage ты получаешь урон (соответствующего вида), которое наносит оружие:
damage.getWeaponPhysicalDamage()
Из target - текущее значение уже имеющегося урона:
target.getPhysicalDamage()
Прибавляешь одно к другому, и устанавливаешь в качестве нового значения у target:
target.setPhysicalDamage(...)
0
Seryoga Zinovyev
29 марта 2020, 16:26
Щас попробую
0
Seryoga Zinovyev
29 марта 2020, 16:49
Почитал пару статей а как их сложить то?
0
Ksenia Volkova Java Developer в DXC Master
29 марта 2020, 16:52
Для этого есть волшебный оператор +
;)
0
Seryoga Zinovyev
29 марта 2020, 19:04
Так?
0