Le module Core

On ne vous explique plus par où commencer

Le module core n'est pas un module lié à Spring boot mais nous avons quand même besoin de configurer maven.

Indiquez à ce module que vous souhaitez encore une fois utiliser les dépendances indiquées dans le POM parent.

<project>
    <dependencies>
        <dependency>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-stdlib-jdk8</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-reflect</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.module</groupId>
            <artifactId>jackson-module-kotlin</artifactId>
        </dependency>
    </dependencies>
</project>

et ajoutez le plugin configuré dans le parent

<build>
    <plugins>
        ...
        <plugin>
            <artifactId>kotlin-maven-plugin</artifactId>
            <groupId>org.jetbrains.kotlin</groupId>
        </plugin>
    </plugins>
</build>

enum

Portez BattleStatus et PokemonType en enum Kotlin.

Pokemon

Portez Pokemon en classe ouverte à l'héritage. Cette classe doit posséder un constructeur par défaut avec une liste de champs tous optionnels.

Ajoutez un second constructeur qui prend un Pokemon en paramètre et utilisera la fonction apply pour mettre à jour ses propriétés.

FightingPokemon

Transformez la classe FightingPokemon en Kotlin. Cette classe n'a pas besoin de constructeur par défaut.

Transformez isKO en propriété en lecture seule grâce au mot clé get.

Battle

Transformez la class Battle en Kotlin. Cette classe doit être ouverte et ne doit pas avoir de constructeur par défaut.

Transformez les méthodes getStarter(), getEnder() et getBattleStatus() en propriété en lecture seule.

FightService

FightService est une classe utilitaire, qui n'a que des méthodes statiques. Transformez donc ce fichier en object.

PokemonUtils

Si vous en avez le courage, transformez la classe utilitaire PokemonUtils en Kotlin.

TIP

Si vous n'avez pas le courage, utilisez CTRL + ALT + SHIFT + K pour demander à IntelliJ de le faire pour vous.