42 lines
1.5 KiB
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])
|
|
} |