110 lines
2.5 KiB
Nim
110 lines
2.5 KiB
Nim
|
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
|
||
|
|
||
|
|