diff --git a/src/main/scala/Pokemon/Capacity.scala b/src/main/scala/Pokemon/Capacity.scala index ae604352b3a9069ae188fbbea15cee5e84fcbd48..94bb1376dc02c4fd41caf9527182cad4368a39f1 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 08d04df98f199b558365728179a86ef15fcdcdc7..ef2f4961c666861f1cc60ed305a434d266f852db 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 388fad1729311eebd034e76542813a0e332fb8c5..d760e8b12939dba221c7c69dfd5d62fd50aef5a2 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 26fe2b338f205eb081cc1e5dd626313335053aac..53554211ce006150964d66891106b4e1a204f6f3 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()