57 lines
1.1 KiB
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
|
|
}
|