fakemon/FakeMon/src/fmon/stat/Nature.scala

42 lines
1.5 KiB
Scala

package fmon.stat
import scala.util.Random
import fmon._
import Statistic._
object Nature extends Enumeration {
case class Val protected(boosts : Map[Stat, Double]) extends super.Val {
def apply(s : Stat) = boosts.getOrElse(s, 1.0)
}
val Hardy = Val(Map())
val Lonely = Val(Map(PAtk -> 1.1, PDef -> 0.9))
val Brave = Val(Map(PAtk -> 1.1, Speed -> 0.9))
val Adamant = Val(Map(PAtk -> 1.1, MAtk -> 0.9))
val Naughty = Val(Map(PAtk -> 1.1, MDef -> 0.9))
val Bold = Val(Map(PDef -> 1.1, PAtk -> 0.9))
val Docile = Val(Map())
val Relaxed = Val(Map(PDef -> 1.1, Speed -> 0.9))
val Impish = Val(Map(PDef -> 1.1, MAtk -> 0.9))
val Lax = Val(Map(PDef -> 1.1, MDef -> 0.9))
val Timid = Val(Map(Speed -> 1.1, PAtk -> 0.9))
val Hasty = Val(Map(Speed -> 1.1, PDef -> 0.9))
val Serious = Val(Map())
val Jolly = Val(Map(Speed -> 1.1, MAtk -> 0.9))
val Naive = Val(Map(Speed -> 1.1, MDef -> 0.9))
val Modest = Val(Map(MAtk -> 1.1, PAtk -> 0.9))
val Mild = Val(Map(MAtk -> 1.1, PDef -> 0.9))
val Quiet = Val(Map(MAtk -> 1.1, Speed -> 0.9))
val Bashful = Val(Map())
val Rash = Val(Map(MAtk -> 1.1, MDef -> 0.9))
val Calm = Val(Map(MDef -> 1.1, PAtk -> 0.9))
val Gentle = Val(Map(MDef -> 1.1, PDef -> 0.9))
val Sassy = Val(Map(MDef -> 1.1, Speed -> 0.9))
val Careful = Val(Map(MDef -> 1.1, MAtk -> 0.9))
val Quirky = Val(Map())
def randomNature(implicit rng: Random) : Nature = rng.pick(natures)
val natures = values.toIndexedSeq.map(_.asInstanceOf[Val])
}