Brian
03/22/2019, 4:35 PMNikky
03/22/2019, 4:57 PMBrian
03/22/2019, 5:05 PMclass Combatant(name: String) {
val experienceProperty = SimpleIntegerProperty(100)
var experience by experienceProperty
}
class EncounterBuilderController : Controller() {
val availableCombatants = SimpleListProperty<Combatant>(observableList(direBadger, goblin))
val selectedCombatants = SimpleListProperty<Combatant>(observableList())
val experiencePoints: Int
get() = selectedCombatants.map { it.experience }.sum()
val challengeRating: String
get() = challengeRatingFor(experiencePoints)
fun addCombatant(combatant: Combatant?) {
if (combatant != null) {
selectedCombatants += combatant
}
}
}
class EncounterBuilderView : View("Encounter Builder") {
val controller: EncounterBuilderController by inject()
override val root = vbox {
label("Encounter XP:")
label(stringBinding(controller.experiencePoints) {
"%,d".format(controller.experiencePoints)
})
label("CR:")
label(controller.challengeRating)
}
}
Brian
03/22/2019, 5:36 PMNikky
03/22/2019, 7:34 PMNikky
03/22/2019, 7:35 PMval experiencePointsProperty = integerBinding(selectedCombatantsProperty) {...}
and val experiencePoints by experiencePointsProperty
Nikky
03/22/2019, 7:48 PMNikky
03/22/2019, 7:50 PMlabel(controller.challengeRatingProperty)
Nikky
03/22/2019, 7:50 PMBrian
03/22/2019, 9:56 PMBrian
03/22/2019, 10:08 PM