130 lines
1.7 KiB
Go
130 lines
1.7 KiB
Go
package entity
|
|
|
|
// Init inits entity
|
|
func (e *Entity) Init() {
|
|
e.Deserialize()
|
|
|
|
// In case of Revert, check empty every time when doing `Deserialize`
|
|
if e.IsEmpty() {
|
|
e.InitAct()
|
|
|
|
e.InitRootNode()
|
|
|
|
e.PrepareNodeDesc()
|
|
|
|
e.MustNext()
|
|
|
|
e.PrepareRand()
|
|
|
|
e.PrepareNextNodeDesc()
|
|
|
|
e.PrepareNextOriginFormations()
|
|
|
|
e.InitNextFormations()
|
|
|
|
e.InitNextFeatures()
|
|
|
|
e.Callback.OnInit()
|
|
}
|
|
}
|
|
|
|
// Step moves a step on node tree
|
|
func (e *Entity) Step() {
|
|
e.StepInitialize()
|
|
|
|
e.MoveNext()
|
|
|
|
e.PreProcessing()
|
|
|
|
e.Spin()
|
|
|
|
e.PostProcessing()
|
|
|
|
e.MustNext()
|
|
|
|
e.StepFinalize()
|
|
}
|
|
|
|
// StepInitialize processes node tree before `MoveNext`
|
|
func (e *Entity) StepInitialize() {
|
|
e.PrepareStep()
|
|
e.PrepareRand()
|
|
e.PrepareNodeDesc()
|
|
e.ResetNextClass()
|
|
e.Callback.OnStepBegin()
|
|
}
|
|
|
|
// PreProcessing prepocesses before `Spin`
|
|
func (e *Entity) PreProcessing() {
|
|
e.ResetNextBaseBet()
|
|
|
|
e.ConsumeCoins()
|
|
|
|
e.PrepareNodeDesc()
|
|
|
|
e.ResetFormations()
|
|
|
|
e.ResetBaseBet()
|
|
|
|
//e.ResetClass()
|
|
|
|
e.PrepareOriginFormations()
|
|
|
|
e.PrepareCheatFormations()
|
|
|
|
e.ResetSingleBet()
|
|
|
|
e.ResetBet()
|
|
|
|
e.ResetWin()
|
|
|
|
e.Callback.BeforeSpin()
|
|
}
|
|
|
|
// Spin reads configs and spins current node
|
|
func (e *Entity) Spin() {
|
|
e.UpdateRound()
|
|
|
|
e.Rand()
|
|
|
|
e.CheatFormations()
|
|
|
|
e.Callback.BeforeDisplay()
|
|
|
|
e.Display()
|
|
|
|
e.Callback.AfterDisplay()
|
|
|
|
e.Link()
|
|
|
|
e.ConvertFormations()
|
|
}
|
|
|
|
// PostProcessing post-processes after `Spin`
|
|
func (e *Entity) PostProcessing() {
|
|
e.Callback.AfterSpin()
|
|
|
|
e.UpdateImageFormations()
|
|
|
|
e.UpdateImageFeatures()
|
|
|
|
e.UpdateWin()
|
|
|
|
e.Progress()
|
|
}
|
|
|
|
// StepFinalize processes node tree after `MustNext`
|
|
func (e *Entity) StepFinalize() {
|
|
e.PrepareNextNodeDesc()
|
|
|
|
e.InitNextFormations()
|
|
|
|
e.InitNextFeatures()
|
|
|
|
e.Callback.OnStepEnd()
|
|
|
|
e.ObtainCoins()
|
|
|
|
e.SyncRand()
|
|
}
|