Skip to content

Commit

Permalink
#206 Created first turn resolution.
Browse files Browse the repository at this point in the history
  • Loading branch information
Rich2 committed Feb 22, 2023
1 parent 86d8dcf commit bbddd09
Showing 1 changed file with 27 additions and 1 deletion.
28 changes: 27 additions & 1 deletion Dev/srcGrand/dless/DLessScen.scala
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,39 @@ import prid._, phex._, egrid._, eg320._, pEarth._

/** Scenario trait for Diceless. */
trait DLessScen extends HSysTurnScen
{ def title: String = "DLessScen"
{ ThisScen =>
def title: String = "DLessScen"
val terrs: HCenLayer[WTile]
val sTerrs: HSideOptLayer[WSide]
val corners: HCornerLayer
val armies: HCenOptLayer[Nation]

def endTurn(orderList: HCenStepPairArr[Nation]): DLessScen =
{ val playersKey: Map[Nation, HCen] = armies.SomesKeyMap
val targets: HCenBuffLayer[HCenStep] = gridSys.newHCenArrOfBuff

orderList.foreach { pair =>
val hc1: HCen = playersKey(pair.a2)
val optTarget: Option[HCen] = hc1.stepOpt(pair.step)
optTarget.foreach { target => targets.appendAt(target, pair.a1) }
}

val armiesNew: HCenOptLayer[Nation] = armies.clone
targets.foreach { (hc2, buff) => buff.foreachLen1(stCenStep => if (armies.tileNone(hc2)) armiesNew.unsafeMove(stCenStep.startHC, hc2)) }

new DLessScen
{ override implicit def gridSys: HGridSys = ThisScen.gridSys
override val terrs: HCenLayer[WTile] = ThisScen.terrs
override val sTerrs: HSideOptLayer[WSide] = ThisScen.sTerrs
override val corners: HCornerLayer = ThisScen.corners
override val armies: HCenOptLayer[Nation] = armiesNew
override def turn: Int = ThisScen.turn + 1
}
}
}



/** The main scenario for Diceless. */
object DLessScen1 extends DLessScen
{
Expand Down

0 comments on commit bbddd09

Please sign in to comment.