mirror of
https://github.com/nolen777/eagle0.git
synced 2026-07-28 23:55:43 +00:00
Add Scala overloads to ProvinceEventUtils (#5040)
* Add Scala overloads to ProvinceEventUtils - Add Scala overloads for isBlizzardEvent, isBeastsEvent, isEpidemicEvent, isFestivalEvent, isDroughtEvent, isFloodEvent, isImminentRiotEvent - Add Scala overloads for beastsCount and beastInfo - Update BUILD.bazel with required Scala model dependencies - Add province event dependency to LegacyProvinceUtils for overload resolution 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * Replace isInstanceOf with pattern matching in ProvinceEventUtils - Use match expressions instead of isInstanceOf for type checks - More idiomatic Scala style 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -308,6 +308,9 @@ scala_library(
|
||||
deps = [
|
||||
"//src/main/protobuf/net/eagle0/eagle/common:province_event_scala_proto",
|
||||
"//src/main/scala/net/eagle0/eagle/library/util:beast_utils",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:beast_info",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state/date",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state/province:event",
|
||||
],
|
||||
)
|
||||
|
||||
|
||||
@@ -2,28 +2,112 @@ package net.eagle0.eagle.library.util
|
||||
|
||||
import net.eagle0.eagle.common.beast_info.BeastInfo
|
||||
import net.eagle0.eagle.common.province_event.*
|
||||
import net.eagle0.eagle.model.state.province.{
|
||||
BeastsEvent as BeastsEventC,
|
||||
BlizzardEvent as BlizzardEventC,
|
||||
DroughtEvent as DroughtEventC,
|
||||
EpidemicEvent as EpidemicEventC,
|
||||
FestivalEvent as FestivalEventC,
|
||||
FloodEvent as FloodEventC,
|
||||
ImminentRiotEvent as ImminentRiotEventC,
|
||||
ProvinceEvent as ProvinceEventC
|
||||
}
|
||||
import net.eagle0.eagle.model.state.BeastInfo as BeastInfoC
|
||||
|
||||
object ProvinceEventUtils {
|
||||
def isBlizzardEvent(event: ProvinceEvent): Boolean =
|
||||
event.isInstanceOf[BlizzardEvent]
|
||||
|
||||
def isBeastsEvent(event: ProvinceEvent): Boolean =
|
||||
event.isInstanceOf[BeastsEvent]
|
||||
// ==================== Scala overloads ====================
|
||||
|
||||
def isEpidemicEvent(event: ProvinceEvent): Boolean =
|
||||
event.isInstanceOf[EpidemicEvent]
|
||||
/** Scala overload */
|
||||
def isBlizzardEvent(event: ProvinceEventC): Boolean = event match {
|
||||
case _: BlizzardEventC => true
|
||||
case _ => false
|
||||
}
|
||||
|
||||
def isFestivalEvent(event: ProvinceEvent): Boolean =
|
||||
event.isInstanceOf[FestivalEvent]
|
||||
/** Scala overload */
|
||||
def isBeastsEvent(event: ProvinceEventC): Boolean = event match {
|
||||
case _: BeastsEventC => true
|
||||
case _ => false
|
||||
}
|
||||
|
||||
def isDroughtEvent(event: ProvinceEvent): Boolean =
|
||||
event.isInstanceOf[DroughtEvent]
|
||||
/** Scala overload */
|
||||
def isEpidemicEvent(event: ProvinceEventC): Boolean = event match {
|
||||
case _: EpidemicEventC => true
|
||||
case _ => false
|
||||
}
|
||||
|
||||
def isFloodEvent(event: ProvinceEvent): Boolean =
|
||||
event.isInstanceOf[FloodEvent]
|
||||
/** Scala overload */
|
||||
def isFestivalEvent(event: ProvinceEventC): Boolean = event match {
|
||||
case _: FestivalEventC => true
|
||||
case _ => false
|
||||
}
|
||||
|
||||
def isImminentRiotEvent(event: ProvinceEvent): Boolean =
|
||||
event.isInstanceOf[ImminentRiotEvent]
|
||||
/** Scala overload */
|
||||
def isDroughtEvent(event: ProvinceEventC): Boolean = event match {
|
||||
case _: DroughtEventC => true
|
||||
case _ => false
|
||||
}
|
||||
|
||||
/** Scala overload */
|
||||
def isFloodEvent(event: ProvinceEventC): Boolean = event match {
|
||||
case _: FloodEventC => true
|
||||
case _ => false
|
||||
}
|
||||
|
||||
/** Scala overload */
|
||||
def isImminentRiotEvent(event: ProvinceEventC): Boolean = event match {
|
||||
case _: ImminentRiotEventC => true
|
||||
case _ => false
|
||||
}
|
||||
|
||||
/** Scala overload */
|
||||
def beastsCount(event: ProvinceEventC): Int = event match {
|
||||
case BeastsEventC(count, _, _, _) => count
|
||||
case _ => 0
|
||||
}
|
||||
|
||||
/** Scala overload */
|
||||
def beastInfo(event: ProvinceEventC): Option[BeastInfoC] = event match {
|
||||
case BeastsEventC(_, _, _, beastInfo) => Some(beastInfo)
|
||||
case _ => None
|
||||
}
|
||||
|
||||
// ==================== Proto overloads ====================
|
||||
|
||||
def isBlizzardEvent(event: ProvinceEvent): Boolean = event match {
|
||||
case _: BlizzardEvent => true
|
||||
case _ => false
|
||||
}
|
||||
|
||||
def isBeastsEvent(event: ProvinceEvent): Boolean = event match {
|
||||
case _: BeastsEvent => true
|
||||
case _ => false
|
||||
}
|
||||
|
||||
def isEpidemicEvent(event: ProvinceEvent): Boolean = event match {
|
||||
case _: EpidemicEvent => true
|
||||
case _ => false
|
||||
}
|
||||
|
||||
def isFestivalEvent(event: ProvinceEvent): Boolean = event match {
|
||||
case _: FestivalEvent => true
|
||||
case _ => false
|
||||
}
|
||||
|
||||
def isDroughtEvent(event: ProvinceEvent): Boolean = event match {
|
||||
case _: DroughtEvent => true
|
||||
case _ => false
|
||||
}
|
||||
|
||||
def isFloodEvent(event: ProvinceEvent): Boolean = event match {
|
||||
case _: FloodEvent => true
|
||||
case _ => false
|
||||
}
|
||||
|
||||
def isImminentRiotEvent(event: ProvinceEvent): Boolean = event match {
|
||||
case _: ImminentRiotEvent => true
|
||||
case _ => false
|
||||
}
|
||||
|
||||
def beastsCount(event: ProvinceEvent): Int = event match {
|
||||
case BeastsEvent(count: Int, _, _, _, _ /* unknownFieldSet */ ) => count
|
||||
|
||||
@@ -24,6 +24,7 @@ scala_library(
|
||||
"//src/main/scala/net/eagle0/eagle/library/util:beast_utils",
|
||||
"//src/main/scala/net/eagle0/eagle/library/util:legacy_battalion_utils",
|
||||
"//src/main/scala/net/eagle0/eagle/library/util:province_event_utils",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state/province:event",
|
||||
],
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user