From 7c9942066f1de7993892d336f634236f47638f83 Mon Sep 17 00:00:00 2001 From: dalyjame Date: Mon, 24 Jun 2019 16:51:31 -0400 Subject: [PATCH] Made it so crits ignore defense boosts and elements use enumerations for type effectiveness --- Builder/src/fmon/builder/ElementBuilder.scala | 22 +- FakeMon/src/fmon/Config.scala | 6 + FakeMon/src/fmon/config.yaml | 3 + FakeMon/src/fmon/stat/Element.scala | 19 +- FakeMon/src/fmon/stat/Move.scala | 9 +- FakeMon/src/fmon/stat/Statistic.scala | 12 +- FakeMon/src/fmon/stat/data/elements.yaml | 648 +++++++++--------- FakeMon/src/fmon/stat/package.scala | 1 + 8 files changed, 373 insertions(+), 347 deletions(-) diff --git a/Builder/src/fmon/builder/ElementBuilder.scala b/Builder/src/fmon/builder/ElementBuilder.scala index 025759c..3a58d25 100644 --- a/Builder/src/fmon/builder/ElementBuilder.scala +++ b/Builder/src/fmon/builder/ElementBuilder.scala @@ -21,8 +21,9 @@ import org.yaml.snakeyaml.nodes.Tag import org.yaml.snakeyaml.constructor._ import org.yaml.snakeyaml.representer._ -import fmon.stat.Element +import fmon.stat.{Effectiveness, Element} import fmon.util.YamlHelper +import Effectiveness._ import TableColumn._ @@ -37,10 +38,10 @@ class ObsElement(name_ : String, bgColor_ : Color = Color.Gray, fontColor_ : Col val weak = new ObservableBuffer[ObsElement]() def asElement = { - def toMap(buffer: ObservableBuffer[ObsElement], mult: Double) = { + def toMap(buffer: ObservableBuffer[ObsElement], mult: Effectiveness) = { buffer.map(e => (e.name(), mult)).toMap } - val effect = toMap(immune, 0.0) ++ toMap(resist, 0.5) ++ toMap(normal, 1.0) ++ toMap(weak, 2.0) + val effect = toMap(immune, Immune) ++ toMap(resist, Resist) ++ toMap(normal, Regular) ++ toMap(weak, Weak) new Element(name(), bgColor(), fontColor(), effect) } @@ -184,15 +185,12 @@ class ElementBuilder extends Savable { es.foreach(eo => es.foreach(fo => { val e = elementMap(eo.name()) val f = elementMap(fo.name()) - val mult = e <-- f - if (mult < 0.1) { - eo.immune += fo - } else if (mult < 0.75) { - eo.resist += fo - } else if (mult < 1.25) { - eo.normal += fo - } else { - eo.weak += fo + e.effect.getOrElse(f.name, Regular) match { + case Immune => eo.immune += fo + case Resist => eo.resist += fo + case Regular => eo.normal += fo + case Weak => eo.weak += fo + case _ => throw new IllegalArgumentException } })) elementList.clear() diff --git a/FakeMon/src/fmon/Config.scala b/FakeMon/src/fmon/Config.scala index 9d9238f..7f9a5c3 100644 --- a/FakeMon/src/fmon/Config.scala +++ b/FakeMon/src/fmon/Config.scala @@ -6,6 +6,9 @@ case class Config( val title: String, val crit: Double, val stab: Double, + val resistMult: Double, + val weakMult: Double, + val immuneMult: Double, val maxBoost: Int ) { @@ -17,5 +20,8 @@ object Config { def title = config.title def crit = config.crit def stab = config.stab + def resistMult = config.resistMult + def weakMult = config.weakMult + def immuneMult = config.immuneMult def maxBoost = config.maxBoost } \ No newline at end of file diff --git a/FakeMon/src/fmon/config.yaml b/FakeMon/src/fmon/config.yaml index 5a6ee69..20a3e7e 100644 --- a/FakeMon/src/fmon/config.yaml +++ b/FakeMon/src/fmon/config.yaml @@ -1,5 +1,8 @@ title: FakeMon Engine Demo crit: 1.5 stab: 1.5 +weakMult: 2.0 +resistMult: 0.5 +immuneMult: 0.0 maxBoost: 6 newday: 02:00 diff --git a/FakeMon/src/fmon/stat/Element.scala b/FakeMon/src/fmon/stat/Element.scala index a7edc6a..bbafc91 100644 --- a/FakeMon/src/fmon/stat/Element.scala +++ b/FakeMon/src/fmon/stat/Element.scala @@ -1,16 +1,29 @@ package fmon.stat +import com.fasterxml.jackson.module.scala.JsonScalaEnumeration + import scala.io.Source import scalafx.scene.paint.Color -import fmon.util.YamlHelper +import fmon._ +import fmon.util._ -case class Element(val name : String, val bgColor: Color, val fontColor: Color, val effect : Map[String, Double]) { +object Effectiveness extends Enumeration { + case class Val protected(val mult: Double) extends super.Val + + val Immune = Val(Config.immuneMult) + val Resist = Val(Config.resistMult) + val Regular = Val(1.0) + val Weak = Val(Config.weakMult) +} +class EffectivenessType extends TypeReference[Effectiveness.type] + +case class Element(val name : String, val bgColor: Color, val fontColor: Color, @JsonScalaEnumeration(classOf[EffectivenessType]) val effect : Map[String, Effectiveness]) { def -->(other : Element) = other <-- this - def <--(other : Element) = effect.getOrElse(other.name, 1.0) + def <--(other : Element) = effect.getOrElse(other.name, Effectiveness.Regular).mult override def toString = name } diff --git a/FakeMon/src/fmon/stat/Move.scala b/FakeMon/src/fmon/stat/Move.scala index efaea41..383ee28 100644 --- a/FakeMon/src/fmon/stat/Move.scala +++ b/FakeMon/src/fmon/stat/Move.scala @@ -148,12 +148,17 @@ abstract class Move extends MoveTurn { if (damageCallback != null) { damageCallback(user, this, target, reader, rng) } else { + val crit = critMultiplier(user, target) + println(crit) val atkStat = if (category == MoveType.Physical) PAtk else MAtk val defStat = if (category == MoveType.Physical) PDef else MDef + val atk = if (crit > 1.0) Math.max(user(atkStat), user.stats(atkStat)) else user(atkStat) + val defense = if (crit > 1.0) Math.min(target(defStat), target.stats(defStat)) else user(defStat) + println(target(defStat), target.stats(defStat), defense) val actualPow = if (powCallback != null) powCallback(user, this, target, reader, rng) else pow - val baseDmg = (2 * user.level / 5 + 2) * actualPow * user(atkStat) / (target(defStat) * 50) + 2 + val baseDmg = (2 * user.level / 5 + 2) * actualPow * atk / (defense * 50) + 2 val effectiveness = target.effectiveness(element) - val multiplier = effectiveness * critMultiplier(user, target) * stabMultiplier(user) + val multiplier = effectiveness * crit * stabMultiplier(user) if (effectiveness > 1.0) { reader ! Message("It's super effective!") } else if (effectiveness < 1.0) { diff --git a/FakeMon/src/fmon/stat/Statistic.scala b/FakeMon/src/fmon/stat/Statistic.scala index 69da86a..a8cd4d5 100644 --- a/FakeMon/src/fmon/stat/Statistic.scala +++ b/FakeMon/src/fmon/stat/Statistic.scala @@ -11,12 +11,12 @@ object Statistic extends Enumeration { val Evasion = Value("Evasion") def apply(s : String) = s match { - case "hp" => Hp - case "patk" => PAtk - case "pdef" => PDef - case "matk" => MAtk - case "mdef" => MDef - case "spd" => Speed + case "hp" | "Hp" => Hp + case "patk" | "PAtk" => PAtk + case "pdef" | "PDef" => PDef + case "matk" | "MAtk" => MAtk + case "mdef" | "MDef" => MDef + case "spd" | "Spd" => Speed case "acc" => Accuracy case "evd" => Evasion } diff --git a/FakeMon/src/fmon/stat/data/elements.yaml b/FakeMon/src/fmon/stat/data/elements.yaml index 0e9cfa0..0cd59f8 100644 --- a/FakeMon/src/fmon/stat/data/elements.yaml +++ b/FakeMon/src/fmon/stat/data/elements.yaml @@ -10,24 +10,24 @@ Normal: green: 0.0 blue: 0.0 effect: - Normal: 1.0 - Electric: 1.0 - Poison: 1.0 - Rock: 1.0 - Flying: 1.0 - Ghost: 0.0 - Ice: 1.0 - Water: 1.0 - Fighting: 2.0 - Ground: 1.0 - Steel: 1.0 - Bug: 1.0 - Fire: 1.0 - Fairy: 1.0 - Dragon: 1.0 - Psychic: 1.0 - Grass: 1.0 - Dark: 1.0 + Normal: Regular + Electric: Regular + Poison: Regular + Rock: Regular + Flying: Regular + Ghost: Immune + Ice: Regular + Water: Regular + Fighting: Weak + Ground: Regular + Steel: Regular + Bug: Regular + Fire: Regular + Fairy: Regular + Dragon: Regular + Psychic: Regular + Grass: Regular + Dark: Regular Electric: name: "Electric" bgColor: @@ -39,24 +39,24 @@ Electric: green: 0.0 blue: 0.0 effect: - Normal: 1.0 - Electric: 0.5 - Poison: 1.0 - Rock: 1.0 - Flying: 0.5 - Ghost: 1.0 - Ice: 1.0 - Water: 1.0 - Fighting: 1.0 - Ground: 2.0 - Steel: 0.5 - Bug: 1.0 - Fire: 1.0 - Fairy: 1.0 - Dragon: 1.0 - Psychic: 1.0 - Grass: 1.0 - Dark: 1.0 + Normal: Regular + Electric: Resist + Poison: Regular + Rock: Regular + Flying: Resist + Ghost: Regular + Ice: Regular + Water: Regular + Fighting: Regular + Ground: Weak + Steel: Resist + Bug: Regular + Fire: Regular + Fairy: Regular + Dragon: Regular + Psychic: Regular + Grass: Regular + Dark: Regular Poison: name: "Poison" bgColor: @@ -68,24 +68,24 @@ Poison: green: 0.0 blue: 0.0 effect: - Normal: 1.0 - Electric: 1.0 - Poison: 0.5 - Rock: 1.0 - Flying: 1.0 - Ghost: 1.0 - Ice: 1.0 - Water: 1.0 - Fighting: 0.5 - Ground: 2.0 - Steel: 1.0 - Bug: 0.5 - Fire: 1.0 - Fairy: 0.5 - Dragon: 1.0 - Psychic: 2.0 - Grass: 0.5 - Dark: 1.0 + Normal: Regular + Electric: Regular + Poison: Resist + Rock: Regular + Flying: Regular + Ghost: Regular + Ice: Regular + Water: Regular + Fighting: Resist + Ground: Weak + Steel: Regular + Bug: Resist + Fire: Regular + Fairy: Resist + Dragon: Regular + Psychic: Weak + Grass: Resist + Dark: Regular Rock: name: "Rock" bgColor: @@ -97,24 +97,24 @@ Rock: green: 0.0 blue: 0.0 effect: - Normal: 0.5 - Electric: 1.0 - Poison: 0.5 - Rock: 1.0 - Flying: 0.5 - Ghost: 1.0 - Ice: 1.0 - Water: 2.0 - Fighting: 2.0 - Ground: 2.0 - Steel: 2.0 - Bug: 1.0 - Fire: 0.5 - Fairy: 1.0 - Dragon: 1.0 - Psychic: 1.0 - Grass: 2.0 - Dark: 1.0 + Normal: Resist + Electric: Regular + Poison: Resist + Rock: Regular + Flying: Resist + Ghost: Regular + Ice: Regular + Water: Weak + Fighting: Weak + Ground: Weak + Steel: Weak + Bug: Regular + Fire: Resist + Fairy: Regular + Dragon: Regular + Psychic: Regular + Grass: Weak + Dark: Regular Flying: name: "Flying" bgColor: @@ -126,24 +126,24 @@ Flying: green: 0.0 blue: 0.0 effect: - Normal: 1.0 - Electric: 2.0 - Poison: 1.0 - Rock: 2.0 - Flying: 1.0 - Ghost: 1.0 - Ice: 2.0 - Water: 1.0 - Fighting: 0.5 - Ground: 0.0 - Steel: 1.0 - Bug: 0.5 - Fire: 1.0 - Fairy: 1.0 - Dragon: 1.0 - Psychic: 1.0 - Grass: 0.5 - Dark: 1.0 + Normal: Regular + Electric: Weak + Poison: Regular + Rock: Weak + Flying: Regular + Ghost: Regular + Ice: Weak + Water: Regular + Fighting: Resist + Ground: Immune + Steel: Regular + Bug: Resist + Fire: Regular + Fairy: Regular + Dragon: Regular + Psychic: Regular + Grass: Resist + Dark: Regular Ghost: name: "Ghost" bgColor: @@ -155,24 +155,24 @@ Ghost: green: 0.0 blue: 0.0 effect: - Normal: 0.0 - Electric: 1.0 - Poison: 0.5 - Rock: 1.0 - Flying: 1.0 - Ghost: 2.0 - Ice: 1.0 - Water: 1.0 - Fighting: 0.0 - Ground: 1.0 - Steel: 1.0 - Bug: 0.5 - Fire: 1.0 - Fairy: 1.0 - Dragon: 1.0 - Psychic: 1.0 - Grass: 1.0 - Dark: 2.0 + Normal: Immune + Electric: Regular + Poison: Resist + Rock: Regular + Flying: Regular + Ghost: Weak + Ice: Regular + Water: Regular + Fighting: Immune + Ground: Regular + Steel: Regular + Bug: Resist + Fire: Regular + Fairy: Regular + Dragon: Regular + Psychic: Regular + Grass: Regular + Dark: Weak Ice: name: "Ice" bgColor: @@ -184,24 +184,24 @@ Ice: green: 0.0 blue: 0.0 effect: - Normal: 1.0 - Electric: 1.0 - Poison: 1.0 - Rock: 2.0 - Flying: 1.0 - Ghost: 1.0 - Ice: 0.5 - Water: 1.0 - Fighting: 2.0 - Ground: 1.0 - Steel: 2.0 - Bug: 1.0 - Fire: 2.0 - Fairy: 1.0 - Dragon: 1.0 - Psychic: 1.0 - Grass: 1.0 - Dark: 1.0 + Normal: Regular + Electric: Regular + Poison: Regular + Rock: Weak + Flying: Regular + Ghost: Regular + Ice: Resist + Water: Regular + Fighting: Weak + Ground: Regular + Steel: Weak + Bug: Regular + Fire: Weak + Fairy: Regular + Dragon: Regular + Psychic: Regular + Grass: Regular + Dark: Regular Water: name: "Water" bgColor: @@ -213,24 +213,24 @@ Water: green: 0.0 blue: 0.0 effect: - Normal: 1.0 - Electric: 2.0 - Poison: 1.0 - Rock: 1.0 - Flying: 1.0 - Ghost: 1.0 - Ice: 0.5 - Water: 0.5 - Fighting: 1.0 - Ground: 1.0 - Steel: 0.5 - Bug: 1.0 - Fire: 0.5 - Fairy: 1.0 - Dragon: 1.0 - Psychic: 1.0 - Grass: 2.0 - Dark: 1.0 + Normal: Regular + Electric: Weak + Poison: Regular + Rock: Regular + Flying: Regular + Ghost: Regular + Ice: Resist + Water: Resist + Fighting: Regular + Ground: Regular + Steel: Resist + Bug: Regular + Fire: Resist + Fairy: Regular + Dragon: Regular + Psychic: Regular + Grass: Weak + Dark: Regular Fighting: name: "Fighting" bgColor: @@ -242,24 +242,24 @@ Fighting: green: 0.0 blue: 0.0 effect: - Normal: 1.0 - Electric: 1.0 - Poison: 1.0 - Rock: 0.5 - Flying: 2.0 - Ghost: 1.0 - Ice: 1.0 - Water: 1.0 - Fighting: 1.0 - Ground: 1.0 - Steel: 1.0 - Bug: 0.5 - Fire: 1.0 - Fairy: 2.0 - Dragon: 1.0 - Psychic: 2.0 - Grass: 1.0 - Dark: 0.5 + Normal: Regular + Electric: Regular + Poison: Regular + Rock: Resist + Flying: Weak + Ghost: Regular + Ice: Regular + Water: Regular + Fighting: Regular + Ground: Regular + Steel: Regular + Bug: Resist + Fire: Regular + Fairy: Weak + Dragon: Regular + Psychic: Weak + Grass: Regular + Dark: Resist Ground: name: "Ground" bgColor: @@ -271,24 +271,24 @@ Ground: green: 0.0 blue: 0.0 effect: - Normal: 1.0 - Electric: 0.0 - Poison: 0.5 - Rock: 0.5 - Flying: 1.0 - Ghost: 1.0 - Ice: 2.0 - Water: 2.0 - Fighting: 1.0 - Ground: 1.0 - Steel: 1.0 - Bug: 1.0 - Fire: 1.0 - Fairy: 1.0 - Dragon: 1.0 - Psychic: 1.0 - Grass: 2.0 - Dark: 1.0 + Normal: Regular + Electric: Immune + Poison: Resist + Rock: Resist + Flying: Regular + Ghost: Regular + Ice: Weak + Water: Weak + Fighting: Regular + Ground: Regular + Steel: Regular + Bug: Regular + Fire: Regular + Fairy: Regular + Dragon: Regular + Psychic: Regular + Grass: Weak + Dark: Regular Steel: name: "Steel" bgColor: @@ -300,24 +300,24 @@ Steel: green: 0.0 blue: 0.0 effect: - Normal: 0.5 - Electric: 1.0 - Poison: 0.0 - Rock: 0.5 - Flying: 0.5 - Ghost: 1.0 - Ice: 0.5 - Water: 1.0 - Fighting: 2.0 - Ground: 2.0 - Steel: 0.5 - Bug: 0.5 - Fire: 2.0 - Fairy: 0.5 - Dragon: 0.5 - Psychic: 0.5 - Grass: 0.5 - Dark: 1.0 + Normal: Resist + Electric: Regular + Poison: Immune + Rock: Resist + Flying: Resist + Ghost: Regular + Ice: Resist + Water: Regular + Fighting: Weak + Ground: Weak + Steel: Resist + Bug: Resist + Fire: Weak + Fairy: Resist + Dragon: Resist + Psychic: Resist + Grass: Resist + Dark: Regular Bug: name: "Bug" bgColor: @@ -329,24 +329,24 @@ Bug: green: 0.0 blue: 0.0 effect: - Normal: 1.0 - Electric: 1.0 - Poison: 1.0 - Rock: 2.0 - Flying: 2.0 - Ghost: 1.0 - Ice: 1.0 - Water: 1.0 - Fighting: 0.5 - Ground: 0.5 - Steel: 1.0 - Bug: 1.0 - Fire: 2.0 - Fairy: 1.0 - Dragon: 1.0 - Psychic: 1.0 - Grass: 0.5 - Dark: 1.0 + Normal: Regular + Electric: Regular + Poison: Regular + Rock: Weak + Flying: Weak + Ghost: Regular + Ice: Regular + Water: Regular + Fighting: Resist + Ground: Resist + Steel: Regular + Bug: Regular + Fire: Weak + Fairy: Regular + Dragon: Regular + Psychic: Regular + Grass: Resist + Dark: Regular Fire: name: "Fire" bgColor: @@ -358,24 +358,24 @@ Fire: green: 0.0 blue: 0.0 effect: - Normal: 1.0 - Electric: 1.0 - Poison: 1.0 - Rock: 2.0 - Flying: 1.0 - Ghost: 1.0 - Ice: 0.5 - Water: 2.0 - Fighting: 1.0 - Ground: 2.0 - Steel: 0.5 - Bug: 0.5 - Fire: 0.5 - Fairy: 0.5 - Dragon: 1.0 - Psychic: 1.0 - Grass: 0.5 - Dark: 1.0 + Normal: Regular + Electric: Regular + Poison: Regular + Rock: Weak + Flying: Regular + Ghost: Regular + Ice: Resist + Water: Weak + Fighting: Regular + Ground: Weak + Steel: Resist + Bug: Resist + Fire: Resist + Fairy: Resist + Dragon: Regular + Psychic: Regular + Grass: Resist + Dark: Regular Fairy: name: "Fairy" bgColor: @@ -387,24 +387,24 @@ Fairy: green: 0.0 blue: 0.0 effect: - Normal: 1.0 - Electric: 1.0 - Poison: 2.0 - Rock: 1.0 - Flying: 1.0 - Ghost: 1.0 - Ice: 1.0 - Water: 1.0 - Fighting: 0.5 - Ground: 1.0 - Steel: 2.0 - Bug: 0.5 - Fire: 1.0 - Fairy: 1.0 - Dragon: 0.0 - Psychic: 1.0 - Grass: 1.0 - Dark: 0.5 + Normal: Regular + Electric: Regular + Poison: Weak + Rock: Regular + Flying: Regular + Ghost: Regular + Ice: Regular + Water: Regular + Fighting: Resist + Ground: Regular + Steel: Weak + Bug: Resist + Fire: Regular + Fairy: Regular + Dragon: Immune + Psychic: Regular + Grass: Regular + Dark: Resist Dragon: name: "Dragon" bgColor: @@ -416,24 +416,24 @@ Dragon: green: 0.0 blue: 0.0 effect: - Normal: 1.0 - Electric: 0.5 - Poison: 1.0 - Rock: 1.0 - Flying: 1.0 - Ghost: 1.0 - Ice: 2.0 - Water: 0.5 - Fighting: 1.0 - Ground: 1.0 - Steel: 1.0 - Bug: 1.0 - Fire: 0.5 - Fairy: 2.0 - Dragon: 2.0 - Psychic: 1.0 - Grass: 0.5 - Dark: 1.0 + Normal: Regular + Electric: Resist + Poison: Regular + Rock: Regular + Flying: Regular + Ghost: Regular + Ice: Weak + Water: Resist + Fighting: Regular + Ground: Regular + Steel: Regular + Bug: Regular + Fire: Resist + Fairy: Weak + Dragon: Weak + Psychic: Regular + Grass: Resist + Dark: Regular Psychic: name: "Psychic" bgColor: @@ -445,24 +445,24 @@ Psychic: green: 0.0 blue: 0.0 effect: - Normal: 1.0 - Electric: 1.0 - Poison: 1.0 - Rock: 1.0 - Flying: 1.0 - Ghost: 2.0 - Ice: 1.0 - Water: 1.0 - Fighting: 0.5 - Ground: 1.0 - Steel: 1.0 - Bug: 2.0 - Fire: 1.0 - Fairy: 1.0 - Dragon: 1.0 - Psychic: 0.5 - Grass: 1.0 - Dark: 2.0 + Normal: Regular + Electric: Regular + Poison: Regular + Rock: Regular + Flying: Regular + Ghost: Weak + Ice: Regular + Water: Regular + Fighting: Resist + Ground: Regular + Steel: Regular + Bug: Weak + Fire: Regular + Fairy: Regular + Dragon: Regular + Psychic: Resist + Grass: Regular + Dark: Weak Grass: name: "Grass" bgColor: @@ -474,24 +474,24 @@ Grass: green: 0.0 blue: 0.0 effect: - Normal: 1.0 - Electric: 0.5 - Poison: 2.0 - Rock: 1.0 - Flying: 2.0 - Ghost: 1.0 - Ice: 2.0 - Water: 0.5 - Fighting: 1.0 - Ground: 0.5 - Steel: 1.0 - Bug: 2.0 - Fire: 2.0 - Fairy: 1.0 - Dragon: 1.0 - Psychic: 1.0 - Grass: 0.5 - Dark: 1.0 + Normal: Regular + Electric: Resist + Poison: Weak + Rock: Regular + Flying: Weak + Ghost: Regular + Ice: Weak + Water: Resist + Fighting: Regular + Ground: Resist + Steel: Regular + Bug: Weak + Fire: Weak + Fairy: Regular + Dragon: Regular + Psychic: Regular + Grass: Resist + Dark: Regular Dark: name: "Dark" bgColor: @@ -503,21 +503,21 @@ Dark: green: 0.0 blue: 0.0 effect: - Normal: 1.0 - Electric: 1.0 - Poison: 1.0 - Rock: 1.0 - Flying: 1.0 - Ghost: 0.5 - Ice: 1.0 - Water: 1.0 - Fighting: 2.0 - Ground: 1.0 - Steel: 1.0 - Bug: 2.0 - Fire: 1.0 - Fairy: 2.0 - Dragon: 1.0 - Psychic: 0.0 - Grass: 1.0 - Dark: 0.5 + Normal: Regular + Electric: Regular + Poison: Regular + Rock: Regular + Flying: Regular + Ghost: Resist + Ice: Regular + Water: Regular + Fighting: Weak + Ground: Regular + Steel: Regular + Bug: Weak + Fire: Regular + Fairy: Weak + Dragon: Regular + Psychic: Immune + Grass: Regular + Dark: Resist diff --git a/FakeMon/src/fmon/stat/package.scala b/FakeMon/src/fmon/stat/package.scala index 12d82b1..1cbef54 100644 --- a/FakeMon/src/fmon/stat/package.scala +++ b/FakeMon/src/fmon/stat/package.scala @@ -8,6 +8,7 @@ import fmon.util.Dice package object stat { type Stat = Statistic.Value + type Effectiveness = Effectiveness.Val type EffectType = EffectType.Value type MoveType = MoveType.Value type Gender = Gender.Value