69 lines
2.6 KiB
Scala
69 lines
2.6 KiB
Scala
package org.danielholmes.coc.baseanalyser
|
|
|
|
import com.github.mustachejava.DefaultMustacheFactory
|
|
import com.twitter.mustache.ScalaObjectHandler
|
|
import org.danielholmes.coc.baseanalyser.analysis._
|
|
import org.danielholmes.coc.baseanalyser.gameconnection.{ClanSeekerGameConnection, StubGameConnection}
|
|
import org.danielholmes.coc.baseanalyser.baseparser.{HardCodedElementFactory, VillageJsonParser}
|
|
import org.danielholmes.coc.baseanalyser.stringdisplay.{StringDisplayer, StringTroopDropDisplayer}
|
|
import org.danielholmes.coc.baseanalyser.web.{MustacheRenderer, PermittedClan, ViewModelMapper}
|
|
import org.scalactic.anyvals.PosInt
|
|
|
|
trait Services {
|
|
import com.softwaremill.macwire._
|
|
|
|
//lazy val gameConnection = wire[ClanSeekerGameConnection]
|
|
lazy val gameConnection = wire[StubGameConnection]; println("WARNING: Test stubbed game connection enabled")
|
|
private lazy val elementFactory = wire[HardCodedElementFactory]
|
|
lazy val villageJsonParser = wire[VillageJsonParser]
|
|
private lazy val th8Rules: Set[Rule] = Set(
|
|
wire[HogCCLureRule],
|
|
wire[HighHPUnderAirDefRule],
|
|
wire[ArcherAnchorRule],
|
|
wire[AirSnipedDefenseRule],
|
|
wire[MinimumCompartmentsRule],
|
|
wire[BKSwappableRule],
|
|
wire[EnoughPossibleTrapLocationsRule]
|
|
)
|
|
private lazy val th9Rules: Set[Rule] = Set(
|
|
wire[HogCCLureRule],
|
|
wire[AirSnipedDefenseRule],
|
|
wire[WizardTowersOutOfHoundPositionsRule],
|
|
wire[QueenWalkedAirDefenseRule],
|
|
wire[QueenWontLeaveCompartmentRule],
|
|
wire[EnoughPossibleTrapLocationsRule]
|
|
)
|
|
private lazy val th10Rules: Set[Rule] = Set(
|
|
wire[HogCCLureRule],
|
|
wire[AirSnipedDefenseRule],
|
|
wire[WizardTowersOutOfHoundPositionsRule],
|
|
wire[QueenWalkedAirDefenseRule]
|
|
)
|
|
private lazy val th11Rules: Set[Rule] = th10Rules
|
|
private lazy val rulesByThLevel = Map(
|
|
PosInt(8) -> th8Rules,
|
|
PosInt(9) -> th9Rules,
|
|
PosInt(10) -> th10Rules,
|
|
PosInt(11) -> th11Rules
|
|
)
|
|
|
|
private def mustacheFactory = {
|
|
val mf = new DefaultMustacheFactory()
|
|
mf.setObjectHandler(new ScalaObjectHandler())
|
|
mf
|
|
}
|
|
|
|
lazy val mustacheRenderer = wire[MustacheRenderer]
|
|
|
|
lazy val permittedClans = Set[PermittedClan](
|
|
PermittedClan("alpha", "OneHive Alpha", 154621406673L),
|
|
PermittedClan("genesis", "OneHive Genesis", 128850679685L),
|
|
PermittedClan("uncool", "Uncool", 103079424453L),
|
|
PermittedClan("aerial", "Aerial Assault", 227634713283L)
|
|
)
|
|
lazy val villageAnalyser = wire[VillageAnalyser]
|
|
lazy val stringDisplayer = wire[StringDisplayer]
|
|
lazy val stringTroopDropDisplayer = wire[StringTroopDropDisplayer]
|
|
lazy val viewModelMapper = wire[ViewModelMapper]
|
|
lazy val facades = wire[Facades]
|
|
}
|