From e60814320ed9a005cb34378d3b7bc37ed2fbe09a Mon Sep 17 00:00:00 2001 From: PhenixCeleste <vivien.d06@gmail.com> Date: Thu, 10 Feb 2022 15:02:09 +0100 Subject: [PATCH] pokemon stat upgrade --- src/main/scala/Pokemon/Capacity.scala | 4 +++- src/main/scala/Pokemon/CapacityFactory.scala | 2 +- src/main/scala/Pokemon/Pokemon.scala | 13 ++++++++++++- src/main/scala/Pokemon/PokemonFactory.scala | 6 +++--- 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/main/scala/Pokemon/Capacity.scala b/src/main/scala/Pokemon/Capacity.scala index ae60435..94bb137 100644 --- a/src/main/scala/Pokemon/Capacity.scala +++ b/src/main/scala/Pokemon/Capacity.scala @@ -1 +1,3 @@ -class Capacity(name: String, val ctype: Type) +// must add later : max_used +// uses : var or val ? +class Capacity(name: String, val ctype: Type, var uses: Int) diff --git a/src/main/scala/Pokemon/CapacityFactory.scala b/src/main/scala/Pokemon/CapacityFactory.scala index 08d04df..ef2f496 100644 --- a/src/main/scala/Pokemon/CapacityFactory.scala +++ b/src/main/scala/Pokemon/CapacityFactory.scala @@ -1,6 +1,6 @@ object CapacityFactory: - private case class VineWhip() extends Capacity("Vine Whip", Grass) + private case class VineWhip() extends Capacity("Vine Whip", Grass, 15) def apply(name: String): Capacity = name match case "Vine Whip" => VineWhip() diff --git a/src/main/scala/Pokemon/Pokemon.scala b/src/main/scala/Pokemon/Pokemon.scala index 388fad1..d760e8b 100644 --- a/src/main/scala/Pokemon/Pokemon.scala +++ b/src/main/scala/Pokemon/Pokemon.scala @@ -1,4 +1,15 @@ -trait Pokemon(var name: String, var life: Int, val ptype: List[Type]): +trait Pokemon( // must add later max_life... + var name: String, + var life: Int, + val ptype: List[Type], + var pcapacity: List[Capacity], + val attack: Int, // val or var ? + val defense: Int, // val or var ? + val speed: Int // val or var ? +): + + def rename(newName: String) = + this.name = newName def attack(capacity: Capacity, other: Pokemon) = val multiplier = other.ptype.foldLeft(1.0)(_ * capacity.ctype.typeEfficiency(_).factor) diff --git a/src/main/scala/Pokemon/PokemonFactory.scala b/src/main/scala/Pokemon/PokemonFactory.scala index 26fe2b3..5355421 100644 --- a/src/main/scala/Pokemon/PokemonFactory.scala +++ b/src/main/scala/Pokemon/PokemonFactory.scala @@ -1,8 +1,8 @@ object PokemonFactory: - private case class Bulbasaur() extends Pokemon("Bulbasaur", 25, List(Grass, Poison)) - private case class Charmander() extends Pokemon("Charmander", 30, List(Fire)) - private case class Squirtle() extends Pokemon("Squirtle", 25, List(Water)) + private case class Bulbasaur() extends Pokemon("Bulbasaur", 25, List(Grass, Poison), List(), 0, 0, 0) + private case class Charmander() extends Pokemon("Charmander", 30, List(Fire), List(), 0, 0, 0) + private case class Squirtle() extends Pokemon("Squirtle", 25, List(Water), List(), 0, 0, 0) def apply(name: String): Pokemon = name match case "Bulbasaur" => Bulbasaur() -- GitLab