From bbddd0945ee8186fe9bc1cb63f8d9bc886287650 Mon Sep 17 00:00:00 2001 From: Rich2 Date: Wed, 22 Feb 2023 23:29:24 +0000 Subject: [PATCH] #206 Created first turn resolution. --- Dev/srcGrand/dless/DLessScen.scala | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/Dev/srcGrand/dless/DLessScen.scala b/Dev/srcGrand/dless/DLessScen.scala index d365f3810..06d74f74d 100644 --- a/Dev/srcGrand/dless/DLessScen.scala +++ b/Dev/srcGrand/dless/DLessScen.scala @@ -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 {