Skip to content

Commit

Permalink
#206 Updated GUI and Nation String.
Browse files Browse the repository at this point in the history
  • Loading branch information
Rich2 committed Feb 14, 2023
1 parent 3aceca8 commit bee3d79
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 49 deletions.
81 changes: 34 additions & 47 deletions Dev/srcGrand/dless/DLessGui.scala
Original file line number Diff line number Diff line change
Expand Up @@ -14,68 +14,55 @@ case class DLessGui(canv: CanvasPlatform, scenIn: DLessScen, viewIn: HGView, isF
implicit val proj: HSysProjection = ife(isFlat, HSysProjectionFlat(gridSys, mainPanel), gridSys.projection(mainPanel))
proj.setView(viewIn)

//def tiles: RArr[PolygonFill] = terrs.projRowsCombinePolygons.map { pp => pp.a1.fill(pp.a2.colour) }
override def frame: GraphicElems =
{
def tiles: RArr[PolygonFill] = proj.hCensMap { hc =>
corners.tilePoly(hc).map { hvo => hvo.toPt2(proj.transCoord(_)) }.fill(terrs(hc).colour)
}

def tiles2: RArr[PolygonFill] = gridSys.map { hc =>
corners.tilePoly(hc).map { hvo => hvo.toPt2(proj.transCoord(_)) }.fill(terrs(hc).colour)
}
def actives: RArr[PolygonActive] = proj.hCensMap { hc =>
corners.tilePoly(hc).map { hvo => hvo.toPt2(proj.transCoord(_)) }.active(hc) }

def actives: RArr[PolygonActive] = proj.tileActives
def straits: GraphicElems = proj.sidesOptMap { (hs: HSide) =>
val sTerr: Option[WSide] = sTerrs(hs)
sTerr.map { st => corners.sideVerts(hs).project(proj).fill(st.colour) }
}

def straits2: GraphicElems = sTerrs.projOptsHsLineSegMap{(st, ls) => Rectangle.fromAxisRatio(ls, 0.3).fill(st.colour) }
def lines1: GraphicElems = proj.linksOptMap { hs =>
val hc1 = hs.tileLt
val hc2 = hs.tileRt
val t1 = terrs(hc1)

def straits3: GraphicElems = proj.sidesOptMap { (hs: HSide) =>
val sTerr: Option[WSide] = sTerrs(hs)
sTerr.map { st => corners.sideVerts(hs).project(proj).fill(st.colour) }
}
def t2 = terrs(hs.tileRt)

def lines: RArr[LineSegDraw] = proj.linkLineSegsOptMap { (hs, ls) =>
if (sTerrs(hs).nonEmpty) None
else {
val t1 = terrs(hs.tileLt)
val t2 = terrs(hs.tileRt)
ife(t1 == t2, Some(ls.draw(t1.contrastBW)), None)
if (sTerrs(hs).nonEmpty | t1 != t2) None
else {
val cs: (HCen, Int, Int) = hs.corners
val ls1 = corners.sideLine(cs._1, cs._2, cs._3)
val ls2 = ls1.map(hva => hva.toPt2(proj.transCoord(_)))
Some(ls2.draw(t1.contrastBW))
}
}
}

def lines2: GraphicElems = proj.ifTileScale(50, lines)

def lines3: GraphicElems = proj.linksOptMap { hs =>
val hc1 = hs.tileLt
val hc2 = hs.tileRt
val t1 = terrs(hc1)
def lines2: GraphicElems = proj.ifTileScale(50, lines1)

def t2 = terrs(hs.tileRt)

if (sTerrs(hs).nonEmpty | t1 != t2) None
else {
val cs: (HCen, Int, Int) = hs.corners
val ls1 = corners.sideLine(cs._1, cs._2, cs._3)
val ls2 = ls1.map(hva => hva.toPt2(proj.transCoord(_)))
Some(ls2.draw(t1.contrastBW))
def hexStrs: RArr[TextGraphic] = terrs.hcOptFlatMap { (hc, terr) =>
proj.transOptCoord(hc).map { pt =>
val strs: StrArr = StrArr(hc.rcStr32) /*.appendOption(proj.hCoordOptStr(hc))*/ +% hc.strComma
TextGraphic.lines(strs, 12, pt, terr.contrastBW)
}
}
}

def lines4: GraphicElems = proj.ifTileScale(50, lines3)

//def hexStrs: GraphicElems = proj.hCenSizedMap(15){ (pt, hc) => pt.textAt(hc.rcStr32, 12, terrs(hc).contrastBW) }
def hexStrs2: GraphicElems = proj.ifTileScale(72, hexStrs)

def hexStrs: RArr[TextGraphic] = terrs.hcOptFlatMap { (hc, terr) =>
proj.transOptCoord(hc).map { pt =>
val strs: StrArr = StrArr(hc.rcStr32)/*.appendOption(proj.hCoordOptStr(hc))*/ +% hc.strComma
TextGraphic.lines(strs, 12, pt, terr.contrastBW)
def units: GraphicElems = armies.projSomeHcPtMap { (army, hc, pt) =>
val str = ptScale.scaledStr(170, army.toString + "\n" + hc.strComma, 150, "A" + "\n" + hc.strComma, 60, army.toString)
pStrat.UnitCounters.infantry(proj.pixelsPerTile * 0.6, army, army.colour).slate(pt) //.fillDrawTextActive(p.colour, p.polity, str, 24, 2.0)
}
}

def hexStrs2: GraphicElems = proj.ifTileScale(72, hexStrs)

def units: GraphicElems = armies.projSomeHcPtMap { (army, hc, pt) =>
val str = ptScale.scaledStr(170, army.toString + "\n" + hc.strComma, 150, "A" + "\n" + hc.strComma, 60, army.toString)
pStrat.UnitCounters.infantry(proj.pixelsPerTile * 0.6, army, army.colour).slate(pt) //.fillDrawTextActive(p.colour, p.polity, str, 24, 2.0)
tiles ++ actives ++ straits ++ lines2 ++ hexStrs2 ++ units
}

override def frame: GraphicElems = tiles2 ++ actives ++ straits3 ++ lines4 ++ hexStrs2 ++ units

/** Creates the turn button and the action to commit on mouse click. */
def bTurn: PolygonCompound = clickButton("Turn " + (scen.turn + 1).toString) { _ =>
//scen = scen.endTurn()
Expand Down
2 changes: 1 addition & 1 deletion Dev/srcGrand/dless/DLessScen.scala
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ object DLessScen1 extends DLessScen
armies.unsafeSetSames(Britain, 142,510, 144,508)
armies.unsafeSetSames(Germany, 142,518)
armies.unsafeSetSames(France, 138,514)
armies.unsafeSetSames(Russia, 142, 1534)
armies.unsafeSetSames(Russia, 142,1534, 148,1536)
armies.unsafeSetSames(Italy, 134, 526)
armies.unsafeSetSames(Austria, 138, 1526)
armies.unsafeSetSames(Ottoman, 132, 1532)
Expand Down
2 changes: 2 additions & 0 deletions Dev/srcGrand/dless/Nation.scala
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
/* Copyright 2018-23 Richard Oliver. Licensed under Apache Licence version 2.0. */
package ostrat; package dless
import Colour._

trait Nation
{ val name: String
val colour: Colour
override def toString: String = name
}

object Britain extends Nation
Expand Down
2 changes: 1 addition & 1 deletion EGrid/src/egrid/ExpWorldGui.scala
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ class ExpWorldGui(val canv: CanvasPlatform, scenIn: EScenBasic, viewIn: HGView,

def rcTexts2: GraphicElems = proj.ifTileScale(82, rcTexts1)

def tiles: RArr[PolygonFill] = gridSys.map { hc =>
def tiles: RArr[PolygonFill] = proj.hCensMap { hc =>
corners.tilePoly(hc).map { hvo => hvo.toPt2(proj.transCoord(_)) }.fill(terrs(hc).colour)
}

Expand Down

0 comments on commit bee3d79

Please sign in to comment.