blackjack_helper_qt/player.nim

110 lines
2.5 KiB
Nim
Raw Normal View History

import NimQml
QtObject:
type player* = ref object of QObject
p_name: string
p_bet: int
p_push: bool
p_double: bool
p_payout: int
proc delete*(self: player)
proc setup(self: player)
proc newplayer*(): player =
new(result, delete)
result.p_name = "no player name"
result.p_bet = 250000
result.p_push = false
result.p_double = false
result.p_payout = 250000
result.setup
proc delete*(self: player) =
self.QObject.delete
proc setup(self: player) =
self.QObject.setup
proc getName*(self: player): string {.slot.} =
result = self.p_name
proc getBet*(self: player): int {.slot.} =
result = self.p_bet
proc getPush*(self: player): bool {.slot.} =
result = self.p_push
proc getDouble*(self: player): bool {.slot.} =
result = self.p_double
proc getPayout*(self: player): int {.slot.} =
result = self.p_payout
proc nameChanged*(self: player, name: string) {.signal.}
proc betChanged*(self: player, bet: int) {.signal.}
proc pushChanged*(self: player, push: bool) {.signal.}
proc doubleChanged*(self: player, double: bool) {.signal.}
proc payoutChanged*(self: player, payout: int) {.signal.}
proc setName*(self: player, name: string) {.slot.} =
if self.p_name == name:
return
self.p_name = name
self.nameChanged(name)
proc setBet*(self: player, bet: int) {.slot.} =
if self.p_bet == bet:
return
self.p_bet = bet
self.betChanged(bet)
proc setPush*(self: player, push: bool) {.slot.} =
if self.p_push == push:
return
self.p_push = push
self.pushChanged(push)
proc setDouble*(self: player, double: bool) {.slot.} =
if self.p_double == double:
return
self.p_double = double
self.doubleChanged(double)
proc setPayout*(self: player, payout: int) {.slot.} =
if self.p_payout == payout:
return
self.p_payout = payout
self.payoutChanged(payout)
proc calcPayout*(self: player, bet: int, push: bool, double: bool): int {.slot.} =
var payout = bet * 2
self.p_bet = payout
self.betChanged(payout)
QtProperty[string] name:
read = getName
write = setName
notify = nameChanged
QtProperty[int] bet:
read = getBet
write = setBet
notify = betChanged
QtProperty[bool] push:
read = getPush
write = setPush
notify = pushChanged
QtProperty[bool] double:
read = getDouble
write = setDouble
notify = doubleChanged
QtProperty[int] payout:
read = getPayout
write = setPayout
notify = payoutChanged