78 lines
2.7 KiB
Go
78 lines
2.7 KiB
Go
package gatesofolympus
|
|
|
|
import (
|
|
"mongo.games.com/game/gamesrv/slotspkg/internal/generic/key"
|
|
"mongo.games.com/game/gamesrv/slotspkg/slots/intf"
|
|
"mongo.games.com/game/gamesrv/slotspkg/slots/plugin/generic"
|
|
)
|
|
|
|
type PluginSpecial struct {
|
|
generic.PluginBase
|
|
}
|
|
type Special struct {
|
|
CustomEliminates []CustomEliminate `json:"CustomEliminates,omitempty"` //消除的次数 一次为一个结果
|
|
FreeStatus int `json:"fs"`
|
|
FreeSpinNum int64 `json:"fsn,omitempty"` //剩余freespin
|
|
FreeNumMax int64 `json:"fnm,omitempty"` //总次数
|
|
FreeNumTrigger int64 `json:"fnt,omitempty"` //新增freespin
|
|
Pay float64 `json:"Pay,omitempty"`
|
|
Multi int64 `json:"Multi,omitempty"`
|
|
MultiStr string `json:"multi_str,omitempty"`
|
|
MultiStrVal string `json:"multi_str_val,omitempty"`
|
|
SymbolsAbove []int64 `json:"symbols_above,omitempty"`
|
|
SymbolsBelow []int64 `json:"symbols_below,omitempty"`
|
|
}
|
|
|
|
func (p *PluginSpecial) Theme() string {
|
|
return key.GatesOfOlympus
|
|
}
|
|
|
|
func (p *PluginSpecial) Customs() []interface{} {
|
|
return []interface{}{
|
|
&Special{},
|
|
}
|
|
}
|
|
func (p *PluginSpecial) getCustomSpecial(m intf.Master) *Special {
|
|
customSpecial := new(Special)
|
|
if len(m.CursorCustoms(customSpecial)) == 0 {
|
|
m.AddCursorFeature(customSpecial).SetLifetime(0)
|
|
}
|
|
return m.CursorCustom(customSpecial).(*Special)
|
|
}
|
|
func (p *PluginSpecial) AfterSpin(m intf.Master) {
|
|
//cf := m.CursorFeatures(&CustomEliminate{})
|
|
ces := m.CursorCustoms(&CustomEliminate{})
|
|
sp := p.getCustomSpecial(m)
|
|
if len(ces) > 0 {
|
|
for _, i2 := range ces {
|
|
ce := i2.(*CustomEliminate)
|
|
wc := make([]float64, len(ce.WinCoins))
|
|
for j := 0; j < len(ce.WinCoins); j++ {
|
|
wc[j] = ce.WinCoins[j] / 10000
|
|
}
|
|
sp.CustomEliminates = append(sp.CustomEliminates, CustomEliminate{
|
|
LinkPositions: ce.LinkPositions,
|
|
AppendSymbols: ce.AppendSymbols,
|
|
FormattedSymbols: ce.FormattedSymbols,
|
|
LinePays: ce.LinePays,
|
|
WinCoins: wc,
|
|
MultiStr: ce.MultiStr,
|
|
})
|
|
}
|
|
}
|
|
customFortune := getCustomFortune(m)
|
|
sp.FreeStatus = customFortune.FreeStatus
|
|
sp.FreeSpinNum = customFortune.FreeSpinNum
|
|
sp.FreeNumMax = customFortune.FreeNumMax
|
|
sp.FreeNumTrigger = customFortune.FreeNumTrigger
|
|
|
|
customMulti := m.RootCustom(&CustomMulti{}).(*CustomMulti)
|
|
customPay := m.CursorCustom(&CustomPay{}).(*CustomPay)
|
|
sp.Multi = customMulti.Multi
|
|
sp.MultiStr = customMulti.MultiStr
|
|
sp.MultiStrVal = customMulti.MultiStrVal
|
|
sp.Pay = customPay.Pay
|
|
sp.SymbolsAbove = m.CursorFormation().GetSymbolsAbove()
|
|
sp.SymbolsBelow = m.CursorFormation().GetSymbolsBelow()
|
|
}
|