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.blinds = session.cgBlinds
this.ante = session.cgAnte this.ante = session.cgAnte
this.tableSize = session.tableSize 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() this.actions.clear()
val blindValues = this.blindValues var blindValues = this.blindValues
if (blindValues.isNotEmpty()) { if (blindValues.isNotEmpty()) {
blindValues.forEachIndexed { index, blind -> blindValues.forEachIndexed { index, blind ->
val action = when(index) { val action = when(index) {
0 -> Action.Type.POST_SB 0 -> Action.Type.POST_SB
1 -> Action.Type.POST_BB 1 -> Action.Type.POST_BB
else -> Action.Type.STRADDLE else -> null
} }
this.addAction(index, action, blind) action?.let { this.addAction(index, action, blind) }
} }
} else { } else {
this.addAction(0, Action.Type.POST_SB, this.oldSmallBlind) this.addAction(0, Action.Type.POST_SB, this.oldSmallBlind)
this.addAction(1, Action.Type.POST_BB, this.oldBigBlind) this.addAction(1, Action.Type.POST_BB, this.oldBigBlind)
} }
// var lastStraddler: Int? = null blindValues = blindValues.drop(2)
val positions = Position.positionsPerPlayers(this.numberOfPlayers) 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) val positionIndex = positions.indexOf(position)
this.addAction(positionIndex, Action.Type.STRADDLE) val amount = if (index < blindValues.size) { blindValues[index] } else null
// lastStraddler = positionIndex this.addAction(positionIndex, Action.Type.STRADDLE, amount)
} }
// var lastStraddler: Int? = null
// val totalActions = this.actions.size // val totalActions = this.actions.size
// val startingPosition = lastStraddler?.let { it + 1 } ?: totalActions // val startingPosition = lastStraddler?.let { it + 1 } ?: totalActions

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

Loading…
Cancel
Save