63 lines
2.0 KiB
Go
63 lines
2.0 KiB
Go
package entity
|
|
|
|
import (
|
|
"mongo.games.com/game/gamesrv/base"
|
|
"mongo.games.com/game/gamesrv/slotspkg/internal/generic/key"
|
|
"mongo.games.com/game/gamesrv/slotspkg/internal/module/player"
|
|
"mongo.games.com/game/gamesrv/slotspkg/internal/module/shared"
|
|
"mongo.games.com/game/gamesrv/slotspkg/internal/module/shell"
|
|
"mongo.games.com/game/gamesrv/slotspkg/slots/desc"
|
|
"mongo.games.com/game/gamesrv/slotspkg/slots/formation"
|
|
"mongo.games.com/game/gamesrv/slotspkg/slots/intf"
|
|
)
|
|
|
|
// Entity holds a machine for player
|
|
type Entity struct {
|
|
Theme string
|
|
Shell *shell.Shell
|
|
MachineDesc *desc.MachineDesc
|
|
NodeDesc *desc.NodeDesc
|
|
NextNodeDesc *desc.NodeDesc
|
|
NodeTree *shared.NodeTree
|
|
OriginFormations []*formation.Formation // for storing origin formation.Formation
|
|
Session *base.SlotsSession
|
|
Player *player.Player
|
|
Customs map[int64]interface{}
|
|
Callback intf.Callback
|
|
Data map[string]interface{} // machine data store
|
|
RandState *RandState
|
|
IsFree bool
|
|
}
|
|
|
|
// NewEntity creates a new entity
|
|
func NewEntity(s *base.SlotsSession, theme string, callback intf.Callback, shell *shell.Shell, isFree bool) *Entity {
|
|
return &Entity{
|
|
Theme: theme,
|
|
Shell: shell,
|
|
MachineDesc: desc.NewMachineDesc(theme, key.Base, shell),
|
|
NodeDesc: nil,
|
|
NextNodeDesc: nil,
|
|
NodeTree: NewNodeTree(),
|
|
OriginFormations: make([]*formation.Formation, 0),
|
|
Session: s,
|
|
Player: player.Get(s),
|
|
Customs: make(map[int64]interface{}),
|
|
Callback: callback,
|
|
Data: make(map[string]interface{}),
|
|
RandState: NewRandState(),
|
|
IsFree: isFree,
|
|
}
|
|
}
|
|
|
|
func NewNodeTree() *shared.NodeTree {
|
|
return &shared.NodeTree{
|
|
RandVector: &shared.RandVector{},
|
|
UserData: &shared.UserData{},
|
|
Nodes: make([]*shared.Node, 0),
|
|
Closing: make([]int64, 0),
|
|
Act: &shared.Act{},
|
|
BetCoin: &shared.Coin{},
|
|
WinCoin: &shared.Coin{},
|
|
}
|
|
}
|