Fixes straddle setup with complex blind values

blinds
Laurent 3 years ago
parent cb7711e33b
commit f35db342b6
  1. 6
      app/src/main/java/net/pokeranalytics/android/model/handhistory/HandSetup.kt
  2. 18
      app/src/main/java/net/pokeranalytics/android/model/realm/handhistory/HandHistory.kt
  3. 8
      app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/model/EditorViewModel.kt

@ -80,6 +80,12 @@ class HandSetup {
this.blinds = session.cgBlinds
this.ante = session.cgAnte
this.tableSize = session.tableSize
val blindValues = session.blindValues
if (blindValues.size > 2) {
this.straddlePositions = Position.positionsPerPlayers(10).drop(2).take(blindValues.size - 2).toMutableList()
}
}
/***

@ -211,30 +211,32 @@ open class HandHistory : RealmObject(), Deletable, RowRepresentable, Filterable,
this.actions.clear()
val blindValues = this.blindValues
var blindValues = this.blindValues
if (blindValues.isNotEmpty()) {
blindValues.forEachIndexed { index, blind ->
val action = when(index) {
0 -> Action.Type.POST_SB
1 -> Action.Type.POST_BB
else -> Action.Type.STRADDLE
else -> null
}
this.addAction(index, action, blind)
action?.let { this.addAction(index, action, blind) }
}
} else {
this.addAction(0, Action.Type.POST_SB, this.oldSmallBlind)
this.addAction(1, Action.Type.POST_BB, this.oldBigBlind)
}
// var lastStraddler: Int? = null
blindValues = blindValues.drop(2)
val positions = Position.positionsPerPlayers(this.numberOfPlayers)
handSetup.straddlePositions.forEach { position -> // position are sorted here
handSetup.straddlePositions.forEachIndexed { index, position -> // position are sorted here
val positionIndex = positions.indexOf(position)
this.addAction(positionIndex, Action.Type.STRADDLE)
// lastStraddler = positionIndex
val amount = if (index < blindValues.size) { blindValues[index] } else null
this.addAction(positionIndex, Action.Type.STRADDLE, amount)
}
// var lastStraddler: Int? = null
// val totalActions = this.actions.size
// val startingPosition = lastStraddler?.let { it + 1 } ?: totalActions

@ -62,6 +62,10 @@ class EditorViewModel : ViewModel(), RowRepresentableDataSource, CardCentralizer
* The hand setup
*/
private var handSetup: HandSetup = HandSetup()
set(value) {
field = value
this.straddlePositions.addAll(value.straddlePositions)
}
/***
* Indicates whether the HH is new or not
@ -902,8 +906,8 @@ class EditorViewModel : ViewModel(), RowRepresentableDataSource, CardCentralizer
fun changeStraddleSelection(positions: LinkedHashSet<Position>) {
if (positions.isEmpty()) {
this.firstStraddlePosition = null
this.handSetup.clearStraddles()
this.firstStraddlePosition = null
this.handSetup.clearStraddles()
} else {
if (this.firstStraddlePosition == null) {

Loading…
Cancel
Save