game_sync/gamesrv/slotspkg/slots/machine/node.go

57 lines
1.1 KiB
Go

package machine
import (
"mongo.games.com/game/gamesrv/slotspkg/internal/module/shared"
"mongo.games.com/game/gamesrv/slotspkg/slots/intf"
"mongo.games.com/goserver/core/logger"
)
// Node implements intf.Node
type Node struct {
*shared.Node
Machine *Machine
}
func asNodeIntf(m *Machine, n *shared.Node) *Node {
return &Node{
Node: n,
Machine: m,
}
}
// SetBet implements intf.Node.SetBet
func (n *Node) SetBet(bet int64) intf.Node {
if n.GetID() == n.Machine.Cursor().GetID() {
logger.Logger.Warnf("It's too late to set bet in theme:%s, node type:%s",
n.Machine.Theme, n.Machine.Cursor().GetType())
}
n.ForceBet = bet
n.Bet = bet
return n
}
// AddPrepare implements intf.Node.AddPrepare
func (n *Node) AddPrepare() intf.Node {
n.NeedPrepare = true
return n
}
func (n *Node) GetFormationWin() int64 {
var win int64
for _, formation := range n.Formations {
win += formation.Win
}
return win
}
func (n *Node) GetFeatureWin() int64 {
var featureWin int64
for _, feature := range n.Features {
featureWin += feature.Win
}
return featureWin
}
func (n *Node) GetNoBase() bool {
return n.NoBase
}