mirror of https://github.com/01-edu/public.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
2.0 KiB
55 lines
2.0 KiB
1 year ago
|
## AdventureWeapon
|
||
|
|
||
|
### Instructions
|
||
|
|
||
|
We create now the weapon for our adventurers. Create a new class `Weapon` in a new file `Weapon.java`.
|
||
|
|
||
|
It has two attributes :
|
||
|
* a String called `name` with a getter.
|
||
|
* an integer called `damage` with a getter.
|
||
|
|
||
|
The constructor has these 2 attributes as parameters.
|
||
|
|
||
|
Let's overwrite the `toString` method for this class : it returns a string under the format `<name> deals <damage> damages`
|
||
|
|
||
|
Now, add a weapon attribute to the `Character` class, in its constructor and in the constructor of all subclasses.
|
||
|
|
||
|
In all subclasses, in the `attack` method, you need to use the `damage` when calling the `takeDamage` method. It the character has no weapon, use the previous defined damage per subclasses.
|
||
|
|
||
|
Update the `toString` method of all subclasses by using the concatenation of the current value with the following string : `He has the weapon <weapon.toString>`.
|
||
|
|
||
|
### Usage
|
||
|
|
||
|
Here is a possible ExerciseRunner.java to test your function :
|
||
|
|
||
|
```java
|
||
|
public class ExerciseRunner {
|
||
|
|
||
|
public static void main(String[] args) {
|
||
|
Weapon narsil = new Weapon("Narsil", 15);
|
||
|
Weapon baguette = new Weapon("Baguette magique", 20);
|
||
|
Weapon massue = new Weapon("Massue", 8);
|
||
|
Monster troll = new Monster("Troll", 30, massue);
|
||
|
Sorcerer dumbledore = new Sorcerer("Dumbledore", 25, 5, baguette);
|
||
|
Templar alistair = new Templar("Alistair", 18, 2, 3, narsil);
|
||
|
|
||
|
Character.fight(alistair, troll);
|
||
|
|
||
|
System.out.println(Character.printStatus());
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
and its output :
|
||
|
```shell
|
||
|
$ javac *.java -d build
|
||
|
$ java -cp build ExerciseRunner
|
||
|
------------------------------------------
|
||
|
Characters currently fighting :
|
||
|
- Troll is a monster and is dead. He has the weapon Massue deals 8 damages.
|
||
|
- Dumbledore is a sorcerer with 25 HP. It can heal 5 HP. He has the weapon Baguette magique deals 20 damages.
|
||
|
- Alistair is a strong Templar with 12 HP. It can heal 2 HP and has a shield of 3. He has the weapon Narsil deals 15 damages.
|
||
|
------------------------------------------
|
||
|
$
|
||
|
```
|